Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[project]
name = "telebrief"
version = "0.1.0"
description = "Automated Telegram Digest Generator powered by AI"
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
    "aiohttp>=3.9.0",
    "aiosqlite>=0.22.1",
    "apscheduler>=3.10.0",
    "asyncpg>=0.31.0",
    "mcp>=2.0.0",
    "openai>=1.0.0",
    "python-dateutil>=2.8.0",
    "python-dotenv>=1.0.0",
    "python-telegram-bot>=20.0",
    "pyyaml>=6.0",
    "telethon>=1.34.0",
    "uvicorn>=0.30.0",
]

[project.optional-dependencies]
dev = [
    "black==24.10.0",
    "flake8>=6.1.0",
    "flake8-bugbear>=23.7.0",
    "flake8-docstrings>=1.7.0",
    "flake8-import-order>=0.18.2",
    "isort>=5.12.0",
    "mypy>=1.5.0",
    "pre-commit>=3.3.0",
    "pylint>=2.17.0",
    "pytest>=7.4.0",
    "pytest-asyncio>=0.21.0",
    "pytest-cov>=4.1.0",
    "pytest-mock>=3.11.0",
    "pytest-timeout>=2.1.0",
    "types-python-dateutil>=2.8.0",
    "types-pyyaml>=6.0.0",
    "vulture>=2.7",
]

[tool.black]
line-length = 100
target-version = ['py313']
include = '\.pyi?$'
exclude = '''
/(
    \.git
  | \.venv
  | venv
  | build
  | dist
  | \.pytest_cache
  | \.mypy_cache
  | sessions
)/
'''

[tool.isort]
profile = "black"
line_length = 100
skip_gitignore = true
known_first_party = ["src", "tests"]
sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]

[tool.mypy]
python_version = "3.14"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
disallow_incomplete_defs = false
check_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
follow_imports = "normal"

[[tool.mypy.overrides]]
module = [
    "telethon.*",
    "telegram.*",
    "apscheduler.*",
    "asyncpg",
    "asyncpg.*",
]
ignore_missing_imports = true

[tool.pylint.messages_control]
disable = [
    "C0111",  # missing-docstring
    "C0103",  # invalid-name
    "R0913",  # too-many-arguments
    "R0914",  # too-many-locals
    "W0212",  # protected-access (for tests)
]

[tool.pylint.format]
max-line-length = 100

[tool.coverage.run]
source = ["src"]
omit = [
    "tests/*",
    "*/__init__.py",
    "*/main.py",
]

[tool.coverage.report]
exclude_lines = [
    "pragma: no cover",
    "def __repr__",
    "raise AssertionError",
    "raise NotImplementedError",
    "if __name__ == .__main__.:",
    "if TYPE_CHECKING:",
    "class .*\\bProtocol\\):",
    "@(abc\\.)?abstractmethod",
]

[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"