[tool.poetry]
name = "{{ project_name }}"
version = "0.1.0"
description = "A FastAPI project generated with FasCraft"
authors = ["Your Name <your.email@example.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.10"
fastapi = ">=0.100.0,<1.0.0"
uvicorn = {extras = ["standard"], version = ">=0.20.0,<1.0.0"}
pydantic = ">=2.0.0,<3.0.0"
pydantic-settings = ">=2.0.0,<3.0.0"
httpx = "^0.25.0"
python-multipart = "^0.0.6"
python-jose = {extras = ["cryptography"], version = "^3.3.0"}
passlib = {extras = ["bcrypt"], version = "^1.7.4"}
sqlalchemy = ">=2.0.0,<3.0.0"
alembic = ">=1.10.0,<2.0.0"
python-dotenv = ">=1.0.0,<2.0.0"
structlog = ">=23.0.0,<24.0.0"

[tool.poetry.group.dev.dependencies]
pytest = "^7.4.3"
pytest-asyncio = "^0.21.1"
pytest-cov = "^4.1.0"
pytest-mock = "^3.12.0"
pytest-xdist = "^3.5.0"
coverage = "^7.3.2"
black = "^24.0.0"
ruff = "^0.2.0"
isort = "^5.12.0"
flake8 = "^6.1.0"
flake8-docstrings = "^1.7.0"
flake8-import-order = "^0.18.2"
flake8-quotes = "^3.4.0"
mypy = "^1.7.1"
types-requests = "^2.31.0.10"
types-PyYAML = "^6.0.12.12"
bandit = "^1.7.5"
safety = "^2.3.5"
mkdocs = "^1.5.3"
mkdocs-material = "^9.4.8"
mkdocstrings = {extras = ["python"], version = "^0.24.0"}
watchdog = "^3.0.0"
pgcli = "^4.0.1"
mycli = "^1.26.1"
httpie = "^3.2.2"
insomnia-rest-client = "^0.1.0"
ipdb = "^0.13.13"
ipython = "^8.17.2"
pre-commit = "^3.5.0"
jupyter = "^1.0.0"
notebook = "^7.0.6"

[tool.poetry.group.prod.dependencies]
psycopg2-binary = "^2.9.9"
pymysql = "^1.1.0"
motor = "^3.3.2"
pymongo = "^4.6.0"
redis = "^5.0.1"
celery = "^5.3.4"
python-cors = "^1.7.0"
gunicorn = "^21.2.0"
healthcheck = "^1.3.0"
prometheus-client = "^0.19.0"
cryptography = "^41.0.7"
orjson = "^3.9.10"
ujson = "^5.8.0"
aioredis = "^2.0.1"
slowapi = "^0.1.9"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.ruff]
target-version = "py310"
line-length = 88
select = ["E", "W", "F", "I", "B", "C4", "UP"]

[tool.black]
line-length = 88
target-version = ['py310']
