diff options
| author | Sylvain Thénault <sylvain.thenault@logilab.fr> | 2009-07-30 08:37:49 +0200 |
|---|---|---|
| committer | Sylvain Thénault <sylvain.thenault@logilab.fr> | 2009-07-30 08:37:49 +0200 |
| commit | da661ae12efad7b88333cb5983994543ef2d4b12 (patch) | |
| tree | 96ec932a2932cc249817128ba392584e3862b48d /raw_building.py | |
| parent | 4cdfc82457a0962c2dcb1ebc2a1129d4e4863170 (diff) | |
| download | astroid-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.py | 12 |
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: |
