devcycle-python-server-sdk 3.13.11__tar.gz → 3.14.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 (83) hide show
  1. {devcycle_python_server_sdk-3.13.11/devcycle_python_server_sdk.egg-info → devcycle_python_server_sdk-3.14.0}/PKG-INFO +2 -2
  2. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/README.md +3 -1
  3. devcycle_python_server_sdk-3.14.0/devcycle_python_sdk/VERSION.txt +1 -0
  4. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/bucketing-lib.release.wasm +0 -0
  5. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0/devcycle_python_server_sdk.egg-info}/PKG-INFO +2 -2
  6. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_server_sdk.egg-info/requires.txt +1 -1
  7. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/example/openfeature_example.py +9 -1
  8. devcycle_python_server_sdk-3.13.11/devcycle_python_sdk/VERSION.txt +0 -1
  9. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/LICENSE +0 -0
  10. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/__init__.py +0 -0
  11. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/api/__init__.py +0 -0
  12. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/api/backoff.py +0 -0
  13. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/api/bucketing_client.py +0 -0
  14. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/api/config_client.py +0 -0
  15. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/api/event_client.py +0 -0
  16. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/api/local_bucketing.py +0 -0
  17. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/cloud_client.py +0 -0
  18. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/devcycle_client.py +0 -0
  19. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/exceptions.py +0 -0
  20. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/local_client.py +0 -0
  21. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/managers/__init__.py +0 -0
  22. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/managers/config_manager.py +0 -0
  23. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/managers/eval_hooks_manager.py +0 -0
  24. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/managers/event_queue_manager.py +0 -0
  25. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/managers/sse_manager.py +0 -0
  26. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/__init__.py +0 -0
  27. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/bucketed_config.py +0 -0
  28. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/config_metadata.py +0 -0
  29. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/environment_metadata.py +0 -0
  30. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/error_response.py +0 -0
  31. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/eval_hook.py +0 -0
  32. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/eval_hook_context.py +0 -0
  33. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/eval_reason.py +0 -0
  34. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/event.py +0 -0
  35. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/feature.py +0 -0
  36. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/platform_data.py +0 -0
  37. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/project_metadata.py +0 -0
  38. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/user.py +0 -0
  39. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/variable.py +0 -0
  40. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/models/variable_metadata.py +0 -0
  41. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/open_feature_provider/__init__.py +0 -0
  42. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/open_feature_provider/provider.py +0 -0
  43. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/options.py +0 -0
  44. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/protobuf/__init__.py +0 -0
  45. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/protobuf/utils.py +0 -0
  46. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/protobuf/variableForUserParams_pb2.py +0 -0
  47. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/protobuf/variableForUserParams_pb2.pyi +0 -0
  48. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/py.typed +0 -0
  49. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/util/__init__.py +0 -0
  50. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/util/strings.py +0 -0
  51. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_sdk/util/version.py +0 -0
  52. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_server_sdk.egg-info/SOURCES.txt +0 -0
  53. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_server_sdk.egg-info/dependency_links.txt +0 -0
  54. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/devcycle_python_server_sdk.egg-info/top_level.txt +0 -0
  55. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/example/__init__.py +0 -0
  56. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/example/cloud_client_example.py +0 -0
  57. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/example/local_bucketing_client_example.py +0 -0
  58. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/pyproject.toml +0 -0
  59. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/setup.cfg +0 -0
  60. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/setup.py +0 -0
  61. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/__init__.py +0 -0
  62. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/api/__init__.py +0 -0
  63. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/api/test_bucketing_client.py +0 -0
  64. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/api/test_config_client.py +0 -0
  65. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/api/test_event_client.py +0 -0
  66. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/api/test_local_bucketing.py +0 -0
  67. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/fixture/__init__.py +0 -0
  68. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/fixture/data.py +0 -0
  69. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/managers/__init__.py +0 -0
  70. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/managers/test_config_manager.py +0 -0
  71. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/managers/test_event_queue_manager.py +0 -0
  72. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/models/__init__.py +0 -0
  73. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/models/test_bucketed_config.py +0 -0
  74. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/models/test_user.py +0 -0
  75. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/openfeature_test/__init__.py +0 -0
  76. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/openfeature_test/test_provider.py +0 -0
  77. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/openfeature_test/test_provider_local_sdk.py +0 -0
  78. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/test_cloud_client.py +0 -0
  79. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/test_local_client.py +0 -0
  80. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/util/__init__.py +0 -0
  81. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/util/test_strings.py +0 -0
  82. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/util/test_utils.py +0 -0
  83. {devcycle_python_server_sdk-3.13.11 → devcycle_python_server_sdk-3.14.0}/test/util/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.13.11
