summaryrefslogtreecommitdiff
path: root/raw_building.py
diff options
context:
space:
mode:
authorSylvain Thénault <sylvain.thenault@logilab.fr>2009-07-30 08:37:49 +0200
committerSylvain Thénault <sylvain.thenault@logilab.fr>2009-07-30 08:37:49 +0200
commitda661ae12efad7b88333cb5983994543ef2d4b12 (patch)
tree96ec932a2932cc249817128ba392584e3862b48d /raw_building.py
parent4cdfc82457a0962c2dcb1ebc2a1129d4e4863170 (diff)
downloadastroid-git-da661ae12efad7b88333cb5983994543ef2d4b12.tar.gz
use getattr in case member has no __name__ at all
Diffstat (limited to 'raw_building.py')
-rw-r--r--raw_building.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/raw_building.py b/raw_building.py
index 103ce092..6718a9cb 100644
--- a/raw_building.py
+++ b/raw_building.py
@@ -123,7 +123,6 @@ def register_arguments(func, args=None):
else:
register_arguments(func, arg.elts)
-
def object_build_class(node, member, localname):
"""create astng for a living class object"""
basenames = [base.__name__ for base in member.__bases__]
@@ -137,8 +136,8 @@ def object_build_function(node, member, localname):
args.append(varargs)
if varkw is not None:
args.append(varkw)
- func = build_function(member.__name__ or localname, args, defaults,
- member.func_code.co_flags, member.__doc__)
+ func = build_function(getattr(member, '__name__', None) or localname, args,
+ defaults, member.func_code.co_flags, member.__doc__)
node.add_local_node(func, localname)
def object_build_datadescriptor(node, member, name):
@@ -148,7 +147,8 @@ def object_build_datadescriptor(node, member, name):
def object_build_methoddescriptor(node, member, localname):
"""create astng for a living method descriptor object"""
# FIXME get arguments ?
- func = build_function(member.__name__ or localname, doc=member.__doc__)
+ func = build_function(getattr(member, '__name__', None) or localname,
+ doc=member.__doc__)
# set node's arguments to None to notice that we have no information, not
# and empty argument list
func.args.args = None
@@ -158,8 +158,8 @@ def _base_class_object_build(node, member, basenames, name=None, localname=None)
"""create astng for a living class object, with a given set of base names
(e.g. ancestors)
"""
- klass = build_class(name or member.__name__ or localname, basenames,
- member.__doc__)
+ klass = build_class(name or getattr(member, '__name__', None) or localname,
+ basenames, member.__doc__)
klass._newstyle = isinstance(member, type)
node.add_local_node(klass, localname)
try: