Pain001 fonctionne sur Python 3.10, 3.11 et 3.12 (chaque version testée en CI) sous macOS, Linux et Windows. Installez ce dont vous avez besoin ; chaque capacité optionnelle est un extra, si bien que l'installation de base reste légère.
01. PyPI#
| Ce dont vous avez besoin | Commande |
|---|---|
| CLI cœur & bibliothèque Python | pip install pain001 |
| Microservice API REST (FastAPI + Uvicorn) | pip install "pain001[api]" |
| Ingestion Parquet (PyArrow) | pip install "pain001[parquet]" |
Fichiers d'entrée chiffrés PGP (.gpg / .asc) |
pip install "pain001[gpg]" |
| File de travaux asynchrone adossée à Redis pour l'API | pip install "pain001[redis]" |
| Traçage OpenTelemetry | pip install "pain001[otel]" |
| Serveurs MCP / LSP minimaux intégrés | pip install "pain001[mcp]" / "pain001[lsp]" |
Les paquets compagnons s'installent séparément et sont versionnés indépendamment :
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
Vérifiez l'installation et explorez le catalogue de messages :
pain001 --version
pain001 versions # list all 11 supported message definitions
pain001 init pain.001.001.09 # scaffold a starter CSV template
02. Docker#
Des images multi-architectures (linux/amd64, linux/arm64) sont publiées sur GitHub Container Registry. Le conteneur s'exécute sous un utilisateur dédié 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. Environnements verrouillés#
Les environnements bancaires et de trésorerie interdisent souvent le chargement dynamique de plugins. Deux contrôles existent précisément pour ce cas :
PAIN001_DISABLE_PLUGINS=1désactive toute découverte de plugins tiers ; seuls les loaders fournis s'exécutent.pain001 plugins list/pain001 plugins showmake every discovered plugin auditable before first use.
Tout s'exécute localement. Aucun paquet de la suite ne téléphone à l'extérieur, n'appelle une API SaaS ni ne déplace des données de paiement hors de l'hôte.
04. Premier fichier en trois commandes#
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 valide contre le schéma JSON, le XSD et (avec --scheme) un recueil de règles SEPA ou transfrontalier, sans écrire de sortie — le code de sortie 0 signifie que le fichier a passé ces contrôles : le schéma, et le recueil de règles du scheme lorsqu'il est sélectionné. Le profil propre à votre banque et ses règles de canal sont distincts et nécessitent toujours des tests avec la banque. Retirez --dry-run pour écrire le XML.
Poursuivez avec la référence technique pour chaque option et point d'accès, ou la FAQ de démarrage pour les questions opérationnelles.