Skip to content

Commit 59ebede

Browse files
committed
dmitry review
1 parent 339efc8 commit 59ebede

File tree

5 files changed

+24
-24
lines changed

5 files changed

+24
-24
lines changed

src/server/_params.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ def parse_time_arg(key: str = "time") -> Optional[TimePair]:
215215
return time_pairs[0]
216216

217217
# make sure 'day' and 'week' aren't mixed
218-
time_types = set([time_pair.time_type for time_pair in time_pairs])
218+
time_types = set(time_pair.time_type for time_pair in time_pairs)
219219
if len(time_types) >= 2:
220220
raise ValidationFailedException(f'{key}: {time_pairs} mixes "day" and "week" time types')
221221

src/server/_query.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ def filter_pair(pair: SourceSignalPair, i) -> str:
171171
return f"({' OR '.join(parts)})"
172172

173173

174-
def filter_time_pairs(
174+
def filter_time_pair(
175175
type_field: str,
176176
time_field: str,
177177
pair: Optional[TimePair],
@@ -449,7 +449,7 @@ def where_source_signal_pairs(
449449
)
450450
return self
451451

452-
def where_time_pairs(
452+
def where_time_pair(
453453
self,
454454
type_field: str,
455455
value_field: str,
@@ -459,7 +459,7 @@ def where_time_pairs(
459459
fq_type_field = self._fq_field(type_field)
460460
fq_value_field = self._fq_field(value_field)
461461
self.conditions.append(
462-
filter_time_pairs(
462+
filter_time_pair(
463463
fq_type_field,
464464
fq_value_field,
465465
values,

src/server/endpoints/covidcast.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def handle():
143143

144144
q.where_source_signal_pairs("source", "signal", source_signal_pairs)
145145
q.where_geo_pairs("geo_type", "geo_value", geo_pairs)
146-
q.where_time_pairs("time_type", "time_value", time_pair)
146+
q.where_time_pair("time_type", "time_value", time_pair)
147147

148148
_handle_lag_issues_as_of(q, issues, lag, as_of)
149149

@@ -197,7 +197,7 @@ def handle_trend():
197197

198198
q.where_source_signal_pairs("source", "signal", source_signal_pairs)
199199
q.where_geo_pairs("geo_type", "geo_value", geo_pairs)
200-
q.where_time_pairs("time_type", "time_value", time_window)
200+
q.where_time_pair("time_type", "time_value", time_window)
201201

202202
# fetch most recent issue fast
203203
_handle_lag_issues_as_of(q, None, None, None)
@@ -248,7 +248,7 @@ def handle_trendseries():
248248

249249
q.where_source_signal_pairs("source", "signal", source_signal_pairs)
250250
q.where_geo_pairs("geo_type", "geo_value", geo_pairs)
251-
q.where_time_pairs("time_type", "time_value", time_window)
251+
q.where_time_pair("time_type", "time_value", time_window)
252252

253253
# fetch most recent issue fast
254254
_handle_lag_issues_as_of(q, None, None, None)
@@ -309,7 +309,7 @@ def handle_correlation():
309309
source_signal_pairs,
310310
)
311311
q.where_geo_pairs("geo_type", "geo_value", geo_pairs)
312-
q.where_time_pairs("time_type", "time_value", time_window)
312+
q.where_time_pair("time_type", "time_value", time_window)
313313

314314
df = as_pandas(str(q), q.params)
315315
if is_day:
@@ -381,7 +381,7 @@ def handle_export():
381381
q.set_fields(["geo_value", "signal", "time_value", "issue", "lag", "value", "stderr", "sample_size", "geo_type", "source"], [], [])
382382
q.set_order("time_value", "geo_value")
383383
q.where_source_signal_pairs("source", "signal", source_signal_pairs)
384-
q.where_time_pairs("time_type", "time_value", TimePair("day" if is_day else "week", [(start_day, end_day)]))
384+
q.where_time_pair("time_type", "time_value", TimePair("day" if is_day else "week", [(start_day, end_day)]))
385385
q.where_geo_pairs("geo_type", "geo_value", [GeoPair(geo_type, True if geo_values == "*" else geo_values)])
386386

387387
_handle_lag_issues_as_of(q, None, None, as_of)
@@ -462,7 +462,7 @@ def handle_backfill():
462462

463463
q.where_source_signal_pairs("source", "signal", source_signal_pairs)
464464
q.where_geo_pairs("geo_type", "geo_value", [geo_pair])
465-
q.where_time_pairs("time_type", "time_value", time_pair)
465+
q.where_time_pair("time_type", "time_value", time_pair)
466466

467467
# no restriction of issues or dates since we want all issues
468468
# _handle_lag_issues_as_of(q, issues, lag, as_of)
@@ -638,7 +638,7 @@ def handle_coverage():
638638
else:
639639
q.where(geo_type=geo_type)
640640
q.where_source_signal_pairs("source", "signal", source_signal_pairs)
641-
q.where_time_pairs("time_type", "time_value", time_window)
641+
q.where_time_pair("time_type", "time_value", time_window)
642642
q.group_by = "c.source, c.signal, c.time_value"
643643
q.set_order("source", "signal", "time_value")
644644

tests/server/test_params.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -311,11 +311,11 @@ def test_parse_time_arg(self):
311311
with app.test_request_context("/?time=week:20121010"):
312312
self.assertRaises(ValidationFailedException, parse_time_arg)
313313
with app.test_request_context("/?time=day:*;week:*"):
314-
self.assertRaises(ValidationFailedException, parse_time_arg)
314+
self.assertRaisesRegex(ValidationFailedException, "mixes \"day\" and \"week\" time types", parse_time_arg)
315315
with app.test_request_context("/?time=day:20201201;week:202012"):
316-
self.assertRaises(ValidationFailedException, parse_time_arg)
316+
self.assertRaisesRegex(ValidationFailedException, "mixes \"day\" and \"week\" time types", parse_time_arg)
317317
with app.test_request_context("/?time=day:*;day:20202012;week:202101-202104"):
318-
self.assertRaises(ValidationFailedException, parse_time_arg)
318+
self.assertRaisesRegex(ValidationFailedException, "mixes \"day\" and \"week\" time types", parse_time_arg)
319319

320320
def test_parse_day_range_arg(self):
321321
with self.subTest("empty"):

tests/server/test_query.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
filter_dates,
1515
filter_geo_pairs,
1616
filter_source_signal_pairs,
17-
filter_time_pairs,
17+
filter_time_pair,
1818
)
1919
from delphi.epidata.server._params import (
2020
GeoPair,
@@ -245,57 +245,57 @@ def test_filter_source_signal_pairs(self):
245245
{"p_0t": "src1", "p_0t_0": "sig2", "p_1t": "src2", "p_1t_0": "srcx"},
246246
)
247247

248-
def test_filter_time_pairs(self):
248+
def test_filter_time_pair(self):
249249
with self.subTest("empty"):
250250
params = {}
251-
self.assertEqual(filter_time_pairs("t", "v", None, "p", params), "FALSE")
251+
self.assertEqual(filter_time_pair("t", "v", None, "p", params), "FALSE")
252252
self.assertEqual(params, {})
253253
with self.subTest("*"):
254254
params = {}
255255
self.assertEqual(
256-
filter_time_pairs("t", "v", TimePair("day", True), "p", params),
256+
filter_time_pair("t", "v", TimePair("day", True), "p", params),
257257
"(t = :p_0t)",
258258
)
259259
self.assertEqual(params, {"p_0t": "day"})
260260
with self.subTest("single"):
261261
params = {}
262262
self.assertEqual(
263-
filter_time_pairs("t", "v", TimePair("day", [20201201]), "p", params),
263+
filter_time_pair("t", "v", TimePair("day", [20201201]), "p", params),
264264
"((t = :p_0t AND (v = :p_0t_0)))",
265265
)
266266
self.assertEqual(params, {"p_0t": "day", "p_0t_0": 20201201})
267267
with self.subTest("multi"):
268268
params = {}
269269
self.assertEqual(
270-
filter_time_pairs("t", "v", TimePair("day", [20201201, 20201203]), "p", params),
270+
filter_time_pair("t", "v", TimePair("day", [20201201, 20201203]), "p", params),
271271
"((t = :p_0t AND (v = :p_0t_0 OR v = :p_0t_1)))",
272272
)
273273
self.assertEqual(params, {"p_0t": "day", "p_0t_0": 20201201, "p_0t_1": 20201203})
274274
with self.subTest("range"):
275275
params = {}
276276
self.assertEqual(
277-
filter_time_pairs("t", "v", TimePair("day", [(20201201, 20201203)]), "p", params),
277+
filter_time_pair("t", "v", TimePair("day", [(20201201, 20201203)]), "p", params),
278278
"((t = :p_0t AND (v BETWEEN :p_0t_0 AND :p_0t_0_2)))",
279279
)
280280
self.assertEqual(params, {"p_0t": "day", "p_0t_0": 20201201, "p_0t_0_2": 20201203})
281281
with self.subTest("dedupe"):
282282
params = {}
283283
self.assertEqual(
284-
filter_time_pairs("t", "v", TimePair("day", [20200101, 20200101, (20200101, 20200101), 20200101]), "p", params),
284+
filter_time_pair("t", "v", TimePair("day", [20200101, 20200101, (20200101, 20200101), 20200101]), "p", params),
285285
"((t = :p_0t AND (v = :p_0t_0)))",
286286
)
287287
self.assertEqual(params, {"p_0t": "day", "p_0t_0": 20200101})
288288
with self.subTest("merge single range"):
289289
params = {}
290290
self.assertEqual(
291-
filter_time_pairs("t", "v", TimePair("day", [20200101, 20200102, (20200101, 20200104)]), "p", params),
291+
filter_time_pair("t", "v", TimePair("day", [20200101, 20200102, (20200101, 20200104)]), "p", params),
292292
"((t = :p_0t AND (v BETWEEN :p_0t_0 AND :p_0t_0_2)))",
293293
)
294294
self.assertEqual(params, {"p_0t": "day", "p_0t_0": 20200101, "p_0t_0_2": 20200104})
295295
with self.subTest("merge ranges and singles"):
296296
params = {}
297297
self.assertEqual(
298-
filter_time_pairs("t", "v", TimePair("day", [20200101, 20200103, (20200105, 20200107)]), "p", params),
298+
filter_time_pair("t", "v", TimePair("day", [20200101, 20200103, (20200105, 20200107)]), "p", params),
299299
"((t = :p_0t AND (v = :p_0t_0 OR v = :p_0t_1 OR v BETWEEN :p_0t_2 AND :p_0t_2_2)))",
300300
)
301301
self.assertEqual(params, {"p_0t": "day", "p_0t_0": 20200101, "p_0t_1": 20200103, 'p_0t_2': 20200105, 'p_0t_2_2': 20200107})

0 commit comments

Comments
 (0)