warn-scraper 1.2.100__tar.gz → 1.2.102__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.102/.github/workflows/continuous-deployment.yml +136 -0
  2. {warn_scraper-1.2.100/warn_scraper.egg-info → warn_scraper-1.2.102}/PKG-INFO +13 -3
  3. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/Pipfile +8 -7
  4. warn_scraper-1.2.102/Pipfile.lock +2444 -0
  5. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/setup.py +2 -2
  6. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/co.py +1 -0
  7. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ct.py +3 -1
  8. {warn_scraper-1.2.100 → warn_scraper-1.2.102/warn_scraper.egg-info}/PKG-INFO +13 -3
  9. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn_scraper.egg-info/SOURCES.txt +2 -1
  10. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn_scraper.egg-info/requires.txt +1 -1
  11. warn_scraper-1.2.100/Pipfile.lock +0 -2379
  12. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/.devcontainer/devcontainer.json +0 -0
  13. /warn_scraper-1.2.100/.github/dependabot.yml.disabled → /warn_scraper-1.2.102/.github/dependabot.yml.disabled-for-sanity +0 -0
  14. /warn_scraper-1.2.100/.github/workflows/continuous-deployment.yml → /warn_scraper-1.2.102/.github/workflows/continuous-deployment.yml.broken-tests +0 -0
  15. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/.gitignore +0 -0
  16. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/.pre-commit-config.yaml +0 -0
  17. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/LICENSE +0 -0
  18. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/MANIFEST.in +0 -0
  19. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/Makefile +0 -0
  20. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/README.md +0 -0
  21. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/Makefile +0 -0
  22. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/R42693.pdf +0 -0
  23. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/gao-03-1003.pdf +0 -0
  24. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-actions-finished.png +0 -0
  25. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-actions-start.png +0 -0
  26. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-changelog-button.png +0 -0
  27. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-changelog-entered.png +0 -0
  28. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-draft-button.png +0 -0
  29. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-name-release.png +0 -0
  30. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-name-tag.png +0 -0
  31. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-publish-button.png +0 -0
  32. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-pypi.png +0 -0
  33. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-release-published.png +0 -0
  34. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-releases-button.png +0 -0
  35. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_static/releasing-tag-button.png +0 -0
  36. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/_templates/sources.md.tmpl +0 -0
  37. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/conf.py +0 -0
  38. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/contributing.rst +0 -0
  39. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/index.rst +0 -0
  40. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/make.bat +0 -0
  41. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/reference.rst +0 -0
  42. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/releasing.md +0 -0
  43. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/requirements.txt +0 -0
  44. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/al.md +0 -0
  45. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/az.md +0 -0
  46. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/ca.md +0 -0
  47. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/co.md +0 -0
  48. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/dc.md +0 -0
  49. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/de.md +0 -0
  50. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/ia.md +0 -0
  51. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/in.md +0 -0
  52. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/job_center.md +0 -0
  53. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/ks.md +0 -0
  54. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/md.md +0 -0
  55. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/me.md +0 -0
  56. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/mo.md +0 -0
  57. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/ny.md +0 -0
  58. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/ok.md +0 -0
  59. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/or.md +0 -0
  60. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/sc.md +0 -0
  61. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/tx.md +0 -0
  62. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/ut.md +0 -0
  63. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/va.md +0 -0
  64. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/vt.md +0 -0
  65. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/scrapers/wi.md +0 -0
  66. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/sources.md +0 -0
  67. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/docs/usage.md +0 -0
  68. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/setup.cfg +0 -0
  69. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/__init__.py +0 -0
  70. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/cassettes/test_cached_detail_pages.yaml +0 -0
  71. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/cassettes/test_cached_search_results.yaml +0 -0
  72. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/cassettes/test_missing_detail_page_values.yaml +0 -0
  73. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/cassettes/test_no_results.yaml +0 -0
  74. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/cassettes/test_paged_results.yaml +0 -0
  75. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/cassettes/test_scrape_integration.yaml +0 -0
  76. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/conftest.py +0 -0
  77. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/fixtures/2021_page_1.html +0 -0
  78. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/fixtures/2021_page_2.html +0 -0
  79. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/test_cache.py +0 -0
  80. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/test_delete.py +0 -0
  81. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/test_job_center.py +0 -0
  82. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/test_job_center_cache.py +0 -0
  83. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/tests/test_openpyxl.py +0 -0
  84. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/__init__.py +0 -0
  85. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/cache.py +0 -0
  86. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/cli.py +0 -0
  87. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/platforms/__init__.py +0 -0
  88. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/platforms/job_center/__init__.py +0 -0
  89. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/platforms/job_center/cache.py +0 -0
  90. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/platforms/job_center/site.py +0 -0
  91. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/platforms/job_center/urls.py +0 -0
  92. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/platforms/job_center/utils.py +0 -0
  93. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/runner.py +0 -0
  94. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/__init__.py +0 -0
  95. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ak.py +0 -0
  96. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/al.py +0 -0
  97. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/az.py +0 -0
  98. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ca.py +0 -0
  99. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/dc.py +0 -0
  100. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/de.py +0 -0
  101. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/fl.py +0 -0
  102. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ga.py +0 -0
  103. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/hi.py +0 -0
  104. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ia.py +0 -0
  105. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/id.py +0 -0
  106. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/il.py +0 -0
  107. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/in.py +0 -0
  108. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ks.py +0 -0
  109. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ky.py +0 -0
  110. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/la.py +0 -0
  111. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/md.py +0 -0
  112. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/me.py +0 -0
  113. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/mi.py +0 -0
  114. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/mo.py +0 -0
  115. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/mt.py +0 -0
  116. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ne.py +0 -0
  117. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/nj.py +0 -0
  118. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/nm.py +0 -0
  119. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ny.py +0 -0
  120. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/oh.py +0 -0
  121. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ok.py +0 -0
  122. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/or.py +0 -0
  123. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ri.py +0 -0
  124. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/sc.py +0 -0
  125. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/sd.py +0 -0
  126. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/tn.py +0 -0
  127. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/tx.py +0 -0
  128. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/ut.py +0 -0
  129. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/va.py +0 -0
  130. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/vt.py +0 -0
  131. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/wa.py +0 -0
  132. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/scrapers/wi.py +0 -0
  133. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn/utils.py +0 -0
  134. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn_scraper.egg-info/dependency_links.txt +0 -0
  135. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn_scraper.egg-info/entry_points.txt +0 -0
  136. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn_scraper.egg-info/not-zip-safe +0 -0
  137. {warn_scraper-1.2.100 → warn_scraper-1.2.102}/warn_scraper.egg-info/top_level.txt +0 -0
