[project] name = "yamtrack" version = "0.25.2" # required for development description = "A self hosted media tracker." readme = "README.md" requires-python = ">=3.12" classifiers = [ "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] dependencies = [ "aiohttp~=3.13.5", "apprise~=1.9.9", "beautifulsoup4~=4.14.3", "celery~=5.6.3", "croniter~=6.2.2", "defusedxml~=0.7.1", "django~=5.2.13", "django-allauth[socialaccount]~=65.15.1", "django-celery-beat~=2.9.0", "django-celery-results~=2.6.0", "django-debug-toolbar~=6.3.0", "django-health-check[celery,redis]~=4.2.2", "django-model-utils~=5.0.0", "django-redis~=6.0.0", "django-select2~=8.4.8", "django-simple-history~=3.11.0", "django-widget-tweaks~=1.5.1", "gunicorn~=25.3.0", "icalendar~=7.0.3", "pillow~=12.2.0", "psycopg[binary,pool]~=3.3.3", "python-decouple~=3.8", "redis[hiredis]~=7.4.0", "requests~=2.33.1", "requests-ratelimiter~=0.9.3", "supervisor~=4.3.0", "unidecode~=1.4.0", ] [dependency-groups] lint = [ "django-upgrade~=1.30.0", "djlint~=1.36.4", "pre-commit~=4.5.1", "ruff~=0.15.10", ] test = [ "coverage~=7.13.5", "fakeredis[lua]~=2.35.1", "pytest-django~=4.12.0", "pytest-playwright~=0.7.2", "tblib~=3.2.2", ] dev = [ {include-group = "lint"}, {include-group = "test"}, ] docs = [ "zensical==0.0.42", "mike @ git+https://github.com/squidfunk/mike.git", ] [tool.uv] package = false [tool.ruff] target-version = "py312" extend-exclude = ["migrations"] force-exclude = true [tool.ruff.lint] select = ["ALL"] ignore = ["ANN", "PT", "PD", "D100", "D104", "RUF012", "PLR0913", "SLF001", "COM812"] [tool.ruff.lint.pycodestyle] max-doc-length = 88 [tool.ruff.lint.pydocstyle] convention = "pep257" [tool.djlint] custom_blocks = "element,slot,setvar" preserve_blank_lines = true ignore = "H006,H021" indent = 2 [tool.coverage.run] concurrency = ["multiprocessing"] omit = ["*/migrations/*", "*/tests/*", "*/__init__.py", "*/admin.py"]