Files
shelfmark/pyproject.toml
T
dependabot[bot] 4c78a2f3a0 Bump the python-deps group with 2 updates (#1104)
Bumps the python-deps group with 2 updates:
[seleniumbase](https://github.com/seleniumbase/SeleniumBase) and
[prek](https://github.com/j178/prek).

Updates `seleniumbase` from 4.50.3 to 4.50.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/seleniumbase/SeleniumBase/releases">seleniumbase's
releases</a>.</em></p>
<blockquote>
<h2>4.50.4 - Updates for SOCKS5h support and PDF downloads</h2>
<h2>Updates for SOCKS5h support and PDF downloads</h2>
<ul>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/0125a8dfa4cf8187377a68cb094bd1aa400244c0">Add
support for &quot;socks5h&quot; proxies without auth</a></li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/7c937ed4a760522ca0d546ae859c016f1e098343">Update
how PDF downloads are handled</a></li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/9ac19fbb520957429e062d952b8863210469dd3a">Update
console scripts</a></li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/0a5c44d1b6026b115c2ef257004465a21a9d6ea7">Refresh
optional Python dependencies</a></li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/a022ada3f823bd6058074ef99da47f12fd218202">Update
documentation and comments</a></li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/0b076173e998697661b8d57abaa95ee52c1b6760">Update
examples</a></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Updates for SOCKS5h support and PDF downloads by <a
href="https://github.com/mdmintz"><code>@​mdmintz</code></a> in <a
href="https://redirect.github.com/seleniumbase/SeleniumBase/pull/4415">seleniumbase/SeleniumBase#4415</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/seleniumbase/SeleniumBase/compare/v4.50.3...v4.50.4">https://github.com/seleniumbase/SeleniumBase/compare/v4.50.3...v4.50.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/e6a60b8f15771117811226e85920542d33bfa519"><code>e6a60b8</code></a>
Merge pull request <a
href="https://redirect.github.com/seleniumbase/SeleniumBase/issues/4415">#4415</a>
from seleniumbase/socks5h-and-pdf-download-updates</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/17d71ef57a31a4306d2e117278e8988c47a42783"><code>17d71ef</code></a>
Version 4.50.4</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/0b076173e998697661b8d57abaa95ee52c1b6760"><code>0b07617</code></a>
Update examples</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/a022ada3f823bd6058074ef99da47f12fd218202"><code>a022ada</code></a>
Update documentation and comments</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/0a5c44d1b6026b115c2ef257004465a21a9d6ea7"><code>0a5c44d</code></a>
Refresh optional Python dependencies</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/9ac19fbb520957429e062d952b8863210469dd3a"><code>9ac19fb</code></a>
Update console scripts</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/7c937ed4a760522ca0d546ae859c016f1e098343"><code>7c937ed</code></a>
Update how PDF downloads are handled</li>
<li><a
href="https://github.com/seleniumbase/SeleniumBase/commit/0125a8dfa4cf8187377a68cb094bd1aa400244c0"><code>0125a8d</code></a>
Add support for &quot;socks5h&quot; proxies without auth</li>
<li>See full diff in <a
href="https://github.com/seleniumbase/SeleniumBase/compare/v4.50.3...v4.50.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `prek` from 0.4.5 to 0.4.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/j178/prek/releases">prek's
releases</a>.</em></p>
<blockquote>
<h2>0.4.6</h2>
<h2>Release Notes</h2>
<p>Released on 2026-07-01.</p>
<h3>Enhancements</h3>
<ul>
<li>Verify managed toolchain downloads before installation (<a
href="https://redirect.github.com/j178/prek/pull/2229">#2229</a>)</li>
<li>Add <code>PREK_DOCKER_NO_INIT</code> to opt-out Docker
<code>--init</code> (<a
href="https://redirect.github.com/j178/prek/pull/2242">#2242</a>)</li>
<li>Improve subprocess error messages (<a
href="https://redirect.github.com/j178/prek/pull/2257">#2257</a>)</li>
<li>Split run concurrency knobs: <code>PREK_CONCURRENT_HOOKS</code> and
<code>PREK_CONCURRENT_BATCHES</code> (<a
href="https://redirect.github.com/j178/prek/pull/2276">#2276</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Avoid allocating markdown extensions per file (<a
href="https://redirect.github.com/j178/prek/pull/2245">#2245</a>)</li>
<li>Avoid unchanged config tracking writes (<a
href="https://redirect.github.com/j178/prek/pull/2247">#2247</a>)</li>
<li>Delay trailing whitespace output buffer (<a
href="https://redirect.github.com/j178/prek/pull/2244">#2244</a>)</li>
<li>Prefilter VCS permalink lines (<a
href="https://redirect.github.com/j178/prek/pull/2253">#2253</a>)</li>
<li>Skip unnecessary submodule updates during hook repo clone (<a
href="https://redirect.github.com/j178/prek/pull/2255">#2255</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Document <code>language_version</code> inferring for Python and Go
(<a
href="https://redirect.github.com/j178/prek/pull/2241">#2241</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Refactor env var handling (<a
href="https://redirect.github.com/j178/prek/pull/2277">#2277</a>)</li>
<li>Use <code>serde-saphyr</code> for YAML string quoting (<a
href="https://redirect.github.com/j178/prek/pull/2228">#2228</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/shaanmajid"><code>@​shaanmajid</code></a></li>
<li><a href="https://github.com/j178"><code>@​j178</code></a></li>
</ul>
<h2>Install prek 0.4.6</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.ps1
| iex&quot;
</code></pre>
<h3>Install prebuilt binaries via Homebrew</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/j178/prek/blob/master/CHANGELOG.md">prek's
changelog</a>.</em></p>
<blockquote>
<h2>0.4.6</h2>
<p>Released on 2026-07-01.</p>
<h3>Enhancements</h3>
<ul>
<li>Verify managed toolchain downloads before installation (<a
href="https://redirect.github.com/j178/prek/pull/2229">#2229</a>)</li>
<li>Add <code>PREK_DOCKER_NO_INIT</code> to opt-out Docker
<code>--init</code> (<a
href="https://redirect.github.com/j178/prek/pull/2242">#2242</a>)</li>
<li>Improve subprocess error messages (<a
href="https://redirect.github.com/j178/prek/pull/2257">#2257</a>)</li>
<li>Split run concurrency knobs: <code>PREK_CONCURRENT_HOOKS</code> and
<code>PREK_CONCURRENT_BATCHES</code> (<a
href="https://redirect.github.com/j178/prek/pull/2276">#2276</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Avoid allocating markdown extensions per file (<a
href="https://redirect.github.com/j178/prek/pull/2245">#2245</a>)</li>
<li>Avoid unchanged config tracking writes (<a
href="https://redirect.github.com/j178/prek/pull/2247">#2247</a>)</li>
<li>Delay trailing whitespace output buffer (<a
href="https://redirect.github.com/j178/prek/pull/2244">#2244</a>)</li>
<li>Prefilter VCS permalink lines (<a
href="https://redirect.github.com/j178/prek/pull/2253">#2253</a>)</li>
<li>Skip unnecessary submodule updates during hook repo clone (<a
href="https://redirect.github.com/j178/prek/pull/2255">#2255</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Document <code>language_version</code> inferring for Python and Go
(<a
href="https://redirect.github.com/j178/prek/pull/2241">#2241</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Refactor env var handling (<a
href="https://redirect.github.com/j178/prek/pull/2277">#2277</a>)</li>
<li>Use <code>serde-saphyr</code> for YAML string quoting (<a
href="https://redirect.github.com/j178/prek/pull/2228">#2228</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/shaanmajid"><code>@​shaanmajid</code></a></li>
<li><a href="https://github.com/j178"><code>@​j178</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/j178/prek/commit/643fba48aac2bdff4993e4d0b58c765a49df3188"><code>643fba4</code></a>
Bump version to 0.4.6 (<a
href="https://redirect.github.com/j178/prek/issues/2280">#2280</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/b0f92611f3b26c1436b98ba95678b1c95e2ac749"><code>b0f9261</code></a>
Refactor env var handling (<a
href="https://redirect.github.com/j178/prek/issues/2277">#2277</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/8494d1663e2c330e03ac0944bd6f81e8028f7a8a"><code>8494d16</code></a>
Split run concurrency knobs (<a
href="https://redirect.github.com/j178/prek/issues/2276">#2276</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/f20bbaaedaf95ebcdda053de1548b2c24e20eb55"><code>f20bbaa</code></a>
Update sample config for <code>.pre-commit-config.yaml</code> (<a
href="https://redirect.github.com/j178/prek/issues/2275">#2275</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/5485289875b75170fce1ef3ed6c8964bd48fe91c"><code>5485289</code></a>
Pin pre-commit repos to commit hash (<a
href="https://redirect.github.com/j178/prek/issues/2274">#2274</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/d418ab322bb05539409c6a90a6c898c46a6b96a1"><code>d418ab3</code></a>
Improve nix shebang parsing (<a
href="https://redirect.github.com/j178/prek/issues/2271">#2271</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/cc261c13a0a9d7e10e6a713a9d9fe81594073f75"><code>cc261c1</code></a>
Update actions/checkout action to v7 (<a
href="https://redirect.github.com/j178/prek/issues/2267">#2267</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/8d2dbba355f8cca46c6a1f2386f1505db13d6053"><code>8d2dbba</code></a>
Update Rust crate itertools to 0.15.0 (<a
href="https://redirect.github.com/j178/prek/issues/2265">#2265</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/51db86cd2ae4dd496e7a7f5ea94c5013d4e5ac1f"><code>51db86c</code></a>
Update Rust crate phf to 0.14.0 (<a
href="https://redirect.github.com/j178/prek/issues/2266">#2266</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/1aa7d389e8e9d782e11bb08a7223858557e56875"><code>1aa7d38</code></a>
Update dependency uv to v0.11.23 (<a
href="https://redirect.github.com/j178/prek/issues/2262">#2262</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/j178/prek/compare/v0.4.5...v0.4.6">compare
view</a></li>
</ul>
</details>
<br />


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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 00:32:57 -04:00

173 lines
3.2 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",
"transmission-rpc",
"authlib>=1.7.2,<1.8",
"apprise>=1.11.0",
]
[project.optional-dependencies]
browser = [
"pyvirtualdisplay",
"pyautogui",
"seleniumbase==4.50.4",
"python-xlib",
]
[dependency-groups]
dev = [
"basedpyright>=1.39.9",
"prek",
"pytest",
"pytest-cov",
"pytest-xdist>=3.8.0",
"ruff==0.15.20",
"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