# Sorted Containers Release History

## 1.5.7 (2016-12-22)

Bugfixes

- Changed `SortedList.__setitem__` to support slices with stop less than start and step equal one.

## 1.5.6 (2016-12-09)

Bugfixes

- Changed `SortedList.__setitem__` to support slices that alias itself.

## 1.5.5 (2016-12-05)

Bugfixes

- Changed `SortedList.extend` to support empty iterables.

## 1.5.4 (2016-10-16)

Bugfixes

- Changed `SortedList.__new__` to call `SortedListWithKey.__init__` once instead of twice.

## 1.5.3 (2016-06-01)

Miscellaneous

- Updated documentation with PyCon 2016 Talk.

## 1.5.2 (2016-05-28)

API Changes

- Added `SortedDict.peekitem` method.

## 1.5.1 (2016-05-26)

Miscellaneous

- Added support for PyLint and minor source changes.
- Dropped Python 3.2 support from tox testing due to virtualenv limitations.

## 1.5.0 (2016-05-26)

Miscellaneous

- Added Performance at Scale documentation.

## 1.4.3 (2015-12-03)

Miscellaneous

- Updated documentation with SF Python 2015 Holiday Meetup Talk.

## 1.4.2 (2015-10-20)

API Changes

- Changed `SortedList` initializer to support key-argument callable and automatically return `SortedListWithKey` when present.
- Changed `SortedListWithKey` to inherit from `SortedList`.
- Changed `SortedSet.__ior__` to call update rather than union.
- Changed SortedList comparison to match Sequence semantics as described in CPython Language Reference Section 5.9.
- Changed SortedSet comparison to raise NotImplemented on type mismatch.
- Removed SortedList.as_list method. Use `list(sorted_list)` instead.
- Removed SortedList._slice method. Use `slice.indices` instead.
- Added private references to public methods for internal use to ease method over-loading.

Bugfixes

- Changed sorteddict.ValuesView.count to correctly reference sorted dictionary.

Improvements

- `SortedList.__getitem__` now 35% faster for indexing at beginning and end.
- `SortedList.pop` now 35% faster by inlining fast-paths.
- `del sorted_list[:]` now calls clear and is much faster.
- `sorted_list[:] = values` now calls clear and update and is much faster.

Miscellaneous

- Added Python 3.5 support in tox testing.
- Added discussion of ruamel.ordereddict.sorteddict to performance documentation.
- Merged file `sortedlistwithkey.py` into `sortedlist.py`.

## 0.9.6 (2015-06-22)

API Changes

- Added `islice` method to sorted list, dict, and set types.
- Added `irange` and `irange_key` method to sorted list, dict, and set types.

## 0.9.5 (2015-03-16)

API Changes

- Added `bisect_key` methods to sorted list, dict, and set types.
- Added `last=True` argument to `SortedDict.popitem`.

## 0.9.4 (2014-12-04)

Bugfixes

- Added implementation and testing for Python pickle module.

## 0.9.3 (2014-11-30)

API Changes

- Removed `SortedListWithKeyPair` type.

Improvements

- Changed type references to `self.__class__` as able.

## 0.9.2 (2014-10-20)

API Changes

- Removed `value_orderable` argument from `SortedListWithKey` initializer.
- Added key-callable argument to `SortedDict` initializer.
- Added key-callable argument to `SortedSet` initializer.

Improvements

- Changed `SortedDict` to inherit directly from `dict`.

Miscellaneous

- Added PyPy3 support to tox testing.
- Added `SortedListWithKey` to sorted list performance comparison documentation.

## 0.9.1 (2014-09-20)

Bugfixes

- Changed `SortedList.__setitem__` with slices to correctly update internal “maxes” index.

## 0.9.0 (2014-09-17)

API Changes

- Added `__ior__`, `__iand__`, `__isub__`, and `__ixor__` methods to `SortedSet` interface.

Improvements

- Changed position-based indexing to use dense tree-based index.

Miscellaneous

- Added workload-based performance comparison for sorted list: Priority Queue, Multiset, etc.

## 0.8.5 (2014-08-11)

Bugfixes

- Changed copy methods to make shallow copies: values are not copied, only references to values are copied.

Miscellaneous

- Added load-factor performance comparison documentation.

## 0.8.4 (2014-07-29)

API Changes

- Added `value_orderable` parameter to `SortedListWithKey` to support incomparable value types.

Bugfixes

- Changed `repr` methods to prevent infinite recursion and allow easier subclassing.

## 0.8.3 (2014-07-07)

Miscellaneous

- Added more testing for sorted lists with key-callable argument.

## 0.8.2 (2014-06-13)

API Changes

- Added `SortedListWithKey` type with implementation based on `(key, value)` tuples.

## 0.8.1 (2014-05-08)

Bugfixes

- Added contains-key check in sorted dict equality comparisons.

Miscellaneous

- Added Python runtime comparison to documentation.
- Added sorted dict and set comparison to benchmark documentation.
- Added Travis-CI testing.

## 0.8.0 (2014-04-08)

API Changes

- Added `bisect` methods from `SortedList` to `SortedDict` interface.

## 0.7.0 (2014-04-02)

Miscellaneous

- Added Banyan module to benchmark documentation.

## 0.6.0 (2014-03-18)

Miscellaneous

- Added testing support for CPython 2.6, 2.7, 3.2, and 3.3 with full coverage.

## 0.5.0 (2014-03-14)

- Initial release of sorted list, dict, and set types.