devcycle-python-server-sdk 3.7.1__tar.gz → 3.8.0__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.7.1 → devcycle_python_server_sdk-3.8.0}/PKG-INFO +7 -2
  2. devcycle_python_server_sdk-3.8.0/devcycle_python_sdk/VERSION.txt +1 -0
  3. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/managers/config_manager.py +1 -1
  4. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/user.py +1 -1
  5. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/options.py +7 -1
  6. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_server_sdk.egg-info/PKG-INFO +7 -2
  7. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/example/local_bucketing_client_example.py +1 -1
  8. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/managers/test_config_manager.py +3 -1
  9. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/models/test_user.py +2 -2
  10. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/test_local_client.py +1 -0
  11. devcycle_python_server_sdk-3.7.1/devcycle_python_sdk/VERSION.txt +0 -1
  12. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/LICENSE +0 -0
  13. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/README.md +0 -0
  14. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/__init__.py +0 -0
  15. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/api/__init__.py +0 -0
  16. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/api/backoff.py +0 -0
  17. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/api/bucketing_client.py +0 -0
  18. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/api/config_client.py +0 -0
  19. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/api/event_client.py +0 -0
  20. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/api/local_bucketing.py +0 -0
  21. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/bucketing-lib.release.wasm +0 -0
  22. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/cloud_client.py +0 -0
  23. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/devcycle_client.py +0 -0
  24. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/exceptions.py +0 -0
  25. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/local_client.py +0 -0
  26. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/managers/__init__.py +0 -0
  27. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/managers/event_queue_manager.py +0 -0
  28. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/managers/sse_manager.py +0 -0
  29. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/__init__.py +0 -0
  30. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/bucketed_config.py +0 -0
  31. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/error_response.py +0 -0
  32. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/event.py +0 -0
  33. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/feature.py +0 -0
  34. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/platform_data.py +0 -0
  35. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/models/variable.py +0 -0
  36. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/open_feature_provider/__init__.py +0 -0
  37. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/open_feature_provider/provider.py +0 -0
  38. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/protobuf/__init__.py +0 -0
  39. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/protobuf/utils.py +0 -0
  40. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/protobuf/variableForUserParams_pb2.py +0 -0
  41. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/protobuf/variableForUserParams_pb2.pyi +0 -0
  42. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/py.typed +0 -0
  43. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/util/__init__.py +0 -0
  44. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/util/strings.py +0 -0
  45. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_sdk/util/version.py +0 -0
  46. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_server_sdk.egg-info/SOURCES.txt +0 -0
  47. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_server_sdk.egg-info/dependency_links.txt +0 -0
  48. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_server_sdk.egg-info/requires.txt +0 -0
  49. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/devcycle_python_server_sdk.egg-info/top_level.txt +0 -0
  50. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/example/__init__.py +0 -0
  51. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/example/cloud_client_example.py +0 -0
  52. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/example/openfeature_example.py +0 -0
  53. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/pyproject.toml +0 -0
  54. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/setup.cfg +0 -0
  55. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/setup.py +0 -0
  56. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/__init__.py +0 -0
  57. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/api/__init__.py +0 -0
  58. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/api/test_bucketing_client.py +0 -0
  59. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/api/test_config_client.py +0 -0
  60. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/api/test_event_client.py +0 -0
  61. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/api/test_local_bucketing.py +0 -0
  62. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/fixture/__init__.py +0 -0
  63. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/fixture/data.py +0 -0
  64. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/managers/__init__.py +0 -0
  65. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/managers/test_event_queue_manager.py +0 -0
  66. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/models/__init__.py +0 -0
  67. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/models/test_bucketed_config.py +0 -0
  68. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/openfeature_test/__init__.py +0 -0
  69. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/openfeature_test/test_provider.py +0 -0
  70. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/openfeature_test/test_provider_local_sdk.py +0 -0
  71. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/test_cloud_client.py +0 -0
  72. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/util/__init__.py +0 -0
  73. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/util/test_strings.py +0 -0
  74. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/util/test_utils.py +0 -0
  75. {devcycle_python_server_sdk-3.7.1 → devcycle_python_server_sdk-3.8.0}/test/util/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.7.1
3
+ Version: 3.8.0
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -15,6 +15,11 @@ Requires-Dist: openfeature-sdk>=0.7.0
15
15
  Requires-Dist: launchdarkly-eventsource>=1.2.0
16
16
  Requires-Dist: responses~=0.23.1
17
17
  Requires-Dist: dataclasses~=0.6
18
+ Dynamic: description
19
+ Dynamic: home-page
20
+ Dynamic: keywords
21
+ Dynamic: requires-dist
22
+ Dynamic: summary
18
23
 
19
24
  The DevCycle Python SDK used for feature management.
20
25
 
@@ -80,7 +80,7 @@ class EnvironmentConfigManager(threading.Thread):
80
80
 
