devcycle-python-server-sdk 3.11.0__tar.gz → 3.11.2__tar.gz

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.
Files changed (75) hide show
  1. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/PKG-INFO +3 -2
  2. devcycle_python_server_sdk-3.11.2/devcycle_python_sdk/VERSION.txt +1 -0
  3. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/bucketing-lib.release.wasm +0 -0
  4. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/managers/sse_manager.py +24 -18
  5. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_server_sdk.egg-info/PKG-INFO +3 -2
  6. devcycle_python_server_sdk-3.11.0/devcycle_python_sdk/VERSION.txt +0 -1
  7. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/LICENSE +0 -0
  8. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/README.md +0 -0
  9. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/__init__.py +0 -0
  10. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/api/__init__.py +0 -0
  11. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/api/backoff.py +0 -0
  12. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/api/bucketing_client.py +0 -0
  13. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/api/config_client.py +0 -0
  14. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/api/event_client.py +0 -0
  15. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/api/local_bucketing.py +0 -0
  16. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/cloud_client.py +0 -0
  17. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/devcycle_client.py +0 -0
  18. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/exceptions.py +0 -0
  19. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/local_client.py +0 -0
  20. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/managers/__init__.py +0 -0
  21. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/managers/config_manager.py +0 -0
  22. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/managers/event_queue_manager.py +0 -0
  23. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/__init__.py +0 -0
  24. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/bucketed_config.py +0 -0
  25. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/error_response.py +0 -0
  26. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/event.py +0 -0
  27. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/feature.py +0 -0
  28. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/platform_data.py +0 -0
  29. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/user.py +0 -0
  30. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/models/variable.py +0 -0
  31. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/open_feature_provider/__init__.py +0 -0
  32. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/open_feature_provider/provider.py +0 -0
  33. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/options.py +0 -0
  34. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/protobuf/__init__.py +0 -0
  35. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/protobuf/utils.py +0 -0
  36. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/protobuf/variableForUserParams_pb2.py +0 -0
  37. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/protobuf/variableForUserParams_pb2.pyi +0 -0
  38. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/py.typed +0 -0
  39. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/util/__init__.py +0 -0
  40. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/util/strings.py +0 -0
  41. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_sdk/util/version.py +0 -0
  42. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_server_sdk.egg-info/SOURCES.txt +0 -0
  43. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_server_sdk.egg-info/dependency_links.txt +0 -0
  44. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_server_sdk.egg-info/requires.txt +0 -0
  45. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/devcycle_python_server_sdk.egg-info/top_level.txt +0 -0
  46. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/example/__init__.py +0 -0
  47. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/example/cloud_client_example.py +0 -0
  48. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/example/local_bucketing_client_example.py +0 -0
  49. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/example/openfeature_example.py +0 -0
  50. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/pyproject.toml +0 -0
  51. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/setup.cfg +0 -0
  52. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/setup.py +0 -0
  53. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/__init__.py +0 -0
  54. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/api/__init__.py +0 -0
  55. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/api/test_bucketing_client.py +0 -0
  56. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/api/test_config_client.py +0 -0
  57. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/api/test_event_client.py +0 -0
  58. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/api/test_local_bucketing.py +0 -0
  59. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/fixture/__init__.py +0 -0
  60. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/fixture/data.py +0 -0
  61. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/managers/__init__.py +0 -0
  62. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/managers/test_config_manager.py +0 -0
  63. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/managers/test_event_queue_manager.py +0 -0
  64. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/models/__init__.py +0 -0
  65. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/models/test_bucketed_config.py +0 -0
  66. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/models/test_user.py +0 -0
  67. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/openfeature_test/__init__.py +0 -0
  68. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/openfeature_test/test_provider.py +0 -0
  69. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/openfeature_test/test_provider_local_sdk.py +0 -0
  70. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/test_cloud_client.py +0 -0
  71. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/test_local_client.py +0 -0
  72. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/util/__init__.py +0 -0
  73. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/util/test_strings.py +0 -0
  74. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/util/test_utils.py +0 -0
  75. {devcycle_python_server_sdk-3.11.0 → devcycle_python_server_sdk-3.11.2}/test/util/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.11.0
