@@ -5,30 +5,71 @@ description = "A modern FastAPI application with SQLAlchemy 2.0 and AsyncPG for
5
5
readme = " README.md"
6
6
requires-python = " >=3.13"
7
7
dependencies = [
8
- " fastapi[all]>=0.115.6 " ,
9
- " pydantic[email]>=2.10.3 " ,
10
- " pydantic-settings>=2.7.0 " ,
11
- " sqlalchemy>=2.0.36 " ,
8
+ " fastapi[all]>=0.115.11 " ,
9
+ " pydantic[email]>=2.10.6 " ,
10
+ " pydantic-settings>=2.8.1 " ,
11
+ " sqlalchemy>=2.0.38 " ,
12
12
" uvicorn[standard]>=0.34.0" ,
13
13
" asyncpg>=0.30.0" ,
14
- " alembic>=1.14.0 " ,
14
+ " alembic>=1.15.1 " ,
15
15
" httpx>=0.28.1" ,
16
- " pytest>=8.3.4 " ,
16
+ " pytest>=8.3.5 " ,
17
17
" pytest-cov>=6.0.0" ,
18
18
" uvloop>=0.21.0" ,
19
19
" httptools>=0.6.4" ,
20
20
" rich>=13.9.4" ,
21
- " pyjwt[cryptography] >=2.10.1" ,
21
+ " pyjwt>=2.10.1" ,
22
22
" redis>=5.2.1" ,
23
- " bcrypt>=4.2.1 " ,
24
- " polars>=1.17.1 " ,
23
+ " bcrypt>=4.3.0 " ,
24
+ " polars>=1.24.0 " ,
25
25
" python-multipart>=0.0.20" ,
26
- " fastexcel>=0.12.0" ,
27
- " fastapi-cache2>=0.2.1" ,
26
+ " fastexcel>=0.13.0" ,
28
27
" inline-snapshot>=0.17.0" ,
29
28
" dirty-equals>=0.8.0" ,
30
29
" polyfactory>=2.18.1" ,
31
30
" granian>=1.7.0" ,
32
31
" apscheduler[redis,sqlalchemy]>=4.0.0a5" ,
33
- " pendulum @ git+https://github.com/sdispater/pendulum.git@develop"
34
- ]
32
+ ]
33
+
34
+ [tool .uv ]
35
+ dev-dependencies = [
36
+ " ruff>=0.9.10" ,
37
+ " devtools[pygments]>=0.12.2" ,
38
+ " pyupgrade>=3.19.1" ,
39
+ " ipython>=9.0.2" ,
40
+ " sqlacodegen>=3.0.0" ,
41
+ " tryceratops>=2.4.1" ,
42
+ " locust>=2.33.0"
43
+
44
+ ]
45
+
46
+
47
+ [tool .mypy ]
48
+ strict = true
49
+ exclude = [" venv" , " .venv" , " alembic" ]
50
+
51
+ [tool .ruff ]
52
+ target-version = " py313"
53
+ exclude = [" alembic" ]
54
+
55
+ [tool .ruff .lint ]
56
+ select = [
57
+ " E" , # pycodestyle errors
58
+ " W" , # pycodestyle warnings
59
+ " F" , # pyflakes
60
+ " I" , # isort
61
+ " B" , # flake8-bugbear
62
+ " C4" , # flake8-comprehensions
63
+ " UP" , # pyupgrade
64
+ " ARG001" , # unused arguments in functions
65
+ ]
66
+ ignore = [
67
+ " E501" , # line too long, handled by black
68
+ " B008" , # do not perform function calls in argument defaults
69
+ " W191" , # indentation contains tabs
70
+ " B904" , # Allow raising exceptions without from e, for HTTPException
71
+ ]
72
+
73
+ [tool .ruff .lint .pyupgrade ]
74
+ # Preserve types, even if a file imports `from __future__ import annotations`.
75
+ keep-runtime-typing = true
0 commit comments