1010from flag_engine .identities .models import IdentityModel
1111from flag_engine .identities .traits .models import TraitModel
1212from flag_engine .identities .traits .types import TraitValue
13- from flag_engine .segments . evaluator import get_identity_segments
13+ from flag_engine .context . mappers import map_environment_identity_to_context
1414from requests .adapters import HTTPAdapter
1515from requests .utils import default_user_agent
1616from urllib3 import Retry
@@ -280,10 +280,18 @@ def get_identity_segments(
280280
281281 traits = traits or {}
282282 identity_model = self ._get_identity_model (identifier , ** traits )
283- segment_models = get_identity_segments (
284- environment = self ._environment , identity = identity_model
283+ context = map_environment_identity_to_context (
284+ environment = self ._environment ,
285+ identity = identity_model ,
286+ override_traits = None ,
285287 )
286- return [Segment (id = sm .id , name = sm .name ) for sm in segment_models ]
288+ evaluation_result = engine .get_evaluation_result (
289+ context = context ,
290+ )
291+ return [
292+ Segment (id = int (sm ["key" ]), name = sm ["name" ])
293+ for sm in evaluation_result .get ("segments" , [])
294+ ]
287295
288296 def update_environment (self ) -> None :
289297 try :
@@ -322,6 +330,7 @@ def _get_environment_flags_from_document(self) -> Flags:
322330 if self ._environment is None :
323331 raise TypeError ("No environment present" )
324332 return Flags .from_feature_state_models (
333+ # TODO: Use from_evaluation_result
325334 feature_states = engine .get_environment_feature_states (self ._environment ),
326335 analytics_processor = self ._analytics_processor ,
327336 default_flag_handler = self .default_flag_handler ,
@@ -333,14 +342,21 @@ def _get_identity_flags_from_document(
333342 identity_model = self ._get_identity_model (identifier , ** traits )
334343 if self ._environment is None :
335344 raise TypeError ("No environment present" )
336- feature_states = engine .get_identity_feature_states (
337- self ._environment , identity_model
345+ context = map_environment_identity_to_context (
346+ environment = self ._environment ,
347+ identity = identity_model ,
348+ override_traits = None ,
338349 )
339- return Flags .from_feature_state_models (
340- feature_states = feature_states ,
350+
351+ evaluation_result = engine .get_evaluation_result (
352+ context = context ,
353+ )
354+
355+ return Flags .from_evaluation_result (
356+ evaluation_result = evaluation_result ,
341357 analytics_processor = self ._analytics_processor ,
342- identity_id = identity_model .composite_key ,
343358 default_flag_handler = self .default_flag_handler ,
359+ identity_id = identity_model .composite_key ,
344360 )
345361
346362 def _get_environment_flags_from_api (self ) -> Flags :
0 commit comments