grawlix/pyproject.toml
s0len 1e6e5f161c
Fix Nextory: bump X-App-Version, null series, missing urllib3 dep (#25)
* Fix Nextory: bump X-App-Version and handle null series

The Nextory API now rejects the old X-App-Version "5.4.1" with an
AppDeprecateError. Bump it to "2026.05.4" (current Android app version).

Also, the product API can return {"series": null} for standalone books
(not just omit the key entirely). The previous `"series" in product_info`
check passed in that case and we crashed on a NoneType subscript.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add urllib3 as explicit dependency

grawlix/sources/storytel.py imports urllib3.util.parse_url but urllib3
was only pulled in transitively. Fresh installs (e.g. via uv tool) fail
at import time with ModuleNotFoundError.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Fix invalid escape sequence warning in saxo regex

f"\d+$" produced a SyntaxWarning on Python 3.12 (and will become a
SyntaxError in a future release). The string has no interpolation, so
the raw form r"\d+$" is the right fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-03 07:50:17 +00:00

51 lines
1.0 KiB
TOML

[project]
name = "grawlix"
authors = [
{ name = "Joakim Holm", email = "mail@joakimholm.xyz" }
]
description = "CLI tool for downloading ebooks"
readme = "README.md"
keywords = ["ebook", "cli", "downloader"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
]
dependencies = [
"appdirs",
"beautifulsoup4",
"blackboxprotobuf",
"EbookLib",
"httpx",
"importlib-resources",
"lxml",
"pycryptodome",
"rich",
"tomli",
"urllib3",
]
dynamic = ["version"]
[project.urls]
"Homepage" = "https://github.com/jo1gi/grawlix"
"Bugtracker" = "https://github.com/jo1gi/grawlix/issues"
[project.scripts]
grawlix = "grawlix.__main__:run"
[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
[tool.setuptools.dynamic]
version = {attr = "grawlix.__version__"}
[tool.setuptools.package-data]
grawlix = ["*.txt"]
[tool.mypy]
ignore_missing_imports = true
allow_untyped_globals = false
disallow_untyped_calls = true