Pain001 работает на Python 3.10, 3.11 и 3.12 (каждая версия тестируется в CI) на macOS, Linux и Windows. Устанавливайте только нужное: каждая необязательная возможность — это экстра, поэтому базовая установка остаётся компактной.
01. PyPI#
| Что вам нужно | Команда |
|---|---|
| Базовый CLI и библиотека Python | pip install pain001 |
| Микросервис REST API (FastAPI + Uvicorn) | pip install "pain001[api]" |
| Приём Parquet (PyArrow) | pip install "pain001[parquet]" |
Входные файлы, зашифрованные PGP (.gpg / .asc) |
pip install "pain001[gpg]" |
| Очередь асинхронных заданий на Redis для API | pip install "pain001[redis]" |
| Трассировка OpenTelemetry | pip install "pain001[otel]" |
| Встроенные минимальные серверы MCP / LSP | pip install "pain001[mcp]" / "pain001[lsp]" |
Сопутствующие пакеты устанавливаются отдельно и версионируются независимо:
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
Проверьте установку и изучите каталог сообщений:
pain001 --version
pain001 versions # list all 11 supported message definitions
pain001 init pain.001.001.09 # scaffold a starter CSV template
02. Docker#
Мультиархитектурные образы (linux/amd64, linux/arm64) публикуются в GitHub Container Registry. Контейнер работает от выделенного пользователя без прав 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. Изолированные среды#
Банковские и казначейские среды часто запрещают динамическую загрузку плагинов. Ровно для этого случая существуют два механизма контроля:
PAIN001_DISABLE_PLUGINS=1отключает обнаружение всех сторонних плагинов; работают только встроенные загрузчики.pain001 plugins list/pain001 plugins showmake every discovered plugin auditable before first use.
Всё выполняется локально. Ни один пакет набора не отправляет данные наружу, не вызывает SaaS API и не выносит платёжные данные за пределы хоста.
04. Первый файл за три команды#
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 проверяет данные по JSON Schema, XSD и (с --scheme) своду правил SEPA или трансграничных переводов без записи результата — код выхода 0 означает, что файл прошёл именно эти проверки: схему и, если он выбран, свод правил платёжной схемы. Собственный профиль вашего банка и правила его канала существуют отдельно и по-прежнему требуют тестирования с банком. Уберите --dry-run, чтобы записать XML.
Продолжите в техническом справочнике — там каждый флаг и эндпоинт — или в FAQ быстрого старта для операционных вопросов.