81
81
  json_config = json.dumps(self._config)
82
82
  self._local_bucketing.store_config(json_config)
83
- if self._options.enable_beta_realtime_updates:
83
+ if not self._options.disable_realtime_updates:
84
84
  if self._sse_manager is None:
85
85
  self._sse_manager = SSEManager(
86
86
  self.sse_state,
@@ -125,7 +125,7 @@ class DevCycleUser:
125
125
  if key == "user_id":
126
126
  continue
127
127
 
128
- if value:
128
+ if value is not None:
129
129
  if key == "email" and isinstance(value, str):
130
130
  user.email = value
131
131
  elif key == "name" and isinstance(value, str):
@@ -46,6 +46,7 @@ class DevCycleLocalOptions:
46
46
  disable_automatic_event_logging: bool = False,
47
47
  disable_custom_event_logging: bool = False,
48
48
  enable_beta_realtime_updates: bool = False,
49
+ disable_realtime_updates: bool = False,
49
50
  ):
50
51
  self.events_api_uri = events_api_uri
51
52
  self.config_cdn_uri = config_cdn_uri
@@ -61,7 +62,12 @@ class DevCycleLocalOptions:
61
62
  self.on_client_initialized = on_client_initialized
62
63
  self.event_request_timeout_ms = event_request_timeout_ms
63
64
  self.event_retry_delay_ms = event_retry_delay_ms
64
- self.enable_beta_realtime_updates = enable_beta_realtime_updates
65
+ self.disable_realtime_updates = disable_realtime_updates
66
+
67
+ if enable_beta_realtime_updates:
68
+ logger.warning(
69
+ "DevCycle: `enable_beta_realtime_updates` is deprecated and will be removed in a future release.",
70
+ )
65
71
 
66
72
  if self.flush_event_queue_size >= self.max_event_queue_size:
67
73
  logger.warning(
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.7.1
3
+ Version: 3.8.0
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -15,6 +15,11 @@ Requires-Dist: openfeature-sdk>=0.7.0
15
15
  Requires-Dist: launchdarkly-eventsource>=1.2.0
16
16
  Requires-Dist: responses~=0.23.1
17
17
  Requires-Dist: dataclasses~=0.6
18
+ Dynamic: description
19
+ Dynamic: home-page
20
+ Dynamic: keywords
21
+ Dynamic: requires-dist
22
+ Dynamic: summary
18
23
 
19
24
  The DevCycle Python SDK used for feature management.
20
25
 
@@ -21,7 +21,7 @@ def main():
21
21
 
22
22
  # create an instance of the DevCycle Client object
23
23
  server_sdk_key = os.environ["DEVCYCLE_SERVER_SDK_KEY"]
24
- options = DevCycleLocalOptions(enable_beta_realtime_updates=True)
24
+ options = DevCycleLocalOptions()
25
25
  client = DevCycleLocalClient(server_sdk_key, options)
26
26
 
27
27
  # Wait for DevCycle to initialize and load the configuration
@@ -19,7 +19,9 @@ class EnvironmentConfigManagerTest(unittest.TestCase):
19
19
  def setUp(self) -> None:
20
20
  self.sdk_key = "dvc_server_" + str(uuid.uuid4())
21
21
  self.test_local_bucketing = MagicMock()
22
- self.test_options = DevCycleLocalOptions(config_polling_interval_ms=500)
22
+ self.test_options = DevCycleLocalOptions(
23
+ config_polling_interval_ms=500, disable_realtime_updates=True
24
+ )
23
25
 
24
26
  now = datetime.now()
25
27
  stamp = mktime(now.timetuple())
@@ -129,7 +129,7 @@ class DevCycleUserTest(unittest.TestCase):
129
129
  "strValue": "hello",
130
130
  "intValue": 123,
131
131
  "floatValue": 3.1456,
132
- "boolValue": True,
132
+ "boolValue": False,
133
133
  },
134
134
  )
135
135
  user = DevCycleUser.create_user_from_context(context)
@@ -143,7 +143,7 @@ class DevCycleUserTest(unittest.TestCase):
143
143
  "strValue": "hello",
144
144
  "intValue": 123,
145
145
  "floatValue": 3.1456,
146
- "boolValue": True,
146
+ "boolValue": False,
147
147
  },
148
148
  )
149
149
  self.assertEqual(user.privateCustomData, None)
@@ -40,6 +40,7 @@ class DevCycleLocalClientTest(unittest.TestCase):
40
40
  config_cdn_uri="http://localhost/",
41
41
  disable_custom_event_logging=True,
42
42
  disable_automatic_event_logging=True,
43
+ disable_realtime_updates=True,
43
44
  )
44
45
  self.test_user = DevCycleUser(user_id="test_user_id")
45
46
  self.test_user_empty_id = DevCycleUser(user_id="")