[project] name = "oamc-turnier" version = "0.1.0" description = "OAMC Reinheim — Auswertung von ADAC Motorrad-Turnieren (Ergebnisse, Zeitmessung, Meisterschaft)" readme = "README.md" requires-python = ">=3.11" license = { text = "Proprietär — OAMC Reinheim e.V. im ADAC" } authors = [{ name = "OAMC Reinheim e.V." }] dependencies = [ "fastapi>=0.115", "uvicorn[standard]>=0.30", "sqlalchemy>=2.0.30", "alembic>=1.13", "pydantic>=2.7", "pydantic-settings>=2.2", "psycopg[binary]>=3.2", "jinja2>=3.1", "python-multipart>=0.0.9", "bcrypt>=4.1", "pyjwt>=2.8", "openpyxl>=3.1", "python-dateutil>=2.9", "sse-starlette>=2.1", ] [project.optional-dependencies] # WeasyPrint zieht native Abhängigkeiten (pango, cairo). Auf dem Pi separat via apt. pdf = ["weasyprint>=62"] dev = [ "pytest>=8.2", "pytest-asyncio>=0.23", "httpx>=0.27", "ruff>=0.5", "mypy>=1.10", "types-python-dateutil", ] [project.scripts] oamc-turnier = "oamc.cli:main" [build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] oamc = ["templates/**/*", "static/**/*", "seeds/data/*"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" filterwarnings = [ "error::DeprecationWarning:oamc.*", "ignore::DeprecationWarning:starlette.*", "ignore::DeprecationWarning:httpx.*", "ignore:Using `httpx`:UserWarning", ] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"] [tool.mypy] python_version = "3.11" plugins = ["pydantic.mypy"] warn_unused_ignores = true