Changes
=======

Version v0.10.0 (released 2026-07-16)

- chore(setup): migrate from setuptools to hatchling
- chore(workflows): use the centralized GitHub actions
- chore(licenses): update license headers to use SPDX
- diff: fix `path_limit` with no change (#174)
- merge: support ignore param to diff function

Version 0.9.0 (released 2021-07-22)

- Adds absolute tolerance feature for floats  (@adrien-berchet) (#152)
- Drops support of Python<3.5  (@adrien-berchet) (#160)
- Adds `assert_no_diff` helper to assist pytest users  (@joesolly) (#153)
- Migrates CI to gh-actions (@ParthS007 @diegodelemos) (#145)
- Removes dependency on pkg_resources (@eldruin)

Version 0.8.1 (released 2019-12-13)

- Fix invalid diff output for sets. (@jirikuncar @danielduhh)  (#133 #134)

Version 0.8.0 (released 2019-03-17)

- Respect `dot_notation` flag in ignore argument (@yoyonel) (#107)
- Adds argument for toggling dot notation in diff. (@robinchew)

Version 0.7.2 (released 2019-02-22)

- Two NaN values are considered the same, hence they are not shown in `diff`
  output.  (#114) (@t-b)
- Refactors `diff` method to reduce recursive call stack size.  (#112)
  (@yoyonel)
- Python porting best practice use feature detection instead
  of version detection to save an import and pass both PyLint
  and Flake8 tests with neither 'pragma' nor 'noqa'.  (@cclauss)

Version 0.7.1 (released 2018-05-04)

- Resolves issue with keys containing dots.  (#101)

Version 0.7.0 (released 2017-10-16)

- Fixes problem with diff results that reference the original structure by
  introduction of `deepcopy` for all possibly unhashable items. Thus the diff
  does not change later when the diffed structures change.
- Adds new option for patching and reverting patches in-place.
- Adds Python 3.6 to test matrix.
- Fixes the `ignore` argument when it contains a unicode value.

Version 0.6.1 (released 2016-11-22)

- Changes order of items for REMOVE section of generated patches when
  `swap` is called so the list items are removed from the end. (#85)
- Improves API documentation for `ignore` argument in `diff` function.
  (#79)
- Executes doctests during PyTest invocation.

Version 0.6.0 (released 2016-06-22)

- Adds support for comparing NumPy arrays.  (#68)
- Adds support for comparing mutable mappings, sequences and sets from
  `collections.abs` module.  (#67)
- Updates package structure, sorts imports and runs doctests.
- Fixes order in which handled conflicts are unified so that the
  Merger's unified_patches can be always applied.

Version 0.5.0 (released 2016-01-04)

- Adds tolerance parameter used when user wants to treat closed values
  as equals
- Adds support for comparing numerical values and NaN. (#54) (#55)

Version 0.4.0 (released 2015-03-11)

- Adds support for diffing and patching of sets. (#44)
- New tests for diff on the same lists. (#48)
- Fix for exception when dict has unicode keys and ignore parameter is
  provided. (#50)
- PEP8 improvements.

Version 0.3.0 (released 2014-11-05)

- Adds ignore argument to `diff` function that allows skipping check
  on specified keys. (#34 #35)
- Fix for diffing of dict or list subclasses. (#37)
- Better instance checking of diffing objects. (#39)

Version 0.2.0 (released 2014-09-29)

- Fix for empty list instructions. (#30)
- Regression test for empty list instructions.

Version 0.1.0 (released 2014-09-01)

- Fix for list removal issues during patching caused by wrong
  iteration. (#10)
- Fix for issues with multiple value types for the same key. (#10)
- Fix for issues with strings handled as iterables. (#6)
- Fix for integer keys. (#12)
- Regression test for complex dictionaries. (#4)
- Better testing with Github actions, tox, pytest, code coverage. (#10)
- Initial release of documentation on ReadTheDocs. (#21 #24)
- Support for Python 3. (#15)

Version 0.0.4 (released 2014-01-04)

- List diff behavior treats lists as lists instead of sets. (#3)
- Differed typed objects are flagged as `changed` now.
- Swap function refactored.

Version 0.0.3 (released 2013-05-26)

- Initial public release on PyPI.
