[Python-Dev] Proposal: add odict to collections
André Malo
nd at perlig.de
Sun Jun 15 11:31:54 CEST 2008
* Guido van Rossum wrote:
> On Sat, Jun 14, 2008 at 4:57 PM, André Malo <nd at perlig.de> wrote:
> > * Armin Ronacher wrote:
> >> Some reasons why ordered dicts are a useful feature:
> >>
> >> - in XML/HTML processing it's often desired to keep the attributes
> >> of an tag ordered during processing. So that input ordering is the
> >> same as the output ordering.
> >>
> >> - Form data transmitted via HTTP is usually ordered by the position
> >> of the input/textarea/select field in the HTML document. That
> >> information is currently lost in most Python web applications /
> >> frameworks.
> >>
> >> - Eaiser transition of code from Ruby/PHP which have sorted
> >> associative arrays / hashmaps.
> >>
> >> - Having an ordered dict in the standard library would allow other
> >> libraries support them. For example a PHP serializer could return
> >> odicts rather then dicts which drops the ordering information.
> >> XML libraries such as etree could add support for it when creating
> >> elements or return attribute dicts.
> >
> > I find this collection of cases pretty weak as an argument for
> > implementing that in the stdlib. A lot of special purpose types would
> > fit into such reasoning, but do you want to have all of them maintained
> > here?
>
> No, but an ordered dict happens to be a *very* common thing to need,
> for a variety of reasons. So I'm +0.5 on adding this to the
> collections module. However someone needs to contribute working code.
> It would also be useful to verify that it actually fulfills the needs
> of some actual use case. Perhaps looking at how Django uses its
> version would be helpful.
FWIW, I'm working a lot in the contexts described above and I never needed
ordered dicts so far (what do I have to do in order to need them?). I've
found myself implementing, for example, mutlivaluedicts instead, several
times.
nd
--
Real programmers confuse Christmas and Halloween because
DEC 25 = OCT 31. -- Unknown
(found in ssl_engine_mutex.c)
More information about the Python-Dev
mailing list