aboutsummaryrefslogtreecommitdiffstats
path: root/pyproject.toml
blob: 5e35893808e9722b5bec52be6e3ad4868ce10886 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[tool.poetry]
name = "thallium"
version = "1.2.0"
description = "Distribute printful prizes to users with vouchers"
authors = ["Chris Lovering <[email protected]>"]
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"