11"""Events Metadata."""
2- from splitio .models .events import SdkEvent , SdkInternalEvent
2+ from enum import Enum
3+
4+ class SdkEventType (Enum ):
5+ """Public event types"""
6+
7+ FLAG_UPDATE = 'FLAG_UPDATE'
8+ SEGMENT_UPDATE = 'SEGMENT_UPDATE'
39
410class EventsMetadata (object ):
511 """Events Metadata class."""
612
7- def __init__ (self , metadata ):
13+ def __init__ (self , type , names ):
814 """
915 Construct Events Metadata instance.
1016 """
11- self ._metadata = self ._sanitize (metadata )
17+ self ._type = type
18+ self ._names = self ._sanitize (names )
1219
13- def get_data (self ):
14- """Return metadata dict """
15- return self ._metadata
20+ def get_type (self ):
21+ """Return type """
22+ return self ._type
1623
17- def get_keys (self ):
18- """Return metadata dict keys"""
19- return self ._metadata .keys ()
20-
21- def get_values (self ):
22- """Return metadata dict values"""
23- return self ._metadata .values ()
24-
25- def contain_key (self , key ):
26- """Return True if key is contained in metadata"""
27- return key in self ._metadata .keys ()
24+ def get_names (self ):
25+ """Return names"""
26+ return self ._names
2827
29- def _sanitize (self , data ):
30- """Return sanitized metadata dict with values either int, bool, str or list """
31- santized_data = {}
32- for item_name , item_value in data . items () :
33- if self . _value_is_valid ( item_value ):
34- santized_data [ item_name ] = item_value
28+ def _sanitize (self , names ):
29+ """Return sanitized names list with values str"""
30+ santized_data = set ()
31+ for name in names :
32+ if isinstance ( name , str ):
33+ santized_data . add ( name )
3534
3635 return santized_data
37-
38- def _value_is_valid (self , value ):
39- """Return bool if values is int, bool, str or list[str] """
40- if (value is not None ) and (isinstance (value , int ) or isinstance (value , bool ) or isinstance (value , str )):
41- return True
42-
43- if isinstance (value , set ):
44- return any ([isinstance (item , str ) for item in value ])
45-
46- return False
0 commit comments