@@ -124,42 +124,44 @@ def register_arguments(func, args=None):
124
124
register_arguments (func , arg .elts )
125
125
126
126
127
- def object_build_class (node , member ):
127
+ def object_build_class (node , member , localname ):
128
128
"""create astng for a living class object"""
129
129
basenames = [base .__name__ for base in member .__bases__ ]
130
- return _base_class_object_build (node , member , basenames )
130
+ return _base_class_object_build (node , member , basenames ,
131
+ localname = localname )
131
132
132
- def object_build_function (node , member ):
133
+ def object_build_function (node , member , localname ):
133
134
"""create astng for a living function object"""
134
135
args , varargs , varkw , defaults = getargspec (member )
135
136
if varargs is not None :
136
137
args .append (varargs )
137
138
if varkw is not None :
138
139
args .append (varkw )
139
- func = build_function (member .__name__ , args , defaults ,
140
+ func = build_function (member .__name__ or localname , args , defaults ,
140
141
member .func_code .co_flags , member .__doc__ )
141
- node .add_local_node (func )
142
+ node .add_local_node (func , localname )
142
143
143
144
def object_build_datadescriptor (node , member , name ):
144
145
"""create astng for a living data descriptor object"""
145
146
return _base_class_object_build (node , member , [], name )
146
147
147
- def object_build_methoddescriptor (node , member ):
148
+ def object_build_methoddescriptor (node , member , localname ):
148
149
"""create astng for a living method descriptor object"""
149
150
# FIXME get arguments ?
150
- func = build_function (member .__name__ , doc = member .__doc__ )
151
+ func = build_function (member .__name__ or localname , doc = member .__doc__ )
151
152
# set node's arguments to None to notice that we have no information, not
152
153
# and empty argument list
153
154
func .args .args = None
154
- node .add_local_node (func )
155
+ node .add_local_node (func , localname )
155
156
156
- def _base_class_object_build (node , member , basenames , name = None ):
157
+ def _base_class_object_build (node , member , basenames , name = None , localname = None ):
157
158
"""create astng for a living class object, with a given set of base names
158
159
(e.g. ancestors)
159
160
"""
160
- klass = build_class (name or member .__name__ , basenames , member .__doc__ )
161
+ klass = build_class (name or member .__name__ or localname , basenames ,
162
+ member .__doc__ )
161
163
klass ._newstyle = isinstance (member , type )
162
- node .add_local_node (klass )
164
+ node .add_local_node (klass , localname )
163
165
try :
164
166
# limit the instantiation trick since it's too dangerous
165
167
# (such as infinite test execution...)
0 commit comments