@@ -146,38 +146,35 @@ def evaluate_features(
146146 if segment_override := segment_overrides .get (
147147 feature_context ["name" ],
148148 ):
149- feature_context = segment_override ["feature_context" ]
150- flag_result : FlagResult [FeatureMetadataT ]
151- flags [feature_name ] = flag_result = {
152- "enabled" : feature_context ["enabled" ],
153- "name" : feature_context ["name" ],
154- "reason" : f"TARGETING_MATCH; segment={ segment_override ['segment_name' ]} " ,
155- "value" : feature_context .get ("value" ),
156- }
157- if feature_metadata := feature_context .get ("metadata" ):
158- flag_result ["metadata" ] = feature_metadata
149+ flags [feature_name ] = get_flag_result_from_context (
150+ context = context ,
151+ feature_context = segment_override ["feature_context" ],
152+ reason = f"TARGETING_MATCH; segment={ segment_override ['segment_name' ]} " ,
153+ )
159154 continue
160155 flags [feature_name ] = get_flag_result_from_context (
161156 context = context ,
162- feature_name = feature_name ,
157+ feature_context = context ["features" ][feature_name ],
158+ reason = "DEFAULT" ,
163159 )
164160
165161 return flags
166162
167163
168164def get_flag_result_from_context (
169- context : EvaluationContext [typing .Any , FeatureMetadataT ],
170- feature_name : str ,
165+ context : _EvaluationContextAnyMeta ,
166+ feature_context : FeatureContext [FeatureMetadataT ],
167+ reason : str ,
171168) -> FlagResult [FeatureMetadataT ]:
172169 """
173170 Get a feature value from the evaluation context
174171 for a given feature name.
175172
176- :param context: the evaluation context
177- :param feature_name: the feature name to get the value for
173+ :param context: evaluation context
174+ :param feature_context: feature context
175+ :param reason: reason to use when no variant selected
178176 :return: the value for the feature name in the evaluation context
179177 """
180- feature_context = context ["features" ][feature_name ]
181178 key = _get_identity_key (context )
182179
183180 flag_result : typing .Optional [FlagResult [FeatureMetadataT ]] = None
@@ -209,7 +206,7 @@ def get_flag_result_from_context(
209206 flag_result = {
210207 "enabled" : feature_context ["enabled" ],
211208 "name" : feature_context ["name" ],
212- "reason" : "DEFAULT" ,
209+ "reason" : reason ,
213210 "value" : feature_context ["value" ],
214211 }
215212
0 commit comments