Pain001

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=1 disabilita tutta la scoperta di plugin di terze parti; girano solo i loader inclusi.
  • pain001 plugins list / pain001 plugins show rendono 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.