Files
hechakuaa_bot/pyproject.toml
markosbenitez 076bc100af feat: Docker, health check, schema migrations y webhook opt-in
- migrations/001_initial_schema.sql: DDL idempotente con CREATE TABLE/INDEX IF NOT EXISTS
- database.py: run_migrations() aplica .sql pendientes en orden; init_db() queda como alias
- health.py: servidor aiohttp en puerto 8080 — GET /health, GET /health/history, POST /webhook
  Watcher loop alerta al admin por Telegram si el poller no actualiza en N horas
- config.py: webhook_url, webhook_secret, health_port, health_alert_hours
- poller.py: on_poll_done callback (conecta con health.record_poll)
- main.py: arranca HealthServer, llama run_migrations, modo webhook opt-in via WEBHOOK_URL
- Dockerfile + docker-compose.yml + .dockerignore
- pyproject.toml: aiohttp>=3.9

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 23:31:18 -03:00

47 lines
914 B
TOML

[project]
name = "pedrito-hechakuaa"
version = "0.1.0"
description = "Pedrito Hechakuaa — monitor de notificaciones judiciales via Telegram"
requires-python = ">=3.12"
dependencies = [
"httpx>=0.28",
"python-telegram-bot[ext]>=21.9",
"apscheduler>=3.10",
"cryptography>=44.0",
"pydantic>=2.9",
"pydantic-settings>=2.6",
"structlog>=24.4",
"python-dotenv>=1.0",
"aiosqlite>=0.20",
"aiohttp>=3.9",
]
[dependency-groups]
dev = [
"pytest>=8.3",
"pytest-asyncio>=0.25",
"pytest-httpx>=0.34",
"ruff>=0.8",
"mypy>=1.13",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["."]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "ASYNC"]
ignore = ["E501"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]