[tool.poetry]
name = "saleor-app-monitoring"
version = "0.1.0"
description = "Saleor Monitoring app"
authors = ["Przemysław Łada <przemyslaw.lada@saleor.io>"]

[tool.poetry.dependencies]
python = "^3.10"
fastapi = "^0.92.0"
uvicorn = {extras = ["standard"], version = "^0.20.0"}
python-dotenv = "^0.21.0"
python-json-logger = "^2.0.4"
datadog-api-client = {extras = ["async"], version = "^2.8.0"}
ua-parser = "^0.16.1"
ariadne = "^0.17.1"
httpx = "^0.23.3"
pyjwt = {extras = ["crypto"], version = "^2.6.0"}


[tool.poetry.group.dev.dependencies]
black = {extras = ["d"], version = "^22.12.0"}
pytest = "^7.2.0"
pre-commit = "^2.21.0"
ruff = "^0.0.215"
mypy = "^0.991"
anyio = "^3.6.2"
pytest-recording = "^0.12.2"

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

[tool.ruff]
target-version = "py310"
select = [
    "E",  # pycodestyle errors
    "W",  # pycodestyle warnings
    "F",  # pyflakes
    "I001",  # isort
    "C",  # flake8-comprehensions
    "B",  # flake8-bugbear
]
ignore = [
    "E501",  # line too long, handled by black
    "B008",  # do not perform function calls in argument defaults
    "C901",  # too complex
]
fix = true
fixable = ["I001"]
src = ["monitoring"]

[tool.ruff.isort]
known-first-party = ["monitoring"]

[tool.mypy]
allow_redefinition = true
show_error_codes = true
check_untyped_defs = true