@@ -0,0 +1,136 @@
1
+ name: Testing and distribution
2
+ on:
3
+ push:
4
+ pull_request:
5
+ workflow_dispatch:
6
+
7
+ jobs:
8
+ pre-commit:
9
+ name: Lint and format with pre-commit
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - id: checkout
13
+ name: Checkout
14
+ uses: actions/checkout@v4
15
+
16
+ - id: setup-python
17
+ name: Setup Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: '3.9'
21
+
22
+ - id: pre-commit
23
+ name: Pre-commit
24
+ uses: pre-commit/action@v3.0.1
25
+
26
+ test-docs:
27
+ name: Test Sphinx build
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - id: checkout
31
+ name: Checkout
32
+ uses: actions/checkout@v4
33
+
34
+ - id: setup-python
35
+ name: Setup Python
36
+ uses: actions/setup-python@v5
37
+ with:
38
+ python-version: '3.9'
39
+ cache: 'pipenv'
40
+
41
+ - id: install-pipenv
42
+ name: Install pipenv
43
+ run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
44
+ shell: bash
45
+
46
+ - id: install-python-dependencies
47
+ name: Install Python dependencies
48
+ run: pipenv install --dev --python=`which python`
49
+ shell: bash
50
+
51
+ - id: tally
52
+ name: Tally sources
53
+ run: make tally-sources
54
+
55
+ - id: build
56
+ name: Build
57
+ run: make test-docs
58
+
59
+ - id: save
60
+ name: Save artifact
61
+ uses: actions/upload-artifact@v4
62
+ with:
63
+ name: docs-${{ github.run_number }}
64
+ path: ./docs
65
+ if-no-files-found: error
66
+
67
+
68
+ test-build:
69
+ name: Build Python package
70
+ runs-on: ubuntu-latest
71
+ # needs: [test-python]
72
+ steps:
73
+ - id: checkout
74
+ name: Checkout
75
+ uses: actions/checkout@v4
76
+
77
+ - id: setup-python
78
+ name: Setup Python
79
+ uses: actions/setup-python@v5
80
+ with:
81
+ python-version: '3.9'
82
+ cache: 'pipenv'
83
+
84
+ - id: install-pipenv
85
+ name: Install pipenv
86
+ run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
87
+ shell: bash
88
+
89
+ - id: install-python-dependencies
90
+ name: Install Python dependencies
91
+ run: pipenv install --dev --python=`which python`
92
+ shell: bash
93
+
94
+ - id: build
95
+ name: Build release
96
+ run: make build-release
97
+
98
+ - id: check
99
+ name: Check release
100
+ run: make check-release
101
+
102
+ - id: save
103
+ name: Save artifact
104
+ uses: actions/upload-artifact@v4
105
+ with:
106
+ name: test-release-${{ github.run_number }}
107
+ path: ./dist
108
+ if-no-files-found: error
109
+
110
+ tag-release:
111
+ name: Tagged PyPI release
112
+ runs-on: ubuntu-latest
113
+ needs: [test-build]
114
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
115
+ steps:
116
+ - id: setup-python
117
+ name: Setup Python
118
+ uses: actions/setup-python@v5
119
+ with:
120
+ python-version: '3.9'
121
+
122
+ - id: fetch
123
+ name: Fetch artifact
124
+ uses: actions/download-artifact@v4
125
+ with:
126
+ name: test-release-${{ github.run_number }}
127
+ path: ./dist
128
+
129
+ - id: publish
130
+ name: Publish release
131
+ uses: pypa/gh-action-pypi-publish@release/v1
132
+ with:
133
+ user: __token__
134
+ password: ${{ secrets.PYPI_API_TOKEN }}
135
+ verbose: true
136
+ verify_metadata: false
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: warn-scraper
3
- Version: 1.2.100
3
+ Version: 1.2.102
4
4
  Summary: Command-line interface for downloading WARN Act notices of qualified plant closings and mass layoffs from state government websites
