Pain001은 macOS, Linux, Windows에서 Python 3.10, 3.11, 3.12로 동작하며, 각 버전은 CI에서 테스트됩니다. 필요한 것만 설치하세요. 모든 선택 기능은 엑스트라로 제공되므로 기본 설치는 가볍게 유지됩니다.
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/amd64, linux/arm64)가 GitHub Container Registry에 배포됩니다. 컨테이너는 전용 비루트 사용자로 실행됩니다.
# 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 <name>으로 발견된 모든 플러그인을 최초 사용 전에 감사할 수 있습니다.
모든 것이 로컬에서 실행됩니다. 제품군의 어떤 패키지도 외부로 신호를 보내거나 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은 파일이 바로 그 검사, 즉 스키마와 선택한 경우의 스킴 룰북을 통과했다는 뜻입니다. 은행 자체 프로파일과 채널 규칙은 이와 별개이며, 여전히 은행과의 테스트가 필요합니다. XML을 작성하려면 --dry-run을 빼세요.