flagsmith-flag-engine 5.1.0__tar.gz → 5.2.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.
- {flagsmith-flag-engine-5.1.0/flagsmith_flag_engine.egg-info → flagsmith-flag-engine-5.2.0}/PKG-INFO +1 -1
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/models.py +1 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/models.py +8 -6
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0/flagsmith_flag_engine.egg-info}/PKG-INFO +1 -1
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/setup.py +1 -1
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/LICENSE.txt +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/README.md +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/engine.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/integrations/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/integrations/models.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/constants.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/models.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/constants.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/models.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/types.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/organisations/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/organisations/models.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/projects/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/projects/models.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/py.typed +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/constants.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/evaluator.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/models.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/types.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/datetime.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/exceptions.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/hashing.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/json/__init__.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/json/encoders.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/semver.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/types.py +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/SOURCES.txt +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/dependency_links.txt +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/requires.txt +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/top_level.txt +0 -0
- {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/setup.cfg +0 -0
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/models.py
RENAMED
|
@@ -44,6 +44,7 @@ class EnvironmentModel(BaseModel):
|
|
|
44
44
|
hide_sensitive_data: bool = False
|
|
45
45
|
hide_disabled_flags: typing.Optional[bool] = None
|
|
46
46
|
use_identity_composite_key_for_hashing: bool = False
|
|
47
|
+
use_identity_overrides_in_local_eval: bool = False
|
|
47
48
|
|
|
48
49
|
amplitude_config: typing.Optional[IntegrationModel] = None
|
|
49
50
|
dynatrace_config: typing.Optional[IntegrationModel] = None
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/models.py
RENAMED
|
@@ -14,8 +14,8 @@ from flag_engine.utils.exceptions import DuplicateFeatureState
|
|
|
14
14
|
class IdentityFeaturesList(BaseCollectionModel[FeatureStateModel]): # type: ignore[misc,no-any-unimported]
|
|
15
15
|
@staticmethod
|
|
16
16
|
def _ensure_unique_feature_ids(
|
|
17
|
-
value: typing.
|
|
18
|
-
) ->
|
|
17
|
+
value: typing.Sequence[FeatureStateModel],
|
|
18
|
+
) -> None:
|
|
19
19
|
for i, feature_state in enumerate(value, start=1):
|
|
20
20
|
if feature_state.feature.id in [
|
|
21
21
|
feature_state.feature.id for feature_state in value[i:]
|
|
@@ -23,11 +23,11 @@ class IdentityFeaturesList(BaseCollectionModel[FeatureStateModel]): # type: ign
|
|
|
23
23
|
raise DuplicateFeatureState(
|
|
24
24
|
f"Feature state for feature id={feature_state.feature.id} already exists"
|
|
25
25
|
)
|
|
26
|
-
return value
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
@model_validator(mode="after")
|
|
28
|
+
def ensure_unique_feature_ids(self) -> "IdentityFeaturesList":
|
|
29
|
+
self._ensure_unique_feature_ids(self.root)
|
|
30
|
+
return self
|
|
31
31
|
|
|
32
32
|
def append(self, feature_state: "FeatureStateModel") -> None:
|
|
33
33
|
self._ensure_unique_feature_ids([*self, feature_state])
|
|
@@ -45,6 +45,8 @@ class IdentityModel(BaseModel):
|
|
|
45
45
|
identity_uuid: UUID4 = Field(default_factory=uuid.uuid4)
|
|
46
46
|
django_id: typing.Optional[int] = None
|
|
47
47
|
|
|
48
|
+
dashboard_alias: typing.Optional[str] = None
|
|
49
|
+
|
|
48
50
|
@computed_field # type: ignore[misc]
|
|
49
51
|
@property
|
|
50
52
|
def composite_key(self) -> str:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/__init__.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/models.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/types.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/organisations/__init__.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/organisations/models.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/projects/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/__init__.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/constants.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/evaluator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/json/__init__.py
RENAMED
|
File without changes
|
{flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/json/encoders.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|