Files
resume/pyproject.toml
Pavel Sobolev 80911bd538 add tests
2025-11-13 21:30:45 +03:00

72 lines
1.7 KiB
TOML

[project]
name = "resume"
version = "0.1.0"
description = ""
authors = [
{name = " Pavel Sobolev",email = "p.sobolev@dineflow.app"}
]
readme = "README.md"
requires-python = ">=3.13,<4.0"
dependencies = [
"django (>=5.2.8,<6.0.0)",
"docxtpl (>=0.20.1,<0.21.0)",
"weasyprint (>=66.0,<67.0)",
"python-dotenv (>=1.0.1,<2.0.0)",
"rich (>=14.2.0,<15.0.0)"
]
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.group.dev.dependencies]
ruff = "^0.14.4"
mypy = "^1.18.2"
django-stubs = "^5.2.7"
djangorestframework-stubs = "^3.16.5"
pandas-stubs = "^2.3.2.250926"
vulture = "^2.14"
pre-commit = "^4.4.0"
bandit = "^1.7.9"
pip-audit = "^2.7.3"
pytest = "^9.0.1"
pytest-django = "^4.11.1"
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E","F","W","I","UP","D","B","SIM","C90"]
ignore = ["D203","D213"] # под Google-докстринги обычно отключают эти два
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.format]
preview = true
[tool.mypy]
python_version = "3.11"
plugins = ["mypy_django_plugin.main"]
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
no_implicit_optional = true
strict_equality = true
warn_unused_ignores = true
warn_redundant_casts = true
warn_return_any = true
exclude = ["migrations/"]
ignore_missing_imports = false
[tool.django-stubs]
django_settings_module = "resume.settings"
[tool.bandit]
skips = ["B101"] # при необходимости, можно убрать
exclude_dirs = [".venv", "venv", "build", "dist", ".tox", ".mypy_cache", ".ruff_cache", "node_modules"]
[tool.pip-audit]
require-hashes = false