warn-scraper 1.2.151.dev0__tar.gz → 1.2.152.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. {warn_scraper-1.2.151.dev0/warn_scraper.egg-info → warn_scraper-1.2.152.dev0}/PKG-INFO +1 -1
  2. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/Pipfile.lock +47 -47
  3. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/al.py +5 -1
  4. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/utils.py +3 -3
  5. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0/warn_scraper.egg-info}/PKG-INFO +1 -1
  6. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.devcontainer/devcontainer.json +0 -0
  7. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/dependabot-disabled.yml +0 -0
  8. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/workflows/continuous-deployment.yml +0 -0
  9. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/workflows/continuous-deployment.yml.broken-tests +0 -0
  10. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.gitignore +0 -0
  11. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.pre-commit-config.yaml +0 -0
  12. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/LICENSE +0 -0
  13. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/MANIFEST.in +0 -0
  14. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/Makefile +0 -0
  15. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/Pipfile +0 -0
  16. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/README.md +0 -0
  17. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/Makefile +0 -0
  18. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/R42693.pdf +0 -0
  19. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/gao-03-1003.pdf +0 -0
  20. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-actions-finished.png +0 -0
  21. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-actions-start.png +0 -0
  22. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-changelog-button.png +0 -0
  23. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-changelog-entered.png +0 -0
  24. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-draft-button.png +0 -0
  25. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-name-release.png +0 -0
  26. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-name-tag.png +0 -0
  27. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-publish-button.png +0 -0
  28. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-pypi.png +0 -0
  29. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-release-published.png +0 -0
  30. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-releases-button.png +0 -0
  31. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-tag-button.png +0 -0
  32. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_templates/sources.md.tmpl +0 -0
  33. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/conf.py +0 -0
  34. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/contributing.rst +0 -0
  35. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/index.rst +0 -0
  36. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/make.bat +0 -0
  37. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/reference.rst +0 -0
  38. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/releasing.md +0 -0
  39. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/requirements.txt +0 -0
  40. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/al.md +0 -0
  41. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/az.md +0 -0
  42. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ca.md +0 -0
  43. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/co.md +0 -0
  44. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/dc.md +0 -0
  45. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/de.md +0 -0
  46. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ia.md +0 -0
  47. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/in.md +0 -0
  48. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/job_center.md +0 -0
  49. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ks.md +0 -0
  50. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/md.md +0 -0
  51. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/me.md +0 -0
  52. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/mo.md +0 -0
  53. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ny.md +0 -0
  54. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ok.md +0 -0
  55. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/or.md +0 -0
  56. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/sc.md +0 -0
  57. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/tx.md +0 -0
  58. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ut.md +0 -0
  59. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/va.md +0 -0
  60. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/vt.md +0 -0
  61. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/wi.md +0 -0
  62. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/sources.md +0 -0
  63. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/usage.md +0 -0
  64. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/pyproject.toml +0 -0
  65. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/setup.cfg +0 -0
  66. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/setup.py +0 -0
  67. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/__init__.py +0 -0
  68. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_cached_detail_pages.yaml +0 -0
  69. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_cached_search_results.yaml +0 -0
  70. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_missing_detail_page_values.yaml +0 -0
  71. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_no_results.yaml +0 -0
  72. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_paged_results.yaml +0 -0
  73. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_scrape_integration.yaml +0 -0
  74. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/conftest.py +0 -0
  75. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/fixtures/2021_page_1.html +0 -0
  76. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/fixtures/2021_page_2.html +0 -0
  77. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_cache.py +0 -0
  78. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_delete.py +0 -0
  79. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_job_center.py +0 -0
  80. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_job_center_cache.py +0 -0
  81. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_openpyxl.py +0 -0
  82. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/__init__.py +0 -0
  83. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/cache.py +0 -0
  84. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/cli.py +0 -0
  85. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/__init__.py +0 -0
  86. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/__init__.py +0 -0
  87. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/cache.py +0 -0
  88. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/site.py +0 -0
  89. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/urls.py +0 -0
  90. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/utils.py +0 -0
  91. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/runner.py +0 -0
  92. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/__init__.py +0 -0
  93. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ak.py +0 -0
  94. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/az.py +0 -0
  95. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ca.py +0 -0
  96. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/co.py +0 -0
  97. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ct.py +0 -0
  98. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/dc.py +0 -0
  99. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/de.py +0 -0
  100. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/fl.py +0 -0
  101. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ga.py +0 -0
  102. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/hi.py +0 -0
  103. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ia.py +0 -0
  104. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/id.py +0 -0
  105. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/il.py +0 -0
  106. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/in.py +0 -0
  107. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ks.py +0 -0
  108. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ky.py +0 -0
  109. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/la.py +0 -0
  110. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/md.py +0 -0
  111. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/me.py +0 -0
  112. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/mi.py +0 -0
  113. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/mo.py +0 -0
  114. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/mt.py +0 -0
  115. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ne.py +0 -0
  116. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/nj.py +0 -0
  117. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/nm.py +0 -0
  118. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ny.py +0 -0
  119. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/oh.py +0 -0
  120. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ok.py +0 -0
  121. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/or.py +0 -0
  122. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/pa.py +0 -0
  123. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ri.py +0 -0
  124. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/sc.py +0 -0
  125. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/sd.py +0 -0
  126. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/tn.py +0 -0
  127. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/tx.py +0 -0
  128. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ut.py +0 -0
  129. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/va.py +0 -0
  130. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/vt.py +0 -0
  131. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/wa.py +0 -0
  132. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/wi.py +0 -0
  133. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/SOURCES.txt +0 -0
  134. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/dependency_links.txt +0 -0
  135. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/entry_points.txt +0 -0
  136. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/requires.txt +0 -0
  137. {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warn-scraper
3
- Version: 1.2.151.dev0
3
+ Version: 1.2.152.dev0
4
4
  Summary: Command-line interface for downloading WARN Act notices of qualified plant closings and mass layoffs from state government websites
5
5
  Author-email: Big Local News <biglocalnews@stanford.edu>
6
6
  License-Expression: Apache-2.0
@@ -393,11 +393,11 @@
393
393
  },
