launchdarkly-openfeature-server 0.8.2__tar.gz → 0.8.3__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: launchdarkly-openfeature-server
3
- Version: 0.8.2
3
+ Version: 0.8.3
4
4
  Summary: An OpenFeature provider for the LaunchDarkly Python server SDK
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.14
19
19
  Classifier: Programming Language :: Python :: 3.15
20
20
  Classifier: Topic :: Software Development
21
21
  Classifier: Topic :: Software Development :: Libraries
22
- Requires-Dist: launchdarkly-server-sdk (>=9.17.0,<10)
22
+ Requires-Dist: launchdarkly-server-sdk (>=9.18.3,<10)
23
23
  Requires-Dist: openfeature-sdk (>=0.9.0,<1)
24
24
  Project-URL: Documentation, https://launchdarkly-openfeature-python-sdk.readthedocs.io/en/latest/
25
25
  Project-URL: Repository, https://github.com/launchdarkly/openfeature-python-server
@@ -51,7 +51,7 @@ This provider is designed primarily for use in multi-user systems such as web se
51
51
 
52
52
  ## Supported Python versions
53
53
 
54
- This version of the LaunchDarkly provider works with Python 3.9 and above.
54
+ This version of the LaunchDarkly provider works with Python 3.10 and above.
55
55
 
56
56
  ## Feature matrix
57
57
 
