mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-11-15 10:58:31 +00:00
Bumps the python-deps group with 1 update: [apprise](https://github.com/caronc/apprise). Updates `apprise` from 2.1.0 to 2.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/caronc/apprise/releases">apprise's releases</a>.</em></p> <blockquote> <h2>Apprise v2.2.0</h2> <h2>What's Changed</h2> <p>This release has a few bugfixes, but introuces a slew of (12) new services bringing the total supported services up to <strong>183</strong>. The foundation of the Apprise library has now made it very easy to just scan missing service's upstream APIs and add them to our catalog. There are so many examples now to use as reference. A big kudos to <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> for all of your contributions for the last 2 releases; I really appeciate it!</p> <p><strong>Note:</strong> There is a security fix in this release: <strong>GHSA-cfp4-m43r-v9q4</strong></p> <h3>📣 New Notification Services</h3> <ul> <li>Add Groundmail notification support (groundmail://) by <a href="https://github.com/Ktryberceo"><code>@Ktryberceo</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1838">caronc/apprise#1838</a></li> <li>Added Infobip support in <a href="https://redirect.github.com/caronc/apprise/pull/1843">caronc/apprise#1843</a></li> <li>Added CM.com support in <a href="https://redirect.github.com/caronc/apprise/pull/1846">caronc/apprise#1846</a></li> <li>Added Telesign support in <a href="https://redirect.github.com/caronc/apprise/pull/1847">caronc/apprise#1847</a></li> <li>Gupshup Support added in <a href="https://redirect.github.com/caronc/apprise/pull/1848">caronc/apprise#1848</a></li> <li>added Kaleyra Support in <a href="https://redirect.github.com/caronc/apprise/pull/1849">caronc/apprise#1849</a></li> <li>Added KakaoTalk support in <a href="https://redirect.github.com/caronc/apprise/pull/1852">caronc/apprise#1852</a></li> <li>Added xMatters support in <a href="https://redirect.github.com/caronc/apprise/pull/1851">caronc/apprise#1851</a></li> <li>Whapi.Cloud WhatsApp support in <a href="https://redirect.github.com/caronc/apprise/pull/1854">caronc/apprise#1854</a> and <a href="https://redirect.github.com/caronc/apprise/pull/1857">caronc/apprise#1857</a></li> <li>FireHydrant Signals support in <a href="https://redirect.github.com/caronc/apprise/pull/1858">caronc/apprise#1858</a></li> <li>Nostr support with private messages and attachments in <a href="https://redirect.github.com/caronc/apprise/pull/1861">caronc/apprise#1861</a></li> <li>Add SMSTunnel SMS notification support (smstunnel://) by <a href="https://github.com/narcisbodea"><code>@narcisbodea</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1863">caronc/apprise#1863</a></li> </ul> <h3>🐞 Bugfixes</h3> <ul> <li>Fix rsyslog:// multiplying the facility twice in the PRI value by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1837">caronc/apprise#1837</a></li> <li>Make tag checks on a service case-insensitive in <a href="https://redirect.github.com/caronc/apprise/pull/1844">caronc/apprise#1844</a></li> <li>Fix d7sms:// batch=yes raising a TypeError on a failed send by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1839">caronc/apprise#1839</a></li> <li>Keep a line break written between inline tags for Telegram by <a href="https://github.com/xubenqiang"><code>@xubenqiang</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1842">caronc/apprise#1842</a></li> <li>Fix reddit:// ignoring ad= and replies= by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1845">caronc/apprise#1845</a></li> <li>Fix psafer:// ignoring priority= by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1850">caronc/apprise#1850</a></li> <li>Fix xml:// ignoring GET params (-param=) by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1856">caronc/apprise#1856</a></li> <li>IPV6 hardening and TLS timeouts are tied to same globally defined one in <a href="https://redirect.github.com/caronc/apprise/pull/1862">caronc/apprise#1862</a></li> <li>support blank data as input on incident reporting in <a href="https://redirect.github.com/caronc/apprise/pull/1859">caronc/apprise#1859</a></li> <li>Fix burstsms:// ignoring validity= and rejecting uppercase country= by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1860">caronc/apprise#1860</a></li> <li>General hardening of codebase in <a href="https://redirect.github.com/caronc/apprise/pull/1868">caronc/apprise#1868</a></li> <li>Fix lametric:// cloud mode not sending X-Access-Token by <a href="https://github.com/LuisFigueroaG"><code>@LuisFigueroaG</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1865">caronc/apprise#1865</a></li> <li>Add Bark subtitle, copy, action, archive, ttl, id and delete support by <a href="https://github.com/fmontagna"><code>@fmontagna</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1869">caronc/apprise#1869</a></li> <li>Keep CC display names in Postmark, Resend and Groundmail URLs by <a href="https://github.com/Cassian433"><code>@Cassian433</code></a> in <a href="https://redirect.github.com/caronc/apprise/pull/1875">caronc/apprise#1875</a></li> <li>Zulip messages without a title no longer fail in <a href="https://redirect.github.com/caronc/apprise/pull/1877">caronc/apprise#1877</a></li> </ul> <h2>💡 Features</h2> <ul> <li>Apprise works without markdown package installed in <a href="https://redirect.github.com/caronc/apprise/pull/1876">caronc/apprise#1876</a></li> </ul> <h3>❤️ Life-Cycle Support</h3> <ul> <li>Handle's click v8.5 deprecation notice in <a href="https://redirect.github.com/caronc/apprise/pull/1855">caronc/apprise#1855</a></li> </ul> <h2>Installation</h2> <p>Apprise is available <a href="https://pypi.org/project/apprise/">on PyPI</a> through <em>pip</em>:</p> <pre lang="bash"><code># Install Apprise v2.2.0 from PyPI pip install apprise==2.2.0 </code></pre> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/caronc/apprise/commit/58e42d2fc826adcb3be35272df34d3888d061b34"><code>58e42d2</code></a> bumped version to v2.2.0</li> <li><a href="https://github.com/caronc/apprise/commit/f82c82709b41768044eec3eb8d70262f90c79ecb"><code>f82c827</code></a> Zulip messages without a title no longer fail (<a href="https://redirect.github.com/caronc/apprise/issues/1877">#1877</a>)</li> <li><a href="https://github.com/caronc/apprise/commit/e130b8893e3cf458e1ed4f94a44fbc4d4436274b"><code>e130b88</code></a> Apprise works without markdown package installed (<a href="https://redirect.github.com/caronc/apprise/issues/1876">#1876</a>)</li> <li><a href="https://github.com/caronc/apprise/commit/a017f01bb450f4d6fd6c66bfdf15da892d1af6e7"><code>a017f01</code></a> fix test dir reference</li> <li><a href="https://github.com/caronc/apprise/commit/a3ae4a806495dccd957cc4a03de892c1a814ffdf"><code>a3ae4a8</code></a> Keep CC display names in Postmark, Resend and Groundmail URLs (<a href="https://redirect.github.com/caronc/apprise/issues/1875">#1875</a>)</li> <li><a href="https://github.com/caronc/apprise/commit/c5a063e6b2aa1b8209f2b1319cbfc8896d89e630"><code>c5a063e</code></a> Add Bark subtitle, copy, action, archive, ttl, id and delete support (<a href="https://redirect.github.com/caronc/apprise/issues/1869">#1869</a>)</li> <li><a href="https://github.com/caronc/apprise/commit/bd691d7be975b112c4acd7a047e8318f13e511c8"><code>bd691d7</code></a> restored test coverage to 100%</li> <li><a href="https://github.com/caronc/apprise/commit/ce937dcb8d857653670adcd42c2a1900914fde31"><code>ce937dc</code></a> Fix lametric:// cloud mode not sending X-Access-Token (<a href="https://redirect.github.com/caronc/apprise/issues/1865">#1865</a>)</li> <li><a href="https://github.com/caronc/apprise/commit/df5676a34ad1452eaa0bf5616e7c8123218f5f5b"><code>df5676a</code></a> General hardening of codebase (<a href="https://redirect.github.com/caronc/apprise/issues/1868">#1868</a>)</li> <li><a href="https://github.com/caronc/apprise/commit/d8c0c39275f393163cf3ead839eb2c007ab7aad3"><code>d8c0c39</code></a> Add SMSTunnel SMS notification support (smstunnel://) (<a href="https://redirect.github.com/caronc/apprise/issues/1863">#1863</a>)</li> <li>Additional commits viewable in <a href="https://github.com/caronc/apprise/compare/v2.1.0...v2.2.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Chores** * This update contains no user-facing feature changes. The app’s visible behavior and available functionality remain unchanged. No changes to the user experience are included in this release. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
180 lines
3.6 KiB
TOML
180 lines
3.6 KiB
TOML
[project]
|
|
name = "shelfmark"
|
|
version = "0.1.0"
|
|
description = "Shelfmark - Book Downloader"
|
|
requires-python = ">=3.14"
|
|
dependencies = [
|
|
"flask",
|
|
"flask-cors",
|
|
"flask-socketio",
|
|
"python-socketio",
|
|
"requests[socks]",
|
|
"defusedxml",
|
|
"beautifulsoup4",
|
|
"tqdm",
|
|
"dnspython",
|
|
"gunicorn",
|
|
"gevent",
|
|
"gevent-websocket",
|
|
"psutil",
|
|
"emoji",
|
|
"rarfile",
|
|
"qbittorrent-api>=2026.10.1",
|
|
"transmission-rpc",
|
|
"authlib>=1.9.5,<1.10",
|
|
# Authlib validates ID tokens with joserfc and raises its errors, so the OIDC routes
|
|
# catch joserfc's InvalidClaimError. authlib.jose is deprecated and goes in Authlib 2.0.
|
|
"joserfc>=1.8.0",
|
|
"apprise>=2.2.0",
|
|
# HTTP/2 client for RFC 8484 DoH: quad9 rejects HTTP/1.1 outright (505), which
|
|
# requests cannot speak. See shelfmark/download/doh_wireformat.py.
|
|
"httpx[http2]>=0.28.1",
|
|
"publicsuffixlist>=1.1.2.20261107",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
browser = [
|
|
"pyvirtualdisplay",
|
|
"pyautogui",
|
|
"seleniumbase==4.57.1",
|
|
"python-xlib",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"basedpyright>=1.40.2",
|
|
"prek",
|
|
"pytest",
|
|
"pytest-cov",
|
|
"pytest-xdist>=3.8.0",
|
|
"ruff==0.17.4",
|
|
"vulture>=2.14",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py", "*_test.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
addopts = [
|
|
"-v",
|
|
"--tb=short",
|
|
"-n",
|
|
"auto",
|
|
]
|
|
markers = [
|
|
"integration: marks tests that require running services (deselect with '-m \"not integration\"')",
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"e2e: marks end-to-end tests that require the full application stack",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
extend-exclude = [".local"]
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"F", "I", "UP", "B", "C4", "SIM", "PTH", "RET", "PIE", "FURB", "PERF", "TRY",
|
|
"A", "DTZ", "N",
|
|
"BLE001",
|
|
"ANN001", "ANN002", "ANN003", "ANN201", "ANN202", "ANN204",
|
|
"E402",
|
|
"ERA001",
|
|
"E731",
|
|
"S101",
|
|
"S110",
|
|
"S105", "S108",
|
|
"S311", "S324",
|
|
"S607", "S608",
|
|
"G003", "G004",
|
|
"PGH003",
|
|
"PLC0414",
|
|
"PLR1714",
|
|
"PLW1510",
|
|
"PLW2901",
|
|
"PLW0108",
|
|
"PT028",
|
|
"PYI034",
|
|
"Q000",
|
|
"RUF005", "RUF012", "RUF013", "RUF059", "RUF100",
|
|
"TC001", "TC002", "TC003",
|
|
]
|
|
ignore = ["D", "EM", "FBT", "PLR2004", "UP035", "TRY003", "E501", "TD002", "S104", "S603"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"scripts/**/*.py" = [
|
|
"BLE001",
|
|
"S",
|
|
"TRY",
|
|
]
|
|
"tests/**/*.py" = [
|
|
"ANN",
|
|
"BLE001",
|
|
"B010",
|
|
"B017",
|
|
"B028",
|
|
"DTZ",
|
|
"E402",
|
|
"E731",
|
|
"ERA001",
|
|
"FURB",
|
|
"G003",
|
|
"G004",
|
|
"PERF",
|
|
"PIE",
|
|
"PLC0414",
|
|
"PLW0108",
|
|
"PLW1510",
|
|
"PLW2901",
|
|
"PTH",
|
|
"PT028",
|
|
"PYI034",
|
|
"Q000",
|
|
"RET",
|
|
"RUF012",
|
|
"S",
|
|
"SIM",
|
|
"TC001",
|
|
"TC002",
|
|
"TC003",
|
|
"TRY",
|
|
"UP028",
|
|
]
|
|
|
|
[tool.basedpyright]
|
|
include = ["shelfmark"]
|
|
exclude = [".local", "tests", "**/__pycache__", "**/node_modules"]
|
|
pythonVersion = "3.14"
|
|
typeCheckingMode = "standard"
|
|
|
|
[tool.vulture]
|
|
paths = ["shelfmark"]
|
|
exclude = [".local", "tests"]
|
|
ignore_decorators = [
|
|
"@app.route",
|
|
"@app.before_request",
|
|
"@app.after_request",
|
|
"@app.errorhandler",
|
|
"@socketio.on",
|
|
"@register_provider",
|
|
"@register_provider_kwargs",
|
|
"@register_settings",
|
|
"@register_source",
|
|
"@register_handler",
|
|
"@register_client",
|
|
"@register_output",
|
|
]
|
|
min_confidence = 90
|
|
sort_by_size = true
|
|
|
|
[tool.coverage.run]
|
|
source = ["shelfmark"]
|
|
branch = true
|
|
|
|
[tool.coverage.report]
|
|
show_missing = true
|
|
skip_empty = true
|
|
|
|
[tool.uv]
|
|
package = false
|