pyproject.toml•3.77 kB
[project]
name = "yandex-tracker-mcp"
version = "0.4.4"
description = "Yandex Tracker MCP Server"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"aiocache[redis]>=0.12.3",
"aiohttp>=3.11.18",
"mcp[cli]>=1.14",
"pydantic>=2.11.3",
"pydantic-settings>=2.8.1",
"python-dateutil>=2.9.0.post0",
"thefuzz>=0.22.1",
"yandexcloud>=0.353.0",
"yarl>=1.20.0",
]
[tool.setuptools.packages.find]
where = ["."]
include = ["mcp_tracker*"]
[project.scripts]
yandex-tracker-mcp = "mcp_tracker.__main__:main"
[dependency-groups]
dev = [
"mypy>=1.8.0",
"ruff>=0.8.0",
"pytest>=8.0.0",
"pytest-asyncio>=0.24.0",
"pytest-cov>=5.0.0",
"pytest-mock>=3.14.0",
"aioresponses>=0.7.7",
]
[tool.mypy]
plugins = [
"pydantic.mypy"
]
exclude = [
'dxt-lib',
]
[[tool.mypy.overrides]]
module = '*.*'
ignore_missing_imports = true
check_untyped_defs = true
enable_error_code = 'ignore-without-code'
[tool.ruff]
[tool.ruff.format]
# Аналогично black, двойные кавычки
quote-style = "double"
# Аналогично black, пробелы вместо табов
indent-style = "space"
# Аналогично black, уважаем trailing commas
skip-magic-trailing-comma = false
# Аналогично black, автоматически определяем подходящее окончание строки.
line-ending = "auto"
[tool.ruff.lint]
# Список кодов или префиксов правил, которые следует считать исправляемыми. (https://docs.astral.sh/ruff/settings/#fixable)
# По умолчанию все правила считаются исправляемыми.
fixable = ["I", "RUF022", "RUF023", "F401"]
preview = true
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"C", # flake8-comprehensions
"B", # flake8-bugbear
"T20", # flake8-print
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"C901", # too complex
]
[tool.ruff.lint.isort]
# Позволяет использовать as в комбинации с группировкой (https://docs.astral.sh/ruff/settings/#isort-combine-as-imports)
#from package import (
# func1 as foo,
# func2 as boo,
#)
combine-as-imports = true
# Воспринимать следующие пакеты в качестве stdlib (https://docs.astral.sh/ruff/settings/#isort-extra-standard-library)
extra-standard-library = ["typing_extensions"]
section-order = [
"future",
"standard-library",
"third-party",
"first-party",
"local-folder"
]
# Не добавлять пустую строку перед данными секциям (https://docs.astral.sh/ruff/settings/#isort-no-lines-before)
no-lines-before = []
[tool.ruff.lint.pep8-naming]
# если навесить данные декораторы, то можно использовать cls (https://docs.astral.sh/ruff/settings/#pep8-naming-classmethod-decorators)
# в качестве первого аргумента.
classmethod-decorators = ["cached_classproperty", "classproperty"]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
asyncio_mode = "auto"
addopts = [
"-v",
"--strict-markers",
"--tb=short",
"--cov=mcp_tracker",
"--cov-report=term-missing",
"--cov-report=html",
"--cov-report=xml",
]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"unit: marks tests as unit tests",
]