@@ -27,7 +27,7 @@ class CounterConstants(Enum):
2727 EVENTS_QUEUED = 'eventsQueued'
2828 EVENTS_DROPPED = 'eventsDropped'
2929
30- class ConfigParams (Enum ):
30+ class _ConfigParams (Enum ):
3131 """Config parameters constants"""
3232 SPLITS_REFRESH_RATE = 'featuresRefreshRate'
3333 SEGMENTS_REFRESH_RATE = 'segmentsRefreshRate'
@@ -41,8 +41,9 @@ class ConfigParams(Enum):
4141 EVENTS_QUEUE_SIZE = 'eventsQueueSize'
4242 IMPRESSIONS_MODE = 'impressionsMode'
4343 IMPRESSIONS_LISTENER = 'impressionListener'
44+ FLAG_SETS = 'flagSetsFilter'
4445
45- class ExtraConfig (Enum ):
46+ class _ExtraConfig (Enum ):
4647 """Extra config constants"""
4748 ACTIVE_FACTORY_COUNT = 'activeFactoryCount'
4849 REDUNDANT_FACTORY_COUNT = 'redundantFactoryCount'
@@ -53,7 +54,7 @@ class ExtraConfig(Enum):
5354 HTTP_PROXY = 'httpProxy'
5455 HTTPS_PROXY_ENV = 'HTTPS_PROXY'
5556
56- class ApiURLs (Enum ):
57+ class _ApiURLs (Enum ):
5758 """Api URL constants"""
5859 SDK_URL = 'sdk_url'
5960 EVENTS_URL = 'events_url'
@@ -88,7 +89,7 @@ class MethodExceptionsAndLatencies(Enum):
8889 TREATMENTS_WITH_CONFIG_BY_FLAG_SETS = 'treatments_with_config_by_flag_sets'
8990 TRACK = 'track'
9091
91- class LastSynchronizationConstants (Enum ):
92+ class _LastSynchronizationConstants (Enum ):
9293 """Last sync constants"""
9394 LAST_SYNCHRONIZATIONS = 'lastSynchronizations'
9495
@@ -108,7 +109,7 @@ class SSESyncMode(Enum):
108109 STREAMING = 0
109110 POLLING = 1
110111
111- class StreamingEventsConstant (Enum ):
112+ class _StreamingEventsConstant (Enum ):
112113 """Storage types constant"""
113114 STREAMING_EVENTS = 'streamingEvents'
114115
@@ -426,7 +427,7 @@ def get_all(self):
426427 :rtype: dict
427428 """
428429 with self ._lock :
429- return {LastSynchronizationConstants .LAST_SYNCHRONIZATIONS .value : {HTTPExceptionsAndLatencies .SPLIT .value : self ._split , HTTPExceptionsAndLatencies .SEGMENT .value : self ._segment , HTTPExceptionsAndLatencies .IMPRESSION .value : self ._impression ,
430+ return {_LastSynchronizationConstants .LAST_SYNCHRONIZATIONS .value : {HTTPExceptionsAndLatencies .SPLIT .value : self ._split , HTTPExceptionsAndLatencies .SEGMENT .value : self ._segment , HTTPExceptionsAndLatencies .IMPRESSION .value : self ._impression ,
430431 HTTPExceptionsAndLatencies .IMPRESSION_COUNT .value : self ._impression_count , HTTPExceptionsAndLatencies .EVENT .value : self ._event ,
431432 HTTPExceptionsAndLatencies .TELEMETRY .value : self ._telemetry , HTTPExceptionsAndLatencies .TOKEN .value : self ._token }
432433 }
@@ -671,6 +672,8 @@ def pop_update_from_sse(self, event):
671672 :rtype: int
672673 """
673674 with self ._lock :
675+ if self ._update_from_sse .get (event .value ) is None :
676+ return 0
674677 update_from_sse = self ._update_from_sse [event .value ]
675678 self ._update_from_sse [event .value ] = 0
676679 return update_from_sse
@@ -758,7 +761,7 @@ def pop_streaming_events(self):
758761 with self ._lock :
759762 streaming_events = self ._streaming_events
760763 self ._streaming_events = []
761- return {StreamingEventsConstant .STREAMING_EVENTS .value : [{'e' : streaming_event .type , 'd' : streaming_event .data ,
764+ return {_StreamingEventsConstant .STREAMING_EVENTS .value : [{'e' : streaming_event .type , 'd' : streaming_event .data ,
762765 't' : streaming_event .time } for streaming_event in streaming_events ]}
763766
764767class TelemetryConfig (object ):
@@ -780,10 +783,10 @@ def _reset_all(self):
780783 self ._operation_mode = None
781784 self ._storage_type = None
782785 self ._streaming_enabled = None
783- self ._refresh_rate = {ConfigParams .SPLITS_REFRESH_RATE .value : 0 , ConfigParams .SEGMENTS_REFRESH_RATE .value : 0 ,
784- ConfigParams .IMPRESSIONS_REFRESH_RATE .value : 0 , ConfigParams .EVENTS_REFRESH_RATE .value : 0 , ConfigParams .TELEMETRY_REFRESH_RATE .value : 0 }
785- self ._url_override = {ApiURLs .SDK_URL .value : False , ApiURLs .EVENTS_URL .value : False , ApiURLs .AUTH_URL .value : False ,
786- ApiURLs .STREAMING_URL .value : False , ApiURLs .TELEMETRY_URL .value : False }
786+ self ._refresh_rate = {_ConfigParams .SPLITS_REFRESH_RATE .value : 0 , _ConfigParams .SEGMENTS_REFRESH_RATE .value : 0 ,
787+ _ConfigParams .IMPRESSIONS_REFRESH_RATE .value : 0 , _ConfigParams .EVENTS_REFRESH_RATE .value : 0 , _ConfigParams .TELEMETRY_REFRESH_RATE .value : 0 }
788+ self ._url_override = {_ApiURLs .SDK_URL .value : False , _ApiURLs .EVENTS_URL .value : False , _ApiURLs .AUTH_URL .value : False ,
789+ _ApiURLs .STREAMING_URL .value : False , _ApiURLs .TELEMETRY_URL .value : False }
787790 self ._impressions_queue_size = 0
788791 self ._events_queue_size = 0
789792 self ._impressions_mode = None
@@ -816,16 +819,17 @@ def record_config(self, config, extra_config):
816819 :type config: dict
817820 """
818821 with self ._lock :
819- self ._operation_mode = self ._get_operation_mode (config [ConfigParams .OPERATION_MODE .value ])
820- self ._storage_type = self ._get_storage_type (config [ConfigParams .OPERATION_MODE .value ], config [ConfigParams .STORAGE_TYPE .value ])
821- self ._streaming_enabled = config [ConfigParams .STREAMING_ENABLED .value ]
822+ self ._operation_mode = self ._get_operation_mode (config [_ConfigParams .OPERATION_MODE .value ])
823+ self ._storage_type = self ._get_storage_type (config [_ConfigParams .OPERATION_MODE .value ], config [_ConfigParams .STORAGE_TYPE .value ])
824+ self ._streaming_enabled = config [_ConfigParams .STREAMING_ENABLED .value ]
822825 self ._refresh_rate = self ._get_refresh_rates (config )
823826 self ._url_override = self ._get_url_overrides (extra_config )
824- self ._impressions_queue_size = config [ConfigParams .IMPRESSIONS_QUEUE_SIZE .value ]
825- self ._events_queue_size = config [ConfigParams .EVENTS_QUEUE_SIZE .value ]
826- self ._impressions_mode = self ._get_impressions_mode (config [ConfigParams .IMPRESSIONS_MODE .value ])
827- self ._impression_listener = True if config [ConfigParams .IMPRESSIONS_LISTENER .value ] is not None else False
827+ self ._impressions_queue_size = config [_ConfigParams .IMPRESSIONS_QUEUE_SIZE .value ]
828+ self ._events_queue_size = config [_ConfigParams .EVENTS_QUEUE_SIZE .value ]
829+ self ._impressions_mode = self ._get_impressions_mode (config [_ConfigParams .IMPRESSIONS_MODE .value ])
830+ self ._impression_listener = True if config [_ConfigParams .IMPRESSIONS_LISTENER .value ] is not None else False
828831 self ._http_proxy = self ._check_if_proxy_detected ()
832+ self ._flag_sets = len (config [_ConfigParams .FLAG_SETS .value ]) if config [_ConfigParams .FLAG_SETS .value ] is not None else 0
829833
830834 def record_active_and_redundant_factories (self , active_factory_count , redundant_factory_count ):
831835 with self ._lock :
@@ -911,16 +915,16 @@ def get_stats(self):
911915 'oM' : self ._operation_mode ,
912916 'sT' : self ._storage_type ,
913917 'sE' : self ._streaming_enabled ,
914- 'rR' : {'sp' : self ._refresh_rate [ConfigParams .SPLITS_REFRESH_RATE .value ],
915- 'se' : self ._refresh_rate [ConfigParams .SEGMENTS_REFRESH_RATE .value ],
916- 'im' : self ._refresh_rate [ConfigParams .IMPRESSIONS_REFRESH_RATE .value ],
917- 'ev' : self ._refresh_rate [ConfigParams .EVENTS_REFRESH_RATE .value ],
918- 'te' : self ._refresh_rate [ConfigParams .TELEMETRY_REFRESH_RATE .value ]},
919- 'uO' : {'s' : self ._url_override [ApiURLs .SDK_URL .value ],
920- 'e' : self ._url_override [ApiURLs .EVENTS_URL .value ],
921- 'a' : self ._url_override [ApiURLs .AUTH_URL .value ],
922- 'st' : self ._url_override [ApiURLs .STREAMING_URL .value ],
923- 't' : self ._url_override [ApiURLs .TELEMETRY_URL .value ]},
918+ 'rR' : {'sp' : self ._refresh_rate [_ConfigParams .SPLITS_REFRESH_RATE .value ],
919+ 'se' : self ._refresh_rate [_ConfigParams .SEGMENTS_REFRESH_RATE .value ],
920+ 'im' : self ._refresh_rate [_ConfigParams .IMPRESSIONS_REFRESH_RATE .value ],
921+ 'ev' : self ._refresh_rate [_ConfigParams .EVENTS_REFRESH_RATE .value ],
922+ 'te' : self ._refresh_rate [_ConfigParams .TELEMETRY_REFRESH_RATE .value ]},
923+ 'uO' : {'s' : self ._url_override [_ApiURLs .SDK_URL .value ],
924+ 'e' : self ._url_override [_ApiURLs .EVENTS_URL .value ],
925+ 'a' : self ._url_override [_ApiURLs .AUTH_URL .value ],
926+ 'st' : self ._url_override [_ApiURLs .STREAMING_URL .value ],
927+ 't' : self ._url_override [_ApiURLs .TELEMETRY_URL .value ]},
924928 'iQ' : self ._impressions_queue_size ,
925929 'eQ' : self ._events_queue_size ,
926930 'iM' : self ._impressions_mode ,
@@ -979,11 +983,11 @@ def _get_refresh_rates(self, config):
979983 """
980984 with self ._lock :
981985 return {
982- ConfigParams .SPLITS_REFRESH_RATE .value : config [ConfigParams .SPLITS_REFRESH_RATE .value ],
983- ConfigParams .SEGMENTS_REFRESH_RATE .value : config [ConfigParams .SEGMENTS_REFRESH_RATE .value ],
984- ConfigParams .IMPRESSIONS_REFRESH_RATE .value : config [ConfigParams .IMPRESSIONS_REFRESH_RATE .value ],
985- ConfigParams .EVENTS_REFRESH_RATE .value : config [ConfigParams .EVENTS_REFRESH_RATE .value ],
986- ConfigParams .TELEMETRY_REFRESH_RATE .value : config [ConfigParams .TELEMETRY_REFRESH_RATE .value ]
986+ _ConfigParams .SPLITS_REFRESH_RATE .value : config [_ConfigParams .SPLITS_REFRESH_RATE .value ],
987+ _ConfigParams .SEGMENTS_REFRESH_RATE .value : config [_ConfigParams .SEGMENTS_REFRESH_RATE .value ],
988+ _ConfigParams .IMPRESSIONS_REFRESH_RATE .value : config [_ConfigParams .IMPRESSIONS_REFRESH_RATE .value ],
989+ _ConfigParams .EVENTS_REFRESH_RATE .value : config [_ConfigParams .EVENTS_REFRESH_RATE .value ],
990+ _ConfigParams .TELEMETRY_REFRESH_RATE .value : config [_ConfigParams .TELEMETRY_REFRESH_RATE .value ]
987991 }
988992
989993 def _get_url_overrides (self , config ):
@@ -998,11 +1002,11 @@ def _get_url_overrides(self, config):
9981002 """
9991003 with self ._lock :
10001004 return {
1001- ApiURLs .SDK_URL .value : True if ApiURLs .SDK_URL .value in config else False ,
1002- ApiURLs .EVENTS_URL .value : True if ApiURLs .EVENTS_URL .value in config else False ,
1003- ApiURLs .AUTH_URL .value : True if ApiURLs .AUTH_URL .value in config else False ,
1004- ApiURLs .STREAMING_URL .value : True if ApiURLs .STREAMING_URL .value in config else False ,
1005- ApiURLs .TELEMETRY_URL .value : True if ApiURLs .TELEMETRY_URL .value in config else False
1005+ _ApiURLs .SDK_URL .value : True if _ApiURLs .SDK_URL .value in config else False ,
1006+ _ApiURLs .EVENTS_URL .value : True if _ApiURLs .EVENTS_URL .value in config else False ,
1007+ _ApiURLs .AUTH_URL .value : True if _ApiURLs .AUTH_URL .value in config else False ,
1008+ _ApiURLs .STREAMING_URL .value : True if _ApiURLs .STREAMING_URL .value in config else False ,
1009+ _ApiURLs .TELEMETRY_URL .value : True if _ApiURLs .TELEMETRY_URL .value in config else False
10061010 }
10071011
10081012 def _get_impressions_mode (self , imp_mode ):
@@ -1032,6 +1036,6 @@ def _check_if_proxy_detected(self):
10321036 """
10331037 with self ._lock :
10341038 for x in os .environ :
1035- if x .upper () == ExtraConfig .HTTPS_PROXY_ENV .value :
1039+ if x .upper () == _ExtraConfig .HTTPS_PROXY_ENV .value :
10361040 return True
10371041 return False
0 commit comments