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.
Files changed (43) hide show
  1. {flagsmith-flag-engine-5.1.0/flagsmith_flag_engine.egg-info → flagsmith-flag-engine-5.2.0}/PKG-INFO +1 -1
  2. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/models.py +1 -0
  3. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/models.py +8 -6
  4. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0/flagsmith_flag_engine.egg-info}/PKG-INFO +1 -1
  5. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/setup.py +1 -1
  6. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/LICENSE.txt +0 -0
  7. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/README.md +0 -0
  8. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/__init__.py +0 -0
  9. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/engine.py +0 -0
  10. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/__init__.py +0 -0
  11. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/integrations/__init__.py +0 -0
  12. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/environments/integrations/models.py +0 -0
  13. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/__init__.py +0 -0
  14. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/constants.py +0 -0
  15. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/features/models.py +0 -0
  16. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/__init__.py +0 -0
  17. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/__init__.py +0 -0
  18. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/constants.py +0 -0
  19. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/models.py +0 -0
  20. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/identities/traits/types.py +0 -0
  21. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/organisations/__init__.py +0 -0
  22. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/organisations/models.py +0 -0
  23. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/projects/__init__.py +0 -0
  24. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/projects/models.py +0 -0
  25. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/py.typed +0 -0
  26. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/__init__.py +0 -0
  27. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/constants.py +0 -0
  28. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/evaluator.py +0 -0
  29. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/models.py +0 -0
  30. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/segments/types.py +0 -0
  31. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/__init__.py +0 -0
  32. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/datetime.py +0 -0
  33. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/exceptions.py +0 -0
  34. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/hashing.py +0 -0
  35. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/json/__init__.py +0 -0
  36. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/json/encoders.py +0 -0
  37. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/semver.py +0 -0
  38. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flag_engine/utils/types.py +0 -0
  39. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/SOURCES.txt +0 -0
  40. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/dependency_links.txt +0 -0
  41. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/requires.txt +0 -0
  42. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/flagsmith_flag_engine.egg-info/top_level.txt +0 -0
  43. {flagsmith-flag-engine-5.1.0 → flagsmith-flag-engine-5.2.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flagsmith-flag-engine
3
- Version: 5.1.0
3
+ Version: 5.2.0
4
4
  Summary: Flag engine for the Flagsmith API.
5
5
  Home-page: https://github.com/Flagsmith/flagsmith-engine
6
6
  Author: Flagsmith
@@ -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
@@ -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.MutableSequence[FeatureStateModel],
18
- ) -> typing.MutableSequence[FeatureStateModel]:
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
- unique_feature_ids_validator = model_validator(mode="after")(
29
- _ensure_unique_feature_ids
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:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flagsmith-flag-engine
3
- Version: 5.1.0
3
+ Version: 5.2.0
4
4
  Summary: Flag engine for the Flagsmith API.
5
5
  Home-page: https://github.com/Flagsmith/flagsmith-engine
6
6
  Author: Flagsmith
@@ -2,7 +2,7 @@ from setuptools import find_packages, setup
2
2
 
3
3
  setup(
4
4
  name="flagsmith-flag-engine",
5
- version="5.1.0",
5
+ version="5.2.0",
6
6
  author="Flagsmith",
7
7
  author_email="support@flagsmith.com",
8
8
  packages=find_packages(include=["flag_engine", "flag_engine.*"]),