Pain001

Pain001 działa na Python 3.10, 3.11 i 3.12 (każda wersja testowana w CI) na macOS, Linux i Windows. Proszę instalować tylko to, co potrzebne; każda opcjonalna funkcja jest dodatkiem (extra), więc instalacja bazowa pozostaje lekka.


01. PyPI#

Co jest potrzebne Polecenie
Podstawowe CLI i biblioteka Python pip install pain001
Mikrousługa REST API (FastAPI + Uvicorn) pip install "pain001[api]"
Wczytywanie danych Parquet (PyArrow) pip install "pain001[parquet]"
Pliki wejściowe zaszyfrowane PGP (.gpg / .asc) pip install "pain001[gpg]"
Kolejka zadań asynchronicznych API oparta na Redis pip install "pain001[redis]"
Śledzenie OpenTelemetry pip install "pain001[otel]"
Wbudowane minimalne serwery MCP / LSP pip install "pain001[mcp]" / "pain001[lsp]"

Pakiety towarzyszące instaluje się osobno i są wersjonowane niezależnie:

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

Weryfikacja instalacji i przegląd katalogu komunikatów:

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

02. Docker#

Obrazy wieloarchitekturowe (linux/amd64, linux/arm64) są publikowane w GitHub Container Registry. Kontener działa jako dedykowany użytkownik bez uprawnień roota.

# 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. Środowiska o zaostrzonych restrykcjach#

Środowiska bankowe i skarbowe często zabraniają dynamicznego ładowania wtyczek. Dokładnie na ten przypadek istnieją dwa mechanizmy kontroli:

  • PAIN001_DISABLE_PLUGINS=1 wyłącza całe wykrywanie wtyczek zewnętrznych; działają tylko loadery dołączone do pakietu.
  • pain001 plugins list / pain001 plugins show make every discovered plugin auditable before first use.

Wszystko działa lokalnie. Żaden pakiet z zestawu nie wysyła danych do producenta, nie wywołuje API SaaS ani nie przenosi danych płatniczych poza hosta.


04. Pierwszy plik w trzech poleceniach#

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 waliduje względem JSON Schema, XSD oraz (z --scheme) reguł SEPA lub transgranicznych bez zapisywania wyniku — kod wyjścia 0 oznacza, że plik przeszedł te kontrole: kontrolę schematu oraz, jeśli wybrano, reguły systemu płatności. Własny profil banku i zasady kanału są odrębne i nadal wymagają testów po stronie banku. Aby zapisać XML, proszę pominąć --dry-run.

Dalej: dokumentacja techniczna z każdą flagą i endpointem lub FAQ na start z pytaniami operacyjnymi.