Pain001

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 منتشر می‌شوند. کانتینر با یک کاربر اختصاصی غیرروت اجرا می‌شود.

# 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.

همه چیز به‌صورت محلی اجرا می‌شود. هیچ بسته‌ای در این مجموعه به بیرون گزارش نمی‌دهد، هیچ API مربوط به SaaS را فرا نمی‌خواند و داده پرداخت را از میزبان خارج نمی‌کند.


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 را حذف کنید.

برای آشنایی با هر پرچم و نقطه انتهایی به مرجع فنی بروید، یا برای پرسش‌های عملیاتی به پرسش‌های متداول شروع سریع سر بزنید.