[tool.poetry]
name = "ows-monday-com-orca-backend"
version = "0.1.0"
description = "Backend of the Monday.com ORCA project custom extension."
authors = ["Sony Music PDE"]
readme = "README.md"
packages = [{include = "monday_com_orca_backend"}]

[tool.poetry.dependencies]
audience-common = {version = "^3.3.1", source = "pde"}
ddtrace = "^2.7.4"
fastapi = "^0.116.1"
httpx = "^0.27.0"
jwtauth = {version = "^0.2.0", source = "pde"}
python = "^3.12"
sentry-sdk = {extras = ["fastapi"], version = "^1.43.0"}
uvicorn = "^0.34.3"
snowflake-connector-python = {extras = ["pandas"], version = "^3.15.0"}
zstandard = "^0.23.0"
cachetools = "^5.5.2"
pydantic = {extras = ["email"], version = "^2.11.1"}
python-dateutil = "^2.9.0.post0"

[tool.poetry.group.dev.dependencies]
mypy = "^1.9.0"
ruff = "^0.4.9"
pytest = "^8.3.5"
pytest-cov = "^6.2.1"
pytest-mock = "^3.14.0"
pytest-asyncio = "^1.0.0"
pre-commit = "^3.2.0"
respx = "^0.21.1"
types-requests = "^2.31.0.20240311"
pandas-stubs = "^2.2.2"
types-cachetools = "^5.3.0"
types-python-dateutil = "^2.9.0"
coverage = "^7.9.1"

[[tool.poetry.source]]
name = "pde"
url = "https://pypi.theorchard.io/pypi/"
priority = "supplemental"

[tool.ruff]
line-length = 88
indent-width = 4

[tool.ruff.format]
quote-style = "double"

[tool.ruff.lint]
select = [
    "E",  # pycodestyle errors
    "W",  # pycodestyle warnings
    "F",  # pyflakes
    "I",  # isort
    "B",  # flake8-bugbear
    "C4", # flake8-comprehensions
    "UP", # pyupgrade
]

[tool.ruff.lint.per-file-ignores]
"monday_com_orca_backend/api/routers/**/*.py" = ["B008"]  # Ignore B008 in FastAPI routers (false positive)
"monday_com_orca_backend/api/routers/**/sql_queries.py" = ["E501"]  # Ignore E501 in SQL query files (long lines are expected)

[tool.pytest.ini_options]
addopts = "--cov=monday_com_orca_backend --cov-report=xml:coverage.xml --cov-report=term"

[tool.black]
line-length = 88
indent-width = 4

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