]> granicus.if.org Git - python/commitdiff
Move namespace setup inside the template.
authorRaymond Hettinger <python@rcn.com>
Wed, 23 Mar 2011 18:49:56 +0000 (11:49 -0700)
committerRaymond Hettinger <python@rcn.com>
Wed, 23 Mar 2011 18:49:56 +0000 (11:49 -0700)
Lib/collections/__init__.py

index d4e8ed60fa4e7876aee86f2319a5549af5f452b8..b75b4d730831b56679cbc48c349ff85c329da23a 100644 (file)
@@ -234,6 +234,12 @@ class OrderedDict(dict):
 ################################################################################
 
 _class_template = '''\
+__name__ = 'namedtuple_{typename}'
+
+from builtins import property as _property, tuple as _tuple
+from operator import itemgetter as _itemgetter
+from collections import OrderedDict
+
 class {typename}(tuple):
     '{typename}({arg_list})'
 
@@ -349,8 +355,7 @@ def namedtuple(typename, field_names, verbose=False, rename=False):
 
     # Execute the class definition string in a temporary namespace and
     # support tracing utilities by setting a value for frame.f_globals['__name__']
-    namespace = dict(_itemgetter=_itemgetter, __name__='namedtuple_%s' % typename,
-                     OrderedDict=OrderedDict, _property=property, _tuple=tuple)
+    namespace = {}
     try:
         exec(class_definition, namespace)
     except SyntaxError as e: