Skip to content

v0.0.54

Choose a tag to compare

@github-actions github-actions released this 16 Jul 18:00
v0.0.54
c6c6b12

Pain001 Release v0.0.54

Release Date: 2026-07-16
Tag: v0.0.54
Python: 3.10+
Status: Stable

Executive Summary

An LLM-ergonomics + security release. The generate path now
accepts the arguments AI agents naturally produce and fails with one
actionable message instead of one field per retry. Driven by a live
Claude Code transcript that needed 10+ tool calls to produce a single
pain.001; the same request now succeeds in one call. Also resolves the
click dependency advisory (PYSEC-2026-2132).

What's in v0.0.54 at a glance

  • Input normalization (normalize_payment_records /
    canonicalize_payment_record): field aliases (amount,
    currency and payment_currency, execution_date, lower-case
    IBAN/BIC keys), XSD boolean coercion (Python bools and
    "True"/"FALSE" strings), bare-date coercion for xs:dateTime and
    datetime truncation for xs:date, computed nb_of_txs/ctrl_sum.
  • Never a silent empty attribute: the v09-v12 preparers no longer
    emit Ccy="" when the currency arrives under the documented
    currency key - the previous behavior failed XSD validation with no
    field-level hint.
  • All-at-once errors: one PaymentValidationError lists every
    missing header and row field with row numbers; XSD failures carry
    element paths (capped at 20).
  • Conditional SplmtryData: the v09-v12 templates emit the
    supplementary-data block only when supplementary data is provided;
    some bank gateways reject the previously hardcoded empty block.
  • Schema truthfulness: JSON-schema required lists now match the
    real generation contract.
  • Security: click bumped past PYSEC-2026-2132 (floor raised to

    =8.3.3,<9); pip-audit clean.

Compatibility

IBAN/BIC strictness is unchanged. Existing canonical-key callers are
unaffected; aliases never override explicit canonical values.
1,300 tests at the 100% line + branch coverage floor.