flagsmith-flag-engine 5.4.0__tar.gz → 5.4.2__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 (47) hide show
  1. {flagsmith-flag-engine-5.4.0/flagsmith_flag_engine.egg-info → flagsmith-flag-engine-5.4.2}/PKG-INFO +1 -1
  2. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/identities/traits/types.py +2 -0
  3. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/segments/evaluator.py +22 -0
  4. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2/flagsmith_flag_engine.egg-info}/PKG-INFO +1 -1
  5. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/setup.py +1 -1
  6. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/LICENSE.txt +0 -0
  7. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/README.md +0 -0
  8. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/__init__.py +0 -0
  9. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/context/__init__.py +0 -0
  10. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/context/mappers.py +0 -0
  11. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/context/types.py +0 -0
  12. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/engine.py +0 -0
  13. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/environments/__init__.py +0 -0
  14. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/environments/integrations/__init__.py +0 -0
  15. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/environments/integrations/models.py +0 -0
  16. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/environments/models.py +0 -0
  17. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/features/__init__.py +0 -0
  18. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/features/constants.py +0 -0
  19. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/features/models.py +0 -0
  20. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/identities/__init__.py +0 -0
  21. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/identities/models.py +0 -0
  22. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/identities/traits/__init__.py +0 -0
  23. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/identities/traits/constants.py +0 -0
  24. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/identities/traits/models.py +0 -0
  25. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/organisations/__init__.py +0 -0
  26. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/organisations/models.py +0 -0
  27. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/projects/__init__.py +0 -0
  28. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/projects/models.py +0 -0
  29. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/py.typed +0 -0
  30. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/segments/__init__.py +0 -0
  31. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/segments/constants.py +0 -0
  32. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/segments/models.py +0 -0
  33. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/segments/types.py +0 -0
  34. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/types/__init__.py +0 -0
  35. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/__init__.py +0 -0
  36. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/datetime.py +0 -0
  37. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/exceptions.py +0 -0
  38. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/hashing.py +0 -0
  39. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/json/__init__.py +0 -0
  40. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/json/encoders.py +0 -0
  41. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/semver.py +0 -0
  42. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flag_engine/utils/types.py +0 -0
  43. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flagsmith_flag_engine.egg-info/SOURCES.txt +0 -0
  44. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flagsmith_flag_engine.egg-info/dependency_links.txt +0 -0
  45. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flagsmith_flag_engine.egg-info/requires.txt +0 -0
  46. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/flagsmith_flag_engine.egg-info/top_level.txt +0 -0
  47. {flagsmith-flag-engine-5.4.0 → flagsmith-flag-engine-5.4.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flagsmith-flag-engine
3
- Version: 5.4.0
3
+ Version: 5.4.2
4
4
  Summary: Flag engine for the Flagsmith API.
5
5
  Home-page: https://github.com/Flagsmith/flagsmith-engine
6
6
  Author: Flagsmith
@@ -58,3 +58,5 @@ ContextValue = Annotated[
58
58
  ],
59
59
  BeforeValidator(map_any_value_to_trait_value),
60
60
  ]
61
+
62
+ TraitValue = ContextValue
@@ -6,7 +6,10 @@ from functools import partial, wraps
6
6
 
7
7
  import semver
8
8
 
9
+ from flag_engine.context.mappers import map_environment_identity_to_context
9
10
  from flag_engine.context.types import EvaluationContext
11
+ from flag_engine.environments.models import EnvironmentModel
12
+ from flag_engine.identities.models import IdentityModel
10
13
  from flag_engine.identities.traits.types import ContextValue
11
14
  from flag_engine.segments import constants
12
15
  from flag_engine.segments.models import (
@@ -20,6 +23,25 @@ from flag_engine.utils.semver import is_semver
20
23
  from flag_engine.utils.types import SupportsStr, get_casting_function
21
24
 
22
25
 
26
+ def get_identity_segments(
27
+ identity: IdentityModel,
28
+ environment: EnvironmentModel,
29
+ ) -> typing.List[SegmentModel]:
30
+ """
31
+ Get a list of segments for a given identity in a given environment.
32
+
33
+ :param identity: the identity model object to get the segments for
34
+ :param environment: the environment model object the identity belongs to
35
+ :return: list of segments that the identity belongs to in the environment
36
+ """
37
+ context = map_environment_identity_to_context(
38
+ environment=environment,
39
+ identity=identity,
40
+ override_traits=None,
41
+ )
42
+ return get_context_segments(context, environment.project.segments)
43
+
44
+
23
45
  def get_context_segments(
24
46
  context: EvaluationContext,
25
47
  segments: typing.List[SegmentModel],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flagsmith-flag-engine
3
- Version: 5.4.0
3
+ Version: 5.4.2
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.4.0",
5
+ version="5.4.2",
6
6
  author="Flagsmith",
7
7
  author_email="support@flagsmith.com",
8
8
  packages=find_packages(include=["flag_engine", "flag_engine.*"]),