devcycle-python-server-sdk 3.13.8__py3-none-any.whl → 3.13.10__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.8
1
+ 3.13.10
@@ -88,6 +88,7 @@ class EventQueueManager(threading.Thread):
88
88
  return 0
89
89
 
90
90
  with self._flush_lock:
91
+ payloads = []
91
92
  try:
92
93
  payloads = self._local_bucketing.flush_event_queue()
93
94
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.13.8
3
+ Version: 3.13.10
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -12,7 +12,7 @@ Requires-Dist: urllib3>=1.15.1
12
12
  Requires-Dist: requests>=2.33.0
13
13
  Requires-Dist: wasmtime~=30.0.0
14
14
  Requires-Dist: protobuf>=4.23.3
15
- Requires-Dist: openfeature-sdk~=0.8.0
15
+ Requires-Dist: openfeature-sdk~=0.8
16
16
  Requires-Dist: launchdarkly-eventsource>=1.2.1
17
17
  Requires-Dist: responses>=0.23.1
18
18
  Dynamic: description
@@ -1,4 +1,4 @@
1
- devcycle_python_sdk/VERSION.txt,sha256=BfpCUePu3DF-rKchCcuzcwqCM7P9hqfc8Lf76-rsCFw,7
1
+ devcycle_python_sdk/VERSION.txt,sha256=VX_6JbJWHWDkSGO9SRVp1zEaEpinRml_vmz8JIfERAU,8
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
@@ -16,7 +16,7 @@ devcycle_python_sdk/api/local_bucketing.py,sha256=kXggXhv2PDQxDoLseuJwWbge8EgeqL
16
16
  devcycle_python_sdk/managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  devcycle_python_sdk/managers/config_manager.py,sha256=tt9D_V3kLwL1O3a03a6QUln5AbEedSCKD1twqGJJpPU,9819
18
18
  devcycle_python_sdk/managers/eval_hooks_manager.py,sha256=YOLj0IvNFqDbWvPA2aOqT15yKkwsdnZT9MQ7MHTv6M4,2963
19
- devcycle_python_sdk/managers/event_queue_manager.py,sha256=8tqPZDD0-AWmz_NcWJBb80OIMzNBpDgbafpFefiOOmk,8109
19
+ devcycle_python_sdk/managers/event_queue_manager.py,sha256=flj14m_ZBFn686shD4s5mxXqM9RFF9gP_msOOkWWOi4,8135
20
20
  devcycle_python_sdk/managers/sse_manager.py,sha256=tlIfcavZxDVmboAGyt-5li99TrwBOLJ6EcwEriAx7I8,2951
21
21
  devcycle_python_sdk/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  devcycle_python_sdk/models/bucketed_config.py,sha256=qTfhIViX7m2WS2oDBBCmKKzPsJG6DEav3zCEXwP27nA,3980
@@ -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.8.dist-info/licenses/LICENSE,sha256=RlvZsEX5o__wLAA-VE7mG5hzTPjnFzPJKNdXXKvZ854,1071
45
+ devcycle_python_server_sdk-3.13.10.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=tkWVxMCfuenUoKnFIGou7axfp9-8FZRDk5HuVYjiXuU,2463
48
48
  example/local_bucketing_client_example.py,sha256=TaIfy3VnW9fXii9NPYs5UOuP4fLKruXMjnZApveqzl4,2796
@@ -59,7 +59,7 @@ test/fixture/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  test/fixture/data.py,sha256=6ReLxWPMhCDbJ5Ex24_iR0PJNjKzPFV1I9j_v0FVbBU,1462
60
60
  test/managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  test/managers/test_config_manager.py,sha256=8X3gECiD5V26BmNev5qiZut7r6i-gs69VkXw1SbxEXQ,15604
62
- test/managers/test_event_queue_manager.py,sha256=z850atk8zAlD7sYaA1OJwgCFcfC0ps4NEk4XUnNCq1U,11629
62
+ test/managers/test_event_queue_manager.py,sha256=wzWTr2qtyEnglXc7-fNpKIsfYVm0AOLYEkizzlw6Xkg,12317
63
63
  test/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
64
  test/models/test_bucketed_config.py,sha256=8wCEyxaHxY21nl7ZbiFzp-IzZQBZIPIVPPzeREjumQk,858
65
65
  test/models/test_user.py,sha256=nuGJvR2KHilRlx5DDEzh1F-lpZ7qT7H88kqPvfcFfM8,10539
@@ -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.8.dist-info/METADATA,sha256=4PGHRKCol8qV5vSn5ZYrmu6HoP3p_D56XQ1pSNNyg3I,726
74
- devcycle_python_server_sdk-3.13.8.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
75
- devcycle_python_server_sdk-3.13.8.dist-info/top_level.txt,sha256=34f8zDzihAHoH7siAFlmscyO_QLNWWq9HApFlwtYL4k,33
76
- devcycle_python_server_sdk-3.13.8.dist-info/RECORD,,
73
+ devcycle_python_server_sdk-3.13.10.dist-info/METADATA,sha256=2QnXzJjje8_2kQ3Vt0b9G7vGIITQUNTUUNLQgLt2lmI,725
74
+ devcycle_python_server_sdk-3.13.10.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
75
+ devcycle_python_server_sdk-3.13.10.dist-info/top_level.txt,sha256=34f8zDzihAHoH7siAFlmscyO_QLNWWq9HApFlwtYL4k,33
76
+ devcycle_python_server_sdk-3.13.10.dist-info/RECORD,,
@@ -147,6 +147,24 @@ class EventQueueManagerTest(unittest.TestCase):
147
147
  )
148
148
  self.test_local_bucketing.on_event_payload_success.assert_not_called()
149
149
 
150
+ @patch("devcycle_python_sdk.api.event_client.EventAPIClient.publish_events")
151
+ def test_flush_events_wasm_error_does_not_raise(self, mock_publish_events):
152
+ self.test_local_bucketing.flush_event_queue.side_effect = Exception(
153
+ "WASMAbortError: Request Payload has not finished sending"
154
+ )
155
+
156
+ manager = EventQueueManager(
157
+ self.sdk_key,
158
+ self.client_uuid,
159
+ self.test_options_no_thread,
160
+ self.test_local_bucketing,
161
+ )
162
+ # Must not raise UnboundLocalError; must return 0
163
+ result = manager._flush_events()
164
+
165
+ self.assertEqual(result, 0)
166
+ mock_publish_events.assert_not_called()
167
+
150
168
  @patch("devcycle_python_sdk.api.event_client.EventAPIClient.publish_events")
151
169
  def test_flush_events_no_events(self, mock_publish_events):
152
170
  self.test_local_bucketing.flush_event_queue = MagicMock()