3
+ Version: 3.14.0
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -11,7 +11,7 @@ Requires-Dist: urllib3>=1.15.1
11
11
  Requires-Dist: requests>=2.33.0
12
12
  Requires-Dist: wasmtime~=30.0.0
13
13
  Requires-Dist: protobuf>=4.23.3
14
- Requires-Dist: openfeature-sdk~=0.8
14
+ Requires-Dist: openfeature-sdk~=0.10.0
15
15
  Requires-Dist: launchdarkly-eventsource>=1.2.1
16
16
  Dynamic: description
17
17
  Dynamic: home-page
@@ -48,9 +48,11 @@ This SDK provides an alpha implementation of the [OpenFeature](https://openfeatu
48
48
  from openfeature import api
49
49
 
50
50
  devcycle_client = DevCycleLocalClient('DEVCYCLE_SERVER_SDK_KEY', options)
51
- api.set_provider(devcycle_client.get_openfeature_provider())
51
+ api.set_provider_and_wait(devcycle_client.get_openfeature_provider())
52
52
  ```
53
53
 
54
+ Use `set_provider_and_wait()` so that initialization failures are raised to the caller. `set_provider()` returns before the provider is ready, which means a failed initialization is only reported as a background `PROVIDER_ERROR` event while evaluations return their default values.
55
+
54
56
  More details are in the [DevCycle Python SDK OpenFeature Provider](OpenFeature.md) guide.
55
57
 
56
58
  > :warning: **OpenFeature support is in an early release and may have some rough edges**. Please report any issues to us and we'll be happy to help!
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devcycle-python-server-sdk
3
- Version: 3.13.11
3
+ Version: 3.14.0
4
4
  Summary: DevCycle Python SDK
5
5
  Home-page: https://github.com/devcycleHQ/python-server-sdk
6
6
  Author-email:
@@ -11,7 +11,7 @@ Requires-Dist: urllib3>=1.15.1
11
11
  Requires-Dist: requests>=2.33.0
12
12
  Requires-Dist: wasmtime~=30.0.0
13
13
  Requires-Dist: protobuf>=4.23.3
14
- Requires-Dist: openfeature-sdk~=0.8
14
+ Requires-Dist: openfeature-sdk~=0.10.0
15
15
  Requires-Dist: launchdarkly-eventsource>=1.2.1
16
16
  Dynamic: description
17
17
  Dynamic: home-page
@@ -2,5 +2,5 @@ urllib3>=1.15.1
2
2
  requests>=2.33.0
3
3
  wasmtime~=30.0.0
4
4
  protobuf>=4.23.3
5
- openfeature-sdk~=0.8
5
+ openfeature-sdk~=0.10.0
6
6
  launchdarkly-eventsource>=1.2.1
@@ -6,6 +6,7 @@ from devcycle_python_sdk import DevCycleLocalClient, DevCycleLocalOptions
6
6
 
7
7
  from openfeature import api
8
8
  from openfeature.evaluation_context import EvaluationContext
9
+ from openfeature.exception import GeneralError
9
10
 
10
11
  logger = logging.getLogger(__name__)
11
12
 
@@ -48,7 +49,14 @@ def main():
48
49
  logger.info("DevCycle initialized successfully!\n")
49
50
 
50
51
  # set the provider for OpenFeature
51
- api.set_provider(devcycle_client.get_openfeature_provider())
52
+ # set_provider_and_wait blocks until the provider is ready and raises if it fails to
53
+ # initialize. set_provider would return immediately and evaluations would silently
54
+ # fall back to their default values until the provider became ready.
55
+ try:
56
+ api.set_provider_and_wait(devcycle_client.get_openfeature_provider())
57
+ except GeneralError as e:
58
+ logger.error(f"DevCycle OpenFeature provider failed to initialize: {e}")
59
+ exit(1)
52
60
 
53
61
  # get the OpenFeature client
54
62
  open_feature_client = api.get_client()