Package Release Info

python-bidict-0.23.1-bp160.1.12

Update Info: Base Release
Available in Package Hub : 16.0

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

python313-bidict

Change Logs

* Fri Mar 22 2024 Dirk Müller <dmueller@suse.com>
- update to 0.23.1:
  * Fix a regression in 0.23.0 that could defeat type inference
    of a bidict's key type and value type when running in Python
    3.8 or 3.9. :issue:`310`
  * Primarily, this release simplifies bidict by removing minor
    features that are no longer necessary or that have little to
    no apparent usage, and it also includes some performance
    optimizations.
  * Specifically, initializing or updating a bidict is now up to
    70% faster in microbenchmarks.
  * The changes in this release will also make it easier to
    maintain and improve bidict in the future, including further
    potential performance optimizations.
  * It also contains several other improvements.
  * Drop support for Python 3.7, which reached end of life on
    2023-06-27, and take advantage of features available in
    Python 3.8+.
  * Drop support for Python 3.7, which reached end of life on
    2023-06-27, and take advantage of features available in
    Python 3.8+.
  * Remove FrozenOrderedBidict now that Python 3.7 is no longer
    supported. :class:`~bidict.frozenbidict` now provides
    everything that FrozenOrderedBidict provided (including
    :class:`reversibility <collections.abc.Reversible>`) on all
    supported Python versions, but with less space overhead.
  * Remove FrozenOrderedBidict now that Python 3.7 is no longer
    supported. :class:`~bidict.frozenbidict` now provides
    everything that FrozenOrderedBidict provided (including
    :class:`reversibility <collections.abc.Reversible>`) on all
    supported Python versions, but with less space overhead.
  * Remove namedbidict due to low usage.
  * Remove namedbidict due to low usage.
  * Remove the kv field of :class:`~bidict.OnDup` which specified
    the :class:`~bidict.OnDupAction` to take in the case of
    :ref:`basic-usage:key and value duplication`. The
    :attr:`~bidict.OnDup.val` field now specifies the action to
    take in the case of :ref:`basic-usage:key and value
    duplication` as well as :ref:`just value duplication <basic-
    usage:values must be unique>`.
  * Remove the kv field of :class:`~bidict.OnDup` which specified
    the :class:`~bidict.OnDupAction` to take in the case of
    :ref:`basic-usage:key and value duplication`. The
    :attr:`~bidict.OnDup.val` field now specifies the action to
    take in the case of :ref:`basic-usage:key and value
    duplication` as well as :ref:`just value duplication <basic-
    usage:values must be unique>`.
  * Improve type hints for the :attr:`~bidict.BidictBase.inv`
    shortcut alias for :attr:`~bidict.BidictBase.inverse`.
  * Improve type hints for the :attr:`~bidict.BidictBase.inv`
    shortcut alias for :attr:`~bidict.BidictBase.inverse`.
  * Fix a bug where calls like bidict(None), bi.update(False),
    etc. would fail to raise a :class:`TypeError`.
  * Fix a bug where calls like bidict(None), bi.update(False),
    etc. would fail to raise a :class:`TypeError`.
  * All :meth:`~bidict.BidictBase.__init__`,
    :meth:`~bidict.MutableBidict.update`, and related methods now
    handle SupportsKeysAndGetItem objects that are not
    :class:`~collections.abc.Mapping`s the same way that
    MutableMapping.update() does, before falling back to handling
    the provided object as an iterable of pairs.
  * All :meth:`~bidict.BidictBase.__init__`,
    :meth:`~bidict.MutableBidict.update`, and related methods now
    handle SupportsKeysAndGetItem objects that are not
    :class:`~collections.abc.Mapping`s the same way that
    MutableMapping.update() does, before falling back to handling
    the provided object as an iterable of pairs.
  * The :func:`repr` of ordered bidicts now matches that of
    regular bidicts, e.g. OrderedBidict({1: 1}) rather than
    OrderedBidict([(1, 1)]). (Accordingly, the
    bidict.__repr_delegate__ field has been removed now that it's
    no longer needed.) This tracks with the change to
    :class:`collections.OrderedDict`'s :func:`repr` in Python
    3.12.
  * The :func:`repr` of ordered bidicts now matches that of
    regular bidicts, e.g. OrderedBidict({1: 1}) rather than
    OrderedBidict([(1, 1)]).
  * (Accordingly, the bidict.__repr_delegate__ field has been
    removed now that it's no longer needed.)
  * This tracks with the change to
    :class:`collections.OrderedDict`'s :func:`repr` in Python
    3.12.
  * Test with Python 3.12 in CI. Note: Older versions of bidict
    also support Python 3.12, even though they don't explicitly
    declare support for it.
  * Test with Python 3.12 in CI.
  * Note: Older versions of bidict also support Python 3.12, even
    though they don't explicitly declare support for it.
  * Drop use of Trove classifiers that declare support for
    specific Python versions in package metadata.
  * Drop use of Trove classifiers that declare support for
    specific Python versions in package metadata.
- drop support-python-312.patch (upstream)
* Tue Feb 06 2024 Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-python-312.patch:
  * Cope with different TypeError raised.
- No more greedy globs in %files.
* Mon Jan 15 2024 Antonio Larrosa <alarrosa@suse.com>
- Remove BuildRequires that aren't really used:
  sortedcollections and sortedcontainers
* Fri Dec 01 2023 Antonio Larrosa <alarrosa@suse.com>
- Add %{?sle15_python_module_pythons}
* Fri Feb 10 2023 Dirk Müller <dmueller@suse.com>
- update to 0.22.1:
  * Only include the source code in the source distribution. This
    reduces the size of the source distribution from ~200kB to ~30kB.
  * Fix the return type hint of bidict.inverted() to return an
    Iterator, rather than an Iterable
* Sat Sep 24 2022 Dirk Müller <dmueller@suse.com>
- update to 0.22.0:
  - Drop support for Python 3.6, which reached end of life on 2021-12-23
  and is no longer supported by pip as of pip version 22.
  Take advantage of this to reduce bidict's maintenance costs.
  - Use mypy-appeasing explicit re-exports in ``__init__.py``
  (e.g. ``import x as x``)
  so that mypy no longer gives you an implicit re-export error
  if you run it with ``--no-implicit-reexport`` (or ``--strict``)
  against code that imports from :mod:`bidict`.
  - Update the implementations and type annotations of
  :meth:`bidict.BidictBase.keys` and
  :meth:`bidict.BidictBase.values` to make use of the new
  :class:`~bidict.BidictKeysView` type,
  which works a bit better with type checkers.
  - Inverse bidict instances are now computed lazily the first time
  the :attr:`~bidict.BidictBase.inverse` attribute is accessed
  rather than being computed eagerly during initialization.
  (A bidict's backing, inverse, one-way mapping
  is still kept in sync eagerly as any mutations are made,
  to preserve key- and value-uniqueness.)
  - Optimize initializing a bidict with another bidict.
  In a microbenchmark on Python 3.10,
  this now performs over **2x faster**.
  - Optimize updating an empty bidict with another bidict.
  In a microbenchmark on Python 3.10,
  this now performs **60-75% faster**.
  - Optimize :meth:`~bidict.BidictBase.copy`.
  In a microbenchmark on Python 3.10,
  this now performs **10-20x faster**.
  - Optimize rolling back
  :ref:`failed updates to a bidict <basic-usage:Updates Fail Clean>`
  in the case that the number of items passed to the update call
  can be determined to be larger than the bidict being updated.
  Previously this rollback was O(n) in the number of items passed.
  Now it is O(1), i.e. **unboundedly faster**.
  - Optimize :meth:`bidict.BidictBase.__contains__`
  (the method called when you run ``key in mybidict``).
  In a microbenchmark on Python 3.10,
  this now performs over **3-10x faster** in the False case,
  and at least **50% faster** in the True case.
  - Optimize :meth:`bidict.BidictBase.__eq__`
  (the method called when you run ``mybidict == other``).
  In a microbenchmark on Python 3.10,
  this now performs **15-25x faster** for ordered bidicts,
  and **7-12x faster** for unordered bidicts.
  - Optimize :meth:`~bidict.BidictBase.equals_order_sensitive`.
  In a microbenchmark on Python 3.10,
  this now performs **2x faster** for ordered bidicts
  and **60-90% faster** for unordered bidicts.
  - Optimize the
  :class:`~collections.abc.MappingView` objects returned by
  :meth:`bidict.OrderedBidict.keys`,
  :meth:`bidict.OrderedBidict.values`, and
  :meth:`bidict.OrderedBidict.items`
  to delegate to backing ``dict_keys`` and ``dict_items``
  objects if available, which are much faster in CPython.
  For example, in a microbenchmark on Python 3.10,
  ``orderedbi.items() == d.items()``
  now performs **30-50x faster**.
  - Fix a bug where
  :meth:`bidict.BidictBase.__eq__` was always returning False
  rather than :obj:`NotImplemented`
  in the case that the argument was not a
  :class:`~collections.abc.Mapping`,
  defeating the argument's own ``__eq__()`` if implemented.
* Sun Sep 05 2021 Martin Hauke <mardnh@gmx.de>
- Update to version 0.21.3
  * All bidicts now provide the equals_order_sensitive() method,
    not just bidict.OrderedBidicts.
  * Since support for Python < 3.6 was dropped in v0.21.0,
    non-Ordered bidicts preserve a deterministic ordering on all
    supported Python versions, so all bidicts can now provide
    equals_order_sensitive().
  * Take better advantage of the fact that dicts are reversible
    in Python 3.8+. This allows even non-Ordered bidicts to
    efficiently provide a __reversed__() implementation, which
    they now do. As a result, if you are using Python 3.8+,
    frozenbidict now gives you everything that
    FrozenOrderedBidict gives you with less space overhead.
  * Drop setuptools_scm as a setup_requires dependency.
  * Remove the bidict.__version_info__ attribute.
* Wed May 26 2021 Axel Braun <axel.braun@gmx.de>
- Update to version 0.21.2
  * Include `py.typed <https://www.python.org/dev/peps/pep-0561/#packaging-type-information>`__
    file to mark :mod:`bidict` as type hinted.
* Tue Sep 01 2020 Steve Kowalik <steven.kowalik@suse.com>
- Update to 0.21.0:
  * bidict now provides type hints
  * Add bidict.MutableBidirectionalMapping ABC
  * Drop Python 3.5 support
  * Remove bidict.compat module
  * Remove APIs deprecated in previous releases
- Drop dont-limit-versions.patch, included upstream
* Tue Aug 18 2020 Matej Cepl <mcepl@suse.com>
- Add dont-limit-versions.patch … don't limit the upper
  version of setuptools_scm to be used.