1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
[build-system]
build-backend = "setuptools.build_meta"
requires = [ "setuptools>=66", "setuptools-scm>=7.1" ]
[project]
name = "dosage"
description = "a comic strip downloader and archiver"
readme = "README.md"
keywords = [ "archiver", "comic", "crawler", "downloader", "webcomic" ]
license = { text = "MIT License" }
maintainers = [ { name = "Tobias Gruetzmacher", email = "tobias-dosage@23.gs" } ]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Multimedia :: Graphics",
]
dynamic = [ "version" ]
requires-python = ">=3.8"
dependencies = [
"imagesize",
"importlib-resources>=5; python_version<'3.9'",
"lxml>=4",
"platformdirs",
"requests>=2",
"rich",
]
[project.urls]
Homepage = "https://dosage.rocks"
Code = "https://github.com/webcomics/dosage"
"Issue tracker" = "https://github.com/webcomics/dosage/issues"
[project.optional-dependencies]
bash = ["argcomplete"]
compression = [
"brotli; platform_python_implementation == 'CPython'",
"brotlicffi; platform_python_implementation != 'CPython'",
"zstandard;python_version<'3.14'",
]
dev = [
"allure-pytest",
"pytest-cov",
"pytest-xdist",
"responses",
]
[project.scripts]
dosage = "dosagelib.cmd:main"
[project.entry-points.pyinstaller40]
hook-dirs = "dosagelib.__pyinstaller:get_hook_dirs"
[tool.setuptools]
platforms = [ "Any" ]
license-files = [ "COPYING" ]
[tool.setuptools.packages]
find = { namespaces = false }
[tool.setuptools_scm]
[tool.flake8]
max-complexity = 10
max_line_length = 100
ignore = [
'E127', 'E128', # hanging instead of visual indent
'W504' # line breaks after binary operator
]
noqa-require-code = true
no-accept-encodings = true
min-version = "3.8"
extend-exclude = [
'.venv',
'build',
]
[tool.isort]
profile = "black"
src_paths = [ "dosagelib", "scripts", "tests" ]
known_third_party = [ "responses" ]
[tool.coverage.run]
branch = true
source = [ "dosagelib", "tests" ]
[tool.coverage.html]
show_contexts = true
|