All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.3]
- Update dependencies (recommendations from dependabot)
- migrate toolchain to uv
[0.2.2] - 2026-04-10
- Fix regression when no segments.xml is present for the used EDIFACT directory. Print a warning instead of raising an exception.
[0.2.1] - 2026-03-28
- don't write trailing empty elements (colons) at end of composite data elements
[0.2.0] - UNRELEASED
- BREAKING CHANGE: Remove SegmentCollection
- BREAKING CHANGE: Remove FileSourcableMixin
- BREAKING CHANGE: Segment() calls must provide the tag name now as the first parameter.
- BREAKING CHANGE: Parser cannot override syntax_version and syntax_identifier anymore. It is determined from the UNB header.
- change plugin system from
metaclassto__init_subclass__ - raise ValidationError, not AssertionError, when ServiceAdviceString is not 6 chars long
- Drop support for Python versions < 3.10 (3.8 was EOL 2024-10-07, 3.9 not much used in Distros.)
- EDED, EDCD, EDMD, EDSD, UNCL, UNSL parsers and zip extraction logic for automated EDI schema generation
- massively improve type annotations (thanks Tammo Ippen)
- use code-based structures to validate segments and data elements
- improve error output when EDIFACT syntax errors are found
- Implement automatic detection and validation of EDIFACT syntax version (1 - 4) by examining the UNB segment for proper version control and adherence to version-specific syntax rules.
- provide line numbers/columns in EdiFactSyntaxError exceptions
[0.1.9]
- BREAKING CHANGE (possibly): Characters can be set up with reserved character now. If anyone used args instead of kwargs, this could lead to problems as the 2nd last parameter now is "reserved". But I suppose this will not harm anyone's implementations.
- Token creation with the wrong type fixed
- raise Error when "escaped newline" occurs
[0.1.8]
- allow parsing EDI files created with SAGE COALA (with a "header" before the UNA segment)
[0.1.7]
- TODO
[0.1.6] - 2023-04-22
- Fix Parser drops UNA Segments while converting tokens to segments #56
- Apply fixes for Segmentfactory and Pluginmount #54
[0.1.5] - 2022-01-24
- fix compatibility with Python <3.9
[0.1.4] - 2021-12-14
- fix compatibility with Python 3.10
[0.1.3] - 2021-11-03
- Fix multi-message interchange parsing (bug #43)
- Fix correct handling of UNT segments (bug #44)
- Add validation to AbstractSegmentsCollection
[0.1.2] - 2021-10-25
- Fix parsing of colon at line endings
- Fix multi-message interchange parsing
[0.1.1] - 2021-06-27
- fix missing pydifact.syntax package
[0.1] - 2021-06-27
- Add a
split_by(tag_name)helper to manually split segment collections
[0.0.6] - 2021-04-06
- Deprecate SegmentCollection in favour of Interchange
- Add Interchange and Message semantic and featured classes
- Add an optional predicate filter to
get_segmentandget_segmentsmethods - Allow to access AbstractSegmentsContainer elements using
container[i]
[0.0.5] - 2020-04-29
- corrected pypi details
[0.0.4] - 2020-04-27
- First release