Skip to main content

An Ordered Set implementation in Cython.

Project description

===========
Ordered Set
===========

.. image:: https://badge.fury.io/py/orderedset.png
:target: http://badge.fury.io/py/orderedset

.. image:: https://travis-ci.org/simonpercivall/orderedset.png?branch=master
:target: https://travis-ci.org/simonpercivall/orderedset

.. image:: https://pypip.in/d/orderedset/badge.png
:target: https://crate.io/packages/orderedset?version=latest


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 :class:`set`);
* Compatible with Python 2.6 through 3.4.;
* Supports the full set interface;
* Supports some list methods, like :meth:`index` and :meth:`__getitem__`.

.. _`Raymond Hettinger's OrderedSet recipe`: http://code.activestate.com/recipes/576694/


=========
Changelog
=========

Here's the recent changes to Ordered Set.

.. changelog::
:version: 1.1.2
:released: 2014-10-02

.. change::
:tags: general

Make comparisons work with sets and lists,
and not crash when compared with None.

.. changelog::
:version: 1.1.1
:released: 2014-08-24

.. change::
:tags: general

Add pickle/copy support to OrderedSet.

.. changelog::
:version: 1.1
:released: 2014-06-04

.. change::
:tags: general

Make OrderedSets handle slicing in __getitem__().

.. changelog::
:version: 1.0.2
:released: 2014-05-14

.. change::
:tags: docs

Add proper attribution and licenses.

.. changelog::
:version: 1.0.1
:released: 2014-05-13

.. change::
:tags: build

Don't require Cython to build an sdist.

.. changelog::
:version: 1.0
:released: 2014-05-11

.. change::
:tags: general

First implementation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orderedset-1.1.2.tar.gz (68.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page