@@ -66,7 +66,7 @@ This matrix mirrors the [feature matrix of the OpenFeature SDK for Python](https
66
66
  | ✅ | Domains | Domains bind clients to providers in the OpenFeature SDK; a separate provider instance may be registered per domain. |
67
67
  | ✅ | Eventing | LaunchDarkly data source status changes are emitted as `PROVIDER_READY`, `PROVIDER_STALE` and `PROVIDER_ERROR`, and only when the status changes; flag changes as `PROVIDER_CONFIGURATION_CHANGED` with the changed flag key. |
68
68
  | ✅ | Tracking | `track` sends a LaunchDarkly custom event for the evaluation context, with the tracking event value and remaining details attached. |
69
- | ✅ | Initialization | `initialize` reports whether the LaunchDarkly client became ready. The optional `start_wait` parameter bounds initialization; zero applies no timeout and waits until the data source becomes valid or permanently fails. |
69
+ | ⚠️ | Initialization | `initialize` reports whether the LaunchDarkly client became ready. The optional `start_wait` parameter bounds initialization; zero applies no timeout and waits until the data source becomes valid or permanently fails. Since LaunchDarkly Python SDK 9.18.0 a rejected SDK key is retried rather than failing permanently, so zero can wait indefinitely. Provider gap: zero should not wait, [#64](https://github.com/launchdarkly/openfeature-python-server/pull/64). |
70
70
  | ✅ | Shutdown | `shutdown` closes the LaunchDarkly client; a closed client cannot be restarted, so a new provider instance is required afterward. |
71
71
  | ✅ | Transaction Context Propagation | Provided by the OpenFeature SDK, which merges the transaction context into the evaluation context before the provider is called; no provider support is required. |
72
72
  | ✅ | Extending | The underlying LaunchDarkly client is available through the `client` property. |
@@ -97,7 +97,9 @@ api.set_provider(openfeature_provider)
97
97
  # Refer to OpenFeature documentation for getting a client and performing evaluations.
98
98
  ```
99
99
 
100
- The optional `start_wait` parameter is the number of seconds to wait for a successful connection to LaunchDarkly, matching the same parameter of the LaunchDarkly SDK's `LDClient`, and defaulting to the same five seconds. A positive value bounds the whole of initialization: the provider constructor blocks for up to that long, and OpenFeature initialization then completes immediately, reporting a failed initialization if the client did not become ready in time. Zero does not block the constructor at all, and initialization then waits without a deadline for the data source to become valid or to fail permanently.
100
+ The optional `start_wait` parameter is the number of seconds to wait for a successful connection to LaunchDarkly, matching the same parameter of the LaunchDarkly SDK's `LDClient`, and defaulting to the same five seconds. A positive value bounds the whole of initialization: the provider constructor blocks for up to that long, and OpenFeature initialization then completes immediately, reporting a failed initialization if the client did not become ready in time. Zero does not block the constructor at all, and initialization then waits without a deadline for the data source to become valid or to fail permanently. Since LaunchDarkly Python SDK 9.18.0 a rejected SDK key is retried rather than treated as a permanent failure, so with zero, initialization does not complete while the key is rejected.
101
+
102
+ `api.set_provider` registers the provider without waiting for it to initialize, so the first evaluations may use fallback values while the LaunchDarkly client is still connecting. Use `api.set_provider_and_wait` instead when the application needs registration to block until initialization has succeeded or failed.
101
103
 
102
104
  Refer to the [SDK reference guide](https://docs.launchdarkly.com/sdk/server-side/python) for instructions on getting started with using the SDK.
103
105
 
@@ -24,7 +24,7 @@ This provider is designed primarily for use in multi-user systems such as web se
24
24
 
25
25
  ## Supported Python versions
26
26
 
27
- This version of the LaunchDarkly provider works with Python 3.9 and above.
27
+ This version of the LaunchDarkly provider works with Python 3.10 and above.
28
28
 
29
29
  ## Feature matrix
30
30
 
@@ -39,7 +39,7 @@ This matrix mirrors the [feature matrix of the OpenFeature SDK for Python](https
39
39
  | ✅ | Domains | Domains bind clients to providers in the OpenFeature SDK; a separate provider instance may be registered per domain. |
40
40
  | ✅ | Eventing | LaunchDarkly data source status changes are emitted as `PROVIDER_READY`, `PROVIDER_STALE` and `PROVIDER_ERROR`, and only when the status changes; flag changes as `PROVIDER_CONFIGURATION_CHANGED` with the changed flag key. |
41
41
  | ✅ | Tracking | `track` sends a LaunchDarkly custom event for the evaluation context, with the tracking event value and remaining details attached. |
42
- | ✅ | Initialization | `initialize` reports whether the LaunchDarkly client became ready. The optional `start_wait` parameter bounds initialization; zero applies no timeout and waits until the data source becomes valid or permanently fails. |
42
+ | ⚠️ | Initialization | `initialize` reports whether the LaunchDarkly client became ready. The optional `start_wait` parameter bounds initialization; zero applies no timeout and waits until the data source becomes valid or permanently fails. Since LaunchDarkly Python SDK 9.18.0 a rejected SDK key is retried rather than failing permanently, so zero can wait indefinitely. Provider gap: zero should not wait, [#64](https://github.com/launchdarkly/openfeature-python-server/pull/64). |
43
43
  | ✅ | Shutdown | `shutdown` closes the LaunchDarkly client; a closed client cannot be restarted, so a new provider instance is required afterward. |
44
44
  | ✅ | Transaction Context Propagation | Provided by the OpenFeature SDK, which merges the transaction context into the evaluation context before the provider is called; no provider support is required. |
45
45
  | ✅ | Extending | The underlying LaunchDarkly client is available through the `client` property. |
@@ -70,7 +70,9 @@ api.set_provider(openfeature_provider)
70
70
  # Refer to OpenFeature documentation for getting a client and performing evaluations.
71
71
  ```
72
72
 
73
- The optional `start_wait` parameter is the number of seconds to wait for a successful connection to LaunchDarkly, matching the same parameter of the LaunchDarkly SDK's `LDClient`, and defaulting to the same five seconds. A positive value bounds the whole of initialization: the provider constructor blocks for up to that long, and OpenFeature initialization then completes immediately, reporting a failed initialization if the client did not become ready in time. Zero does not block the constructor at all, and initialization then waits without a deadline for the data source to become valid or to fail permanently.
73
+ The optional `start_wait` parameter is the number of seconds to wait for a successful connection to LaunchDarkly, matching the same parameter of the LaunchDarkly SDK's `LDClient`, and defaulting to the same five seconds. A positive value bounds the whole of initialization: the provider constructor blocks for up to that long, and OpenFeature initialization then completes immediately, reporting a failed initialization if the client did not become ready in time. Zero does not block the constructor at all, and initialization then waits without a deadline for the data source to become valid or to fail permanently. Since LaunchDarkly Python SDK 9.18.0 a rejected SDK key is retried rather than treated as a permanent failure, so with zero, initialization does not complete while the key is rejected.
74
+
75
+ `api.set_provider` registers the provider without waiting for it to initialize, so the first evaluations may use fallback values while the LaunchDarkly client is still connecting. Use `api.set_provider_and_wait` instead when the application needs registration to block until initialization has succeeded or failed.
74
76
 
75
77
  Refer to the [SDK reference guide](https://docs.launchdarkly.com/sdk/server-side/python) for instructions on getting started with using the SDK.
76
78
 
@@ -0,0 +1 @@
1
+ VERSION = "0.8.3" # x-release-please-version
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "launchdarkly-openfeature-server"
3
- version = "0.8.2"
3
+ version = "0.8.3"
4
4
  description = "An OpenFeature provider for the LaunchDarkly Python server SDK"
5
5
  authors = ["LaunchDarkly <dev@launchdarkly.com>"]
6
6
  license = "Apache-2.0"
@@ -16,6 +16,7 @@ classifiers = [
16
16
  "Programming Language :: Python :: 3.11",
17
17
  "Programming Language :: Python :: 3.12",
18
18
  "Programming Language :: Python :: 3.13",
19
+ "Programming Language :: Python :: 3.14",
19
20
  "Topic :: Software Development",
20
21
  "Topic :: Software Development :: Libraries",
21
22
  ]
@@ -27,7 +28,7 @@ packages = [
27
28
  [tool.poetry.dependencies]
28
29
  python = "^3.10"
29
30
  openfeature-sdk = ">=0.9.0,<1"
30
- launchdarkly-server-sdk = ">=9.17.0,<10"
31
+ launchdarkly-server-sdk = ">=9.18.3,<10"
31
32
 
32
33
 
33
34
  [tool.poetry.group.dev.dependencies]
@@ -44,7 +45,6 @@ optional = true
44
45
  [tool.poetry.group.docs.dependencies]
45
46
  sphinx = "^6.0.0"
46
47
  sphinx-rtd-theme = ">=1.3,<3.0"
47
- certifi = ">=2018.4.16"
48
48
  expiringdict = ">=1.1.4"
49
49
  pyrfc3339 = ">=1.0"
50
50
  jsonpickle = ">1.4.1"
@@ -1 +0,0 @@
1
- VERSION = "0.8.2" # x-release-please-version