394
394
  "idna": {
395
395
  "hashes": [
396
- "sha256:cc246e3a3f89580c3a951b5ad298ca4638078b2cdd4f115654332b5c26daded5",
397
- "sha256:d7a6da03db833450fca25d2358ac9ff06cd624577a4aea3a596d5c0f77b8e03d"
396
+ "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2",
397
+ "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"
398
398
  ],
399
399
  "markers": "python_version >= '3.9'",
400
- "version": "==3.16"
400
+ "version": "==3.18"
401
401
  },
402
402
  "lxml": {
403
403
  "hashes": [
@@ -697,31 +697,31 @@
697
697
  },
698
698
  "pypdfium2": {
699
699
  "hashes": [
700
- "sha256:049397c647e50f83115ee951c49394dab9e9ba52ebdd5a11ab1109390eb3d34e",
701
- "sha256:04ca7c57a553facf8d46c6ea8ba6fa557e698670cfa4a58e0e01fdae2f6be87d",
702
- "sha256:085e633dcc89b65ff4035a4787e98ce7ae636836eb39c83dd0db26113d9774bc",
703
- "sha256:1c038a9290864aaa4862dd32e591993d82551ca4d152b4e8ce6d43ba37dc04a8",
704
- "sha256:26c1089cdbbdc7fe1248f6d17fe3f30214be4f287dd0196b31aaee18a1564240",
705
- "sha256:388e3119cf5ca0979b7d5f6d40b7fcd5ab49e17ed4e6de6af89ba116061acfda",
706
- "sha256:3f17ed97ae8a5a1705301ca93af256a5b02f9009dee4e99c5e175831d46ebd7c",
707
- "sha256:3f25fd436920a907291462b41bdc0ab9f8235c3944b4c9c15398da595ffd1fed",
708
- "sha256:53e82bf3e6a2da170b1bda83f93b7eec57cb6efe3cacd05cba78823879a85203",
709
- "sha256:55592af0bddd2d62bed18e0053c546c9b72041430c5115e54870f7f6163125b0",
710
- "sha256:6be9dc2b84a8694ad7e626bab133244e8241014d5ed1930d865a9bdf90df1e24",
711
- "sha256:7f27bd82891ae302dd02d736b14809661f6d1220ee1e96dbed9b23e2811922a3",
712
- "sha256:86d302e207c138c827b885a72784f7b306d840646ebeae07e8efdbc39321c629",
713
- "sha256:937881c1698456749ed203a58db1895baa5eb7178cdb837ef84867790638da28",
714
- "sha256:a3c78f7d20dd821bec6c072efdb21a1370b9efe10fdeeb68c969e67608e25385",
715
- "sha256:a63bf09b2e13ba8545c930d243f0650c664a1b51314daa3b5f38df6d1a17b4bc",
716
- "sha256:aa05bbfa485ce7916217aa78d856c9f9cd86b08b20846c650392a67975ee72e9",
717
- "sha256:ad42b9c22477b32dbedcbc8232833f385d92fd0cf92822547b02383cf9a476d7",
718
- "sha256:bc84b7c6efede88fcfb9467f81daf416f26b973a54fc1cf4d3410d622fda6d7a",
719
- "sha256:f0813a16bb39d5ebd173ea5484430bb67a89b4b181db0a636c73b64ad063c3ea",
720
- "sha256:f104bc1a6d8bfc1ff088aa50db13b9729cfdb3722b44975c3c457e9a7b9c7318",
721
- "sha256:f67b6c74b716d9ac725ad1af49ae786ad813ac20823d45606d59f1fc06caa8af"
700
+ "sha256:040f5513b808db705d4878f57e2bf0b9dc6e6a0ad8d765c36cf62febf3933b28",
701
+ "sha256:06508c33b9772cf3878e48364c6e14c70cefc18a3abd6983ac9f338da9305275",
702
+ "sha256:07e6ba170d577eabf60dbba701d051c64318dd029d38ca5907d83ae1a66fe779",
703
+ "sha256:1894511a0e862e7ec5679f3a6dc43ac72c4ef92c7ca438357203913e8634a643",
704
+ "sha256:1d902e03dff5efd51d93cd23d3e55bde53802fa6207bcd0e455239518859a069",
705
+ "sha256:25ff1a5abd08ff9e87f62e5dac114ea95647c257fbbdbe029be8db71a6d7650b",
706
+ "sha256:38a058dbd4929acaf0ab9171179eb86c24d8c6655a6836006796105a9f200890",
707
+ "sha256:565ddfc98795fd2f6054b544ee9791d7b9032f9cf77a57891b6e501fafd0ef3f",
708
+ "sha256:6c4fbe3a7190b329c526358fb2855d797f7b74b5ecfc61d19657ef20bcebc108",
709
+ "sha256:6cf38d7ad3575947b82384869f2ab69ba345eb21d83118d25db3e83f967b0421",
710
+ "sha256:77f7479a28b43aa658735e3ce79cfd1fccd5d42db035c21bb4c26e8bd7e280e5",
711
+ "sha256:7cdc8e5d2f8d82add1e4f70a4fbe5f3b33c17f301ebde38c669fd7f78a7d032c",
712
+ "sha256:7ce3a3dd23ec0adaa079d8be54565ba2aa2f6060e76a4989cd42dabc163d74ee",
713
+ "sha256:90610d352f050b065b703f3a46602a852fce7dd8787300c8c7a472485b644d8f",
714
+ "sha256:91914837c4a4285b3e0724a84eca8079363db7475acbcab405933d1807785664",
715
+ "sha256:ae177938f5cf95a275db25a4f8553e2ebd954ecda2f9bc84848ba4b027ce438f",
716
+ "sha256:b0057dc8c2033584dc3e61afb5f23a135dab52b081695b435e27f9b7b074c605",
717
+ "sha256:b7b760bc2957ecf73c274af6ed8b168a2dcb328ac0a0f7ed6123cd92f6e7c9c9",
718
+ "sha256:db1274bd27844db6fda17ef1dbcd0026c47d357437058d838e98060c0da9e92e",
719
+ "sha256:e93f0cf440169a3e445e6fbd06c803877e7418f3e13254287875cb67f208bb5a",
720
+ "sha256:f4991ae39bcea757552579bba4aebfaedb71c96dd35c2292f957b8ac9132f1ff",
721
+ "sha256:ffe49edde2ac86f28ca7e58f565255a442f38a7508fff31b79a55f508f25a31e"
722
722
  ],
723
723
  "markers": "python_version >= '3.6'",
724
- "version": "==5.8.0"
724
+ "version": "==5.9.0"
725
725
  },
726
726
  "pyquery": {
727
727
  "hashes": [
@@ -1503,10 +1503,10 @@
1503
1503
  },
1504
1504
  "distlib": {
1505
1505
  "hashes": [
1506
- "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16",
1507
- "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d"
1506
+ "sha256:9c2c552c68cbadc619f2d0ed3a69e27c351a3f4c9baa9ffb7df9e9cdc3d19a97",
1507
+ "sha256:c3804d0d2d4b5fcd44036eb860cb6660485fcdf5c2aba53dc324d805837ea65b"
1508
1508
  ],
1509
- "version": "==0.4.0"
1509
+ "version": "==0.4.1"
1510
1510
  },
1511
1511
  "docutils": {
1512
1512
  "hashes": [
@@ -1577,11 +1577,11 @@
1577
1577
  },
1578
1578
  "idna": {
1579
1579
  "hashes": [
1580
- "sha256:cc246e3a3f89580c3a951b5ad298ca4638078b2cdd4f115654332b5c26daded5",
1581
- "sha256:d7a6da03db833450fca25d2358ac9ff06cd624577a4aea3a596d5c0f77b8e03d"
1580
+ "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2",
1581
+ "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"
1582
1582
  ],
1583
1583
  "markers": "python_version >= '3.9'",
1584
- "version": "==3.16"
1584
+ "version": "==3.18"
1585
1585
  },
1586
1586
  "imagesize": {
1587
1587
  "hashes": [
@@ -2343,11 +2343,11 @@
2343
2343
  },
2344
2344
  "platformdirs": {
2345
2345
  "hashes": [
2346
- "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a",
2347
- "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917"
2346
+ "sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7",
2347
+ "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a"
2348
2348
  ],
2349
2349
  "markers": "python_version >= '3.10'",
2350
- "version": "==4.9.6"
2350
+ "version": "==4.10.0"
2351
2351
  },
2352
2352
  "pluggy": {
2353
2353
  "hashes": [
@@ -2443,11 +2443,11 @@
2443
2443
  },
2444
2444
  "python-discovery": {
2445
2445
  "hashes": [
2446
- "sha256:62f6db28064c9613e7ca76cb3f00c38c839a07c31c00dfe7ed0986493d2150a6",
2447
- "sha256:ed188687ebb3b82c01a17cd5ac62fc94d9f6487a7f1a0f9dfe89753fec91039c"
2446
+ "sha256:26ed78d703e234879a66244c7d4114563fb13ec5cd30a2d1357e5fb4850782da",
2447
+ "sha256:eb8bc7daad3c226c147e45bb4e970a1feb1bf4048ee178e6db59e197b8010ce3"
2448
2448
  ],
2449
2449
  "markers": "python_version >= '3.8'",
2450
- "version": "==1.3.1"
2450
+ "version": "==1.4.0"
2451
2451
  },
2452
2452
  "pytokens": {
2453
2453
  "hashes": [
@@ -2655,11 +2655,11 @@
2655
2655
  },
2656
2656
  "snowballstemmer": {
2657
2657
  "hashes": [
2658
- "sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154",
2659
- "sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f"
2658
+ "sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752",
2659
+ "sha256:e07bbc54a0d798fe6010a12398422e62a8bfbba95c394fd0956ef58cb4d3e260"
2660
2660
  ],
2661
2661
  "markers": "python_version >= '3.3'",
2662
- "version": "==3.1.0"
2662
+ "version": "==3.1.1"
2663
2663
  },
2664
2664
  "sphinx": {
2665
2665
  "hashes": [
@@ -2734,11 +2734,11 @@
2734
2734
  },
2735
2735
  "starlette": {
2736
2736
  "hashes": [
2737
- "sha256:7f0dfd38e428aad5cb6f9f667f0ca1d2d8ca3f3385dccac8305f79ec98458382",
2738
- "sha256:e83c7fe0ddecd8719c5b840080325aec0260acec86e9832899e377b91d65e90f"
2737
+ "sha256:4de0082d08c8f6764a85a54cf1120d6939507a19905c7768acad2a9f875d2b89",
2738
+ "sha256:9b9b5ebb992e67d6093741e63c2f59e4f6fff986f81163c087867bd7b924b3f6"
2739
2739
  ],
2740
2740
  "markers": "python_version >= '3.10'",
2741
- "version": "==1.1.0"
2741
+ "version": "==1.2.1"
2742
2742
  },
2743
2743
  "twine": {
2744
2744
  "hashes": [
@@ -2856,11 +2856,11 @@
2856
2856
  },
2857
2857
  "virtualenv": {
2858
2858
  "hashes": [
2859
- "sha256:7d5987d8369e098e41406efb780a3d4ca79280097293899e351a6407ee153ab3",
2860
- "sha256:f5bda277e553b1c2b3c1a8debfc30496e1288cc93ce6b7b71b3280047e317328"
2859
+ "sha256:38e6ee0a555615c0ea9da2ac7e9998fe8dc3b911dd33ad8eaad2020957653b0c",
2860
+ "sha256:854210ca524a1a4d0d744734f4acbc721c3ffe163b85bbf5d56d14d5ae2f0fae"
2861
2861
  ],
2862
2862
  "markers": "python_version >= '3.8'",
2863
- "version": "==21.3.3"
2863
+ "version": "==21.4.2"
2864
2864
  },
2865
2865
  "watchfiles": {
2866
2866
  "hashes": [
@@ -32,11 +32,15 @@ def scrape(
32
32
  Returns: the Path where the file is written
33
33
  """
34
34
  output_csv = data_dir / "al.csv"
35
- page = utils.get_url("https://www.madeinalabama.com/warn-list/")
35
+ # page = utils.get_url("https://www.madeinalabama.com/warn-list/")
36
+ # URL change in June 2026, maybe led to a HTTP 415 error
37
+ page = utils.get_url("https://workforce.alabama.gov/warn-list/")
38
+
36
39
  # can't see 2020 listings when I open web page, but they are on the summary in the google search
37
40
  soup = BeautifulSoup(page.text, "html.parser")
38
41
  table = soup.find_all("table") # output is list-type
39
42
  table_rows = table[0].find_all("tr")
43
+ logger.debug(f"{len(table_rows):,} total table rows (including header) found")
40
44
  # Handle the header
41
45
  raw_header = table_rows.pop(0)
42
46
  header_row = _extract_fields_from_row(raw_header, "th")
@@ -213,7 +213,7 @@ def write_rows_to_csv(output_path: Path, rows: list, mode="w"):
213
213
  mode (str): the mode to be used when opening the file (default 'w')
214
214
  """
215
215
  create_directory(output_path, is_file=True)
216
- logger.debug(f"Writing {len(rows)} rows to {output_path}")
216
+ logger.debug(f"Writing {len(rows):,} rows to {output_path}")
217
217
  with open(output_path, mode, newline="", encoding="utf-8") as f:
218
218
  writer = csv.writer(f)
219
219
  writer.writerows(rows)
@@ -230,7 +230,7 @@ def write_dict_rows_to_csv(output_path, headers, rows, mode="w", extrasaction="r
230
230
  extrasaction (str): what to do if the if a field isn't in the headers (default 'raise')
231
231
  """
232
232
  create_directory(output_path, is_file=True)
233
- logger.debug(f"Writing {len(rows)} rows to {output_path}")
233
+ logger.debug(f"Writing {len(rows):,} rows to {output_path}")
234
234
  with open(output_path, mode, newline="") as f:
235
235
  # Create the writer object
236
236
  writer = csv.DictWriter(f, fieldnames=headers, extrasaction=extrasaction)
@@ -258,7 +258,7 @@ def write_disparate_dict_rows_to_csv(output_path, rows, mode="w"):
258
258
  headers.add(item)
259
259
  headers = list(sorted(headers))
260
260
  logger.debug(f"Found {len(headers):,} header entries in list of dicts.")
261
- logger.debug(f"Writing {len(rows)} rows to {output_path}")
261
+ logger.debug(f"Writing {len(rows):,} rows to {output_path}")
262
262
  with open(output_path, mode, newline="") as outfile:
263
263
  # Create the writer object
264
264
  writer = csv.writer(outfile)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warn-scraper
3
- Version: 1.2.151.dev0
3
+ Version: 1.2.152.dev0
4
4
  Summary: Command-line interface for downloading WARN Act notices of qualified plant closings and mass layoffs from state government websites
5
5
  Author-email: Big Local News <biglocalnews@stanford.edu>
6
6
  License-Expression: Apache-2.0