83 lines
1.9 KiB
TOML
83 lines
1.9 KiB
TOML
|
[tool.poetry]
|
|||
|
name = "ruwiki-schoolnotes"
|
|||
|
version = "1.0.0"
|
|||
|
description = "Конвейер для упрощения статей RuWiki с помощью LLM"
|
|||
|
authors = ["Leon K. <leonkl32@gmail.com>"]
|
|||
|
readme = "README.md"
|
|||
|
packages = [{include = "src"}]
|
|||
|
|
|||
|
[tool.poetry.dependencies]
|
|||
|
python = "^3.10"
|
|||
|
anyio = "^4.2.0"
|
|||
|
aiohttp = "^3.9.0"
|
|||
|
aiosqlite = "^0.19.0"
|
|||
|
sqlmodel = "^0.0.14"
|
|||
|
openai = "^1.13.0"
|
|||
|
tiktoken = "^0.5.2"
|
|||
|
mwclient = "^0.10.1"
|
|||
|
pydantic = "^2.5.0"
|
|||
|
pydantic-settings = "^2.1.0"
|
|||
|
structlog = "^23.2.0"
|
|||
|
tenacity = "^8.2.3"
|
|||
|
click = "^8.1.7"
|
|||
|
|
|||
|
[tool.poetry.group.dev.dependencies]
|
|||
|
black = "^23.12.0"
|
|||
|
ruff = "^0.1.8"
|
|||
|
mypy = "^1.8.0"
|
|||
|
pytest = "^7.4.3"
|
|||
|
pytest-asyncio = "^0.21.1"
|
|||
|
pytest-cov = "^4.1.0"
|
|||
|
pytest-vcr = "^1.0.2"
|
|||
|
bandit = "^1.7.5"
|
|||
|
pip-audit = "^2.6.2"
|
|||
|
|
|||
|
[tool.poetry.scripts]
|
|||
|
schoolnotes = "src.cli:main"
|
|||
|
|
|||
|
[build-system]
|
|||
|
requires = ["poetry-core"]
|
|||
|
build-backend = "poetry.core.masonry.api"
|
|||
|
|
|||
|
[tool.black]
|
|||
|
line-length = 100
|
|||
|
target-version = ['py310']
|
|||
|
|
|||
|
[tool.ruff]
|
|||
|
target-version = "py310"
|
|||
|
line-length = 100
|
|||
|
select = ["ALL"]
|
|||
|
ignore = [
|
|||
|
"D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107", # missing docstrings
|
|||
|
"ANN101", "ANN102", # missing type annotation for self/cls
|
|||
|
"COM812", "ISC001", # incompatible with black
|
|||
|
]
|
|||
|
|
|||
|
[tool.ruff.per-file-ignores]
|
|||
|
"tests/*" = ["S101", "PLR2004", "ANN"] # allow assert, magic values, no annotations
|
|||
|
|
|||
|
[tool.mypy]
|
|||
|
python_version = "3.10"
|
|||
|
strict = true
|
|||
|
warn_return_any = true
|
|||
|
warn_unused_configs = true
|
|||
|
disallow_untyped_defs = true
|
|||
|
disallow_incomplete_defs = true
|
|||
|
check_untyped_defs = true
|
|||
|
disallow_untyped_decorators = true
|
|||
|
|
|||
|
[tool.pytest.ini_options]
|
|||
|
asyncio_mode = "auto"
|
|||
|
testpaths = ["tests"]
|
|||
|
python_files = ["test_*.py"]
|
|||
|
python_classes = ["Test*"]
|
|||
|
python_functions = ["test_*"]
|
|||
|
addopts = "--cov=src --cov-report=html --cov-report=term-missing --cov-fail-under=80"
|
|||
|
|
|||
|
[tool.coverage.run]
|
|||
|
source = ["src"]
|
|||
|
omit = ["tests/*"]
|
|||
|
|
|||
|
[tool.bandit]
|
|||
|
exclude_dirs = ["tests"]
|
|||
|
skips = ["B101"]
|