Pain001

Pain001 funciona en Python 3.10, 3.11 y 3.12 (cada versión probada en CI) en macOS, Linux y Windows. Instale lo que necesite; cada capacidad opcional es un extra, de modo que la instalación base se mantiene ligera.


01. PyPI#

Lo que necesita Comando
CLI principal & biblioteca de Python pip install pain001
Microservicio de API REST (FastAPI + Uvicorn) pip install "pain001[api]"
Ingesta de Parquet (PyArrow) pip install "pain001[parquet]"
Archivos de entrada cifrados con PGP (.gpg / .asc) pip install "pain001[gpg]"
Cola de trabajos asíncrona respaldada por Redis para la API pip install "pain001[redis]"
Trazado con OpenTelemetry pip install "pain001[otel]"
Servidores MCP / LSP mínimos integrados pip install "pain001[mcp]" / "pain001[lsp]"

Los paquetes complementarios se instalan por separado y se versionan de forma independiente:

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

Verifique la instalación y explore el catálogo de mensajes:

pain001 --version
pain001 versions          # list all 11 supported message definitions
pain001 init pain.001.001.09   # scaffold a starter CSV template

02. Docker#

Se publican imágenes multiarquitectura (linux/amd64, linux/arm64) en GitHub Container Registry. El contenedor se ejecuta como un usuario dedicado sin privilegios de 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. Entornos restringidos#

Los entornos bancarios y de tesorería suelen prohibir la carga dinámica de plugins. Existen dos controles exactamente para ese caso:

  • PAIN001_DISABLE_PLUGINS=1 desactiva toda detección de plugins de terceros; solo se ejecutan los loaders incluidos.
  • pain001 plugins list / pain001 plugins show make every discovered plugin auditable before first use.

Todo se ejecuta localmente. Ningún paquete de la suite llama a casa, invoca una API SaaS ni mueve datos de pago fuera del host.


04. Primer archivo en tres comandos#

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 contra el JSON Schema, el XSD y (con --scheme) un reglamento SEPA o transfronterizo sin escribir salida — el código de salida 0 significa que el fichero ha superado esas comprobaciones: el esquema y, cuando se selecciona, el reglamento del scheme. El perfil propio de su banco y sus reglas de canal son independientes y siguen requiriendo pruebas con el banco. Quite --dry-run para escribir el XML.

Continúe con la referencia técnica para cada opción y endpoint, o con la FAQ de inicio rápido para cuestiones operativas.