@@ -30,25 +30,15 @@ def fetch_many(self, split_names):
3030 pass
3131
3232 @abc .abstractmethod
33- def put (self , split ):
33+ def update (self , to_add , to_delete , new_change_number ):
3434 """
35- Store a split.
36-
37- :param split: Split object to store
38- :type split_name: splitio.models.splits.Split
39- """
40- pass
41-
42- @abc .abstractmethod
43- def remove (self , split_name ):
44- """
45- Remove a split from storage.
46-
47- :param split_name: Name of the feature to remove.
48- :type split_name: str
49-
50- :return: True if the split was found and removed. False otherwise.
51- :rtype: bool
35+ Update feature flag storage.
36+ :param to_add: List of feature flags to add
37+ :type to_add: list[splitio.models.splits.Split]
38+ :param to_delete: List of feature flags to delete
39+ :type to_delete: list[splitio.models.splits.Split]
40+ :param new_change_number: New change number.
41+ :type new_change_number: int
5242 """
5343 pass
5444
@@ -61,16 +51,6 @@ def get_change_number(self):
6151 """
6252 pass
6353
64- @abc .abstractmethod
65- def set_change_number (self , new_change_number ):
66- """
67- Set the latest change number.
68-
69- :param new_change_number: New change number.
70- :type new_change_number: int
71- """
72- pass
73-
7454 @abc .abstractmethod
7555 def get_split_names (self ):
7656 """
@@ -334,3 +314,35 @@ def record_bur_time_out(self):
334314
335315 """
336316 pass
317+
318+ class FlagSetsFilter (object ):
319+ """Config Flagsets Filter storage."""
320+
321+ def __init__ (self , flag_sets = []):
322+ """Constructor."""
323+ self .flag_sets = set (flag_sets )
324+ self .should_filter = len (flag_sets ) > 0
325+ self .sorted_flag_sets = sorted (flag_sets )
326+
327+ def set_exist (self , flag_set ):
328+ """
329+ Check if a flagset exist in flagset filter
330+ :param flag_set: set name
331+ :type flag_set: str
332+ :rtype: bool
333+ """
334+ if not self .should_filter :
335+ return True
336+
337+ return len (self .flag_sets .intersection (set ([flag_set ]))) > 0
338+
339+ def intersect (self , flag_sets ):
340+ """
341+ Check if a set exist in config flagset filter
342+ :param flag_set: set of flagsets
343+ :type flag_set: set
344+ :rtype: bool
345+ """
346+ if not self .should_filter :
347+ return True
348+ return len (self .flag_sets .intersection (flag_sets )) > 0
0 commit comments