From 4b3a4592b0099d4e28bde3befafd614805322844 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 20 Jan 2025 14:14:17 -0500 Subject: [PATCH 1/4] feat: default enable SSE connections --- .gitignore | 3 ++- devcycle_python_sdk/managers/config_manager.py | 2 +- devcycle_python_sdk/options.py | 8 +++++++- example/local_bucketing_client_example.py | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index cef0cdb..a2933c8 100644 --- a/.gitignore +++ b/.gitignore @@ -70,4 +70,5 @@ target/ .benchmarks benchmark.json -pip-wheel-metadata/ \ No newline at end of file +pip-wheel-metadata/ +.venv/ \ No newline at end of file diff --git a/devcycle_python_sdk/managers/config_manager.py b/devcycle_python_sdk/managers/config_manager.py index c551450..124e2c6 100644 --- a/devcycle_python_sdk/managers/config_manager.py +++ b/devcycle_python_sdk/managers/config_manager.py @@ -80,7 +80,7 @@ def _get_config(self, last_modified: Optional[float] = None): json_config = json.dumps(self._config) self._local_bucketing.store_config(json_config) - if self._options.enable_beta_realtime_updates: + if not self._options.disable_realtime_updates: if self._sse_manager is None: self._sse_manager = SSEManager( self.sse_state, diff --git a/devcycle_python_sdk/options.py b/devcycle_python_sdk/options.py index 384f5e9..75fa79c 100644 --- a/devcycle_python_sdk/options.py +++ b/devcycle_python_sdk/options.py @@ -46,6 +46,7 @@ def __init__( disable_automatic_event_logging: bool = False, disable_custom_event_logging: bool = False, enable_beta_realtime_updates: bool = False, + disable_realtime_updates: bool = False, ): self.events_api_uri = events_api_uri self.config_cdn_uri = config_cdn_uri @@ -61,7 +62,12 @@ def __init__( self.on_client_initialized = on_client_initialized self.event_request_timeout_ms = event_request_timeout_ms self.event_retry_delay_ms = event_retry_delay_ms - self.enable_beta_realtime_updates = enable_beta_realtime_updates + self.disable_realtime_updates = disable_realtime_updates + + if enable_beta_realtime_updates: + logger.warning( + f"DevCycle: `enable_beta_realtime_updates` is deprecated and will be removed in a future release.", + ) if self.flush_event_queue_size >= self.max_event_queue_size: logger.warning( diff --git a/example/local_bucketing_client_example.py b/example/local_bucketing_client_example.py index f48c03d..584ee24 100644 --- a/example/local_bucketing_client_example.py +++ b/example/local_bucketing_client_example.py @@ -21,7 +21,7 @@ def main(): # create an instance of the DevCycle Client object server_sdk_key = os.environ["DEVCYCLE_SERVER_SDK_KEY"] - options = DevCycleLocalOptions(enable_beta_realtime_updates=True) + options = DevCycleLocalOptions() client = DevCycleLocalClient(server_sdk_key, options) # Wait for DevCycle to initialize and load the configuration From 74a48dc07bbde9330a9df0bfbb60efc6c38c2b65 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 20 Jan 2025 14:17:58 -0500 Subject: [PATCH 2/4] fix: run ruff formatting Signed-off-by: Jonathan Norris --- devcycle_python_sdk/options.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devcycle_python_sdk/options.py b/devcycle_python_sdk/options.py index 75fa79c..c934ee9 100644 --- a/devcycle_python_sdk/options.py +++ b/devcycle_python_sdk/options.py @@ -66,7 +66,7 @@ def __init__( if enable_beta_realtime_updates: logger.warning( - f"DevCycle: `enable_beta_realtime_updates` is deprecated and will be removed in a future release.", + "DevCycle: `enable_beta_realtime_updates` is deprecated and will be removed in a future release.", ) if self.flush_event_queue_size >= self.max_event_queue_size: From e3c972bd93e76187cb1b21377a68bd794cd2c6d4 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 20 Jan 2025 14:24:40 -0500 Subject: [PATCH 3/4] fix: test_config_manager.py tests --- test/managers/test_config_manager.py | 2 +- test/test_local_client.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/test/managers/test_config_manager.py b/test/managers/test_config_manager.py index b60fd9f..0e9c9ac 100644 --- a/test/managers/test_config_manager.py +++ b/test/managers/test_config_manager.py @@ -19,7 +19,7 @@ class EnvironmentConfigManagerTest(unittest.TestCase): def setUp(self) -> None: self.sdk_key = "dvc_server_" + str(uuid.uuid4()) self.test_local_bucketing = MagicMock() - self.test_options = DevCycleLocalOptions(config_polling_interval_ms=500) + self.test_options = DevCycleLocalOptions(config_polling_interval_ms=500, disable_realtime_updates=True) now = datetime.now() stamp = mktime(now.timetuple()) diff --git a/test/test_local_client.py b/test/test_local_client.py index c9399f1..3d18b12 100644 --- a/test/test_local_client.py +++ b/test/test_local_client.py @@ -40,6 +40,7 @@ def setUp(self) -> None: config_cdn_uri="http://localhost/", disable_custom_event_logging=True, disable_automatic_event_logging=True, + disable_realtime_updates=True ) self.test_user = DevCycleUser(user_id="test_user_id") self.test_user_empty_id = DevCycleUser(user_id="") From f18d6826a9e3184386448490e94210649e381297 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 20 Jan 2025 14:35:30 -0500 Subject: [PATCH 4/4] chore: update formatting using black --- test/managers/test_config_manager.py | 4 +++- test/test_local_client.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/managers/test_config_manager.py b/test/managers/test_config_manager.py index 0e9c9ac..e8a2a47 100644 --- a/test/managers/test_config_manager.py +++ b/test/managers/test_config_manager.py @@ -19,7 +19,9 @@ class EnvironmentConfigManagerTest(unittest.TestCase): def setUp(self) -> None: self.sdk_key = "dvc_server_" + str(uuid.uuid4()) self.test_local_bucketing = MagicMock() - self.test_options = DevCycleLocalOptions(config_polling_interval_ms=500, disable_realtime_updates=True) + self.test_options = DevCycleLocalOptions( + config_polling_interval_ms=500, disable_realtime_updates=True + ) now = datetime.now() stamp = mktime(now.timetuple()) diff --git a/test/test_local_client.py b/test/test_local_client.py index 3d18b12..a6acf35 100644 --- a/test/test_local_client.py +++ b/test/test_local_client.py @@ -40,7 +40,7 @@ def setUp(self) -> None: config_cdn_uri="http://localhost/", disable_custom_event_logging=True, disable_automatic_event_logging=True, - disable_realtime_updates=True + disable_realtime_updates=True, ) self.test_user = DevCycleUser(user_id="test_user_id") self.test_user_empty_id = DevCycleUser(user_id="")