-
Notifications
You must be signed in to change notification settings - Fork 66
Expand file tree
/
Copy pathpyproject.toml
More file actions
85 lines (77 loc) · 2.28 KB
/
pyproject.toml
File metadata and controls
85 lines (77 loc) · 2.28 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
[project]
name = "fastapi-sqlalchemy-asyncpg"
version = "1.24.0"
description = "A modern FastAPI application with SQLAlchemy 2.0 and AsyncPG for high-performance async database operations. Features include JWT authentication with Redis token storage, password hashing, connection pooling, data processing with Polars, Rich logging, task scheduling with APScheduler, and Shakespeare datasets integration."
readme = "README.md"
requires-python = "==3.14.0"
dependencies = [
"fastapi[all]==0.124.4",
"pydantic[email]==2.12.5",
"pydantic-settings==2.12.0",
"sqlalchemy==2.0.45",
"uvicorn[standard]==0.38.0",
"asyncpg==0.31.0",
"alembic==1.17.2",
"httpx==0.28.1",
"pytest==9.0.2",
"pytest-cov==7.0.0",
"uvloop==0.22.1",
"httptools==0.7.1",
"rich==14.2.0",
"pyjwt==2.10.1",
"redis==7.1.0",
"bcrypt==5.0.0",
"polars[pyarrow]==1.36.1",
"python-multipart==0.0.22",
"fastexcel==0.18.0",
"inline-snapshot==0.31.1",
"dirty-equals==0.11",
"polyfactory==3.1.0",
"granian==2.6.0",
"apscheduler[redis,sqlalchemy]>=4.0.0a6",
"rotoger==0.3.0",
"pyinstrument>=5.1.2",
]
[tool.uv]
dev-dependencies = [
"ruff==0.14.10",
"devtools[pygments]==0.12.2",
"pyupgrade==3.21.2",
"ipython==9.8.0",
"tryceratops==2.4.1",
]
[tool.mypy]
strict = true
exclude = ["venv", ".venv", "alembic"]
[tool.ruff]
target-version = "py314"
exclude = ["alembic"]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"ARG001", # unused arguments in functions
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"W191", # indentation contains tabs
"B904", # Allow raising exceptions without from e, for HTTPException
]
[tool.ruff.lint.pyupgrade]
# Preserve types, even if a file imports `from __future__ import annotations`.
keep-runtime-typing = true
[tool.inline-snapshot]
hash-length=15
default-flags=["report"]
default-flags-tui=["create", "review"]
show-updates=false
format-command="ruff format --stdin-filename {filename}"
[tool.inline-snapshot.shortcuts]
review=["review"]
fix=["create","fix"]