Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions devcycle_python_sdk/models/user.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# ruff: noqa: N815
from dataclasses import dataclass, field
from datetime import datetime, timezone
from typing import Dict, Optional, Any
from typing import Dict, Optional, Any, cast
from openfeature.evaluation_context import EvaluationContext
from openfeature.exception import TargetingKeyMissingError, InvalidContextError

Expand Down Expand Up @@ -114,10 +114,10 @@ def create_user_from_context(
user_id = context.targeting_key
user_id_source = "targeting_key"
elif context.attributes and "user_id" in context.attributes.keys():
user_id = context.attributes["user_id"]
user_id = cast(str, context.attributes["user_id"])
user_id_source = "user_id"
elif context.attributes and "userId" in context.attributes.keys():
user_id = context.attributes["userId"]
user_id = cast(str, context.attributes["userId"])
user_id_source = "userId"

if not user_id:
Expand Down
12 changes: 7 additions & 5 deletions devcycle_python_sdk/open_feature_provider/provider.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import logging
import time

from typing import Any, Optional, Union, List
from typing import Any, Optional, Union, List, Mapping, Sequence

from devcycle_python_sdk import AbstractDevCycleClient
from devcycle_python_sdk.models.user import DevCycleUser

from openfeature.provider import AbstractProvider
from openfeature.provider.metadata import Metadata
from openfeature.evaluation_context import EvaluationContext
from openfeature.flag_evaluation import FlagResolutionDetails, Reason
from openfeature.flag_evaluation import FlagResolutionDetails, Reason, FlagValueType
from openfeature.exception import (
ErrorCode,
InvalidContextError,
Expand Down Expand Up @@ -138,10 +138,12 @@ def resolve_float_details(
def resolve_object_details(
self,
flag_key: str,
default_value: Union[dict, list],
default_value: Union[Mapping[str, FlagValueType], Sequence[FlagValueType]],
evaluation_context: Optional[EvaluationContext] = None,
) -> FlagResolutionDetails[Union[dict, list]]:
if not isinstance(default_value, dict):
) -> FlagResolutionDetails[
Union[Mapping[str, FlagValueType], Sequence[FlagValueType]]
]:
if not isinstance(default_value, Mapping):
raise TypeMismatchError("Default value must be a flat dictionary")

if default_value:
Expand Down
6 changes: 0 additions & 6 deletions example/django-app/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/

Expand All @@ -34,7 +33,6 @@
}
}


# Application definition

INSTALLED_APPS = [
Expand Down Expand Up @@ -78,7 +76,6 @@

WSGI_APPLICATION = "config.wsgi.application"


# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases

Expand All @@ -89,7 +86,6 @@
}
}


# Password validation
# https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators

Expand All @@ -108,7 +104,6 @@
},
]


# Internationalization
# https://docs.djangoproject.com/en/4.1/topics/i18n/

Expand All @@ -120,7 +115,6 @@

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/

Expand Down
Binary file added example/django-app/db.sqlite3
Binary file not shown.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ urllib3 >= 1.15.1
requests >= 2.32
wasmtime ~= 30.0.0
protobuf >= 4.23.3
openfeature-sdk == 0.8.0
openfeature-sdk ~= 0.8.0
launchdarkly-eventsource >= 1.2.1
responses >= 0.23.1
Loading