[tool.poetry]
name = "{{project_name}}"
version = "0.1.0"
description = "An experimental Nexios application with cutting-edge features"
authors = ["Your Name <you@example.com>"]

[tool.poetry.dependencies]
python = "^3.9"
nexios = "^{{version}}"
strawberry-graphql = "^0.209.6"
websockets = "^11.0.3"
redis = "^5.0.1"
aiofiles = "^23.2.1"
python-jose = {extras = ["cryptography"], version = "^3.3.0"}
passlib = {extras = ["bcrypt"], version = "^1.7.4"}
python-multipart = "^0.0.5"
aiosqlite = "^0.17.0"

[tool.poetry.group.dev.dependencies]
pytest = "^7.3.1"
pytest-asyncio = "^0.21.0"
pytest-cov = "^4.1.0"
black = "^23.3.0"
isort = "^5.12.0"
mypy = "^1.3.0"
ruff = "^0.0.270"
pre-commit = "^3.3.3"
locust = "^2.15.1"
opentelemetry-instrumentation = "^0.39b0"
opentelemetry-sdk = "^1.18.0"

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

[tool.black]
line-length = 88
target-version = ['py39']
include = '\.pyi?$'

[tool.isort]
profile = "black"
multi_line_output = 3

[tool.mypy]
python_version = "3.9"
strict = true
warn_return_any = true
warn_unused_configs = true
plugins = ["strawberry.ext.mypy_plugin"]

[tool.ruff]
line-length = 88
target-version = "py39"
select = ["E", "F", "I", "N", "W", "D", "B", "COM", "C4", "PT", "RET", "SIM"]
ignore = ["D203", "D212"]

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
python_files = ["test_*.py"]
addopts = "--cov=src --cov-report=term-missing"

