From d39634c2bcaf0fbc9b7eb46cd46690d505e6e8da Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 31 Oct 2025 18:50:51 +0000 Subject: [PATCH 1/2] Initial plan From 9b316578f58819f4a62ac9bc2373c9e6f57feb87 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 31 Oct 2025 19:02:28 +0000 Subject: [PATCH 2/2] Standardize engine metadata field name from flagsmith_id to id Co-authored-by: khvn26 <979078+khvn26@users.noreply.github.com> --- flagsmith/mappers.py | 12 ++++++------ flagsmith/models.py | 2 +- flagsmith/types.py | 4 ++-- tests/test_flagsmith.py | 2 +- tests/test_models.py | 14 +++++++------- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/flagsmith/mappers.py b/flagsmith/mappers.py index e5fff9d..18d1acf 100644 --- a/flagsmith/mappers.py +++ b/flagsmith/mappers.py @@ -46,11 +46,11 @@ def map_segment_results_to_identity_segments( for segment_result in segment_results: if metadata := segment_result.get("metadata"): if metadata.get("source") == "api" and ( - (flagsmith_id := metadata.get("flagsmith_id")) is not None + (segment_id := metadata.get("id")) is not None ): identity_segments.append( Segment( - id=flagsmith_id, + id=segment_id, name=segment_result["name"], ) ) @@ -132,7 +132,7 @@ def map_environment_document_to_context( ) ), "metadata": SegmentMetadata( - flagsmith_id=segment_id, + id=segment_id, source="api", ), } @@ -202,9 +202,9 @@ def _map_identity_overrides_to_segments( "enabled": feature_enabled, "value": feature_value, "priority": float("-inf"), # Highest possible priority - "metadata": {"flagsmith_id": flagsmith_id}, + "metadata": {"id": feature_id}, } - for flagsmith_id, feature_name, feature_enabled, feature_value in overrides_key + for feature_id, feature_name, feature_enabled, feature_value in overrides_key ], metadata=SegmentMetadata(source="identity_overrides"), ) @@ -237,7 +237,7 @@ def _map_environment_document_feature_states_to_feature_contexts( feature_states: list[FeatureStateModel], ) -> typing.Iterable[FeatureContext[FeatureMetadata]]: for feature_state in feature_states: - metadata: FeatureMetadata = {"flagsmith_id": feature_state["feature"]["id"]} + metadata: FeatureMetadata = {"id": feature_state["feature"]["id"]} feature_context = FeatureContext[FeatureMetadata]( key=str( feature_state.get("django_id") or feature_state["featurestate_uuid"] diff --git a/flagsmith/models.py b/flagsmith/models.py index ab69d2d..72beb25 100644 --- a/flagsmith/models.py +++ b/flagsmith/models.py @@ -35,7 +35,7 @@ def from_evaluation_result( enabled=flag_result["enabled"], value=flag_result["value"], feature_name=flag_result["name"], - feature_id=metadata["flagsmith_id"], + feature_id=metadata["id"], ) raise ValueError( "FlagResult metadata is missing. Cannot create Flag instance. " diff --git a/flagsmith/types.py b/flagsmith/types.py index 668d9df..8a50741 100644 --- a/flagsmith/types.py +++ b/flagsmith/types.py @@ -38,14 +38,14 @@ class ApplicationMetadata(typing.TypedDict): class SegmentMetadata(typing.TypedDict): - flagsmith_id: NotRequired[int] + id: NotRequired[int] """The ID of the segment used in Flagsmith API.""" source: NotRequired[typing.Literal["api", "identity_overrides"]] """The source of the segment, e.g. 'api', 'identity_overrides'.""" class FeatureMetadata(typing.TypedDict): - flagsmith_id: int + id: int """The ID of the feature used in Flagsmith API.""" diff --git a/tests/test_flagsmith.py b/tests/test_flagsmith.py index ce9219b..cf1367a 100644 --- a/tests/test_flagsmith.py +++ b/tests/test_flagsmith.py @@ -165,7 +165,7 @@ def test_get_identity_flags_uses_local_environment_when_available( "name": "some_feature", "enabled": True, "value": "some-feature-state-value", - "metadata": {"flagsmith_id": 1}, + "metadata": {"id": 1}, } }, "segments": [], diff --git a/tests/test_models.py b/tests/test_models.py index 7cc8283..c992395 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -13,7 +13,7 @@ def test_flag_from_evaluation_result() -> None: "name": "test_feature", "reason": "DEFAULT", "value": "test-value", - "metadata": {"flagsmith_id": 123}, + "metadata": {"id": 123}, } # When @@ -38,7 +38,7 @@ def test_flag_from_evaluation_result() -> None: "name": "feature1", "reason": "DEFAULT", "value": "value1", - "metadata": {"flagsmith_id": 1}, + "metadata": {"id": 1}, } }, ["feature1"], @@ -50,7 +50,7 @@ def test_flag_from_evaluation_result() -> None: "name": "feature1", "reason": "DEFAULT", "value": "value1", - "metadata": {"flagsmith_id": 1}, + "metadata": {"id": 1}, } }, ["feature1"], @@ -62,21 +62,21 @@ def test_flag_from_evaluation_result() -> None: "name": "feature1", "reason": "DEFAULT", "value": "value1", - "metadata": {"flagsmith_id": 1}, + "metadata": {"id": 1}, }, "feature2": { "enabled": True, "name": "feature2", "reason": "DEFAULT", "value": "value2", - "metadata": {"flagsmith_id": 2}, + "metadata": {"id": 2}, }, "feature3": { "enabled": True, "name": "feature3", "reason": "DEFAULT", "value": 42, - "metadata": {"flagsmith_id": 3}, + "metadata": {"id": 3}, }, }, ["feature1", "feature2", "feature3"], @@ -127,7 +127,7 @@ def test_flag_from_evaluation_result_value_types( "name": "test_feature", "reason": "DEFAULT", "value": value, - "metadata": {"flagsmith_id": 123}, + "metadata": {"id": 123}, } # When