pyproject.toml
[build-system]
build-backend = "poetry.core.masonry.api"
requires = [
"poetry-core",
]
[tool.poetry]
name = "pixiv_bulk_downloader"
version = "3.0.0"
description = "Pixiv Bulk Downloader for bookmarks and works of following authors"
authors = [
"eggplants <w10776e8w@yahoo.co.jp>",
]
license = "MIT"
readme = "README.md"
repository = "https://github.com/eggplants/pixiv-bulk-downloader"
keywords = [
"downloader",
"cli",
"commandline-tool",
"pixivpy",
]
classifiers = [
"Environment :: Console",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
]
[tool.poetry.dependencies]
python = "^3.9"
pixivpy3 = "^3.7.5"
gppt = "^4.1.0"
pwinput = "^1.0.3"
[tool.poetry.group.dev.dependencies]
taskipy = "^1.12.2"
pre-commit = "^3.7.0"
black = "^24.3.0"
ruff = "^0.4.2"
mypy = "^1.9.0"
[tool.poetry.scripts]
pbd = "pixiv_bulk_downloader.main:main"
[tool.black]
target-version = [
"py312",
]
[tool.ruff]
lint.select = [
"ALL",
]
lint.ignore = [
"COM812", # Trailing comma missing
"D",
"D211", # No blank lines allowed before class docstring
"D213", # Multi-line docstring summary should start at the second line
"ISC001", # Implicitly concatenated string literals on one line
]
lint.per-file-ignores."*.py" = [
"ANN101", # Missing type annotation for `self` in method
"T201", # `print` found
]
lint.per-file-ignores."tests/*.py" = [
"D",
"S101", # Use of assert detected
]
lint.allowed-confusables = [
"/",
]
lint.pydocstyle.convention = "google"
[tool.mypy]
python_version = "3.12"
strict = true
# much harder
# disallow_any_decorated = true
# disallow_any_explicit = true
# disallow_any_expr = true
disallow_any_unimported = true
implicit_optional = false # for mypy<1.0
strict_concatenate = true
warn_unreachable = true
# message
pretty = true
show_column_numbers = true
show_error_context = true
[tool.pyright]
pythonVersion = "3.12"
typeCheckingMode = "strict"
[tool.taskipy.tasks]
lint = "pre-commit run -a"
profile = "python -m cProfile"