fastapi>=0.115.12,<0.116.0
python-multipart>=0.0.20,<0.1.0
python-dotenv>=1.1.1,<1.2.0
gunicorn>=23.0.0,<23.1.0
uvicorn[standard]>=0.34.2,<0.35.0

sqlalchemy[asyncio]>=2.0.40,<2.1.0
alembic>=1.15.2,<1.16.0
asyncmy>=0.2.10,<0.3.0 # async MySQL

kink>=0.8.1,<0.9.0
appodus-utils>=0.84.0,<0.85.0
apscheduler>=3.11.0,<3.12.0
libre-fastapi-jwt>=0.22.8,<0.23.0
email-validator>=2.2.0,<2.3.0

mailjet_rest>=1.3.4,<1.4.0
firebase-admin>=6.8.0,<6.9.0
pywebpush>=2.0.3,<2.1.0

tenacity>=9.1.2,<9.2.0 # retry pattern
pandas>=2.2.3,<2.3.0
#bleach>=6.2.0,<6.3.0 # HTML Validation
circuitbreaker>=2.1.3,<2.2.0

prometheus-client>=0.21.1,<0.22.0 # Metrics capturing and viewing

#AI
openai>=1.65.3,<1.66.0


boto3[crt]>=1.38.0,<1.39.0
google-api-python-client>=2.170.0,<2.171.0
modal>=1.1.0,<1.2.0
# google-auth-oauthlib>=1.2.2,<1.3.0
# supabase
# weaviate-client

# httpx
# langchain
# PyMuPDF
# python-docx
respx>=0.22.0,<0.23.0
polyfactory>=2.22.1,<=2.23.0
Faker>=37.5.3,<37.6.0
pytest>=8.3.4,<8.4.0
# pytest-html>=4.1.1,<4.2.0
# pytest-mock>=3.14.0,<3.15.0
# faker>=33.3.1,<33.4.0
# parameterized>=0.9.0,<0.10.0
