Pain001 funziona su Python 3.10, 3.11 e 3.12 (ogni versione testata in CI) su macOS, Linux e Windows. Installate solo ciò che serve: ogni capacità opzionale è un extra, così l'installazione di base resta leggera.
01. PyPI#
| Che cosa serve | Comando |
|---|---|
| CLI core e libreria Python | pip install pain001 |
| Microservizio API REST (FastAPI + Uvicorn) | pip install "pain001[api]" |
| Ingestione Parquet (PyArrow) | pip install "pain001[parquet]" |
File di input cifrati PGP (.gpg / .asc) |
pip install "pain001[gpg]" |
| Coda di job asincroni basata su Redis per l'API | pip install "pain001[redis]" |
| Tracing OpenTelemetry | pip install "pain001[otel]" |
| Server MCP / LSP minimali integrati | pip install "pain001[mcp]" / "pain001[lsp]" |
I pacchetti complementari si installano separatamente e sono versionati in modo indipendente:
pip install pain001-loader-xlsx # Excel ingestion (auto-discovered plugin)
pip install pain001-loader-mt101 # SWIFT MT101 parsing library
pip install pain001-mcp # Full 17-tool MCP server for AI agents
pip install pain001-lsp # Full six-feature editor language server
Verificate l'installazione ed esplorate il catalogo dei messaggi:
pain001 --version
pain001 versions # list all 11 supported message definitions
pain001 init pain.001.001.09 # scaffold a starter CSV template
02. Docker#
Le immagini multi-architettura (linux/amd64, linux/arm64) sono pubblicate su GitHub Container Registry. Il container gira con un utente dedicato non root.
# Generate XML from a local CSV
docker run --rm -v "$PWD:/data" -w /data \
ghcr.io/sebastienrousseau/pain001:latest \
generate -t pain.001.001.09 -d payments.csv -o out/
# Launch the REST API
docker run --rm -p 8000:8000 \
ghcr.io/sebastienrousseau/pain001:latest \
serve --host 0.0.0.0 --port 8000
03. Ambienti blindati#
Gli ambienti bancari e di tesoreria spesso vietano il caricamento dinamico di plugin. Esistono due controlli esattamente per questo caso:
PAIN001_DISABLE_PLUGINS=1disabilita tutta la scoperta di plugin di terze parti; girano solo i loader inclusi.pain001 plugins list/pain001 plugins showrendono ogni plugin scoperto auditabile prima del primo utilizzo.
Tutto viene eseguito localmente. Nessun pacchetto della suite chiama casa, invoca un'API SaaS o sposta dati di pagamento fuori dall'host.
04. Primo file in tre comandi#
pip install pain001
pain001 init pain.001.001.09 -o work/
pain001 -t pain.001.001.09 -d work/template.csv -o work/ --dry-run
--dry-run valida rispetto al JSON Schema, all'XSD e (con --scheme) a un rulebook SEPA o transfrontaliero senza scrivere output — il codice di uscita 0 significa che il file ha superato tali controlli: lo schema e, quando selezionato, il rulebook dello scheme. Il profilo specifico della vostra banca e le sue regole di canale sono separati e richiedono comunque test con la banca. Rimuovete --dry-run per scrivere l'XML.
Proseguite con il Riferimento tecnico per ogni flag ed endpoint, o con le FAQ di avvio rapido per le questioni operative.