New submission from Eric Snow: Here's a work-in-progress patch that uses OrderedDict as the default class definition namespace (instead of dict). While the actual class namespace is a dict, the definition order is preserved on a new attribute on class objects: __definition_order__. This is useful for cases such as class decorators that would make use of the definition order to post-process the class. This is something that Guido okay'ed a while back.
It may be a stretch to get this into 3.5, but the final change should be pretty small. It also depends on the C implementation of OrderedDict (see issue #16991) which has not landed and may not make it in time. Note that the patch is still a bit buggy, partly due to bugs in the C OrderedDict patch. Also, the attached patch is based off the C OrderedDict patch, so I expect reitveld won't be able to handle it. The code on which the patch is based may be found in the "class-namespace" branch of https://pypi.python.org/pypi/cyordereddict. ---------- assignee: eric.snow components: Interpreter Core files: odict-class-definition-namespace.diff keywords: patch messages: 243729 nosy: eric.snow, ncoghlan priority: normal severity: normal status: open title: Make class definition namespace ordered by default type: behavior versions: Python 3.5 Added file: http://bugs.python.org/file39446/odict-class-definition-namespace.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24254> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com