New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various API and other improvements. #107
Conversation
b95d058
to
9df3c00
Compare
* Deprecate ``bidict.OVERWRITE`` and ``bidict.IGNORE``. A :class:`UserWarning` will now be emitted if these are used. :attr:`bidict.DROP_OLD` and :attr:`bidict.DROP_NEW` should be used instead. * Rename ``DuplicationPolicy`` to :class:`~bidict.OnDupAction` (and implement it via an :class:`~enum.Enum`). A :class:`~bidict.OnDupAction` may be one of :attr:`~bidict.RAISE`, :attr:`~bidict.DROP_OLD`, or :attr:`~bidict.DROP_NEW`. * Expose the new :class:`~bidict.OnDup` class, a named (*key*, *val*, *kv*) tuple of :class:`~bidict.OnDupAction`\s that should be taken upon encountering the 3 kinds of duplication that can occur. * Provide the :attr:`~bidict.ON_DUP_DEFAULT`, :attr:`~bidict.ON_DUP_RAISE`, and :attr:`~bidict.ON_DUP_DROP_OLD` :class:`~bidict.OnDup` convenience instances. * Deprecate the ``on_dup_key``, ``on_dup_val``, and ``on_dup_kv`` arguments of :meth:`~bidict.bidict.put` and :meth:`~bidict.bidict.putall`. A :class:`UserWarning` will now be emitted if these are used. They have been subsumed by the new *on_dup* argument, which takes an :class:`~bidict.OnDup` instance. Use it like this: ``bi.put(1, 2, OnDup(key=DROP_NEW))``. Or better yet, pass one of the ``ON_DUP_*`` convenience instances instead if possible. See the updated :ref:`basic-usage:Values Must Be Unique` docs for more info. * Deprecate the ``on_dup_key``, ``on_dup_val``, and ``on_dup_kv`` bidict class attributes. A :class:`UserWarning` will now be emitted if these are used. They have been subsumed by the new :attr:`~bidict.bidict.on_dup` class attribute, which takes an :class:`~bidict.OnDup` instance. See the updated :doc:`extending` docs for example usage. * Move :meth:`bidict.BidictBase.values` to :meth:`bidict.BidirectionalMapping.values`, since the implementation is generic. * No longer use ``__all__`` in ``bidict/__init__.py``. * Cap max_size rather than disabling health checks and deadline as a less heavyhanded way to improve hypothesis test reliability on Travis.
Codecov Report
@@ Coverage Diff @@
## master #107 +/- ##
=====================================
Coverage 100% 100%
=====================================
Files 18 16 -2
Lines 610 625 +15
Branches 73 72 -1
=====================================
+ Hits 610 625 +15
Continue to review full report at Codecov.
|
This pull request fixes 1 alert when merging 0ec3b8b into 20d643f - view on LGTM.com fixed alerts:
|
I'm not the best person to provide feedback on these changes as I do not use these features. It all sounds sensible to me and I've tested the master branch with my code and nothing I depend on has broken. |
Deprecate
bidict.OVERWRITE
andbidict.IGNORE
.A :class:
UserWarning
will now be emitted if these are used.:attr:
bidict.DROP_OLD
and :attr:bidict.DROP_NEW
should be used instead.Rename
DuplicationPolicy
to :class:~bidict.OnDupAction
(and implement it via an :class:
~enum.Enum
).A :class:
~bidict.OnDupAction
may be one of:attr:
~bidict.RAISE
,:attr:
~bidict.DROP_OLD
, or:attr:
~bidict.DROP_NEW
.Expose the new :class:
~bidict.OnDup
class,a named (key, val, kv) tuple of :class:
~bidict.OnDupAction
\sthat should be taken upon encountering
the 3 kinds of duplication that can occur.
Provide the
:attr:
~bidict.ON_DUP_DEFAULT
,:attr:
~bidict.ON_DUP_RAISE
, and:attr:
~bidict.ON_DUP_DROP_OLD
:class:
~bidict.OnDup
convenience instances.Deprecate the
on_dup_key
,on_dup_val
, andon_dup_kv
argumentsof :meth:
~bidict.bidict.put
and :meth:~bidict.bidict.putall
.A :class:
UserWarning
will now be emitted if these are used.They have been subsumed by the new on_dup argument,
which takes an :class:
~bidict.OnDup
instance.Use it like this:
bi.put(1, 2, OnDup(key=DROP_NEW))
.Or better yet, pass one of the
ON_DUP_*
convenience instancesinstead if possible.
See the updated :ref:
basic-usage:Values Must Be Unique
docs for more info.Deprecate the
on_dup_key
,on_dup_val
, andon_dup_kv
bidict class attributes.
A :class:
UserWarning
will now be emitted if these are used.They have been subsumed by the new
:attr:
~bidict.bidict.on_dup
class attribute,which takes an :class:
~bidict.OnDup
instance.See the updated :doc:
extending
docs for example usage.Move
:meth:
bidict.BidictBase.values
to:meth:
bidict.BidirectionalMapping.values
,since the implementation is generic.
No longer use
__all__
inbidict/__init__.py
.