mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-11-10 12:38:32 +00:00
Bumps [publicsuffixlist](https://github.com/ko-zu/psl) from 1.1.2.20261101 to 1.1.2.20261105. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/ko-zu/psl/commits">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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Chores** * Updated the minimum required version of a dependency. <!-- 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.1.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.20261105",
|
|
]
|
|
|
|
[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
|