v5.2.1 ====== Bugfixes -------- - Fixed issue when the defaults included the key 'target'. v5.2.0 ====== Features -------- - Added set_defaults function. v5.1.1 ====== No significant changes. v5.1.0 ====== Features -------- - Fully typed ``RangeMap`` and avoid complete iterations to find matches (#16) v5.0.1 ====== Bugfixes -------- - Delinting and package refresh. v5.0.0 ====== Features -------- - Moved collections into a package and declared as typed. Deprecations and Removals ------------------------- - Removed DictFilter. v4.3.0 ====== Features -------- - Require Python 3.8 or later. v4.2.0 ====== Added ``Mask``, the inverse of a ``Projection``. v4.1.0 ====== ``Projection`` now accepts an iterable or callable or pattern for matching keys. ``Projection`` now retains order of keys from the underlying mapping. ``DictFilter`` is now deprecated in favor of ``Projection``. v4.0.0 ====== ``DictFilter`` no longer accepts ``include_keys`` and requires ``include_pattern`` as a keyword argument. v3.11.0 ======= In ``DictFilter``, deprecated ``include_keys`` parameter and usage without ``include_pattern``. Future versions will honor ``include_pattern`` as a required keyword argument. All other uses are deprecated. For uses that currently rely on ``include_keys``, use ``Projection`` instead/in addition. For example, instead of:: filtered = DictFilter(orig, include_keys=['a'], include_pattern='b+') Use:: filtered = DictFilter(Projection(['a'], orig), include_pattern='b+') v3.10.0 ======= In ``Projection``, harmonize the implementation and optimize using ``set`` instead of ``tuple``. v3.9.0 ====== ``DictFilter.__len__`` no longer relies on the iterable. Improves efficiency and fixes ``RecursionError`` on PyPy (#12). v3.8.0 ====== Made ``DictStack`` mutable. v3.7.0 ====== Added ``RangeMap.left``. v3.6.0 ====== Revised ``DictFilter``: - Fixed issue where ``DictFilter.__contains__`` would raise a ``KeyError``. - Relies heavily now on ``collections.abc.Mapping`` base class. v3.5.2 ====== Packaging refresh. Enrolled with Tidelift. v3.5.1 ====== Fixed ``DictStack.__len__`` and addressed recursion error on PyPy in ``__getitem__``. v3.5.0 ====== ``DictStack`` now supports the following Mapping behaviors: - ``.items()`` - casting to a dict - ``__contains__`` (i.e. "x in stack") Require Python 3.7 or later. v3.4.0 ====== Add ``WeightedLookup``. v3.3.0 ====== Add ``FreezableDefaultDict``. v3.2.0 ====== Rely on PEP 420 for namespace package. v3.1.0 ====== Refreshed packaging. Dropped dependency on six. v3.0.0 ====== Require Python 3.6 or later. 2.1 === Added ``pop_all`` function. 2.0 === Switch to `pkgutil namespace technique `_ for the ``jaraco`` namespace. 1.6.0 ===== Fix DeprecationWarnings when referencing abstract base classes from collections module. 1.5.3 ===== Refresh package metadata. 1.5.2 ===== Fixed KeyError in BijectiveMap when a new value matched an existing key (but not the reverse). Now a ValueError is raised as intended. 1.5.1 ===== Refresh packaging. 1.5 === Added a ``Projection`` class providing a much simpler interface than DictFilter. 1.4.1 ===== #3: Fixed less-than-equal and greater-than-equal comparisons in ``Least`` and ``Greatest``. 1.4 === Added ``Least`` and ``Greatest`` classes, instances of which always compare lesser or greater than all other objects. 1.3.2 ===== Fixed failure of KeyTransformingDict to transform keys on calls to ``.get``. 1.3 === Moved hosting to Github. 1.2.2 ===== Restore Python 2.7 compatibility. 1.2 === Add InstrumentedDict. 1.1 === Conditionally require setup requirements. 1.0 === Initial functionality taken from jaraco.util 10.8.