[project]
name = "calllogdb"
version = "0.1.6"
description = "Библиотека для работы с call_log"
readme = "README.md"
authors = [
    { name = "deydysh" },
    { name = "Alexeyalexeyalexm", email = "silaenckov2014@yandex.ru" },
    { name = "miomelliot", email = "s89652158910@gmail.com" },
]
requires-python = ">=3.12"
license = { file = "LICENSE" }
urls = { Homepage = "https://github.com/Mcn-BPA/CallLogDB" }
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: Other/Proprietary License",
    "Operating System :: OS Independent",
]

dependencies = [
    "dotenv>=0.9.9",
    "loguru>=0.7.3",
    "psycopg[binary]>=3.2.6",
    "python-dateutil>=2.9.0.post0",
    "requests>=2.32.3",
    "sqlalchemy>=2.0.38",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[dependency-groups]
dev = [
    "mkdocs>=1.6.1",
    "mkdocs-material>=9.6.11",
    "mypy>=1.15.0",
    "nox[uv]>=2025.2.9",
    "psycopg[binary]>=3.2.6",
    "pytest>=8.3.5",
    "pytest-cov>=6.0.0",
    "responses>=0.25.6",
    "ruff>=0.9.8",
    "types-python-dateutil>=2.9.0.20241206",
    "types-requests>=2.32.0.20241016",
]

[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple/"


[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"


[tool.ruff]
exclude = [
    ".git",
    "__pycache__",
    "build",
    "dist",
    "venv",
    ".venv",
    "env",
    "migrations",
]
line-length = 120
target-version = "py312"

[tool.ruff.lint]
select = ["E", "F", "W", "B", "N", "I", "C"]
ignore = ["E203"]
per-file-ignores = { "__init__.py" = ["F401"] }
fixable = ["ALL"]

[tool.ruff.format]
line-ending = "auto"
docstring-code-line-length = "dynamic"

[tool.ruff.lint.mccabe]
max-complexity = 8

[tool.mypy]
exclude = ["tests/", "build/"]
python_version = "3.12"
ignore_missing_imports = true
strict = true
warn_unused_configs = true
plugins = ["sqlalchemy.ext.mypy.plugin"]

[tool.mypy-python_dateutil]
ignore_missing_imports = true

[tool.mypy-requests]
ignore_missing_imports = true
