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.
- {warn_scraper-1.2.151.dev0/warn_scraper.egg-info → warn_scraper-1.2.152.dev0}/PKG-INFO +1 -1
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/Pipfile.lock +47 -47
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/al.py +5 -1
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/utils.py +3 -3
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0/warn_scraper.egg-info}/PKG-INFO +1 -1
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.devcontainer/devcontainer.json +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/dependabot-disabled.yml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/workflows/continuous-deployment.yml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/workflows/continuous-deployment.yml.broken-tests +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.gitignore +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.pre-commit-config.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/LICENSE +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/MANIFEST.in +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/Makefile +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/Pipfile +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/README.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/Makefile +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/R42693.pdf +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/gao-03-1003.pdf +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-actions-finished.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-actions-start.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-changelog-button.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-changelog-entered.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-draft-button.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-name-release.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-name-tag.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-publish-button.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-pypi.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-release-published.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-releases-button.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-tag-button.png +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_templates/sources.md.tmpl +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/conf.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/contributing.rst +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/index.rst +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/make.bat +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/reference.rst +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/releasing.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/requirements.txt +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/al.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/az.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ca.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/co.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/dc.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/de.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ia.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/in.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/job_center.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ks.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/md.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/me.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/mo.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ny.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ok.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/or.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/sc.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/tx.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/ut.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/va.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/vt.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/scrapers/wi.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/sources.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/usage.md +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/pyproject.toml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/setup.cfg +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/setup.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/__init__.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_cached_detail_pages.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_cached_search_results.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_missing_detail_page_values.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_no_results.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_paged_results.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_scrape_integration.yaml +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/conftest.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/fixtures/2021_page_1.html +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/fixtures/2021_page_2.html +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_cache.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_delete.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_job_center.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_job_center_cache.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/test_openpyxl.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/__init__.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/cache.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/cli.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/__init__.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/__init__.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/cache.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/site.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/urls.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/utils.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/runner.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/__init__.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ak.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/az.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ca.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/co.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ct.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/dc.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/de.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/fl.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ga.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/hi.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ia.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/id.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/il.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/in.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ks.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ky.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/la.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/md.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/me.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/mi.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/mo.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/mt.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ne.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/nj.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/nm.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ny.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/oh.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ok.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/or.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/pa.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ri.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/sc.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/sd.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/tn.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/tx.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/ut.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/va.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/vt.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/wa.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/scrapers/wi.py +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/SOURCES.txt +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/dependency_links.txt +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/entry_points.txt +0 -0
- {warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/requires.txt +0 -0
- {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.
|
|
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:
|
|
397
|
-
"sha256:
|
|
396
|
+
"sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2",
|
|
397
|
+
"sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"
|
|
398
398
|
],
|
|
399
399
|
"markers": "python_version >= '3.9'",
|
|
400
|
-
"version": "==3.
|
|
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:
|
|
701
|
-
"sha256:
|
|
702
|
-
"sha256:
|
|
703
|
-
"sha256:
|
|
704
|
-
"sha256:
|
|
705
|
-
"sha256:
|
|
706
|
-
"sha256:
|
|
707
|
-
"sha256:
|
|
708
|
-
"sha256:
|
|
709
|
-
"sha256:
|
|
710
|
-
"sha256:
|
|
711
|
-
"sha256:
|
|
712
|
-
"sha256:
|
|
713
|
-
"sha256:
|
|
714
|
-
"sha256:
|
|
715
|
-
"sha256:
|
|
716
|
-
"sha256:
|
|
717
|
-
"sha256:
|
|
718
|
-
"sha256:
|
|
719
|
-
"sha256:
|
|
720
|
-
"sha256:
|
|
721
|
-
"sha256:
|
|
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.
|
|
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:
|
|
1507
|
-
"sha256:
|
|
1506
|
+
"sha256:9c2c552c68cbadc619f2d0ed3a69e27c351a3f4c9baa9ffb7df9e9cdc3d19a97",
|
|
1507
|
+
"sha256:c3804d0d2d4b5fcd44036eb860cb6660485fcdf5c2aba53dc324d805837ea65b"
|
|
1508
1508
|
],
|
|
1509
|
-
"version": "==0.4.
|
|
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:
|
|
1581
|
-
"sha256:
|
|
1580
|
+
"sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2",
|
|
1581
|
+
"sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"
|
|
1582
1582
|
],
|
|
1583
1583
|
"markers": "python_version >= '3.9'",
|
|
1584
|
-
"version": "==3.
|
|
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:
|
|
2347
|
-
"sha256:
|
|
2346
|
+
"sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7",
|
|
2347
|
+
"sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a"
|
|
2348
2348
|
],
|
|
2349
2349
|
"markers": "python_version >= '3.10'",
|
|
2350
|
-
"version": "==4.
|
|
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:
|
|
2447
|
-
"sha256:
|
|
2446
|
+
"sha256:26ed78d703e234879a66244c7d4114563fb13ec5cd30a2d1357e5fb4850782da",
|
|
2447
|
+
"sha256:eb8bc7daad3c226c147e45bb4e970a1feb1bf4048ee178e6db59e197b8010ce3"
|
|
2448
2448
|
],
|
|
2449
2449
|
"markers": "python_version >= '3.8'",
|
|
2450
|
-
"version": "==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:
|
|
2659
|
-
"sha256:
|
|
2658
|
+
"sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752",
|
|
2659
|
+
"sha256:e07bbc54a0d798fe6010a12398422e62a8bfbba95c394fd0956ef58cb4d3e260"
|
|
2660
2660
|
],
|
|
2661
2661
|
"markers": "python_version >= '3.3'",
|
|
2662
|
-
"version": "==3.1.
|
|
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:
|
|
2738
|
-
"sha256:
|
|
2737
|
+
"sha256:4de0082d08c8f6764a85a54cf1120d6939507a19905c7768acad2a9f875d2b89",
|
|
2738
|
+
"sha256:9b9b5ebb992e67d6093741e63c2f59e4f6fff986f81163c087867bd7b924b3f6"
|
|
2739
2739
|
],
|
|
2740
2740
|
"markers": "python_version >= '3.10'",
|
|
2741
|
-
"version": "==1.1
|
|
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:
|
|
2860
|
-
"sha256:
|
|
2859
|
+
"sha256:38e6ee0a555615c0ea9da2ac7e9998fe8dc3b911dd33ad8eaad2020957653b0c",
|
|
2860
|
+
"sha256:854210ca524a1a4d0d744734f4acbc721c3ffe163b85bbf5d56d14d5ae2f0fae"
|
|
2861
2861
|
],
|
|
2862
2862
|
"markers": "python_version >= '3.8'",
|
|
2863
|
-
"version": "==21.
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/.github/workflows/continuous-deployment.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-actions-finished.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-actions-start.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-changelog-button.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-changelog-entered.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-draft-button.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-name-release.png
RENAMED
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-publish-button.png
RENAMED
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-release-published.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-releases-button.png
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/docs/_static/releasing-tag-button.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_no_results.yaml
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_paged_results.yaml
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/tests/cassettes/test_scrape_integration.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn/platforms/job_center/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{warn_scraper-1.2.151.dev0 → warn_scraper-1.2.152.dev0}/warn_scraper.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|