# Tooling configuration. # # Deliberately limited to tool settings: the project is run from wsgi.py, # not installed as a distribution, so there is no [project] table yet. # Consolidating requirements.txt / requirements-dev.txt into dependency # groups here is tracked as QUA-001. [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["."] addopts = "-q --strict-markers --strict-config" filterwarnings = [ "default", # discord.py imports audioop, removed from the stdlib in 3.13. "ignore:'audioop' is deprecated:DeprecationWarning", # Every model uses datetime.utcnow as a column default. Tracked as # DB-009; the warning would otherwise drown the run. "ignore:datetime.datetime.utcnow:DeprecationWarning", ] [tool.ruff] line-length = 100 target-version = "py312" exclude = [".venv", "venv", "migrations", "docs"] [tool.ruff.lint] # Starting from ruff's default rule set (pyflakes + a slice of pycodestyle). # Widening it — bugbear, isort, pyupgrade — is deliberately deferred until # the codebase has been formatted once, so that the first enforcement is # about real defects rather than churn. Tracked as QUA-002. select = ["E4", "E7", "E9", "F"] [tool.ruff.lint.per-file-ignores] # Intentional re-export facade: `from app.models import User, Tryout, ...` # is the documented entry point, and importing the modules is what # registers every model with SQLAlchemy. "app/models/__init__.py" = ["F401"] "app/models/user_model/__init__.py" = ["F401"] "tests/conftest.py" = ["E402"] [tool.ruff.format] quote-style = "preserve"