[tool.poetry] name = "thallium" version = "1.2.0" description = "Distribute printful prizes to users with vouchers" authors = ["Chris Lovering "] license = "MIT" package-mode = false [tool.poetry.dependencies] python = "^3.12.0" alembic = {version = "^1.13.2", extras = ["tz"]} fastapi = "^0.112.0" httpx = "^0.23.3" jinja2 = "^3.1.6" sqlalchemy = {version = "^2.0.32", extras = ["asyncio"]} psycopg = {version = "^3.2.1", extras = ["binary"]} pydantic = "^2.8.2" pydantic-settings = "^2.4.0" pyjwt = "^2.9.0" uvicorn = "^0.30.6" scalar-fastapi = "^1.0.3" argon2-cffi = "^23.1.0" [tool.poetry.group.linting.dependencies] pre-commit = "^3.8.0" ruff = "^0.5.5" [tool.poetry.group.dev.dependencies] poetry-plugin-export = "*" [tool.poetry.group.test.dependencies] pytest = "^8.3.2" pytest-asyncio = "^0.23.8" pytest-subtests = "^0.13.1" [build-system] requires = ["poetry-core>=1.5.0"] build-backend = "poetry.core.masonry.api" [tool.ruff] target-version = "py312" extend-exclude = [".cache"] line-length = 120 unsafe-fixes = true output-format = "concise" [tool.ruff.lint] select = ["ALL"] ignore = [ "ANN002", "ANN003", "ANN101", "ANN102", "C901", "CPY001", "D100", "D104", "D105", "D107", "D203", "D212", "D214", "D215", "D416", # Rules suggested to be ignored when using ruff format "COM812", "COM819", "D206", "E111", "E114", "E117", "E501", "ISC001", "Q000", "Q001", "Q002", "Q003", "W191" ] [tool.ruff.lint.isort] known-first-party = ["tests", "src", "migrations"] order-by-type = false case-sensitive = true combine-as-imports = true [tool.ruff.lint.per-file-ignores] "thallium-backend/tests/**" = ["D103", "S101"] "thallium-backend/migrations/*" = ["N999"] [tool.pytest.ini_options] # addopts = "--ignore=examples" asyncio_mode = "auto"