flagsmith-flag-engine 6.0.0__tar.gz → 6.0.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-6.0.0/flagsmith_flag_engine.egg-info → flagsmith_flag_engine-6.0.2}/PKG-INFO +15 -2
  2. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/segments/evaluator.py +27 -1
  3. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2/flagsmith_flag_engine.egg-info}/PKG-INFO +15 -2
  4. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/setup.py +1 -1
  5. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/LICENSE.txt +0 -0
  6. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/README.md +0 -0
  7. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/__init__.py +0 -0
  8. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/context/__init__.py +0 -0
  9. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/context/mappers.py +0 -0
  10. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/context/types.py +0 -0
  11. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/engine.py +0 -0
  12. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/environments/__init__.py +0 -0
  13. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/environments/integrations/__init__.py +0 -0
  14. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/environments/integrations/models.py +0 -0
  15. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/environments/models.py +0 -0
  16. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/features/__init__.py +0 -0
  17. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/features/constants.py +0 -0
  18. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/features/models.py +0 -0
  19. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/identities/__init__.py +0 -0
  20. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/identities/models.py +0 -0
  21. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/identities/traits/__init__.py +0 -0
  22. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/identities/traits/constants.py +0 -0
  23. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/identities/traits/models.py +0 -0
  24. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/identities/traits/types.py +0 -0
  25. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/organisations/__init__.py +0 -0
  26. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/organisations/models.py +0 -0
  27. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/projects/__init__.py +0 -0
  28. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/projects/models.py +0 -0
  29. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/py.typed +0 -0
  30. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/segments/__init__.py +0 -0
  31. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/segments/constants.py +0 -0
  32. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/segments/models.py +0 -0
  33. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/segments/types.py +0 -0
  34. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/types/__init__.py +0 -0
  35. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/__init__.py +0 -0
  36. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/datetime.py +0 -0
  37. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/exceptions.py +0 -0
  38. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/hashing.py +0 -0
  39. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/json/__init__.py +0 -0
  40. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/json/encoders.py +0 -0
  41. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/semver.py +0 -0
  42. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flag_engine/utils/types.py +0 -0
  43. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flagsmith_flag_engine.egg-info/SOURCES.txt +0 -0
  44. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flagsmith_flag_engine.egg-info/dependency_links.txt +0 -0
  45. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flagsmith_flag_engine.egg-info/requires.txt +1 -1
  46. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/flagsmith_flag_engine.egg-info/top_level.txt +0 -0
  47. {flagsmith-flag-engine-6.0.0 → flagsmith_flag_engine-6.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: flagsmith-flag-engine
3
- Version: 6.0.0
3
+ Version: 6.0.2
4
4
  Summary: Flag engine for the Flagsmith API.
5
5
  Home-page: https://github.com/Flagsmith/flagsmith-engine
6
6
  Author: Flagsmith
@@ -13,6 +13,19 @@ Classifier: Programming Language :: Python :: 3.8
13
13
  Classifier: Programming Language :: Python :: 3.9
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE.txt
16
+ Requires-Dist: pydantic<3,>=2.3.0
17
+ Requires-Dist: pydantic-collections<1,>=0.5.1
18
+ Requires-Dist: semver>=3.0.1
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: home-page
25
+ Dynamic: license
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: summary
16
29
 
17
30
  [![Feature Flag, Remote Config and A/B Testing platform, Flagsmith](https://github.com/Flagsmith/flagsmith/raw/main/static-files/hero.png)](https://www.flagsmith.com/)
18
31
 
@@ -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],
@@ -100,7 +122,11 @@ def context_matches_condition(
100
122
  if condition.operator == constants.IS_SET:
101
123
  return context_value is not None
102
124
 
103
- return _matches_context_value(condition, context_value) if context_value else False
125
+ return (
126
+ _matches_context_value(condition, context_value)
127
+ if context_value is not None
128
+ else False
129
+ )
104
130
 
105
131
 
106
132
  def _get_trait(context: EvaluationContext, trait_key: str) -> ContextValue:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: flagsmith-flag-engine
3
- Version: 6.0.0
3
+ Version: 6.0.2
4
4
  Summary: Flag engine for the Flagsmith API.
5
5
  Home-page: https://github.com/Flagsmith/flagsmith-engine
6
6
  Author: Flagsmith
@@ -13,6 +13,19 @@ Classifier: Programming Language :: Python :: 3.8
13
13
  Classifier: Programming Language :: Python :: 3.9
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE.txt
16
+ Requires-Dist: pydantic<3,>=2.3.0
17
+ Requires-Dist: pydantic-collections<1,>=0.5.1
18
+ Requires-Dist: semver>=3.0.1
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: home-page
25
+ Dynamic: license
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: summary
16
29
 
17
30
  [![Feature Flag, Remote Config and A/B Testing platform, Flagsmith](https://github.com/Flagsmith/flagsmith/raw/main/static-files/hero.png)](https://www.flagsmith.com/)
18
31
 
@@ -2,7 +2,7 @@ from setuptools import find_packages, setup
2
2
 
3
3
  setup(
4
4
  name="flagsmith-flag-engine",
5
- version="6.0.0",
5
+ version="6.0.2",
6
6
  author="Flagsmith",
7
7
  author_email="support@flagsmith.com",
8
8
  packages=find_packages(include=["flag_engine", "flag_engine.*"]),
@@ -1,3 +1,3 @@
1
- pydantic-collections<1,>=0.5.1
2
1
  pydantic<3,>=2.3.0
2
+ pydantic-collections<1,>=0.5.1
3
3
  semver>=3.0.1