unstale

pypi / mt-940

mt-940

What changed in mt-940 5, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-29.

1 breaking11 new APIs and options2 tooling14 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

mt-940 528 changes

Breaking changes 1

  • parse() and parse_statements() no longer pass options=None to a Transactions subclass with the 5.0.0 constructor.

    5.1.1release notes

New APIs and options 11

  • Enables ?31 to be parsed into its own field again; the parsing fix is opt-in.

    5.1.0release notes

  • Enables case-insensitive mark parsing; the parsing fix is opt-in.

    5.1.0release notes

  • Enables the floor-limit blank-mark parsing fix; it is opt-in.

    5.1.0release notes

  • Enables the GVC leading-text parsing fix; it is opt-in.

    5.1.0release notes

  • Prevents a structured :86: from nulling the :61: customer reference; the parsing fix is opt-in.

    5.1.0release notes

  • Enables parsing of non-SWIFT free text; the parsing fix is opt-in.

    5.1.0release notes

  • Makes RC negative; the parsing fix is opt-in.

    5.1.0release notes

  • Enables BOM stripping; the parsing fix is opt-in.

    5.1.0release notes

  • Reads :13D: offsets as hours and minutes; the parsing fix is opt-in.

    5.1.0release notes

  • Removes the 585-character cap on :86:; the parsing fix is opt-in.

    5.1.0release notes

  • Switches on all parsing fixes that are otherwise opt-in through mt940.Options.

    5.1.0release notes

Tooling 2

  • The source archive now includes the test suite, examples, documentation sources, and tool configuration, so tests can run from an sdist.

    5.1.3release notes

  • The build requirement now allows every uv_build release from 0.11.0 up to, but not including, 1.0, letting packagers and python -m build users build with newer uv releases.

    5.1.3release notes

Fixes and other changes 14

  • One-shot transaction_boundary iterables are now applied to every statement, not just the first.

    5.1.1release notes

  • Pickles written by 4.x now restore transaction_boundary, allowing parsing to work again.

    5.1.1release notes

  • A subclass's own pattern retains its full capture instead of being cut back to the 585-character cap.

    5.1.1release notes

  • Parsing no longer crashes when :13: has no offset or a negative offset.

    5.1.0release notes

  • Parsing no longer crashes when :13D: has no offset or a negative offset.

    5.1.0release notes

  • Two structured :86: tags on one :61: no longer crash with None += str.

    5.1.0release notes

  • Amount instances are hashable.

    5.1.0release notes

  • Balance instances are hashable.

    5.1.0release notes

  • Free-form lines in :NS: values no longer abort parsing with re.error.

    5.1.0release notes

  • Accepts file descriptors as sources again, raises TypeError for unsupported sources, and raises FileNotFoundError for missing path-like sources.

    5.1.0release notes

  • Python 3.14 is supported.

    5.1.0release notes

  • SumAmount instances are hashable.

    5.1.0release notes

  • Raises the documented RuntimeError for unmatched values instead of re.error.

    5.1.0release notes

  • Returns None rather than raising when a balance has no amount.

    5.1.0release notes