1212from splitio .client import util
1313from splitio .client .listener import ImpressionListenerWrapper
1414from splitio .engine .impressions import Manager as ImpressionsManager
15+ from splitio .engine .impressions import ImpressionsMode
16+ from splitio .engine .strategies import Counter as ImpressionsCounter
1517from splitio .engine .strategies .strategy_debug_mode import StrategyDebugMode
1618from splitio .engine .strategies .strategy_optimized_mode import StrategyOptimizedMode
1719
@@ -316,8 +318,13 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
316318 'events' : InMemoryEventStorage (cfg ['eventsQueueSize' ]),
317319 }
318320
319- imp_counter = Counter () if cfg ['impressionsMode' ] == 'OPTIMIZED' else None
320- imp_strategy = StrategyOptimizedMode (imp_counter ) if cfg ['impressionsMode' ] == 'OPTIMIZED' else StrategyDebugMode ()
321+ imp_counter = ImpressionsCounter () if cfg ['impressionsMode' ] != ImpressionsMode .DEBUG else None
322+
323+ strategies = {
324+ ImpressionsMode .OPTIMIZED : StrategyOptimizedMode (imp_counter ),
325+ ImpressionsMode .DEBUG : StrategyDebugMode (),
326+ }
327+ imp_strategy = strategies [cfg ['impressionsMode' ]]
321328
322329 imp_manager = ImpressionsManager (
323330 _wrap_impression_listener (cfg ['impressionListener' ], sdk_metadata ),
@@ -329,7 +336,7 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
329336 ImpressionSynchronizer (apis ['impressions' ], storages ['impressions' ],
330337 cfg ['impressionsBulkSize' ]),
331338 EventSynchronizer (apis ['events' ], storages ['events' ], cfg ['eventsBulkSize' ]),
332- ImpressionsCountSynchronizer (apis ['impressions' ], imp_counter ),
339+ ImpressionsCountSynchronizer (apis ['impressions' ], imp_manager ),
333340 )
334341 imp_count_sync_task = ImpressionsCountSyncTask (synchronizers .impressions_count_sync .synchronize_counters ) if cfg ['impressionsMode' ] == 'OPTIMIZED' else None
335342
0 commit comments