Skip to content

Commit 03d3c89

Browse files
feat: setting sdkPlatform working
1 parent 558e3b0 commit 03d3c89

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

devcycle_python_sdk/local_client.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,21 @@ def __init__(self, sdk_key: str, options: DevCycleLocalOptions):
5050
sdk_key, self.client_uuid, self.options, self.local_bucketing
5151
)
5252

53-
self._openfeature_provider = DevCycleProvider(self)
53+
self._openfeature_provider = None
5454

5555
def get_sdk_platform(self) -> str:
5656
return "Local"
5757

5858
def get_openfeature_provider(self) -> AbstractProvider:
59+
if self._openfeature_provider is None:
60+
self._openfeature_provider = DevCycleProvider(self)
61+
62+
# Update platform data for OpenFeature
63+
self._platform_data.sdkPlatform = 'python-of'
64+
self.local_bucketing.set_platform_data(
65+
json.dumps(self._platform_data.to_json())
66+
)
67+
5968
return self._openfeature_provider
6069

6170
def is_initialized(self) -> bool:

devcycle_python_sdk/models/platform_data.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# ruff: noqa: N815
22
import platform
33
import socket
4+
from typing import Optional
45
from dataclasses import dataclass
56
from devcycle_python_sdk.util.version import sdk_version
67

@@ -13,6 +14,7 @@ class PlatformData:
1314
deviceModel: str
1415
platform: str
1516
hostname: str
17+
sdkPlatform: Optional[str] = None
1618

1719
def to_json(self):
1820
return {

devcycle_python_sdk/models/user.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class DevCycleUser:
2424
deviceModel: Optional[str] = None
2525
sdkType: Optional[str] = None
2626
sdkVersion: Optional[str] = None
27+
sdkPlatform: Optional[str] = None
2728

2829
def to_json(self):
2930
json_dict = {
@@ -75,6 +76,7 @@ def from_json(cls, data: dict) -> "DevCycleUser":
7576
deviceModel=data.get("deviceModel"),
7677
sdkType=data.get("sdkType"),
7778
sdkVersion=data.get("sdkVersion"),
79+
sdkPlatform=data.get("sdkPlatform"),
7880
)
7981

8082
@staticmethod
@@ -156,4 +158,5 @@ def create_user_from_context(
156158
if private_custom_data:
157159
user.privateCustomData = private_custom_data
158160

161+
user.sdkPlatform = "python-of"
159162
return user

0 commit comments

Comments
 (0)