Skip to content

Commit f71482e

Browse files
committed
mypy updates
1 parent 6f273af commit f71482e

File tree

6 files changed

+1332
-994
lines changed

6 files changed

+1332
-994
lines changed

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ types-setuptools = "*"
3232
types-pyyaml = "*"
3333
flake8-import-order = "*"
3434
pytest-cov = "*"
35+
types-dateparser = "*"
3536

3637
[requires]
3738
python_version = "3.10"

Pipfile.lock

Lines changed: 1209 additions & 871 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

shub_workflow/base.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ def is_finished(self, jobkey: JobKey) -> Optional[Outcome]:
6767
return self.__finished_cache.get(jobkey)
6868

6969
def base_loop_tasks(self):
70-
super().base_loop_tasks()
7170
for project_id in self.__update_finished_cache_called.keys():
7271
self.__update_finished_cache_called[project_id] = False
7372

shub_workflow/utils/sesemail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class SESHelper:
2222

2323
DEFAULT_EMAIL_SUBJECT_PREFIX = "[Zyte]"
2424
DEFAULT_EMAIL_SUBJECT = "Notification from Zyte"
25-
DEFAULT_FROM_ADDR = None
25+
DEFAULT_FROM_ADDR: str
2626

2727
def __init__(self, aws_key: str, aws_secret: str, aws_region: Optional[str] = None):
2828
self.aws_key = aws_key

