Files
tidal-dl/pyproject.toml
T
2024-03-14 06:36:33 +01:00

202 lines
4.4 KiB
TOML

[tool.poetry]
name = "tidal-dl-ng"
authors = ["Robert Honz <cen.sored@gmail.com>"]
version = "0.8.3"
description = "TIDAL Medial Downloader Next Generation!"
repository = "https://github.com/exislow/tidal-dl-ng"
documentation = "https://exislow.github.io/tidal-dl-ng/"
readme = "README.md"
packages = [
{ include = "tidal_dl_ng" }
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
[tool.poetry.scripts]
tidal-dl-ng = "tidal_dl_ng.cli:app"
tidal-dl-ng-gui = "tidal_dl_ng.gui:gui_activate"
tdn = "tidal_dl_ng.cli:app"
tdng = "tidal_dl_ng.gui:gui_activate"
[tool.poetry.dependencies]
python = ">=3.10,<3.12"
requests = "2.31.0"
mutagen = "1.47.0"
pycryptodome = "3.20.0"
tidalapi = "0.7.4"
dataclasses-json = "^0.6.4"
pathvalidate = "^3.2.0"
typer = {extras = ["all"], version = "^0.9.0"}
m3u8 = "^4.0.0"
ffmpeg-python = "^0.2.0"
coloredlogs = "^15.0.1"
pyside6 = {version = "^6.6.2", optional = true}
pyqtdarktheme = {version = "^2.1.0", optional = true}
mpegdash = "^0.4.0"
rich = "^13.7.1"
[tool.poetry.extras]
gui = ["pyside6", "pyqtdarktheme"]
[tool.poetry.group.dev]
optional = true
[tool.poetry.group.dev.dependencies]
pytest = "^7.4.4"
deptry = "^0.13.0"
mypy = "^1.8.0"
pre-commit = "^3.6.0"
tox = "^4.12.0"
pyupgrade = "^3.15.1"
bandit = "^1.7.6"
darglint = "^1.8.1"
isort = { extras = ["colors"], version = "^5.13.2" }
mypy-extensions = "^1.0.0"
pydocstyle = "^6.3.0"
pylint = "^3.1.0"
pyinstaller = "^6.5.0"
pillow = "^10.2.0"
pytest-cov = "^4.1.0"
black = "^24.2.0"
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
mkdocs = "^1.5.3"
mkdocs-material = "^9.4.14"
mkdocstrings = { extras = ["python"], version = "^0.24.0" }
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff]
target-version = "py311"
line-length = 120
fix = true
# Overview: https://docs.astral.sh/ruff/rules/
select = [
# flake8-2020
"YTT",
# flake8-bandit
"S",
# flake8-bugbear
"B",
# flake8-builtins
"A",
# flake8-comprehensions
"C4",
# flake8-debugger
"T10",
# flake8-simplify
"SIM",
# isort
"I",
# mccabe
"C90",
# pycodestyle
"E", "W",
# pyflakes
"F",
# pygrep-hooks
"PGH",
# pyupgrade
"UP",
# ruff
"RUF",
# tryceratops
"TRY",
]
ignore = [
# LineTooLong
"E501",
# DoNotAssignLambda
"E731",
# Do not use bare `except`
"E722",
# PEP 484 prohibits implicit `Optional`
# Disabled only temporarely.
"RUF013"
]
[tool.ruff.per-file-ignores]
"tests/*" = ["S101"]
"tidal_dl_ng/cli.py" = ["UP007"]
[tool.black]
# https://github.com/psf/black
target-version = ["py311"]
line-length = 120
color = true
preview = true
exclude = '''
/(
\.git
| \.mypy_cache
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
| env
| venv
| site
| docs
| tidal_dl_ng/ui/main.py
| tidal_dl_ng/ui/dialog_version.py
)/
'''
[tool.isort]
# https://github.com/timothycrosley/isort/
py_version = 311
line_length = 120
known_typing = ["typing", "types", "typing_extensions", "mypy", "mypy_extensions"]
sections = ["FUTURE", "TYPING", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
include_trailing_comma = true
profile = "black"
multi_line_output = 3
indent = 4
color_output = true
known_third_party = ["Crypto", "PySide6", "coloredlogs", "dataclasses_json", "ffmpeg", "m3u8", "mpegdash", "mutagen", "pathvalidate", "requests", "rich", "tidalapi", "typer"]
[tool.mypy]
# https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file
files = ["tidal_dl_ng"]
python_version = "3.11"
pretty = true
show_traceback = true
color_output = true
allow_redefinition = false
check_untyped_defs = true
disallow_any_generics = true
disallow_incomplete_defs = true
ignore_missing_imports = true
implicit_reexport = false
no_implicit_optional = true
show_column_numbers = true
show_error_codes = true
show_error_context = true
strict_equality = true
strict_optional = true
warn_no_return = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
warn_unused_ignores = true
disallow_untyped_defs = "True"
disallow_any_unimported = "True"