anyio<4.7,>=4.6.0
starlette<1.0,>=0.39.0
webargs-starlette<2.2,>=2.1
python-multipart==0.0.10
uvicorn[standard]<0.31,>=0.30.6
sqlalchemy<2.1,>=2.0.35
alembic<1.14,>=1.13.3
Jinja2<3.2,>=3.1
httpx<0.28,>=0.27.2
python-dotenv<0.22,>=0.21
traceback-with-variables<2.1,>=2.0.4
aiosmtplib<3.1,>=3.0.1
filelock<3.14,>=3.13.1
marshmallow<3.23,>=3.22.0
chardet<5.3,>=5.2.0
PyJWT[crypto]<2.10,>=2.9
exceptiongroup<2.0,>=1.2.2

[admin]
starlette-admin<0.12,>=0.11.2

[all]
starlette-web[admin,apispec,auth,deploy,develop,mqtt,postgres,redis,scheduler,testing]

[apispec]
apispec<6.7,>=6.6.1
pyyaml<6.1,>=6.0.1
openapi-spec-validator<0.8,>=0.7.1

[deploy]
gunicorn<24.0,>=23.0.0

[develop]
black~=22.10.0

[full]
starlette-web[all]

[mqtt]
gmqtt<0.7,>=0.6.13

[postgres]
asyncpg<0.30,>=0.29

[redis]
redis<5.1,>=5.0.8

[scheduler]
croniter<2.1,>=2.0.1

[scheduler:sys_platform == "win32"]
py-win-task-scheduler==0.2.1

[ssh]
asyncssh<2.15,>=2.14.2

[testing]
pytest>=8.3.3
pytest-asyncio>=0.24.0
coverage>=6.2
psycopg2-binary>=2.9
requests>=2.28
flake8>=4.0