tests/test_crawl_manager.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ def test_schedule_spider(self, mocked_super_schedule_spider, mocked_add_job_tags
7171
mocked_super_schedule_spider.assert_any_call("myspider", units=None, job_settings={})
7272

7373
# second loop: spider still running. Continue.
74-
manager.is_finished = lambda x: None
74+
manager.is_finished = lambda jobkey: None
7575
result = next(manager._run_loops())
7676
self.assertTrue(result)
7777

7878
# third loop: spider is finished. Stop.
79-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/1" else None
79+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/1" else None
8080
mocked_super_schedule_spider.reset_mock()
8181
result = next(manager._run_loops())
8282

@@ -116,12 +116,12 @@ def test_schedule_spider_bad_outcome(self, mocked_super_schedule_spider, mocked_
116116
mocked_super_schedule_spider.assert_any_call("myspider", units=None, job_settings={})
117117

118118
# second loop: spider still running. Continue.
119-
manager.is_finished = lambda x: None
119+
manager.is_finished = lambda jobkey: None
120120
result = next(manager._run_loops())
121121
self.assertTrue(result)
122122

123123
# third loop: spider is cancelled. Stop. Manager must be closed with cancelled close reason
124-
manager.is_finished = lambda x: Outcome("cancelled") if x == "999/1/1" else None
124+
manager.is_finished = lambda jobkey: Outcome("cancelled") if jobkey == "999/1/1" else None
125125
mocked_super_schedule_spider.reset_mock()
126126
result = next(manager._run_loops())
127127

@@ -155,12 +155,12 @@ def test_schedule_spider_with_resume(self, mocked_super_schedule_spider, mocked_
155155
mocked_add_job_tags.assert_any_call(tags=["FLOW_ID=3a20", "NAME=test", "OTHER=other"])
156156

157157
# first loop: spider still running in workflow. Continue.
158-
manager.is_finished = lambda x: None
158+
manager.is_finished = lambda jobkey: None
159159
result = next(manager._run_loops())
160160
self.assertTrue(result)
161161

162162
# second loop: spider is finished. Stop.
163-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/1" else None
163+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/1" else None
164164
result = next(manager._run_loops())
165165

166166
self.assertFalse(result)
@@ -203,14 +203,14 @@ def test_schedule_spider_with_resume_not_owned(
203203
self.assertEqual(len(manager._running_job_keys), 0)
204204

205205
# first loop: no spider, schedule one.
206-
manager.is_finished = lambda x: None
206+
manager.is_finished = lambda jobkey: None
207207
mocked_super_schedule_spider.side_effect = ["999/1/2"]
208208
result = next(manager._run_loops())
209209
self.assertTrue(result)
210210
self.assertEqual(mocked_super_schedule_spider.call_count, 1)
211211

212212
# second loop: spider is finished. Stop.
213-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/2" else None
213+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/2" else None
214214
result = next(manager._run_loops())
215215

216216
self.assertFalse(result)
@@ -231,12 +231,12 @@ def test_schedule_spider_periodic(self, mocked_super_schedule_spider, mocked_add
231231
mocked_super_schedule_spider.assert_any_call("myspider", units=None, job_settings={})
232232

233233
# second loop: spider still running. Continue.
234-
manager.is_finished = lambda x: None
234+
manager.is_finished = lambda jobkey: None
235235
result = next(manager._run_loops())
236236
self.assertTrue(result)
237237

238238
# third loop: spider is finished. Schedule again.
239-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/1" else None
239+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/1" else None
240240
mocked_super_schedule_spider.reset_mock()
241241
mocked_super_schedule_spider.side_effect = ["999/1/2"]
242242
result = next(manager._run_loops())
@@ -245,7 +245,7 @@ def test_schedule_spider_periodic(self, mocked_super_schedule_spider, mocked_add
245245
mocked_super_schedule_spider.assert_any_call("myspider", units=None, job_settings={})
246246

247247
# four loop: spider is cancelled. Schedule again.
248-
manager.is_finished = lambda x: Outcome("cancelled") if x == "999/1/2" else None
248+
manager.is_finished = lambda jobkey: Outcome("cancelled") if jobkey == "999/1/2" else None
249249
mocked_super_schedule_spider.reset_mock()
250250
mocked_super_schedule_spider.side_effect = ["999/1/3"]
251251
result = next(manager._run_loops())
@@ -276,13 +276,13 @@ def test_schedule_spider_list_bad_outcome_hook(
276276
)
277277

278278
# second loop: still no job finished. Wait for a free slot
279-
manager.is_finished = lambda x: None
279+
manager.is_finished = lambda jobkey: None
280280
result = next(manager._run_loops())
281281
self.assertTrue(result)
282282
self.assertEqual(mocked_super_schedule_spider.call_count, 2)
283283

284284
# third loop: finish one job. We can schedule last one with third set of arguments
285-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/1" else None
285+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/1" else None
286286
result = next(manager._run_loops())
287287
self.assertTrue(result)
288288
self.assertEqual(mocked_super_schedule_spider.call_count, 3)
@@ -297,7 +297,7 @@ def test_schedule_spider_list_bad_outcome_hook(
297297

298298
# fifth loop: second job finished with failed outcome. Retry according
299299
# to bad outcome hook
300-
manager.is_finished = lambda x: Outcome("cancelled (stalled)") if x == "999/1/2" else None
300+
manager.is_finished = lambda jobkey: Outcome("cancelled (stalled)") if jobkey == "999/1/2" else None
301301
result = next(manager._run_loops())
302302
self.assertTrue(result)
303303
self.assertEqual(mocked_super_schedule_spider.call_count, 4)
@@ -306,13 +306,13 @@ def test_schedule_spider_list_bad_outcome_hook(
306306
)
307307

308308
# sixth loop: third job finished.
309-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/3" else None
309+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/3" else None
310310
result = next(manager._run_loops())
311311
self.assertTrue(result)
312312
self.assertEqual(mocked_super_schedule_spider.call_count, 4)
313313

314314
# seventh loop: retried job failed again. Retry with new argument.
315-
manager.is_finished = lambda x: Outcome("memusage_exceeded") if x == "999/1/4" else None
315+
manager.is_finished = lambda jobkey: Outcome("memusage_exceeded") if jobkey == "999/1/4" else None
316316
result = next(manager._run_loops())
317317
self.assertTrue(result)
318318
self.assertEqual(mocked_super_schedule_spider.call_count, 5)
@@ -321,7 +321,7 @@ def test_schedule_spider_list_bad_outcome_hook(
321321
)
322322

323323
# eighth loop: retried job finished. Exit.
324-
manager.is_finished = lambda x: Outcome("finished") if x == "999/1/5" else None
324+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/1/5" else None
325325
result = next(manager._run_loops())
326326
self.assertFalse(result)
327327
self.assertEqual(mocked_super_schedule_spider.call_count, 5)
@@ -449,7 +449,7 @@ def set_parameters_gen(self):
449449
self.assertEqual(len(manager._running_job_keys), 0)
450450

451451
# first loop: only second task will be scheduled. First one already completed before resuming.
452-
manager.is_finished = lambda x: None
452+
manager.is_finished = lambda jobkey: None
453453
result = next(manager._run_loops())
454454
self.assertTrue(result)
455455
self.assertEqual(mocked_super_schedule_spider.call_count, 1)
@@ -458,7 +458,7 @@ def set_parameters_gen(self):
458458
)
459459

460460
# second loop: finished second spider. Finish execution
461-
manager.is_finished = lambda x: Outcome("finished") if x == "999/2/1" else None
461+
manager.is_finished = lambda jobkey: Outcome("finished") if jobkey == "999/2/1" else None
462462
result = next(manager._run_loops())
463463
self.assertEqual(mocked_super_schedule_spider.call_count, 1)
464464
self.assertFalse(result)
@@ -507,14 +507,14 @@ def set_parameters_gen(self):
507507
self.assertEqual(set(v[1].keys()), {"spider_args", "tags"})
508508

509509
# first loop: acquire running job.
510-
manager.is_finished = lambda x: None
510+
manager.is_finished = lambda jobkey: None
511511
result = next(manager._run_loops())
512512
self.assertTrue(result)
513513
self.assertEqual(mocked_super_schedule_spider.call_count, 0)
514514

515515
# second loop: second job finished with failed outcome. Retry according
516516
# to bad outcome hook
517-
manager.is_finished = lambda x: Outcome("cancelled (stalled)")
517+
manager.is_finished = lambda jobkey: Outcome("cancelled (stalled)")
518518
mocked_super_schedule_spider.side_effect = ["999/2/2"]
519519
result = next(manager._run_loops())
520520
self.assertTrue(result)
@@ -559,7 +559,7 @@ def set_parameters_gen(self):
559559
)
560560

561561
# second loop: finish job with bad outcome, but there is no retry. Stop.
562-
manager.is_finished = lambda x: Outcome("cancelled (stalled)") if x == "999/1/1" else None
562+
manager.is_finished = lambda jobkey: Outcome("cancelled (stalled)") if jobkey == "999/1/1" else None
563563
result = next(manager._run_loops())
564564
self.assertFalse(result)
565565
self.assertEqual(mocked_super_schedule_spider.call_count, 1)
@@ -602,7 +602,7 @@ def set_parameters_gen(self):
602602
)
603603

604604
# second loop: finish first job with bad outcome, retry 1.
605-
manager.is_finished = lambda x: Outcome("cancelled (stalled)") if x == "999/1/1" else None
605+
manager.is_finished = lambda jobkey: Outcome("cancelled (stalled)") if jobkey == "999/1/1" else None
606606
mocked_super_schedule_spider.side_effect = ["999/1/2"]
607607
result = next(manager._run_loops())
608608
self.assertTrue(result)
@@ -612,13 +612,13 @@ def set_parameters_gen(self):
612612
)
613613

614614
# second loop: second job finishes with "cancelled", don't retry it.
615-
manager.is_finished = lambda x: Outcome("cancelled") if x == "999/2/1" else None
615+
manager.is_finished = lambda jobkey: Outcome("cancelled") if jobkey == "999/2/1" else None
616616
result = next(manager._run_loops())
617617
self.assertTrue(result)
618618
self.assertEqual(mocked_super_schedule_spider.call_count, 3)
619619

620620
# third loop: first job finishes again with abnormal reason, retry it.
621-
manager.is_finished = lambda x: Outcome("cancelled (stalled)") if x == "999/1/2" else None
621+
manager.is_finished = lambda jobkey: Outcome("cancelled (stalled)") if jobkey == "999/1/2" else None
622622
mocked_super_schedule_spider.side_effect = ["999/1/3"]
623623
result = next(manager._run_loops())
624624
self.assertTrue(result)
@@ -628,7 +628,7 @@ def set_parameters_gen(self):
628628
)
629629

630630
# fourth loop: first job finishes again with abnormal reason, but max retries reached. Stop.
631-
manager.is_finished = lambda x: Outcome("cancelled (stalled)") if x == "999/1/3" else None
631+
manager.is_finished = lambda jobkey: Outcome("cancelled (stalled)") if jobkey == "999/1/3" else None
632632
result = next(manager._run_loops())
633633
self.assertFalse(result)
634634
self.assertEqual(mocked_super_schedule_spider.call_count, 4)

0 commit comments

Comments
 (0)