இந்தக் குறிப்பு pain001 v0.0.57-ன் கட்டளை-வரி இடைமுகம், Python API, REST நுண்சேவை, சரிபார்ப்புத் தொடர்வரிசை ஆகியவற்றை ஆவணப்படுத்துகிறது. இங்கு பட்டியலிடப்பட்டுள்ள ஒவ்வொரு ஃபிளாக், எண்ட்பாயிண்ட், நடத்தையும் வெளியிடப்பட்ட நிரலிலிருந்து எடுக்கப்பட்டவை, எதிர்பார்ப்புகளிலிருந்து அல்ல.
Pain001 11 ISO 20022 செய்தி வரையறைகளை ஆதரிக்கிறது: pain.001.001.03 முதல் pain.001.001.12 வரை (Customer Credit Transfer Initiation, பத்து பதிப்புகள்) மற்றும் pain.008.001.02 (Customer Direct Debit Initiation).
1. கட்டளை-வரி இடைமுகம்#
pain001 இயங்குகோப்பு தனது செயல்பாடுகளைத் துணைக்கட்டளைகளாகத் தொகுக்கிறது. உருவாக்க ஃபிளாக்குகளை மட்டும் கொடுத்து இயக்கினால் generate தானாகவே செயல்படுத்தப்படுகிறது; எனவே தற்போதைய தன்னியக்கமுறைகள் தொடர்ந்து இயங்கும்.
| துணைக்கட்டளை | நோக்கம் |
|---|---|
generate |
தரவுக் கோப்பை ஸ்கீமா-சரிபார்க்கப்பட்ட ISO 20022 XML ஆக மாற்றுகிறது (இயல்புநிலைக் கட்டளை). |
validate |
XML எழுதாமலேயே உள்ளீட்டுத் தரவைச் சரிபார்க்கிறது. |
versions [--json] |
ஆதரிக்கப்படும் 11 செய்தி வரையறைகளையும் பட்டியலிடுகிறது. |
inspect |
ஒரு செய்தி வகைக்கான கட்டாய மற்றும் விருப்பப் புலங்களைக் காட்டுகிறது. |
init |
ஒரு செய்தி வகைக்கான தொடக்க CSV வார்ப்புருவை உருவாக்குகிறது. |
serve [--host] [--port] [--reload] |
FastAPI REST நுண்சேவையைத் தொடங்குகிறது (api கூடுதல் தேவை). |
mcp |
உள்ளமைந்த Model Context Protocol சேவையகத்தைத் தொடங்குகிறது (5 கருவிகள்; முழுமையான 17-கருவி சேவையகம் pain001-mcp ஆக வழங்கப்படுகிறது). |
plugins list / show / disable |
கண்டறியப்பட்ட லோடர், சரிபார்ப்பான், திட்டம், ரைட்டர் செருகுநிரல்களை ஆய்வு செய்து நிர்வகிக்கிறது. |
generate விருப்பங்கள்
| ஃபிளாக் | விவரம் |
|---|---|
-t, --xml-message-type |
செய்தி வரையறை, எடுத்துக்காட்டாக pain.001.001.09. |
-d, --data |
உள்ளீட்டுத் தரவு: .csv, .json, .jsonl, .db / .sqlite, .parquet, அல்லது PGP-குறியாக்கப்பட்ட .gpg / .asc. |
-o, --output-dir |
உருவாக்கப்பட்ட XML சேமிக்கப்படும் அடைவு. |
-m, --template / -s, --schema |
உள்ளடக்கப்பட்ட Jinja2 வார்ப்புரு அல்லது XSD ஸ்கீமாவை மேலெழுதுகிறது. |
-c, --config |
கட்டமைப்புச் சுயவிவரத்திலிருந்து இயல்புநிலை மதிப்புகளை ஏற்றுகிறது (--profile, --show-config). |
--dry-run (மாற்றுப்பெயர் --validate-only) |
வெளியீட்டை எழுதாமல் JSON Schema, XSD, திட்ட விதிநூல் ஆகியவற்றுக்கு எதிராக உள்ளீட்டைச் சரிபார்க்கிறது. |
--scheme |
ஒரு திட்ட விதிநூலைச் செயல்படுத்துகிறது: sepa-sct, sepa-inst, sepa-sdd, sepa-b2b, அல்லது xborder-ct. |
--explain --scheme-format {text,json} |
தேர்ச்சி பெற்ற அல்லது தோல்வியடைந்த ஒவ்வொரு திட்ட விதியையும் மனிதர் அல்லது இயந்திரம் படிக்கும் வடிவில் அறிக்கையிடுகிறது. |
--streaming / --chunk-size |
பெரிய தொகுதிகளுக்கான நினைவக-வரம்புடைய துண்டு வாரியான செயலாக்கம் (இயல்புநிலையாக ஒரு துண்டுக்கு 1,000 பரிவர்த்தனைகள்; ஒவ்வொரு துண்டும் மறுகணக்கிடப்பட்ட NbOfTxs மற்றும் CtrlSum உடன் தனித் XML கோப்பாக மாறுகிறது). |
--emit-metrics |
கண்காணிப்புத் தொடர்வரிசைகளுக்காக இயந்திரம் படிக்கக்கூடிய இயக்க அளவீடுகளை வெளியிடுகிறது. |
வெளியேற்றக் குறியீடுகள் CI-நட்பானவை: 0 வெற்றி, 1 சரிபார்ப்புத் தோல்வி, 2 பயன்பாட்டுப் பிழை.
2. Python API#
from pain001.core.core import process_files
# Generate a validated pain.001.001.09 file from CSV
process_files(
xml_message_type="pain.001.001.09",
xml_template_file_path="template.xml",
xsd_schema_file_path="schema.xsd",
data_file_path="payments.csv",
output_dir="out",
)
உருவாக்கப்படும் ஒவ்வொரு ஆவணமும் எழுதப்படுவதற்கு முன் மூன்று அடுக்குகளைக் கடக்கிறது:
- உள்ளீட்டுச் சரிபார்ப்பு — ஒவ்வொரு பதிவும் அந்தச் செய்தி வகையின் JSON Schema-க்கு எதிராகச் சோதிக்கப்படுகிறது; உடன் புல-மாற்றுப்பெயர் இயல்பாக்கமும் IBAN/BIC தொடரியல் சோதனைகளும் நடைபெறுகின்றன.
- திட்ட விதிநூல் (விருப்பத் தேர்வு) — SEPA SCT, SEPA Instant, SEPA SDD Core, SEPA B2B, அல்லது எல்லை கடந்த வரவு பரிமாற்ற விதிகள்.
- XSD சரிபார்ப்பு — வட்டில் ஒரு பைட் கூட எழுதப்படுவதற்கு முன், உருவாக்கப்பட்ட XML
xmlschemaவழியாக அதிகாரப்பூர்வ ISO 20022 ஸ்கீமாவுக்கு எதிராகச் சரிபார்க்கப்படுகிறது.
XML உருவாக்கம் மற்றும் திட்டச் சரிபார்ப்பின் போது பணத் தொகைகள் decimal.Decimal ஆகவே கையாளப்படுகின்றன — ஒருபோதும் IEEE 754 ஃப்ளோட்டுகளாக அல்ல — மேலும் NbOfTxs / CtrlSum கட்டுப்பாட்டு மொத்தங்கள் உள்ளீட்டை நம்பாமல், சரிபார்க்கப்பட்ட பதிவுகளிலிருந்து மறுகணக்கிடப்படுகின்றன.
pain.001 உருவாக்கத்தைத் தாண்டி, மைய நூலகம் ஒரு pain.002 நிலை-அறிக்கைப் பாகுபடுத்தியையும் உருவாக்கியையும் (வங்கியின் ஏற்பு/நிராகரிப்புப் பதிலை நீங்கள் படிக்கும் வகையில்) மற்றும் நாள் இறுதி ஒப்புரவுக்கான camt.053 அறிக்கைப் பாகுபடுத்தியையும் உருவாக்கியையும் வழங்குகிறது; உடன், செய்திப் பதிப்புகளுக்கு இடையே பதிவுகளை இடம்பெயர்க்கும் VersionMapper-ஐயும் வழங்குகிறது.
3. REST நுண்சேவை#
pip install "pain001[api]"
pain001 serve --host 0.0.0.0 --port 8000
அனைத்து எண்ட்பாயிண்ட்களும் /api/v1-ன் கீழ் இணைக்கப்பட்டுள்ளன (பதிப்பு இல்லாத /api மாற்றுப்பெயருடன்):
| முறை மற்றும் பாதை | நோக்கம் |
|---|---|
GET /api/v1/health |
இயங்குநிலைச் சோதனை. |
POST /api/v1/validate |
பதிவுகளைச் சரிபார்க்கிறது; புல அளவிலான பிழைகளைத் திருப்பி அளிக்கிறது. |
POST /api/v1/generate |
ஒத்திசைவான XML உருவாக்கம். |
POST /api/v1/generate/async |
பின்னணி உருவாக்கத்திற்காக ஒரு பெரிய தொகுதியை வரிசையில் சேர்க்கிறது. |
GET /api/v1/status/{job_id} |
ஒத்திசைவற்ற பணியின் நிலையை வினவுகிறது. |
GET /api/v1/download/{job_id} |
முடிக்கப்பட்ட XML-ஐப் பதிவிறக்குகிறது. |
DELETE /api/v1/jobs/{job_id} |
முடிந்த பணியை அகற்றுகிறது. |
GET /metrics |
Prometheus அளவீடுகள். |
ஊடாடும் ஆவணங்கள் /api/docs (Swagger UI), /api/redoc, /api/reference (Scalar) ஆகியவற்றில் வழங்கப்படுகின்றன; OpenAPI ஆவணம் /openapi.json-இல் உள்ளது.
4. உள்ளீட்டு இயல்பாக்கம்#
சரிபார்ப்புக்கு முன்பே Pain001 நிஜ உலக ஏற்றுமதிகளைச் செல்லுபடியாகும் பதிவுகளாக மாற்றுகிறது:
- புல மாற்றுப்பெயர்கள் — வழக்கமான ERP நெடுவரிசைப் பெயர்கள் நியமப் புலங்களுடன் பொருத்தப்படுகின்றன (எடுத்துக்காட்டாக
amount→payment_amount). - IBAN / BIC இயல்பாக்கம் — இடைவெளிகள் நீக்கப்பட்டு, எழுத்து வடிவம் ஒருங்கிணைக்கப்பட்டு, பின் சோதிக்கப்படுகிறது (IBAN-க்கு ISO 13616 mod-97, BIC-க்கு ISO 9362 அமைப்பு).
- தேதிகள் — செயல்படுத்தும் தேதிகளுக்கு ISO 8601
YYYY-MM-DDபாகுபடுத்தல். - தொகைகள் —
decimal.Decimalவழியாகக் கையாளப்படுகின்றன; தவறான வடிவிலான தொகைகள் அமைதியாக வட்டமிடப்படாமல் சரிபார்ப்பில் தோல்வியடைகின்றன. - எழுத்துத் தொகுப்பு — ஒலிபெயர்ப்பு உதவிகள் உள்ளடக்கத்தை SWIFT மற்றும் SEPA ஏற்கும் ISO 20022 லத்தீன் எழுத்துத் தொகுப்புக்குள் சுருக்குகின்றன.
5. செருகுநிரல் கட்டமைப்பு#
நான்கு நுழைவுப்புள்ளிக் குழுக்கள் வழியாக இந்தத் தொகுப்பை விரிவாக்கலாம்: pain001.loaders, pain001.validators, pain001.schemes, pain001.writers. pain001-loader-xlsx இதே வழிமுறையில் பதிவு செய்யப்பட்டு, நிறுவும்போதே தானாகக் கண்டறியப்படுகிறது; pain001-loader-mt101 என்பது நேரடியாகப் பயன்படுத்தப்படும் தனித்த பாகுபடுத்தல் நூலகம் (MCP சேவையகத்தின் convert_mt101 கருவியாலும் பயன்படுத்தப்படுகிறது). ஒரு நிறுத்த சுவிட்ச் — PAIN001_DISABLE_PLUGINS=1 — கடுமையாகக் கட்டுப்படுத்தப்பட்ட சூழல்களில் மூன்றாம் தரப்புச் செருகுநிரல் கண்டறிதலை முற்றிலுமாக முடக்குகிறது.
6. தர நுழைவாயில்கள்#
மைய நூலகம் கடுமையான, சரிபார்க்கக்கூடிய நுழைவாயில்களுக்கு எதிராக உருவாக்கப்படுகிறது: CI-இல் கட்டாயமாக்கப்பட்ட 100% வரி மற்றும் கிளை கவரேஜ் (--cov-fail-under=100), கடுமையான mypy வகைப்படுத்தல், 100% டாக்ஸ்ட்ரிங் கவரேஜ், பாதுகாப்பு லிண்டிங் (Bandit, pip-audit). ஒவ்வொரு வெளியீட்டு பில்டுக்கும் ஒரு CycloneDX SBOM உருவாக்கப்படுகிறது.
அடுத்ததாக நிறுவல் வழிகாட்டி, AI முகவர்களுக்கான MCP சேவையகம், அல்லது பணப்பரிவர்த்தனை சொற்களஞ்சியம் ஆகியவற்றைத் தொடரவும்.