Commit Graph

7 Commits

Author SHA1 Message Date
Joshua Bronson da250abf3e pyupgrade --py37-plus
Delete utf-8 encoding cookies from all files that require Python 3+,
where utf-8 is already the default.
2022-01-01 20:36:50 -05:00
Joshua Bronson f86ba703e4 Update copyright notices for 2022. 2022-01-01 12:59:11 -05:00
Joshua Bronson bc8c9984fc Update copyright notices for 2021. 2021-01-01 12:14:24 -05:00
jab 0ec3b8b3e7 Various API changes and other improvements.
* 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.
2020-01-07 17:20:25 -05:00
jab d2b5adcce3 Happy 2020 🎉 2019-12-31 18:14:38 -05:00
jab b207e1467a Improve Hypothesis tests.
- Initialize from iterables instead of lists of items in more places.
- Generate arbitrarily many items (rather than max 10).
- Don't include floats and text in HASHABLES. Slows example generation
  without actually finding more falsifying examples.
- Use simpler and more concise `st.tuples(...).map(...).filter(...)`
  constructions rather than much more complicated `st.composite`-based
  strategies.
- Simplify `test_iteritems_args_kw`.
- Split out more namedbidict tests so each one tests one thing.
- Use latest Travis pypy and pypy3.
- Only use a single Hypothesis profile ("custom"). Allow any of its
  settings that should be tunable to be tuned via dedicated env vars
  (currently just "HYPOTHESIS_MAX_EXAMPLES").
- Always turn off "too_slow" health check, not just for Travis cron builds.
  Never want a build to fail only because tests took too long.
- Set --hypothesis-verbosity="verbose" for Travis cron builds.
- Set --hypothesis-show-statistics for Travis cron builds.
2019-09-15 14:19:00 -04:00
jab 7a1069c35c Small improvements to tests, CI, docs + upgrades 2019-09-02 15:51:36 -04:00