11"""Commons module."""
22from splitio .util .time import get_current_epoch_time_ms
3+ from splitio .spec import SPEC_VERSION
34
45_CACHE_CONTROL = 'Cache-Control'
56_CACHE_CONTROL_NO_CACHE = 'no-cache'
67
7-
88def headers_from_metadata (sdk_metadata , client_key = None ):
99 """
1010 Generate a dict with headers required by data-recording API endpoints.
@@ -57,7 +57,7 @@ def record_telemetry(status_code, elapsed, metric_name, telemetry_runtime_produc
5757class FetchOptions (object ):
5858 """Fetch Options object."""
5959
60- def __init__ (self , cache_control_headers = False , change_number = None , sets = None ):
60+ def __init__ (self , cache_control_headers = False , change_number = None , sets = None , spec = SPEC_VERSION ):
6161 """
6262 Class constructor.
6363
@@ -73,6 +73,7 @@ def __init__(self, cache_control_headers=False, change_number=None, sets=None):
7373 self ._cache_control_headers = cache_control_headers
7474 self ._change_number = change_number
7575 self ._sets = sets
76+ self ._spec = spec
7677
7778 @property
7879 def cache_control_headers (self ):
@@ -89,6 +90,11 @@ def sets(self):
8990 """Return sets."""
9091 return self ._sets
9192
93+ @property
94+ def spec (self ):
95+ """Return sets."""
96+ return self ._spec
97+
9298 def __eq__ (self , other ):
9399 """Match between other options."""
94100 if self ._cache_control_headers != other ._cache_control_headers :
@@ -97,6 +103,8 @@ def __eq__(self, other):
97103 return False
98104 if self ._sets != other ._sets :
99105 return False
106+ if self ._spec != other ._spec :
107+ return False
100108 return True
101109
102110
@@ -116,14 +124,15 @@ def build_fetch(change_number, fetch_options, metadata):
116124 :return: Objects for fetch
117125 :rtype: dict, dict
118126 """
119- query = {'since' : change_number }
127+ query = {'s' : fetch_options .spec } if fetch_options .spec is not None else {}
128+ query ['since' ] = change_number
120129 extra_headers = metadata
121130 if fetch_options is None :
122131 return query , extra_headers
123132 if fetch_options .cache_control_headers :
124133 extra_headers [_CACHE_CONTROL ] = _CACHE_CONTROL_NO_CACHE
125- if fetch_options .change_number is not None :
126- query ['till' ] = fetch_options .change_number
127134 if fetch_options .sets is not None :
128135 query ['sets' ] = fetch_options .sets
136+ if fetch_options .change_number is not None :
137+ query ['till' ] = fetch_options .change_number
129138 return query , extra_headers
0 commit comments