pyproject.toml
# poetry self add poetry-bumpversion
[build-system]
build-backend = "poetry.core.masonry.api"
requires = [
"poetry-core",
]
[tool]
[tool.black]
line-length = 120
target-version = ['py39']
[tool.isort]
profile = "black"
[tool.mypy]
pretty = true
python_version = "3.9"
show_error_codes = true
strict = true
plugins = [
"pydantic.mypy"
]
[tool.pydantic-mypy]
init_forbid_extra = true
init_typed = true
warn_required_dynamic_aliases = true
[tool.ruff]
select = ["ALL"]
ignore = [
"D",
]
line-length = 120
[tool.ruff.mccabe]
max-complexity = 18
[tool.ruff.per-file-ignores]
"model.py" = [
"ANN101",
"ANN102",
# https://github.com/pydantic/pydantic/issues/2597#issuecomment-1086194186
"UP006", # Use `tuple`/`list` instead of `Tuple`/`List`
"UP007", # Use `X | Y` for type annotations
]
"tests/test_*.py" = [
"INP001", # File `tests/test_pyjlyric.py` is part of an implicit namespace package. Add an `__init__.py`.
"S101", # Use of assert detected
]
[tool.poetry]
authors = ["eggplants <w10776e8w@yahoo.co.jp>"]
classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only"
]
description = "Japanese Lyric Aggregator"
keywords = [
"japanese",
"lyrics",
"download-lyrics",
"lyrics-scraping",
"japanese-songs",
]
name = "pyjlyric"
packages = [{include = "pyjlyric"}]
license = "MIT"
readme = "README.md"
repository = "https://github.com/eggplants/pyjlyric"
version = "1.1.0"
[tool.poetry.dependencies]
python = ">=3.9,<3.12"
pydantic = "^2.0.2"
typing-extensions = "^4.5.0"
requests = "^2.28.2"
beautifulsoup4 = "^4.11.2"
lxml = ">=4.9.2,<6.0.0"
chardet = "^5.1.0"
[tool.poetry.group.dev.dependencies]
mypy = ">=0.991,<1.12"
pre-commit = ">=2.20,<4.0"
taskipy = "^1.10.3"
pytest = ">=7.2.2,<9.0.0"
pytest-cov = ">=4,<6"
[tool.poetry.scripts]
jrc = "pyjlyric.main:main"
[tool.poetry_bumpversion.file."pyjlyric/__init__.py"]
[tool.taskipy.tasks]
test = "pytest --cov=pyjlyric --cov-report=term"
"test:ci" = "task test --cov-report=xml:cov.xml"
lint = "pre-commit run -a"
profile = "python -m cProfile"