Skip to content

v4.0.1

Latest

Choose a tag to compare

@azoner azoner released this 31 Oct 21:25
· 13 commits to master since this release
c6412e6

Malformed X12 input now gets a normal rejection instead of crashing the validator or being silently truncated. Install with pip install pyx12==4.0.1. Same code as 4.0.1rc1.

Acknowledgement output changes (malformed envelopes only)

  • A functional group with no transaction set was accepted; it is now rejected (AK9*R, AK905 5). (#198)
  • Segments outside any transaction set (for example a repeated SE, GE or IEA) are reported on the enclosing group's AK9 or the interchange's TA1 (024), instead of being dropped or attached to the previous transaction. See "Segments outside a transaction set" in the error code docs. (#198)

Fixes

  • A stray or duplicated IEA, GE or SE no longer raises IndexError. (#193)
  • A blank segment (~~ or a blank line) no longer silently drops the rest of the file, including any later interchanges. (#194)
  • A composite with more sub-elements than its map defines no longer raises IndexError during validation. (#195)
  • XML output no longer crashes on elements or sub-elements the map does not define; they are left out. (#196)
  • The HTML report no longer crashes on files without a transaction set, and shows "IEA missing" again. (#197)

Deprecated

  • SEG_3_TOO_MANY_SUBELEMENTS was never emitted; use COMP_3_TOO_MANY_SUBELEMENTS. It will be removed in 5.0. (#195)

Project

  • SECURITY.md and private vulnerability reporting are now enabled. (#192)

Thanks to @VadimToptunov for reporting the trailer crash and contributing #193, and to @gumption (Joe McCarthy), who reported the IEA crash and the blank-line problem and wrote the XML fix in #35 back in 2015.

Full changelog: v4.0.0...v4.0.1