@@ -170,7 +170,8 @@ def __init__( # pylint: disable=too-many-arguments
170170 telemetry_producer = None ,
171171 telemetry_init_producer = None ,
172172 telemetry_submitter = None ,
173- preforked_initialization = False
173+ preforked_initialization = False ,
174+ fallback_treatments_configuration = None
174175 ):
175176 """
176177 Class constructor.
@@ -201,6 +202,7 @@ def __init__( # pylint: disable=too-many-arguments
201202 self ._ready_time = get_current_epoch_time_ms ()
202203 _LOGGER .debug ("Running in threading mode" )
203204 self ._sdk_internal_ready_flag = sdk_ready_flag
205+ self ._fallback_treatments_configuration = fallback_treatments_configuration
204206 self ._start_status_updater ()
205207
206208 def _start_status_updater (self ):
@@ -242,7 +244,7 @@ def client(self):
242244 This client is only a set of references to structures hold by the factory.
243245 Creating one a fast operation and safe to be used anywhere.
244246 """
245- return Client (self , self ._recorder , self ._labels_enabled )
247+ return Client (self , self ._recorder , self ._labels_enabled , self . _fallback_treatments_configuration )
246248
247249 def manager (self ):
248250 """
@@ -338,7 +340,8 @@ def __init__( # pylint: disable=too-many-arguments
338340 telemetry_init_producer = None ,
339341 telemetry_submitter = None ,
340342 manager_start_task = None ,
341- api_client = None
343+ api_client = None ,
344+ fallback_treatments_configuration = None
342345 ):
343346 """
344347 Class constructor.
@@ -372,6 +375,7 @@ def __init__( # pylint: disable=too-many-arguments
372375 self ._sdk_ready_flag = asyncio .Event ()
373376 self ._ready_task = asyncio .get_running_loop ().create_task (self ._update_status_when_ready_async ())
374377 self ._api_client = api_client
378+ self ._fallback_treatments_configuration = fallback_treatments_configuration
375379
376380 async def _update_status_when_ready_async (self ):
377381 """Wait until the sdk is ready and update the status for async mode."""
@@ -460,7 +464,7 @@ def client(self):
460464 This client is only a set of references to structures hold by the factory.
461465 Creating one a fast operation and safe to be used anywhere.
462466 """
463- return ClientAsync (self , self ._recorder , self ._labels_enabled )
467+ return ClientAsync (self , self ._recorder , self ._labels_enabled , self . _fallback_treatments_configuration )
464468
465469def _wrap_impression_listener (listener , metadata ):
466470 """
@@ -623,15 +627,16 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
623627 synchronizer ._split_synchronizers ._segment_sync .shutdown ()
624628
625629 return SplitFactory (api_key , storages , cfg ['labelsEnabled' ],
626- recorder , manager , None , telemetry_producer , telemetry_init_producer , telemetry_submitter , preforked_initialization = preforked_initialization )
630+ recorder , manager , None , telemetry_producer , telemetry_init_producer , telemetry_submitter , preforked_initialization = preforked_initialization ,
631+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ])
627632
628633 initialization_thread = threading .Thread (target = manager .start , name = "SDKInitializer" , daemon = True )
629634 initialization_thread .start ()
630635
631636 return SplitFactory (api_key , storages , cfg ['labelsEnabled' ],
632637 recorder , manager , sdk_ready_flag ,
633638 telemetry_producer , telemetry_init_producer ,
634- telemetry_submitter )
639+ telemetry_submitter , fallback_treatments_configuration = cfg [ 'fallbackTreatmentsConfiguration' ] )
635640
636641async def _build_in_memory_factory_async (api_key , cfg , sdk_url = None , events_url = None , # pylint:disable=too-many-arguments,too-many-localsa
637642 auth_api_base_url = None , streaming_api_base_url = None , telemetry_api_base_url = None ,
@@ -750,7 +755,7 @@ async def _build_in_memory_factory_async(api_key, cfg, sdk_url=None, events_url=
750755 recorder , manager ,
751756 telemetry_producer , telemetry_init_producer ,
752757 telemetry_submitter , manager_start_task = manager_start_task ,
753- api_client = http_client )
758+ api_client = http_client , fallback_treatments_configuration = cfg [ 'fallbackTreatmentsConfiguration' ] )
754759
755760def _build_redis_factory (api_key , cfg ):
756761 """Build and return a split factory with redis-based storage."""
@@ -828,7 +833,8 @@ def _build_redis_factory(api_key, cfg):
828833 manager ,
829834 sdk_ready_flag = None ,
830835 telemetry_producer = telemetry_producer ,
831- telemetry_init_producer = telemetry_init_producer
836+ telemetry_init_producer = telemetry_init_producer ,
837+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ]
832838 )
833839 redundant_factory_count , active_factory_count = _get_active_and_redundant_count ()
834840 storages ['telemetry' ].record_active_and_redundant_factories (active_factory_count , redundant_factory_count )
@@ -910,7 +916,8 @@ async def _build_redis_factory_async(api_key, cfg):
910916 manager ,
911917 telemetry_producer = telemetry_producer ,
912918 telemetry_init_producer = telemetry_init_producer ,
913- telemetry_submitter = telemetry_submitter
919+ telemetry_submitter = telemetry_submitter ,
920+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ]
914921 )
915922 redundant_factory_count , active_factory_count = _get_active_and_redundant_count ()
916923 await storages ['telemetry' ].record_active_and_redundant_factories (active_factory_count , redundant_factory_count )
@@ -992,7 +999,8 @@ def _build_pluggable_factory(api_key, cfg):
992999 manager ,
9931000 sdk_ready_flag = None ,
9941001 telemetry_producer = telemetry_producer ,
995- telemetry_init_producer = telemetry_init_producer
1002+ telemetry_init_producer = telemetry_init_producer ,
1003+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ]
9961004 )
9971005 redundant_factory_count , active_factory_count = _get_active_and_redundant_count ()
9981006 storages ['telemetry' ].record_active_and_redundant_factories (active_factory_count , redundant_factory_count )
@@ -1072,7 +1080,8 @@ async def _build_pluggable_factory_async(api_key, cfg):
10721080 manager ,
10731081 telemetry_producer = telemetry_producer ,
10741082 telemetry_init_producer = telemetry_init_producer ,
1075- telemetry_submitter = telemetry_submitter
1083+ telemetry_submitter = telemetry_submitter ,
1084+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ]
10761085 )
10771086 redundant_factory_count , active_factory_count = _get_active_and_redundant_count ()
10781087 await storages ['telemetry' ].record_active_and_redundant_factories (active_factory_count , redundant_factory_count )
@@ -1150,6 +1159,7 @@ def _build_localhost_factory(cfg):
11501159 telemetry_producer = telemetry_producer ,
11511160 telemetry_init_producer = telemetry_producer .get_telemetry_init_producer (),
11521161 telemetry_submitter = LocalhostTelemetrySubmitter (),
1162+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ]
11531163 )
11541164
11551165async def _build_localhost_factory_async (cfg ):
@@ -1220,7 +1230,8 @@ async def _build_localhost_factory_async(cfg):
12201230 telemetry_producer = telemetry_producer ,
12211231 telemetry_init_producer = telemetry_producer .get_telemetry_init_producer (),
12221232 telemetry_submitter = LocalhostTelemetrySubmitterAsync (),
1223- manager_start_task = manager_start_task
1233+ manager_start_task = manager_start_task ,
1234+ fallback_treatments_configuration = cfg ['fallbackTreatmentsConfiguration' ]
12241235 )
12251236
12261237def get_factory (api_key , ** kwargs ):
0 commit comments