Skip to content

Commit 7774f96

Browse files
authored
API server code health pass - rename *Pair classes to *Set (#1060)
1 parent 94ec8e9 commit 7774f96

File tree

7 files changed

+259
-263
lines changed

7 files changed

+259
-263
lines changed

src/server/_params.py

+47-47
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def _parse_single_arg(key: str) -> Tuple[str, str]:
4848

4949

5050
@dataclass
51-
class GeoPair:
51+
class GeoSet:
5252
geo_type: str
5353
geo_values: Union[bool, Sequence[str]]
5454

@@ -57,27 +57,27 @@ def matches(self, geo_type: str, geo_value: str) -> bool:
5757

5858
def count(self) -> float:
5959
"""
60-
returns the count of items in this pair
60+
returns the count of items in this set
6161
"""
6262
if isinstance(self.geo_values, bool):
6363
return inf if self.geo_values else 0
6464
return len(self.geo_values)
6565

6666

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)]
6969

7070

71-
def parse_single_geo_arg(key: str) -> GeoPair:
71+
def parse_single_geo_arg(key: str) -> GeoSet:
7272
"""
73-
parses a single geo pair with only one value
73+
parses a single geo set with only one value
7474
"""
7575
r = _parse_single_arg(key)
76-
return GeoPair(r[0], [r[1]])
76+
return GeoSet(r[0], [r[1]])
7777

7878

7979
@dataclass
80-
class SourceSignalPair:
80+
class SourceSignalSet:
8181
source: str
8282
signal: Union[bool, Sequence[str]]
8383

@@ -86,27 +86,27 @@ def matches(self, source: str, signal: str) -> bool:
8686

8787
def count(self) -> float:
8888
"""
89-
returns the count of items in this pair
89+
returns the count of items in this set
9090
"""
9191
if isinstance(self.signal, bool):
9292
return inf if self.signal else 0
9393
return len(self.signal)
9494

9595

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)]
9898

9999

100-
def parse_single_source_signal_arg(key: str) -> SourceSignalPair:
100+
def parse_single_source_signal_arg(key: str) -> SourceSignalSet:
101101
"""
102-
parses a single source signal pair with only one value
102+
parses a single source signal set with only one value
103103
"""
104104
r = _parse_single_arg(key)
105-
return SourceSignalPair(r[0], [r[1]])
105+
return SourceSignalSet(r[0], [r[1]])
106106

107107

108108
@dataclass
109-
class TimePair:
109+
class TimeSet:
110110
time_type: str
111111
time_values: Union[bool, TimeValues]
112112

@@ -121,7 +121,7 @@ def is_day(self) -> bool:
121121

122122
def count(self) -> float:
123123
"""
124-
returns the count of items in this pair
124+
returns the count of items in this set
125125
"""
126126
if isinstance(self.time_values, bool):
127127
return inf if self.time_values else 0
@@ -131,13 +131,13 @@ def count(self) -> float:
131131

132132
def to_ranges(self):
133133
"""
134-
returns this pair with times converted to ranges
134+
returns this set with times converted to ranges
135135
"""
136136
if isinstance(self.time_values, bool):
137-
return TimePair(self.time_type, self.time_values)
137+
return TimeSet(self.time_type, self.time_values)
138138
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))
141141

142142

143143
def _verify_range(start: int, end: int) -> IntRange:
@@ -204,47 +204,47 @@ def parse_day_value(time_value: str) -> IntRange:
204204
raise ValidationFailedException(msg)
205205

206206

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:
208208
if isinstance(time_values, bool):
209-
return TimePair(time_type, time_values)
209+
return TimeSet(time_type, time_values)
210210

211211
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])
213213
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])
215215
raise ValidationFailedException(f'time param: {time_type} is not one of "day" or "week"')
216216

217217

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)]
220220

221221
# single value
222-
if len(time_pairs) == 0:
222+
if len(time_sets) == 0:
223223
return None
224-
if len(time_pairs) == 1:
225-
return time_pairs[0]
224+
if len(time_sets) == 1:
225+
return time_sets[0]
226226

227227
# 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)
229229
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')
231231

232-
# merge all time pairs into one
232+
# merge all time sets into one
233233
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
237237
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()
240240

241241

242-
def parse_single_time_arg(key: str) -> TimePair:
242+
def parse_single_time_arg(key: str) -> TimeSet:
243243
"""
244-
parses a single time pair with only one value
244+
parses a single time set with only one value
245245
"""
246246
r = _parse_single_arg(key)
247-
return _parse_time_pair(r[0], [r[1]])
247+
return _parse_time_set(r[0], [r[1]])
248248

249249

250250
def parse_day_range_arg(key: str) -> Tuple[int, int]:
@@ -285,26 +285,26 @@ def parse_week_range_arg(key: str) -> Tuple[int, int]:
285285
raise ValidationFailedException(f"{key} must match YYYYWW-YYYYWW")
286286
return r
287287

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:
289289
v = request.values.get(key)
290290
if not v:
291291
if default_value is not None:
292292
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])
294294
raise ValidationFailedException(f"{key} param is required")
295295
# format is either YYYY-MM-DD or YYYYMMDD or YYYYMM
296296
is_week = guess_time_value_is_week(v)
297297
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)])
300300

301-
def parse_day_or_week_range_arg(key: str) -> TimePair:
301+
def parse_day_or_week_range_arg(key: str) -> TimeSet:
302302
v = request.values.get(key)
303303
if not v:
304304
raise ValidationFailedException(f"{key} param is required")
305305
# format is either YYYY-MM-DD--YYYY-MM-DD or YYYYMMDD-YYYYMMDD or YYYYMM-YYYYMM
306306
# so if the first before the - has length 6, it must be a week
307307
is_week = guess_time_value_is_week(v.split('-', 2)[0])
308308
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

Comments
 (0)