A semantic diff utility and library for tree-like files such as JSON, JSON5, XML, HTML, YAML, and CSV.
DataClass
node type, drastically simplifying the implementation of custom container nodesBuilder
class, drastically simplifying building Graphtage trees from custom, non-Graphtage data structuresgraphtage.ast
module with node types to specify abstract syntax treesFixes a bug in diffing in-memory Python objects with complex nested structures.
The version number bump from 0.2.9 to 0.3.0 is…
Significant performance improvements, particularly when processing large inputs. Improvements to logging.
Bugfix release:
Fixes an issue where intermediate cost bounds for iterative Levenshtein distance calculations could overestimate the cost of the final, minimum-cost edit. This could lead to infinite loops. This fix will also likely increase matching performance.
Adds two new features:
--edit-digest
option; andAdds new strategies for matching dictionary key/value pairs, and switches the default strategy to a much faster version. This will drastically increase matching speed for larger files. See the new --dict-strategy
option and the documentation in Pull Request #51 for more information.
This release is also the first with official binary distributions, currently built for macOS (Intel) and Linux. We plan to later add support for Windows. This is an experimental feature and is not fully tested.
Adds experimental support for diffing Apple property list files.
This release adds support for Python 3.9.
Bugfix release:
typing-extensions
to circumvent an upstream regression with Python 3.7 compatibility (#30)Bugfix release adding support for null/None
types in JSON. (See Issue #21.)