Changelog

Release Notifications

Follow on VersionEye

Tip: Follow bidict on VersionEye to automatically be notified via email when a new version of bidict is released.

0.13.2.dev0 (not yet released)

  • ...

0.13.1 (2017-03-15)

  • Fix regression introduced by the new __subclasshook__ functionality in 0.13.0 so that issubclass(OldStyleClass, BidirectionalMapping) once again works with old-style classes, returning False rather than raising AttributeError (thanks, @knaperek!).

0.13.0 (2017-01-19)

0.12.0 (2016-07-03)

Breaking API Changes

  • Rename KeyExistsException to KeyDuplicationError and ValueExistsException to ValueDuplicationError.

  • When overwriting the key of an existing value in an orderedbidict, the position of the existing item is now preserved, overwriting the key of the existing item in place, rather than moving the item to the end. This now matches the behavior of overwriting the value of an existing key, which has always preserved the position of the existing item. (If inserting an item whose key duplicates that of one existing item and whose value duplicates that of another, the existing item whose value is duplicated is still dropped, and the existing item whose key is duplicated still gets its value overwritten in place, as before.)

    For example:

    >>> from bidict import orderedbidict
    >>> o = orderedbidict([(0, 1), (2, 3)])
    >>> o.forceput(4, 1)
    

    previously would have resulted in:

    >>> o  
    orderedbidict([(2, 3), (4, 1)])
    

    but now results in:

    >>> o
    orderedbidict([(4, 1), (2, 3)])
    

0.11.0 (2016-02-05)

0.10.0.post1 (2015-12-23)

  • Minor documentation fixes and improvements.

0.10.0 (2015-12-23)

  • Remove several features in favor of keeping the API simpler and the code more maintainable.
  • In the interest of protecting data safety more proactively, by default bidict now raises an error on attempting to insert a non-unique value, rather than allowing its associated key to be silently overwritten. See discussion in #21.
  • New forceupdate() method provides a bulk forceput() operation.
  • Fix bugs in pop() and setdefault() which could leave a bidict in an inconsistent state.

Breaking API Changes

  • Remove bidict.__invert__, and with it, support for the ~b syntax. Use b.inv instead. #19
  • Remove support for the slice syntax. Use b.inv[val] rather than b[:val]. #19
  • Remove bidict.invert. Use b.inv rather than inverting a bidict in place. #20
  • Raise ValueExistsException when attempting to insert a mapping with a non-unique key. #21
  • Rename collapsingbidict to loosebidict now that it suppresses ValueExistsException rather than the less general CollapseException. #21
  • CollapseException has been subsumed by ValueExistsException. #21
  • put now raises KeyExistsException when attempting to insert an already-existing key, and ValueExistsException when attempting to insert an already-existing value.

0.9.0.post1 (2015-06-06)

  • Fix metadata missing in the 0.9.0rc0 release.

0.9.0rc0 (2015-05-30)

  • Add a Changelog! Also a Contributors’ Guide, Gitter chat room, and other community-oriented improvements.
  • Adopt Pytest (thanks Tom Viner and Adopt Pytest Month).
  • Added property-based tests via hypothesis.
  • Other code, tests, and docs improvements.

Breaking API Changes