webchanges 3.34.2__tar.gz → 3.36.0__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.
- webchanges-3.36.0/MANIFEST.in +5 -0
- {webchanges-3.34.2/webchanges.egg-info → webchanges-3.36.0}/PKG-INFO +15 -11
- {webchanges-3.34.2 → webchanges-3.36.0}/README.rst +10 -9
- {webchanges-3.34.2 → webchanges-3.36.0}/pyproject.toml +9 -2
- {webchanges-3.34.2 → webchanges-3.36.0}/requirements.txt +1 -0
- webchanges-3.36.0/setup.py +17 -0
- webchanges-3.36.0/tools/get_manpages_parser.py +19 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/__init__.py +1 -1
- webchanges-3.36.0/webchanges/_resources/config.schema.json +933 -0
- webchanges-3.36.0/webchanges/_resources/jobs.schema.json +1363 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/_vendored/headers.py +2 -6
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/_vendored/packaging_version.py +1 -1
- webchanges-3.36.0/webchanges/_vendored/typeguard.py +1441 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/cli.py +59 -2
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/command.py +77 -21
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/config.py +85 -20
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/differs.py +44 -6
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/_html.py +4 -4
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/_shell.py +4 -1
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/handler.py +1 -1
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/jobs/_base.py +37 -7
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/jobs/_browser.py +34 -16
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/jobs/_url.py +343 -46
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/main.py +8 -3
- webchanges-3.36.0/webchanges/py.typed +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_base.py +2 -2
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_base.py +16 -1
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_config.py +2 -2
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_yaml.py +38 -11
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/worker.py +18 -7
- {webchanges-3.34.2 → webchanges-3.36.0/webchanges.egg-info}/PKG-INFO +15 -11
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges.egg-info/SOURCES.txt +6 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges.egg-info/requires.txt +5 -1
- webchanges-3.34.2/MANIFEST.in +0 -3
- {webchanges-3.34.2 → webchanges-3.36.0}/LICENSE.md +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/setup.cfg +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/__main__.py +0 -0
- {webchanges-3.34.2/webchanges/_vendored → webchanges-3.36.0/webchanges/_resources}/__init__.py +0 -0
- /webchanges-3.34.2/webchanges/py.typed → /webchanges-3.36.0/webchanges/_vendored/__init__.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/__init__.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/_base.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/_document.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/_encoding.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/filters/_text.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/jobs/__init__.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/jobs/_exceptions.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/jobs/_shell.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/mailer.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/__init__.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_browser.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_chat.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_email.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_filter.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_stdout.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_system.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/reporters/_web.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/__init__.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_minidb.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_redis.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_sqlite3.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage/_ssdb.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/storage_minidb.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges/util.py +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges.egg-info/dependency_links.txt +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges.egg-info/entry_points.txt +0 -0
- {webchanges-3.34.2 → webchanges-3.36.0}/webchanges.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webchanges
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.36.0
|
|
4
4
|
Summary: Web Changes Delivered. AI-Summarized. Totally Anonymous.
|
|
5
5
|
Author-email: Mike Borsetti <mike+webchanges@borsetti.com>
|
|
6
6
|
Maintainer-email: Mike Borsetti <mike+webchanges@borsetti.com>
|
|
@@ -47,6 +47,7 @@ Requires-Dist: markdown2
|
|
|
47
47
|
Requires-Dist: msgpack
|
|
48
48
|
Requires-Dist: platformdirs
|
|
49
49
|
Requires-Dist: pyyaml
|
|
50
|
+
Requires-Dist: typing-extensions
|
|
50
51
|
Requires-Dist: tzdata; sys_platform == "win32"
|
|
51
52
|
Requires-Dist: zstandard; python_version < "3.14"
|
|
52
53
|
Provides-Extra: use-browser
|
|
@@ -89,6 +90,8 @@ Provides-Extra: pushover
|
|
|
89
90
|
Requires-Dist: chump; extra == "pushover"
|
|
90
91
|
Provides-Extra: xmpp
|
|
91
92
|
Requires-Dist: aioxmpp; extra == "xmpp"
|
|
93
|
+
Provides-Extra: curl-cffi
|
|
94
|
+
Requires-Dist: curl_cffi; extra == "curl-cffi"
|
|
92
95
|
Provides-Extra: redis
|
|
93
96
|
Requires-Dist: redis; extra == "redis"
|
|
94
97
|
Provides-Extra: requests
|
|
@@ -96,7 +99,7 @@ Requires-Dist: requests; extra == "requests"
|
|
|
96
99
|
Provides-Extra: safe-password
|
|
97
100
|
Requires-Dist: keyring; extra == "safe-password"
|
|
98
101
|
Provides-Extra: all
|
|
99
|
-
Requires-Dist: webchanges[beautify,bs4,deepdiff_xml,html5lib,ical2text,imagediff,jq,matrix,ocr,pdf2text,pushbullet,pushover,pypdf_crypto,redis,requests,safe_password,use_browser,xmpp]; extra == "all"
|
|
102
|
+
Requires-Dist: webchanges[beautify,bs4,curl_cffi,deepdiff_xml,html5lib,ical2text,imagediff,jq,matrix,ocr,pdf2text,pushbullet,pushover,pypdf_crypto,redis,requests,safe_password,use_browser,xmpp]; extra == "all"
|
|
100
103
|
Dynamic: license-file
|
|
101
104
|
|
|
102
105
|
.. role:: underline
|
|
@@ -139,7 +142,7 @@ Install **webchanges** with ``uv`` (recommended):
|
|
|
139
142
|
.. code-block:: bash
|
|
140
143
|
|
|
141
144
|
uv pip install webchanges
|
|
142
|
-
|
|
145
|
+
|
|
143
146
|
or with ``pip``:
|
|
144
147
|
|
|
145
148
|
.. code-block:: bash
|
|
@@ -154,13 +157,14 @@ implementation (no browser) `here <https://github.com/yubiuser/webchanges-docker
|
|
|
154
157
|
|
|
155
158
|
As a GitHub Action
|
|
156
159
|
------------------
|
|
157
|
-
**webchanges** can easily run as a `GitHub Action <https://www.docker.com/>`__! You will find an implementation
|
|
160
|
+
**webchanges** can easily run as a `GitHub Action <https://www.docker.com/>`__! You will find an implementation
|
|
158
161
|
`here <https://github.com/swimmwatch/webchanges-action>`__.
|
|
159
162
|
|
|
160
163
|
|
|
161
164
|
Documentation |readthedocs|
|
|
162
165
|
===========================
|
|
163
|
-
The documentation is hosted on `Read the Docs <https://webchanges.readthedocs.io/>`__.
|
|
166
|
+
The documentation is hosted on `Read the Docs <https://webchanges.readthedocs.io/>`__. A (very good) AI-generated
|
|
167
|
+
high-level architectural overview is available on `DeepWiki <https://deepwiki.com/mborsetti/webchanges>`__.
|
|
164
168
|
|
|
165
169
|
|
|
166
170
|
Quick Start
|
|
@@ -173,7 +177,7 @@ Initialize
|
|
|
173
177
|
|
|
174
178
|
.. code-block:: bash
|
|
175
179
|
|
|
176
|
-
webchanges --edit
|
|
180
|
+
webchanges --edit-jobs
|
|
177
181
|
|
|
178
182
|
#. Run the following command to change the default `configuration
|
|
179
183
|
<https://webchanges.readthedocs.io/en/stable/configuration.html>`__, e.g. to receive change notifications
|
|
@@ -208,7 +212,7 @@ Schedule
|
|
|
208
212
|
|
|
209
213
|
Code
|
|
210
214
|
====
|
|
211
|
-
|coveralls| |
|
|
215
|
+
|coveralls| |issues| |code_style| |OpenSSF_Scorecard|
|
|
212
216
|
|
|
213
217
|
The code, issues tracker, and discussions are hosted on `GitHub <https://github.com/mborsetti/webchanges>`__.
|
|
214
218
|
|
|
@@ -240,7 +244,7 @@ Compatibility with **urlwatch**
|
|
|
240
244
|
This project is based on code from `urlwatch 2.21
|
|
241
245
|
<https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f>`__ dated 30 July 2020.
|
|
242
246
|
For upgrading from **urlwatch** to **webchanges** (using the same job and
|
|
243
|
-
configuration files), see `here <https://webchanges.readthedocs.io/en/stable/upgrading.html>`__.
|
|
247
|
+
configuration files), see `here <https://webchanges.readthedocs.io/en/stable/upgrading.html>`__.
|
|
244
248
|
|
|
245
249
|
|
|
246
250
|
.. |support| image:: https://img.shields.io/pypi/pyversions/webchanges.svg
|
|
@@ -285,9 +289,9 @@ configuration files), see `here <https://webchanges.readthedocs.io/en/stable/upg
|
|
|
285
289
|
.. .. |security| image:: https://img.shields.io/badge/security-bandit-green.svg
|
|
286
290
|
.. :target: https://github.com/PyCQA/bandit
|
|
287
291
|
.. :alt: Security Status
|
|
288
|
-
.. |snyk| image:: https://snyk.io/advisor/python/
|
|
289
|
-
|
|
290
|
-
|
|
292
|
+
.. .. |snyk| image:: https://snyk.io/advisor/python/webchanges/badge.svg
|
|
293
|
+
.. :target: https://security.snyk.io/package/pip/webchanges
|
|
294
|
+
.. :alt: Snyk Package Health Score
|
|
291
295
|
.. |OpenSSF_Scorecard| image:: https://api.scorecard.dev/projects/github.com/mborsetti/webchanges/badge
|
|
292
296
|
:target: https://scorecard.dev/viewer/?uri=github.com/mborsetti/webchanges
|
|
293
297
|
:alt: OpenSSF Scoreard
|
|
@@ -38,7 +38,7 @@ Install **webchanges** with ``uv`` (recommended):
|
|
|
38
38
|
.. code-block:: bash
|
|
39
39
|
|
|
40
40
|
uv pip install webchanges
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
or with ``pip``:
|
|
43
43
|
|
|
44
44
|
.. code-block:: bash
|
|
@@ -53,13 +53,14 @@ implementation (no browser) `here <https://github.com/yubiuser/webchanges-docker
|
|
|
53
53
|
|
|
54
54
|
As a GitHub Action
|
|
55
55
|
------------------
|
|
56
|
-
**webchanges** can easily run as a `GitHub Action <https://www.docker.com/>`__! You will find an implementation
|
|
56
|
+
**webchanges** can easily run as a `GitHub Action <https://www.docker.com/>`__! You will find an implementation
|
|
57
57
|
`here <https://github.com/swimmwatch/webchanges-action>`__.
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
Documentation |readthedocs|
|
|
61
61
|
===========================
|
|
62
|
-
The documentation is hosted on `Read the Docs <https://webchanges.readthedocs.io/>`__.
|
|
62
|
+
The documentation is hosted on `Read the Docs <https://webchanges.readthedocs.io/>`__. A (very good) AI-generated
|
|
63
|
+
high-level architectural overview is available on `DeepWiki <https://deepwiki.com/mborsetti/webchanges>`__.
|
|
63
64
|
|
|
64
65
|
|
|
65
66
|
Quick Start
|
|
@@ -72,7 +73,7 @@ Initialize
|
|
|
72
73
|
|
|
73
74
|
.. code-block:: bash
|
|
74
75
|
|
|
75
|
-
webchanges --edit
|
|
76
|
+
webchanges --edit-jobs
|
|
76
77
|
|
|
77
78
|
#. Run the following command to change the default `configuration
|
|
78
79
|
<https://webchanges.readthedocs.io/en/stable/configuration.html>`__, e.g. to receive change notifications
|
|
@@ -107,7 +108,7 @@ Schedule
|
|
|
107
108
|
|
|
108
109
|
Code
|
|
109
110
|
====
|
|
110
|
-
|coveralls| |
|
|
111
|
+
|coveralls| |issues| |code_style| |OpenSSF_Scorecard|
|
|
111
112
|
|
|
112
113
|
The code, issues tracker, and discussions are hosted on `GitHub <https://github.com/mborsetti/webchanges>`__.
|
|
113
114
|
|
|
@@ -139,7 +140,7 @@ Compatibility with **urlwatch**
|
|
|
139
140
|
This project is based on code from `urlwatch 2.21
|
|
140
141
|
<https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f>`__ dated 30 July 2020.
|
|
141
142
|
For upgrading from **urlwatch** to **webchanges** (using the same job and
|
|
142
|
-
configuration files), see `here <https://webchanges.readthedocs.io/en/stable/upgrading.html>`__.
|
|
143
|
+
configuration files), see `here <https://webchanges.readthedocs.io/en/stable/upgrading.html>`__.
|
|
143
144
|
|
|
144
145
|
|
|
145
146
|
.. |support| image:: https://img.shields.io/pypi/pyversions/webchanges.svg
|
|
@@ -184,9 +185,9 @@ configuration files), see `here <https://webchanges.readthedocs.io/en/stable/upg
|
|
|
184
185
|
.. .. |security| image:: https://img.shields.io/badge/security-bandit-green.svg
|
|
185
186
|
.. :target: https://github.com/PyCQA/bandit
|
|
186
187
|
.. :alt: Security Status
|
|
187
|
-
.. |snyk| image:: https://snyk.io/advisor/python/
|
|
188
|
-
|
|
189
|
-
|
|
188
|
+
.. .. |snyk| image:: https://snyk.io/advisor/python/webchanges/badge.svg
|
|
189
|
+
.. :target: https://security.snyk.io/package/pip/webchanges
|
|
190
|
+
.. :alt: Snyk Package Health Score
|
|
190
191
|
.. |OpenSSF_Scorecard| image:: https://api.scorecard.dev/projects/github.com/mborsetti/webchanges/badge
|
|
191
192
|
:target: https://scorecard.dev/viewer/?uri=github.com/mborsetti/webchanges
|
|
192
193
|
:alt: OpenSSF Scoreard
|
|
@@ -85,12 +85,13 @@ pushbullet = ['pushbullet.py']
|
|
|
85
85
|
pushover = ['chump']
|
|
86
86
|
xmpp = ['aioxmpp']
|
|
87
87
|
# other
|
|
88
|
+
curl_cffi = ['curl_cffi']
|
|
88
89
|
redis = ['redis']
|
|
89
90
|
requests = ['requests']
|
|
90
91
|
safe_password = ['keyring']
|
|
91
92
|
# all
|
|
92
93
|
all = [
|
|
93
|
-
'webchanges[use_browser,beautify,bs4,html5lib,ical2text,jq,ocr,pdf2text,pypdf_crypto,deepdiff_xml,imagediff,matrix,pushbullet,pushover,xmpp,redis,requests,safe_password]',
|
|
94
|
+
'webchanges[use_browser,beautify,bs4,html5lib,ical2text,jq,ocr,pdf2text,pypdf_crypto,deepdiff_xml,imagediff,matrix,pushbullet,pushover,xmpp,curl_cffi,redis,requests,safe_password]',
|
|
94
95
|
]
|
|
95
96
|
|
|
96
97
|
|
|
@@ -103,6 +104,7 @@ all = [
|
|
|
103
104
|
# https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
|
|
104
105
|
packages = [
|
|
105
106
|
'webchanges',
|
|
107
|
+
'webchanges._resources',
|
|
106
108
|
'webchanges._vendored',
|
|
107
109
|
'webchanges.filters',
|
|
108
110
|
'webchanges.jobs',
|
|
@@ -116,11 +118,16 @@ dependencies = { file = 'requirements.txt' }
|
|
|
116
118
|
|
|
117
119
|
[tool.setuptools.package-data]
|
|
118
120
|
'webchanges' = ['py.typed']
|
|
121
|
+
'webchanges._resources' = ['*.schema.json', '*.schema.sha256']
|
|
119
122
|
|
|
120
123
|
# -------------------------- manpages --------------------------
|
|
121
124
|
# https://github.com/praiskup/argparse-manpage/blob/main/README.md
|
|
125
|
+
# The build hook is wired in setup.py; [tool.setuptools.data-files] below installs the result.
|
|
122
126
|
[tool.build_manpages]
|
|
123
|
-
manpages = ['man/webchanges.1:function=
|
|
127
|
+
manpages = ['man/webchanges.1:function=get_manpages_parser:pyfile=tools/get_manpages_parser.py']
|
|
128
|
+
|
|
129
|
+
[tool.setuptools.data-files]
|
|
130
|
+
'share/man/man1' = ['man/webchanges.1']
|
|
124
131
|
|
|
125
132
|
# -------------------------- coverage --------------------------
|
|
126
133
|
[tool.coverage.run]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Shim required to wire argparse-manpage's build_manpages cmdclass into setuptools.
|
|
2
|
+
# All other configuration lives in pyproject.toml.
|
|
3
|
+
# See https://github.com/praiskup/argparse-manpage/blob/main/README.md
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from build_manpages import build_manpages, get_build_py_cmd, get_install_cmd
|
|
7
|
+
from setuptools import setup
|
|
8
|
+
from setuptools.command.build_py import build_py
|
|
9
|
+
from setuptools.command.install import install
|
|
10
|
+
|
|
11
|
+
setup(
|
|
12
|
+
cmdclass={
|
|
13
|
+
'build_manpages': build_manpages,
|
|
14
|
+
'build_py': get_build_py_cmd(build_py),
|
|
15
|
+
'install': get_install_cmd(install),
|
|
16
|
+
},
|
|
17
|
+
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# pragma: exclude file
|
|
2
|
+
|
|
3
|
+
import sys
|
|
4
|
+
from argparse import ArgumentParser
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
sys.path.insert(0, str(Path.cwd()))
|
|
8
|
+
|
|
9
|
+
from webchanges.config import CommandConfig
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_manpages_parser() -> ArgumentParser:
|
|
13
|
+
"""Returns the parser to be used by argparse-manpage.
|
|
14
|
+
|
|
15
|
+
https://github.com/praiskup/argparse-manpage/blob/main/README.md
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
null_path = Path()
|
|
19
|
+
return CommandConfig([], null_path, null_path, null_path, null_path, null_path).parse_args([])
|
|
@@ -22,7 +22,7 @@ __project_name__ = str(__package__)
|
|
|
22
22
|
# * MINOR version when you add functionality in a backwards compatible manner, and
|
|
23
23
|
# * MICRO or PATCH version when you make backwards compatible bug fixes. We no longer use '0'
|
|
24
24
|
# If unsure on increments, use pkg_resources.parse_version to parse
|
|
25
|
-
__version__ = '3.
|
|
25
|
+
__version__ = '3.36.0'
|
|
26
26
|
__description__ = (
|
|
27
27
|
'Check web (or command output) for changes since last run and notify.\n\nAnonymously alerts you of web changes.'
|
|
28
28
|
)
|