devcycle-python-server-sdk 3.13.3__py3-none-any.whl → 3.13.4__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.
@@ -1 +1 @@
1
- 3.13.3
1
+ 3.13.4
@@ -82,7 +82,10 @@ class EnvironmentConfigManager(threading.Thread):
82
82
  json_config = json.dumps(self._config)
83
83
  self._local_bucketing.store_config(json_config)
84
84
  if not self._options.disable_realtime_updates:
85
- if self._sse_manager is None:
85
+ if (
86
+ self._sse_manager is None
87
+ or not self._sse_manager.client.is_connected()
88
+ ):
86
89
  self._sse_manager = SSEManager(
87
90
  self.sse_state,
88
91
  self.sse_error,
@@ -128,9 +131,9 @@ class EnvironmentConfigManager(threading.Thread):
128
131
  time.sleep(self._options.config_polling_interval_ms / 1000.0)
129
132
 
130
133
  def sse_message(self, message: ld_eventsource.actions.Event):
131
- if self._sse_connected is False:
132
- self._sse_connected = True
133
- logger.info("DevCycle: Connected to SSE stream")
134
+ # Received a message from the SSE stream but our sse_connected is False, so we need to set it to True
135
+ if not self._sse_connected:
136
+ self.sse_state(None)
134
137
  logger.info(f"DevCycle: Received message: {message.data}")
135
138
  sse_message = json.loads(message.data)
136
139
  dvc_data = json.loads(sse_message.get("data"))
@@ -143,11 +146,13 @@ class EnvironmentConfigManager(threading.Thread):
143
146
  self._get_config(dvc_data["lastModified"] / 1000.0)
144
147
 
145
148
  def sse_error(self, error: ld_eventsource.actions.Fault):
149
+ self._sse_connected = False
146
150
  logger.debug(f"DevCycle: Received SSE error: {error}")
147
151
 
148
- def sse_state(self, state: ld_eventsource.actions.Start):
149
- self._sse_connected = True
150
- logger.info("DevCycle: Connected to SSE stream")
152
+ def sse_state(self, state: Optional[ld_eventsource.actions.Start]):
153
+ if not self._sse_connected:
154
+ self._sse_connected = True
155
+ logger.info("DevCycle: Connected to SSE stream")
151
156
 
152
157
  def close(self):
153
158
  self._polling_enabled = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.13.3
3
+ Version: 3.13.4
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -1,4 +1,4 @@
1
- devcycle_python_sdk/VERSION.txt,sha256=yrKm73H5FVO4l0tkKpbsV55kvnFRglH38lAd_8Io7FU,7
1
+ devcycle_python_sdk/VERSION.txt,sha256=OCUo4FBVyMS7eMRyPVJvqhtPmBd7OFFkwEW7sQpGQd8,7
2
2
  devcycle_python_sdk/__init__.py,sha256=30TcYb9PbvVi97gwk16omCGG1UoUI9lmmU7xpvxNMvc,336
3
3
  devcycle_python_sdk/bucketing-lib.release.wasm,sha256=6iooyHRR-GBfrBH0_mleWyaNHr9uM_nVPS-IXGROGCY,224670
4
4
  devcycle_python_sdk/cloud_client.py,sha256=dR2ye29Up699hO1cdrAWeoXIOBPVoSvQ4aKe2gSBRno,9414
@@ -14,7 +14,7 @@ devcycle_python_sdk/api/config_client.py,sha256=73aQAq130rTHpQrVDX6n_DwFKz0WuKxR
14
14
  devcycle_python_sdk/api/event_client.py,sha256=WxkuV6geEC9MgG4FN36HeEQQa22ilq2mkOVMZkpiEk4,3356
15
15
  devcycle_python_sdk/api/local_bucketing.py,sha256=kXggXhv2PDQxDoLseuJwWbge8EgeqL0FWTmEIn8TUQc,16704
16
16
  devcycle_python_sdk/managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- devcycle_python_sdk/managers/config_manager.py,sha256=kdLMbWj-7iBgjENK7Kruxpqfp3j8t_srcwJx_ZYU1dE,5821
17
+ devcycle_python_sdk/managers/config_manager.py,sha256=_2mHZvXCS5pcLW3h-nOkUkbz1MCMmpMfD1ZnhPZKxwU,6056
18
18
  devcycle_python_sdk/managers/eval_hooks_manager.py,sha256=YOLj0IvNFqDbWvPA2aOqT15yKkwsdnZT9MQ7MHTv6M4,2963
19
19
  devcycle_python_sdk/managers/event_queue_manager.py,sha256=8tqPZDD0-AWmz_NcWJBb80OIMzNBpDgbafpFefiOOmk,8109
20
20
  devcycle_python_sdk/managers/sse_manager.py,sha256=Yr8qNt_XXvi2E94JfRRZk5QSn5aX0GisJYpvZUik4hA,2697
@@ -42,7 +42,7 @@ devcycle_python_sdk/protobuf/variableForUserParams_pb2.pyi,sha256=OU4ORhjnbXy0Aq
42
42
  devcycle_python_sdk/util/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
43
43
  devcycle_python_sdk/util/strings.py,sha256=gH0Xm3gIXNqn6hczKPk10Jn5_9knuD7OB5MrB7bqztw,252
44
44
  devcycle_python_sdk/util/version.py,sha256=Cz7Us_EuXP-T8GI47g2WHYdBJj_zKo-5y545IDHJAjI,253
45
- devcycle_python_server_sdk-3.13.3.dist-info/licenses/LICENSE,sha256=RlvZsEX5o__wLAA-VE7mG5hzTPjnFzPJKNdXXKvZ854,1071
45
+ devcycle_python_server_sdk-3.13.4.dist-info/licenses/LICENSE,sha256=RlvZsEX5o__wLAA-VE7mG5hzTPjnFzPJKNdXXKvZ854,1071
46
46
  example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  example/cloud_client_example.py,sha256=YD8ZsTv3dPYfbFUKraRpRT0VsJGrPwjm8ZCuA5H54yI,2463
48
48
  example/local_bucketing_client_example.py,sha256=TaIfy3VnW9fXii9NPYs5UOuP4fLKruXMjnZApveqzl4,2796
@@ -70,7 +70,7 @@ test/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
70
  test/util/test_strings.py,sha256=T5H5U0af7_ld1yJC8IdDmay_Mx-iJQ5Fi5fbvKcAc7A,862
71
71
  test/util/test_utils.py,sha256=tVBJm_qnqg-4PssLpXIxqlk0JehuiAIPs4zpi2oNVnY,6671
72
72
  test/util/test_version.py,sha256=3Xg0_84m0bdHXz6pxd2Z85Oz9DoUC1T0Ol_WqEH_jac,335
73
- devcycle_python_server_sdk-3.13.3.dist-info/METADATA,sha256=ivfg1qVdeLKvwDU1oG4j2EjzUGKHe8dLw1AMratN6Wg,723
74
- devcycle_python_server_sdk-3.13.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
- devcycle_python_server_sdk-3.13.3.dist-info/top_level.txt,sha256=34f8zDzihAHoH7siAFlmscyO_QLNWWq9HApFlwtYL4k,33
76
- devcycle_python_server_sdk-3.13.3.dist-info/RECORD,,
73
+ devcycle_python_server_sdk-3.13.4.dist-info/METADATA,sha256=NdIDJVbhBEioP9FGqWXdIiE4yZ2s2wik82AGnGfdO_I,723
74
+ devcycle_python_server_sdk-3.13.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
+ devcycle_python_server_sdk-3.13.4.dist-info/top_level.txt,sha256=34f8zDzihAHoH7siAFlmscyO_QLNWWq9HApFlwtYL4k,33
76
+ devcycle_python_server_sdk-3.13.4.dist-info/RECORD,,