An Ordered Set implementation in Cython.
Project description
An Ordered Set implementation in Cython. Based on Raymond Hettinger’s OrderedSet recipe.
Example:
>>> from orderedset import OrderedSet >>> oset = OrderedSet([1, 2, 3]) >>> oset OrderedSet([1, 2, 3]) >>> oset | [5, 4, 3, 2, 1] OrderedSet([1, 2, 3, 5, 4])
Free software: BSD license
Documentation: http://orderedset.rtfd.org.
Features
Works like a regular set, but remembers insertion order;
Is approximately 5 times faster than the pure Python implementation overall (and 5 times slower than set);
Compatible with Python 2.6 through 3.4.;
Supports the full set interface;
Supports some list methods, like index and __getitem__.
Supports set methods against iterables.
Changelog
1.2 - 2015-09-29
bugfix: Set operations only worked with iterables if the OrderedSet was on the left-hand side. They now work both ways.
bugfix: The order of an intersection was the right-hand side’s order. It is now fixed to be the left-hand side’s order.
1.1.2 - 2014-10-02
Make comparisons work with sets and lists, and not crash when compared with None.
1.1.1 - 2014-08-24
Add pickle/copy support to OrderedSet
1.1 - 2014-06-04
Make OrderedSets handle slicing in __getitem__().
1.0.2 - 2014-05-14
Add proper attribution and licenses.
1.0.1 - 2014-05-13
Don’t require Cython to build an sdist.
1.0 - 2014-05-11
First implementation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.