odict the Ordered Diction 0.2.2

Fuzzyman fuzzyman at gmail.com
Wed Nov 29 09:41:21 EST 2006


After a break of almost a year there has been an update to `odict the
Ordered Dictionary <http://www.voidspace.org.uk/python/odict.html>`_.

The latest version is 0.2.2, with changes implemented by Nicola Larosa.

Despite over 700 downloads since May (plus 1300 as part of `pythonutils
<http://www.voidspace.org.uk/python/pythonutils.html>`_) there have
been no bug reports, only improvements [#]_. {sm;:-)}

* `Quick Download
<http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=odict.py>`_

What is odict?
==========

**odict** is a pure Python implementation of an ordered dictionary. It
keeps keys in insertion order and allows you to change the order.
Methods (including iteration) that would return members in an arbitrary
order are now ordered.

There is also the `SequenceOrderedDict
<http://www.voidspace.org.uk/python/odict.html#sequenceordereddict>`_
that behaves like a sequence as well as a dictionary. It allows slicing
and the keys, values and items methods are special sequence objects
(which are also callable and so behave as methods too).

What's New ?
==========

Code
-------

Removed the TODO and CHANGELOG sections in the tail docstring (they are
in the docs anyway).

Disabled warnings during tests.

Explicitly disabled tests execution on Python v.2.2 . In addition to
the slicing tests, other ones are failing.

Removed code duplication between the ``__init__`` and the ``update``
methods.

Misc. cleanup.

Also, based on code from `Tim Wegener`_:

- added the ``rename`` method;
- removed a ``has_key`` usage in the ``__setitem__`` method.


Documentation
----------------------

Moved the ISSUES chapter from code's tail docstring to here.

Moved up the `Creating an Ordered Dictionary
<http://www.voidspace.org.uk/python/odict.html#creating-an-ordered-dictionary>`_
chapter.

Added prompts to the code examples and removed the superfluous print
statements (sometimes they were there, sometimes they were not).

Misc. cleanup.

.. [#] So either no-one is using it, or it's really good...




More information about the Python-list mailing list