openfeature-provider-flagd 0.2.3__py3-none-any.whl → 0.2.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,7 +47,7 @@ ENV_VAR_RETRY_BACKOFF_MS = "FLAGD_RETRY_BACKOFF_MS"
47
47
  ENV_VAR_RETRY_BACKOFF_MAX_MS = "FLAGD_RETRY_BACKOFF_MAX_MS"
48
48
  ENV_VAR_RETRY_GRACE_PERIOD_SECONDS = "FLAGD_RETRY_GRACE_PERIOD"
49
49
  ENV_VAR_SELECTOR = "FLAGD_SOURCE_SELECTOR"
50
- ENV_VAR_PROVIDER_ID = "FLAGD_SOURCE_PROVIDER_ID"
50
+ ENV_VAR_PROVIDER_ID = "FLAGD_PROVIDER_ID"
51
51
  ENV_VAR_STREAM_DEADLINE_MS = "FLAGD_STREAM_DEADLINE_MS"
52
52
  ENV_VAR_TLS = "FLAGD_TLS"
53
53
  ENV_VAR_TLS_CERT = "FLAGD_SERVER_CERT_PATH"
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import logging
2
3
  import threading
3
4
  import time
@@ -80,6 +81,44 @@ class GrpcResolver:
80
81
  ("grpc.initial_reconnect_backoff_ms", config.retry_backoff_ms),
81
82
  ("grpc.max_reconnect_backoff_ms", config.retry_backoff_max_ms),
82
83
  ("grpc.min_reconnect_backoff_ms", config.deadline_ms),
84
+ (
85
+ "grpc.service_config",
86
+ json.dumps(
87
+ {
88
+ "methodConfig": [
89
+ {
90
+ "name": [
91
+ {"service": "flagd.sync.v1.FlagSyncService"},
92
+ {"service": "flagd.evaluation.v1.Service"},
93
+ ],
94
+ "retryPolicy": {
95
+ "maxAttempts": 3,
96
+ "initialBackoff": "1s",
97
+ "maxBackoff": "5s",
98
+ "backoffMultiplier": 2.0,
99
+ "retryableStatusCodes": [
100
+ "CANCELLED",
101
+ "UNKNOWN",
102
+ "INVALID_ARGUMENT",
103
+ "NOT_FOUND",
104
+ "ALREADY_EXISTS",
105
+ "PERMISSION_DENIED",
106
+ "RESOURCE_EXHAUSTED",
107
+ "FAILED_PRECONDITION",
108
+ "ABORTED",
109
+ "OUT_OF_RANGE",
110
+ "UNIMPLEMENTED",
111
+ "INTERNAL",
112
+ "UNAVAILABLE",
113
+ "DATA_LOSS",
114
+ "UNAUTHENTICATED",
115
+ ],
116
+ },
117
+ }
118
+ ]
119
+ }
120
+ ),
121
+ ),
83
122
  ]
84
123
  if config.tls:
85
124
  channel_args = {
@@ -62,6 +62,44 @@ class GrpcWatcher(FlagStateConnector):
62
62
  ("grpc.initial_reconnect_backoff_ms", config.retry_backoff_ms),
63
63
  ("grpc.max_reconnect_backoff_ms", config.retry_backoff_max_ms),
64
64
  ("grpc.min_reconnect_backoff_ms", config.stream_deadline_ms),
65
+ (
66
+ "grpc.service_config",
67
+ json.dumps(
68
+ {
69
+ "methodConfig": [
70
+ {
71
+ "name": [
72
+ {"service": "flagd.sync.v1.FlagSyncService"},
73
+ {"service": "flagd.evaluation.v1.Service"},
74
+ ],
75
+ "retryPolicy": {
76
+ "maxAttempts": 3,
77
+ "initialBackoff": "1s",
78
+ "maxBackoff": "5s",
79
+ "backoffMultiplier": 2.0,
80
+ "retryableStatusCodes": [
81
+ "CANCELLED",
82
+ "UNKNOWN",
83
+ "INVALID_ARGUMENT",
84
+ "NOT_FOUND",
85
+ "ALREADY_EXISTS",
86
+ "PERMISSION_DENIED",
87
+ "RESOURCE_EXHAUSTED",
88
+ "FAILED_PRECONDITION",
89
+ "ABORTED",
90
+ "OUT_OF_RANGE",
91
+ "UNIMPLEMENTED",
92
+ "INTERNAL",
93
+ "UNAVAILABLE",
94
+ "DATA_LOSS",
95
+ "UNAUTHENTICATED",
96
+ ],
97
+ },
98
+ }
99
+ ]
100
+ }
101
+ ),
102
+ ),
65
103
  ]
66
104
  if config.default_authority is not None:
67
105
  options.append(("grpc.default_authority", config.default_authority))