5
5
  Home-page: https://github.com/biglocalnews/warn-scraper
6
6
  Author: Big Local News
@@ -29,13 +29,23 @@ Requires-Dist: pdfplumber
29
29
  Requires-Dist: requests
30
30
  Requires-Dist: openpyxl
31
31
  Requires-Dist: pyopenssl
32
- Requires-Dist: retry
32
+ Requires-Dist: retry2
33
33
  Requires-Dist: selenium
34
34
  Requires-Dist: stealthenium
35
35
  Requires-Dist: tenacity
36
36
  Requires-Dist: xlrd
37
37
  Requires-Dist: xvfbwrapper
38
38
  Requires-Dist: webdriver-manager
39
+ Dynamic: author
40
+ Dynamic: classifier
41
+ Dynamic: description
42
+ Dynamic: description-content-type
43
+ Dynamic: home-page
44
+ Dynamic: license
45
+ Dynamic: license-file
46
+ Dynamic: project-url
47
+ Dynamic: requires-dist
48
+ Dynamic: summary
39
49
 
40
50
  ## Links
41
51
 
@@ -4,7 +4,6 @@ url = "https://pypi.org/simple"
4
4
  verify_ssl = true
5
5
 
6
6
  [dev-packages]
7
- pytest = "*"
8
7
  pytest-vcr = "*"
9
8
  black = "*"
10
9
  twine = "*"
@@ -16,7 +15,6 @@ coverage = "*"
16
15
  flake8-docstrings = "*"
17
16
  setuptools-scm = "==8.1.0"
18
17
  us = "*"
19
- jinja2 = "*"
20
18
  flake8-bugbear = "*"
21
19
  pre-commit = "*"
22
20
  sphinxcontrib-napoleon = "*"
@@ -26,13 +24,14 @@ typing-extensions = "*"
26
24
  types-retry = "*"
27
25
  types-beautifulsoup4 = "*"
28
26
  types-openpyxl = "*"
29
- # pinned last known versions to support Sphinx 4
30
27
  sphinxcontrib-applehelp = "1.0.4"
31
28
  sphinxcontrib-devhelp = "1.0.2"
32
29
  sphinxcontrib-htmlhelp = "2.0.1"
33
30
  sphinxcontrib-qthelp = "1.0.3"
34
31
  sphinxcontrib-serializinghtml = "1.1.5"
35
- setuptools = "==71.1.0"
32
+ setuptools = "*"
33
+ jinja2 = "*"
34
+ pytest = "==8.3.5"
36
35
 
37
36
  [packages]
38
37
  beautifulsoup4 = "*"
@@ -43,15 +42,17 @@ pdfplumber = "*"
43
42
  tenacity = "*"
44
43
  click = "*"
45
44
  xlrd = "*"
46
- retry = "*"
47
- urllib3 = "1.26.18" # pegged to avoid test issue
48
45
  selenium = "*"
49
46
  webdriver-manager = "*"
50
- cryptography = "*"
51
47
  cffi = "*"
52
48
  pyopenssl = "*"
53
49
  xvfbwrapper = "*"
54
50
  stealthenium = "*"
51
+ urllib3 = "==1.26.20"
52
+ cryptography = "*"
53
+ bln = "==2.3.11"
54
+ retry2 = "*"
55
+ setuptools = "==71.1.0"
55
56
 
56
57
  [requires]
57
58
  python_version = "3.9"