يعمل 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 showmake every discovered plugin auditable before first use.
كل شيء يعمل محليًا. لا حزمة في المنظومة تتصل بخوادم خارجية، أو تستدعي واجهة 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 يعني أن الملف اجتاز هذه الفحوص تحديدًا: المخطط، وكتاب قواعد نظام الدفع عند اختياره. أما ملف التعريف الخاص ببنكك وقواعد قناته فهما أمران منفصلان، ولا يزالان يتطلبان اختبارًا مع البنك. احذف --dry-run لكتابة ملف XML.
تابع إلى المرجع التقني لكل خيار ونقطة نهاية، أو إلى الأسئلة الشائعة للبدء السريع للأسئلة التشغيلية.