@@ -220,7 +258,7 @@ class GrpcWatcher(FlagStateConnector):
220
258
  logger.debug("Terminating gRPC sync thread")
221
259
  return
222
260
  except grpc.RpcError as e: # noqa: PERF203
223
- logger.error(f"SyncFlags stream error, {e.code()=} {e.details()=}")
261
+ logger.debug(f"SyncFlags stream error, {e.code()=} {e.details()=}")
224
262
  except json.JSONDecodeError:
225
263
  logger.exception(
226
264
  f"Could not parse JSON flag data from SyncFlags endpoint: {flag_str=}"
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation.proto
5
- # Protobuf Python Version: 5.29.0
5
+ # Protobuf Python Version: 6.31.0
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -11,8 +11,8 @@ from google.protobuf import symbol_database as _symbol_database
11
11
  from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 29,
14
+ 6,
15
+ 31,
16
16
  0,
17
17
  '',
18
18
  'openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation.proto'
@@ -5,7 +5,7 @@ import warnings
5
5
 
6
6
  from openfeature.schemas.protobuf.flagd.evaluation.v1 import evaluation_pb2 as openfeature_dot_schemas_dot_protobuf_dot_flagd_dot_evaluation_dot_v1_dot_evaluation__pb2
7
7
 
8
- GRPC_GENERATED_VERSION = '1.71.0'
8
+ GRPC_GENERATED_VERSION = '1.73.1'
9
9
  GRPC_VERSION = grpc.__version__
10
10
  _version_not_supported = False
11
11
 
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: openfeature/schemas/protobuf/flagd/sync/v1/sync.proto
5
- # Protobuf Python Version: 5.29.0
5
+ # Protobuf Python Version: 6.31.0
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -11,8 +11,8 @@ from google.protobuf import symbol_database as _symbol_database
11
11
  from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 29,
14
+ 6,
15
+ 31,
16
16
  0,
17
17
  '',
18
18
  'openfeature/schemas/protobuf/flagd/sync/v1/sync.proto'
@@ -5,7 +5,7 @@ import warnings
5
5
 
6
6
  from openfeature.schemas.protobuf.flagd.sync.v1 import sync_pb2 as openfeature_dot_schemas_dot_protobuf_dot_flagd_dot_sync_dot_v1_dot_sync__pb2
7
7
 
8
- GRPC_GENERATED_VERSION = '1.71.0'
8
+ GRPC_GENERATED_VERSION = '1.73.1'
9
9
  GRPC_VERSION = grpc.__version__
10
10
  _version_not_supported = False
11
11
 
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: openfeature/schemas/protobuf/schema/v1/schema.proto
5
- # Protobuf Python Version: 5.29.0
5
+ # Protobuf Python Version: 6.31.0
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -11,8 +11,8 @@ from google.protobuf import symbol_database as _symbol_database
11
11
  from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 29,
14
+ 6,
15
+ 31,
16
16
  0,
17
17
  '',
18
18
  'openfeature/schemas/protobuf/schema/v1/schema.proto'
@@ -5,7 +5,7 @@ import warnings
5
5
 
6
6
  from openfeature.schemas.protobuf.schema.v1 import schema_pb2 as openfeature_dot_schemas_dot_protobuf_dot_schema_dot_v1_dot_schema__pb2
7
7
 
8
- GRPC_GENERATED_VERSION = '1.71.0'
8
+ GRPC_GENERATED_VERSION = '1.73.1'
9
9
  GRPC_VERSION = grpc.__version__
10
10
  _version_not_supported = False
11
11
 
@@ -2,7 +2,7 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # NO CHECKED-IN PROTOBUF GENCODE
4
4
  # source: openfeature/schemas/protobuf/sync/v1/sync_service.proto
5
- # Protobuf Python Version: 5.29.0
5
+ # Protobuf Python Version: 6.31.0
6
6
  """Generated protocol buffer code."""
7
7
  from google.protobuf import descriptor as _descriptor
8
8
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -11,8 +11,8 @@ from google.protobuf import symbol_database as _symbol_database
11
11
  from google.protobuf.internal import builder as _builder
12
12
  _runtime_version.ValidateProtobufRuntimeVersion(
13
13
  _runtime_version.Domain.PUBLIC,
14
- 5,
15
- 29,
14
+ 6,
15
+ 31,
16
16
  0,
17
17
  '',
18
18
  'openfeature/schemas/protobuf/sync/v1/sync_service.proto'
@@ -5,7 +5,7 @@ import warnings
5
5
 
6
6
  from openfeature.schemas.protobuf.sync.v1 import sync_service_pb2 as openfeature_dot_schemas_dot_protobuf_dot_sync_dot_v1_dot_sync__service__pb2
7
7
 
8
- GRPC_GENERATED_VERSION = '1.71.0'
8
+ GRPC_GENERATED_VERSION = '1.73.1'
9
9
  GRPC_VERSION = grpc.__version__
10
10
  _version_not_supported = False
11
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openfeature-provider-flagd
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: OpenFeature provider for the flagd flag evaluation engine
5
5
  Project-URL: Homepage, https://github.com/open-feature/python-sdk-contrib
6
6
  Author-email: OpenFeature <openfeature-core@groups.io>
@@ -1,11 +1,11 @@
1
1
  openfeature/.gitignore,sha256=1ZPH4VtVL4bMQmBJXQJxeAyUa74LCtqV1a_yjeDIzSQ,8
2
2
  openfeature/contrib/provider/flagd/__init__.py,sha256=WlrcPaCH31dEG1IvrvpeuhAaQ8Ni8LEzDpNM_x-qKOA,65
3
- openfeature/contrib/provider/flagd/config.py,sha256=GAt8skBFMzF4skf8l8yr7jl7KBUM509ogZDpvF3NByk,8380
3
+ openfeature/contrib/provider/flagd/config.py,sha256=S2DO-X5Fs8Wn1hq-7tOYBuYep4URhINbhbzH1vDcLxk,8373
4
4
  openfeature/contrib/provider/flagd/flag_type.py,sha256=rZYfmqQEmtqVVTb8e-d8Wt8ZCnHtf7xPSmYxyU8w0R0,158
5
5
  openfeature/contrib/provider/flagd/provider.py,sha256=qGLWvpYEfvf5RrvYb2vTvzc8CDrAWausA3bPfs93v3I,7981
6
6
  openfeature/contrib/provider/flagd/sync_metadata_hook.py,sha256=fd3uRtwDhVlCW9vZhS35p9qENkl6wDHwlFH-L48aPDM,456
7
7
  openfeature/contrib/provider/flagd/resolvers/__init__.py,sha256=CzsnsfxJCaD_S1gBf15kkJBVD-gVLKIwDi4W1nE-dXw,181
8
- openfeature/contrib/provider/flagd/resolvers/grpc.py,sha256=KJTrwZM-XF2-Xw-O4YvrN-Xvn_KqsO9T29lBAjiDS-4,13581
8
+ openfeature/contrib/provider/flagd/resolvers/grpc.py,sha256=dIRuCgHrqCwPzpXdfL1cEPss08-LwZcy_gIUe0xLeqY,15380
9
9
  openfeature/contrib/provider/flagd/resolvers/in_process.py,sha256=Oqj3Ak-zqjvWnlnsg5ElXXHn-YIPZRItbyfzakCd8O0,5433
10
10
  openfeature/contrib/provider/flagd/resolvers/protocol.py,sha256=Wc7oUH6ytPuKg8Lj_3y-_LLkQkuvsow9IiSfmlM8I2o,1402
11
11
  openfeature/contrib/provider/flagd/resolvers/process/custom_ops.py,sha256=bZX1At0dRxhghhWz4g-8N-YPobcVfYSv9PTsYh-lZDc,4549
@@ -13,24 +13,24 @@ openfeature/contrib/provider/flagd/resolvers/process/flags.py,sha256=znDHo84b4-v
13
13
  openfeature/contrib/provider/flagd/resolvers/process/targeting.py,sha256=qjYgfoJK9B1ghh19cUq7f-VEql7Hh1J7sh0BhnNc_h0,905
14
14
  openfeature/contrib/provider/flagd/resolvers/process/connector/__init__.py,sha256=hyYYxRYEnSho5F28M2hbhhtkG4DQTwJjD36ddI0Xs7M,289
15
15
  openfeature/contrib/provider/flagd/resolvers/process/connector/file_watcher.py,sha256=abj6DhAyu2nP-P5EAHB9GyceJMym21rO8tKr8nQhmKM,4241
16
- openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py,sha256=XwG71pZqLLEBn7FAT0BhrO1LcCTuEwNZAXvEr37gioY,8835
17
- openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2.py,sha256=YPBimdlVBCfnVqxq9uek3H4nyaIR0MhggCAaR0XtIt4,7527
16
+ openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py,sha256=wfcG2aks5Za0bptnNfEagQuuR7rEUwELG6uPqSApIsY,10622
17
+ openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2.py,sha256=-K4_Kmx2JRgLAZG2jf5LqmDjY7ewrJKHGebqv3RqPwE,7527
18
18
  openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2.pyi,sha256=afh-fdsmyfS62C-iq7EQsqr_5yZP_QxJXp81Q0Lcllk,18333
19
- openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2_grpc.py,sha256=owH7bBrwEdzXxvabwv1ebzWVczshLFE3TZcDoAj8Owk,17189
19
+ openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2_grpc.py,sha256=CMBqGsCqTVaAgKwJ8Ht7Or7PfjPQsVVoA-kg-5XjHNI,17189
20
20
  openfeature/schemas/protobuf/flagd/evaluation/v1/evaluation_pb2_grpc.pyi,sha256=tQm-QOlsMdhdN_7i5LsrtLtBPu4qpL0qzTE7DbSvXFs,7731
21
- openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2.py,sha256=OIhVrNkhXtwuCdvbahXiOx-mQ3XVVPx5gh0UHzKN0_M,3528
21
+ openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2.py,sha256=m3-pL_dTFAGUzDVhOl-HjcfykIOqMP61spiq41W-UHU,3528
22
22
  openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2.pyi,sha256=Qsqe0vz5AJRAAjARXhjiaPKyIFbLttr4gTWae2zyJfM,5967
23
- openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2_grpc.py,sha256=gwoXi82VHekdHGuMGvFC0VbNpqVW8tnX2EkkxVDpvzU,8335
23
+ openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2_grpc.py,sha256=sJEO2Qr_tohCDpg2_W5V6gtlpmOAgCcG4l0K0kGUIEM,8335
24
24
  openfeature/schemas/protobuf/flagd/sync/v1/sync_pb2_grpc.pyi,sha256=APjDd-Yo6i6FE_kOusWhTqk-8B_0wIEMXcImCuGpQt8,3782
25
- openfeature/schemas/protobuf/schema/v1/schema_pb2.py,sha256=dfGpiAYJ2VuRBrctH7s21KkdrIr9rzIaWibUZ3So3g4,7255
25
+ openfeature/schemas/protobuf/schema/v1/schema_pb2.py,sha256=LIQjZ-jrzHULHYpFefuB0KRgtp0c9xwjXl0VDxrZsuY,7255
26
26
  openfeature/schemas/protobuf/schema/v1/schema_pb2.pyi,sha256=14Z6i0kRpCAQO8aCpc4Qwre1OJ7_d_ZIPq8V1vTuYzU,18369
27
- openfeature/schemas/protobuf/schema/v1/schema_pb2_grpc.py,sha256=af2955mIP2jB9LXZqnfN9cpQbPhl0tTg86MsQzsiy60,16227
27
+ openfeature/schemas/protobuf/schema/v1/schema_pb2_grpc.py,sha256=81k5RwIA-FlPPu9lT3Q9xIbS12thbJx2f-M2akSX-Z8,16227
28
28
  openfeature/schemas/protobuf/schema/v1/schema_pb2_grpc.pyi,sha256=EJ55jvso2Uzx50XryC7fsKGEOBi1bMOGCXaShl1TcJ4,7067
29
- openfeature/schemas/protobuf/sync/v1/sync_service_pb2.py,sha256=Sw0kLvO0wIRXsaFic8qmTuScMdf1-1WOHGWP4FOIB_s,3327
29
+ openfeature/schemas/protobuf/sync/v1/sync_service_pb2.py,sha256=pK8BPYQQmWihQYd-4jI84htTqmp6Jf7kk_w4MGG8Qgg,3327
30
30
  openfeature/schemas/protobuf/sync/v1/sync_service_pb2.pyi,sha256=o3YpW_5iQJWjU7IFEsyspeqLyBDC4C_psBNErwziumE,7986
31
- openfeature/schemas/protobuf/sync/v1/sync_service_pb2_grpc.py,sha256=Fnkq2H0sfLwc029RXfFxp5__f4UskT6Hbn_ZBT0LpJU,6185
31
+ openfeature/schemas/protobuf/sync/v1/sync_service_pb2_grpc.py,sha256=8eKM7pR4wMzDlD9vNVH5C4uYq6nbnJGozFAIjWawWGQ,6185
32
32
  openfeature/schemas/protobuf/sync/v1/sync_service_pb2_grpc.pyi,sha256=4NoAkGicVNxx4yVK5_JvvPn1OGlRdPhqM2wCpkwCjEI,3024
33
- openfeature_provider_flagd-0.2.3.dist-info/METADATA,sha256=IJr2mO2YiYPH4dKlzgLhqHAiweqcjpSk5ftGelFrZws,21635
34
- openfeature_provider_flagd-0.2.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
- openfeature_provider_flagd-0.2.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
36
- openfeature_provider_flagd-0.2.3.dist-info/RECORD,,
33
+ openfeature_provider_flagd-0.2.5.dist-info/METADATA,sha256=Xhd43YdbELLg_g94p-st3WC9S7ss9dnxTMtjJ9_5XAo,21635
34
+ openfeature_provider_flagd-0.2.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
+ openfeature_provider_flagd-0.2.5.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
36
+ openfeature_provider_flagd-0.2.5.dist-info/RECORD,,