@@ -48,7 +48,7 @@ def _parse_single_arg(key: str) -> Tuple[str, str]:
48
48
49
49
50
50
@dataclass
51
- class GeoPair :
51
+ class GeoSet :
52
52
geo_type : str
53
53
geo_values : Union [bool , Sequence [str ]]
54
54
@@ -57,27 +57,27 @@ def matches(self, geo_type: str, geo_value: str) -> bool:
57
57
58
58
def count (self ) -> float :
59
59
"""
60
- returns the count of items in this pair
60
+ returns the count of items in this set
61
61
"""
62
62
if isinstance (self .geo_values , bool ):
63
63
return inf if self .geo_values else 0
64
64
return len (self .geo_values )
65
65
66
66
67
- def parse_geo_arg (key : str = "geo" ) -> List [GeoPair ]:
68
- return [GeoPair (geo_type , geo_values ) for [geo_type , geo_values ] in _parse_common_multi_arg (key )]
67
+ def parse_geo_arg (key : str = "geo" ) -> List [GeoSet ]:
68
+ return [GeoSet (geo_type , geo_values ) for [geo_type , geo_values ] in _parse_common_multi_arg (key )]
69
69
70
70
71
- def parse_single_geo_arg (key : str ) -> GeoPair :
71
+ def parse_single_geo_arg (key : str ) -> GeoSet :
72
72
"""
73
- parses a single geo pair with only one value
73
+ parses a single geo set with only one value
74
74
"""
75
75
r = _parse_single_arg (key )
76
- return GeoPair (r [0 ], [r [1 ]])
76
+ return GeoSet (r [0 ], [r [1 ]])
77
77
78
78
79
79
@dataclass
80
- class SourceSignalPair :
80
+ class SourceSignalSet :
81
81
source : str
82
82
signal : Union [bool , Sequence [str ]]
83
83
@@ -86,27 +86,27 @@ def matches(self, source: str, signal: str) -> bool:
86
86
87
87
def count (self ) -> float :
88
88
"""
89
- returns the count of items in this pair
89
+ returns the count of items in this set
90
90
"""
91
91
if isinstance (self .signal , bool ):
92
92
return inf if self .signal else 0
93
93
return len (self .signal )
94
94
95
95
96
- def parse_source_signal_arg (key : str = "signal" ) -> List [SourceSignalPair ]:
97
- return [SourceSignalPair (source , signals ) for [source , signals ] in _parse_common_multi_arg (key )]
96
+ def parse_source_signal_arg (key : str = "signal" ) -> List [SourceSignalSet ]:
97
+ return [SourceSignalSet (source , signals ) for [source , signals ] in _parse_common_multi_arg (key )]
98
98
99
99
100
- def parse_single_source_signal_arg (key : str ) -> SourceSignalPair :
100
+ def parse_single_source_signal_arg (key : str ) -> SourceSignalSet :
101
101
"""
102
- parses a single source signal pair with only one value
102
+ parses a single source signal set with only one value
103
103
"""
104
104
r = _parse_single_arg (key )
105
- return SourceSignalPair (r [0 ], [r [1 ]])
105
+ return SourceSignalSet (r [0 ], [r [1 ]])
106
106
107
107
108
108
@dataclass
109
- class TimePair :
109
+ class TimeSet :
110
110
time_type : str
111
111
time_values : Union [bool , TimeValues ]
112
112
@@ -121,7 +121,7 @@ def is_day(self) -> bool:
121
121
122
122
def count (self ) -> float :
123
123
"""
124
- returns the count of items in this pair
124
+ returns the count of items in this set
125
125
"""
126
126
if isinstance (self .time_values , bool ):
127
127
return inf if self .time_values else 0
@@ -131,13 +131,13 @@ def count(self) -> float:
131
131
132
132
def to_ranges (self ):
133
133
"""
134
- returns this pair with times converted to ranges
134
+ returns this set with times converted to ranges
135
135
"""
136
136
if isinstance (self .time_values , bool ):
137
- return TimePair (self .time_type , self .time_values )
137
+ return TimeSet (self .time_type , self .time_values )
138
138
if self .time_type == 'week' :
139
- return TimePair (self .time_type , weeks_to_ranges (self .time_values ))
140
- return TimePair (self .time_type , days_to_ranges (self .time_values ))
139
+ return TimeSet (self .time_type , weeks_to_ranges (self .time_values ))
140
+ return TimeSet (self .time_type , days_to_ranges (self .time_values ))
141
141
142
142
143
143
def _verify_range (start : int , end : int ) -> IntRange :
@@ -204,47 +204,47 @@ def parse_day_value(time_value: str) -> IntRange:
204
204
raise ValidationFailedException (msg )
205
205
206
206
207
- def _parse_time_pair (time_type : str , time_values : Union [bool , Sequence [str ]]) -> TimePair :
207
+ def _parse_time_set (time_type : str , time_values : Union [bool , Sequence [str ]]) -> TimeSet :
208
208
if isinstance (time_values , bool ):
209
- return TimePair (time_type , time_values )
209
+ return TimeSet (time_type , time_values )
210
210
211
211
if time_type == "week" :
212
- return TimePair ("week" , [parse_week_value (t ) for t in time_values ])
212
+ return TimeSet ("week" , [parse_week_value (t ) for t in time_values ])
213
213
elif time_type == "day" :
214
- return TimePair ("day" , [parse_day_value (t ) for t in time_values ])
214
+ return TimeSet ("day" , [parse_day_value (t ) for t in time_values ])
215
215
raise ValidationFailedException (f'time param: { time_type } is not one of "day" or "week"' )
216
216
217
217
218
- def parse_time_arg (key : str = "time" ) -> Optional [TimePair ]:
219
- time_pairs = [_parse_time_pair (time_type , time_values ) for [time_type , time_values ] in _parse_common_multi_arg (key )]
218
+ def parse_time_arg (key : str = "time" ) -> Optional [TimeSet ]:
219
+ time_sets = [_parse_time_set (time_type , time_values ) for [time_type , time_values ] in _parse_common_multi_arg (key )]
220
220
221
221
# single value
222
- if len (time_pairs ) == 0 :
222
+ if len (time_sets ) == 0 :
223
223
return None
224
- if len (time_pairs ) == 1 :
225
- return time_pairs [0 ]
224
+ if len (time_sets ) == 1 :
225
+ return time_sets [0 ]
226
226
227
227
# make sure 'day' and 'week' aren't mixed
228
- time_types = set (time_pair .time_type for time_pair in time_pairs )
228
+ time_types = set (time_set .time_type for time_set in time_sets )
229
229
if len (time_types ) >= 2 :
230
- raise ValidationFailedException (f'{ key } : { time_pairs } mixes "day" and "week" time types' )
230
+ raise ValidationFailedException (f'{ key } : { time_sets } mixes "day" and "week" time types' )
231
231
232
- # merge all time pairs into one
232
+ # merge all time sets into one
233
233
merged = []
234
- for time_pair in time_pairs :
235
- if time_pair .time_values is True :
236
- return time_pair
234
+ for time_set in time_sets :
235
+ if time_set .time_values is True :
236
+ return time_set
237
237
else :
238
- merged .extend (time_pair .time_values )
239
- return TimePair ( time_pairs [0 ].time_type , merged ).to_ranges ()
238
+ merged .extend (time_set .time_values )
239
+ return TimeSet ( time_sets [0 ].time_type , merged ).to_ranges ()
240
240
241
241
242
- def parse_single_time_arg (key : str ) -> TimePair :
242
+ def parse_single_time_arg (key : str ) -> TimeSet :
243
243
"""
244
- parses a single time pair with only one value
244
+ parses a single time set with only one value
245
245
"""
246
246
r = _parse_single_arg (key )
247
- return _parse_time_pair (r [0 ], [r [1 ]])
247
+ return _parse_time_set (r [0 ], [r [1 ]])
248
248
249
249
250
250
def parse_day_range_arg (key : str ) -> Tuple [int , int ]:
@@ -285,26 +285,26 @@ def parse_week_range_arg(key: str) -> Tuple[int, int]:
285
285
raise ValidationFailedException (f"{ key } must match YYYYWW-YYYYWW" )
286
286
return r
287
287
288
- def parse_day_or_week_arg (key : str , default_value : Optional [int ] = None ) -> TimePair :
288
+ def parse_day_or_week_arg (key : str , default_value : Optional [int ] = None ) -> TimeSet :
289
289
v = request .values .get (key )
290
290
if not v :
291
291
if default_value is not None :
292
292
time_type = "day" if guess_time_value_is_day (default_value ) else "week"
293
- return TimePair (time_type , [default_value ])
293
+ return TimeSet (time_type , [default_value ])
294
294
raise ValidationFailedException (f"{ key } param is required" )
295
295
# format is either YYYY-MM-DD or YYYYMMDD or YYYYMM
296
296
is_week = guess_time_value_is_week (v )
297
297
if is_week :
298
- return TimePair ("week" , [parse_week_arg (key )])
299
- return TimePair ("day" , [parse_day_arg (key )])
298
+ return TimeSet ("week" , [parse_week_arg (key )])
299
+ return TimeSet ("day" , [parse_day_arg (key )])
300
300
301
- def parse_day_or_week_range_arg (key : str ) -> TimePair :
301
+ def parse_day_or_week_range_arg (key : str ) -> TimeSet :
302
302
v = request .values .get (key )
303
303
if not v :
304
304
raise ValidationFailedException (f"{ key } param is required" )
305
305
# format is either YYYY-MM-DD--YYYY-MM-DD or YYYYMMDD-YYYYMMDD or YYYYMM-YYYYMM
306
306
# so if the first before the - has length 6, it must be a week
307
307
is_week = guess_time_value_is_week (v .split ('-' , 2 )[0 ])
308
308
if is_week :
309
- return TimePair ("week" , [parse_week_range_arg (key )])
310
- return TimePair ("day" , [parse_day_range_arg (key )])
309
+ return TimeSet ("week" , [parse_week_range_arg (key )])
310
+ return TimeSet ("day" , [parse_day_range_arg (key )])
0 commit comments