Skip to main content

An Ordered Set implementation in Cython.

Project description

https://badge.fury.io/py/orderedset.png https://travis-ci.org/simonpercivall/orderedset.png?branch=master https://pypip.in/d/orderedset/badge.png

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])

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


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.2.tar.gz (73.5 kB view details)

Uploaded Source

File details

Details for the file orderedset-1.2.tar.gz.

File metadata

  • Download URL: orderedset-1.2.tar.gz
  • Upload date:
  • Size: 73.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for orderedset-1.2.tar.gz
Algorithm Hash digest
SHA256 eb5eca027d16e7db2daca90d91842ba47142ce1637944747af53935bbe18d9f1
MD5 5b87339a6a12edfdeb052fff1edc7f37
BLAKE2b-256 0043041c9094cb3797bed0708876fabf80934e53e6aeae3ff0cae68f8d5a65b2

See more details on using hashes here.

Supported by

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