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

Reply via email to