Files
tidal-dl/pyproject.toml
T

206 lines
4.4 KiB
TOML
Raw Normal View History

2025-01-31 08:51:38 +01:00
[project]
2023-12-19 23:58:57 +01:00
name = "tidal-dl-ng"
2025-01-31 08:51:38 +01:00
authors = [
{name = "Robert Honz",email = "<cen.sored@gmail.com>"}
]
2025-04-02 07:03:53 +02:00
version = "0.25.6"
2023-12-19 23:58:57 +01:00
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",
2024-11-29 17:47:49 +01:00
"Programming Language :: Python :: 3.12",
]
2025-01-31 09:03:46 +01:00
requires-python = ">=3.12,<3.13"
dynamic = ["dependencies"]
2023-12-19 23:58:57 +01:00
2025-01-31 08:51:38 +01:00
[project.scripts]
2023-12-19 23:58:57 +01:00
tidal-dl-ng = "tidal_dl_ng.cli:app"
2024-01-19 18:00:16 +01:00
tidal-dl-ng-gui = "tidal_dl_ng.gui:gui_activate"
2023-12-19 23:58:57 +01:00
tdn = "tidal_dl_ng.cli:app"
2024-01-19 18:00:16 +01:00
tdng = "tidal_dl_ng.gui:gui_activate"
2023-12-19 23:58:57 +01:00
[tool.poetry.dependencies]
2024-11-06 10:21:19 +01:00
requests = "~2.32.3"
mutagen = "^1.47.0"
dataclasses-json = "^0.6.7"
2025-01-05 21:10:09 +01:00
pathvalidate = "^3.2.3"
2024-11-06 10:21:19 +01:00
m3u8 = "^6.0.0"
2023-12-19 23:58:57 +01:00
coloredlogs = "^15.0.1"
2025-01-05 18:34:45 +01:00
pyside6 = {version = "6.8.0.1", optional = true}
pyqtdarktheme-fork = {version = "^2.3.2", optional = true}
2024-01-19 18:00:16 +01:00
mpegdash = "^0.4.0"
2024-11-06 10:21:19 +01:00
rich = "^13.9.4"
toml = "^0.10.2"
2025-03-24 07:11:11 +01:00
typer = "^0.15.2"
2024-12-30 10:40:20 +01:00
tidalapi = "^0.8.3"
2025-01-03 16:06:13 +01:00
python-ffmpeg = "^2.0.12"
2025-03-24 07:11:11 +01:00
pycryptodome = "^3.22.0"
2023-12-19 23:58:57 +01:00
2025-01-31 08:51:38 +01:00
[project.optional-dependencies]
gui = ["pyside6", "pyqtdarktheme-fork"]
2023-12-19 23:58:57 +01:00
[tool.poetry.group.dev]
optional = true
[tool.poetry.group.dev.dependencies]
2024-11-06 10:21:19 +01:00
pytest = "^8.3.3"
deptry = "^0.20.0"
mypy = "^1.13.0"
pre-commit = "^4.0.1"
tox = "^4.23.2"
pyupgrade = "^3.19.0"
bandit = "^1.7.10"
2023-12-19 23:58:57 +01:00
darglint = "^1.8.1"
2024-01-12 11:41:37 +01:00
isort = { extras = ["colors"], version = "^5.13.2" }
2023-12-19 23:58:57 +01:00
mypy-extensions = "^1.0.0"
pydocstyle = "^6.3.0"
2025-03-24 07:11:11 +01:00
pylint = "^3.3.6"
pillow = "^11.1.0"
2024-11-06 10:21:19 +01:00
pytest-cov = "^6.0.0"
2025-03-24 07:11:11 +01:00
black = "^25.1.0"
2025-04-02 05:56:36 +02:00
nuitka = "^2.6.9"
2023-12-19 23:58:57 +01:00
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
2024-11-13 14:04:25 +01:00
mkdocs = "^1.6.1"
mkdocs-material = "^9.5.44"
mkdocstrings = { extras = ["python"], version = "^0.27.0" }
griffe = "^1.5.1"
2023-12-19 23:58:57 +01:00
[build-system]
2025-01-31 08:51:38 +01:00
requires = ["poetry-core>=2.0.0,<3.0.0"]
2023-12-19 23:58:57 +01:00
build-backend = "poetry.core.masonry.api"
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff]
2024-12-17 09:45:10 +01:00
target-version = "py312"
2023-12-19 23:58:57 +01:00
line-length = 120
fix = true
# Overview: https://docs.astral.sh/ruff/rules/
2023-12-19 23:58:57 +01:00
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",
2024-01-12 10:21:34 +01:00
# Do not use bare `except`
2024-01-12 11:41:37 +01:00
"E722",
# PEP 484 prohibits implicit `Optional`
# Disabled only temporarely.
"RUF013"
2023-12-19 23:58:57 +01:00
]
[tool.ruff.per-file-ignores]
"tests/*" = ["S101"]
"tidal_dl_ng/cli.py" = ["UP007"]
2023-12-19 23:58:57 +01:00
[tool.black]
# https://github.com/psf/black
2024-12-17 09:45:10 +01:00
target-version = ["py312"]
2023-12-19 23:58:57 +01:00
line-length = 120
color = true
preview = true
exclude = '''
/(
\.git
| \.mypy_cache
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
| env
| venv
2024-01-12 11:41:37 +01:00
| site
| docs
2024-01-19 10:00:27 +01:00
| tidal_dl_ng/ui/main.py
| tidal_dl_ng/ui/dialog_version.py
2023-12-19 23:58:57 +01:00
)/
'''
[tool.isort]
# https://github.com/timothycrosley/isort/
2024-12-17 09:45:10 +01:00
py_version = 312
2023-12-19 23:58:57 +01:00
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
2025-03-23 21:29:07 +01:00
known_third_party = ["Crypto", "PySide6", "coloredlogs", "dataclasses_json", "ffmpeg", "m3u8", "mutagen", "pathvalidate", "requests", "rich", "tidalapi", "toml", "typer"]
2023-12-19 23:58:57 +01:00
[tool.mypy]
# https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file
files = ["tidal_dl_ng"]
2024-12-17 09:45:10 +01:00
python_version = "3.12"
2023-12-19 23:58:57 +01:00
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"