3
+ Version: 3.11.2
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -18,6 +18,7 @@ Requires-Dist: responses>=0.23.1
18
18
  Dynamic: description
19
19
  Dynamic: home-page
20
20
  Dynamic: keywords
21
+ Dynamic: license-file
21
22
  Dynamic: requires-dist
22
23
  Dynamic: requires-python
23
24
  Dynamic: summary
@@ -2,42 +2,48 @@ import threading
2
2
 
3
3
  import ld_eventsource
4
4
  import ld_eventsource.actions
5
+ import logging
5
6
  import ld_eventsource.config
6
7
  from typing import Callable
7
8
 
9
+ logger = logging.getLogger(__name__)
10
+
8
11
 
9
12
  class SSEManager:
10
13
  def __init__(
11
14
  self,
12
- handlestate: Callable[[ld_eventsource.actions.Start], None],
13
- handleerror: Callable[[ld_eventsource.actions.Fault], None],
14
- handlemessage: Callable[[ld_eventsource.actions.Event], None],
15
+ handle_state: Callable[[ld_eventsource.actions.Start], None],
16
+ handle_error: Callable[[ld_eventsource.actions.Fault], None],
17
+ handle_message: Callable[[ld_eventsource.actions.Event], None],
15
18
  ):
16
19
  self.client: ld_eventsource.SSEClient = None
17
20
  self.url = ""
18
- self.handlestate = handlestate
19
- self.handleerror = handleerror
20
- self.handlemessage = handlemessage
21
+ self.handle_state = handle_state
22
+ self.handle_error = handle_error
23
+ self.handle_message = handle_message
21
24
 
22
25
  self.read_thread = threading.Thread(
23
26
  target=self.read_events,
24
- args=(self.handlestate, self.handleerror, self.handlemessage),
27
+ args=(self.handle_state, self.handle_error, self.handle_message),
25
28
  )
26
29
 
27
30
  def read_events(
28
31
  self,
29
- handlestate: Callable[[ld_eventsource.actions.Start], None],
30
- handleerror: Callable[[ld_eventsource.actions.Fault], None],
31
- handlemessage: Callable[[ld_eventsource.actions.Event], None],
32
+ handle_state: Callable[[ld_eventsource.actions.Start], None],
33
+ handle_error: Callable[[ld_eventsource.actions.Fault], None],
34
+ handle_message: Callable[[ld_eventsource.actions.Event], None],
32
35
  ):
33
36
  self.client.start()
34
- for event in self.client.all:
35
- if isinstance(event, ld_eventsource.actions.Start):
36
- handlestate(event)
37
- elif isinstance(event, ld_eventsource.actions.Fault):
38
- handleerror(event)
39
- elif isinstance(event, ld_eventsource.actions.Event):
40
- handlemessage(event)
37
+ try:
38
+ for event in self.client.all:
39
+ if isinstance(event, ld_eventsource.actions.Start):
40
+ handle_state(event)
41
+ elif isinstance(event, ld_eventsource.actions.Fault):
42
+ handle_error(event)
43
+ elif isinstance(event, ld_eventsource.actions.Event):
44
+ handle_message(event)
45
+ except Exception as e:
46
+ logger.exception(f"DevCycle: failed to read SSE message: {e}")
41
47
 
42
48
  def update(self, config: dict):
43
49
  if self.use_new_config(config["sse"]):
@@ -52,7 +58,7 @@ class SSEManager:
52
58
  )
53
59
  self.read_thread = threading.Thread(
54
60
  target=self.read_events,
55
- args=(self.handlestate, self.handleerror, self.handlemessage),
61
+ args=(self.handle_state, self.handle_error, self.handle_message),
56
62
  )
57
63
  self.read_thread.start()
58
64
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.11.0
3
+ Version: 3.11.2
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -18,6 +18,7 @@ Requires-Dist: responses>=0.23.1
18
18
  Dynamic: description
19
19
  Dynamic: home-page
20
20
  Dynamic: keywords
21
+ Dynamic: license-file
21
22
  Dynamic: requires-dist
22
23
  Dynamic: requires-python
23
24
  Dynamic: summary