Pain001

Pain001 可在 macOS、Linux 与 Windows 上运行于 Python 3.10、3.11 与 3.12(每个版本均在 CI 中测试)。按需安装即可;所有可选能力均为附加依赖(extra),基础安装保持精简。


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]"
为 API 提供的 Redis 异步任务队列 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/amd64linux/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 show make 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。

继续阅读技术参考了解每个标志与端点,或查看快速上手常见问题解决运营层面的疑问。