[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "duty-teller"
version = "2.0.6"
description = "Telegram bot for team duty shift calendar and group reminder"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
    "python-telegram-bot[job-queue]>=22.0,<23.0",
    "python-dotenv>=1.0,<2.0",
    "fastapi>=0.115,<1.0",
    "uvicorn[standard]>=0.32,<1.0",
    "sqlalchemy>=2.0,<3.0",
    "alembic>=1.14,<2.0",
    "pydantic>=2.0,<3.0",
    "icalendar>=5.0,<6.0",
]

[project.scripts]
duty-teller = "duty_teller.run:main"

[project.optional-dependencies]
dev = [
    "pytest>=8.0,<9.0",
    "pytest-asyncio>=1.0,<2.0",
    "pytest-cov>=6.0,<7.0",
    "httpx>=0.27,<1.0",
]
docs = [
    "mkdocs>=1.5,<2",
    "mkdocstrings[python]>=0.24,<1",
    "mkdocs-material>=9.0,<10",
]

[tool.setuptools.packages.find]
where = ["."]
include = ["duty_teller*"]

[tool.alembic]
script_location = "alembic"
prepend_sys_path = "."
version_path_separator = "os"

[tool.black]
line-length = 120
target-version = ["py311"]

[tool.pytest.ini_options]
addopts = "--cov=duty_teller --cov-report=term-missing --cov-fail-under=80"
asyncio_mode = "auto"
filterwarnings = [
    "ignore::DeprecationWarning:pytest_asyncio.plugin",
]
