Documentación de tequio¶
tequio es la extracción worker-side de milpa: un núcleo de Python 3.14 para servicios que NO sirven HTTP —daemons, pipelines de datos, monitores, ETLs, cron-jobs— con el mismo estilo y buena parte del mismo kernel. Junta Celery (tareas/crons), SQLAlchemy 2.0 (datos) y Typer (consola) detrás de una estructura opinada y un kernel reutilizable.
Esta documentación está pensada para leerse en orden, como la de Laravel: empieza por "Primeros pasos", luego "Arquitectura", y profundiza por tema.
Filosofía en una línea: el kernel (
tequio/Core) es el framework; lo tuyo vive enapp/Modules,app/Modelsyapp/Console. Tú escribes features; el framework descubre y conecta solo.
¿tequio o milpa?
Si tu servicio sirve páginas o API REST, quieres milpa (trae Http, Auth, Views/Vite e i18n de la UI además de todo lo de tequio). Si solo procesa trabajo en background contra una base de datos, tequio te deja más ligero — con correo incluido, porque vuelve al worker. A lo largo de estas docs, lo que vive en milpa y no aquí se anota con un "esto vive en milpa" y su enlace.
Primeros pasos¶
- Introducción — qué es tequio, su filosofía y qué se quedó en milpa.
- Instalación —
uvo pip, drivers de BD, broker. - Configuración —
.envy la claseSettings. - Estructura de directorios — qué hay y dónde.
- Ciclo de vida — arranque de la consola, Celery y el discovery.
Arquitectura¶
- Monolito modular — Core vs Modules, auto-discovery, fronteras (
import-linter). - Errores de dominio —
DomainErrory el borde de error del CLI.
Consola¶
jornal— comandos, grupos, crear los tuyos.
Base de datos¶
- Base de datos — engine agnóstico,
DATABASE_URL, zona horaria, migraciones Alembic. - Modelos — SQLAlchemy, auto-discovery, mixins (timestamps, soft delete).
- Repositorios y transacciones —
Repository[Model, Id],@transactional. - Filtrado y paginación — DSL de filtrado + paginación.
Background¶
- Jobs (
@job) — background on-demand,.dispatch(),broker_guard. - Colas y tareas — Celery, broker-agnóstico,
queue work. - Programación (cron) —
@cron_task,schedule run/work.
Patrones (estilo milpa)¶
- Eventos y Observers —
dispatch1:N, broker-adaptive. - Mediator (command bus) —
@handles/send, 1:1. - Pipeline — pipeline modelo cebolla (estilo Laravel).
Más¶
- Correo — Mailables, la facade
Mail, drivers (log/SMTP), i18n de correos, Mailpit. - Logging — Loguru, JSON, niveles.
Mapa mental Laravel → tequio¶
| Laravel | tequio |
|---|---|
artisan |
jornal |
php artisan queue:work |
jornal queue work |
php artisan schedule:work |
jornal schedule work |
php artisan schedule:run |
jornal schedule run |
$schedule->command(...)->everyFiveMinutes() |
@cron_task(schedule=...) |
dispatch(new X) / Job |
@job + .dispatch() |
| Event / Listener | Event + Observer (auto-descubierto) |
| Eloquent Model | modelo SQLAlchemy (app/Models) |
$table->timestamps() |
TimestampMixin |
SoftDeletes |
soft-delete automático |
| Repository / Service | Repository[Model, Id] / service @transactional |
php artisan migrate |
jornal migrate run |
php artisan make:model Foo |
jornal make model Foo |
php artisan db:seed |
jornal db seed |
config() / .env |
settings / .env |
| Service Provider auto-discovery | auto-discovery por convención (Registry) |