diff options
| author | Ceridwen <ceridwenv@gmail.com> | 2015-11-14 18:40:05 -0500 |
|---|---|---|
| committer | Ceridwen <ceridwenv@gmail.com> | 2015-11-14 18:40:05 -0500 |
| commit | 17c7515226e16a85e626ae0b44815779cefbdc25 (patch) | |
| tree | c239104716b9da3388ae9ffb29417a77567376a3 /astroid/brain/brain_stdlib.py | |
| parent | 5f2879660760ec34ccf278762fa3b2b31356031c (diff) | |
| download | astroid-git-17c7515226e16a85e626ae0b44815779cefbdc25.tar.gz | |
Fix issues covered in code review
Diffstat (limited to 'astroid/brain/brain_stdlib.py')
| -rw-r--r-- | astroid/brain/brain_stdlib.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/astroid/brain/brain_stdlib.py b/astroid/brain/brain_stdlib.py index 9c2eeb01..7c0d127e 100644 --- a/astroid/brain/brain_stdlib.py +++ b/astroid/brain/brain_stdlib.py @@ -225,10 +225,12 @@ def infer_namedtuple(namedtuple_call, context=None): """Specific inference function for namedtuple Call node""" type_name, fields = infer_namedtuple_enum_fields(namedtuple_call, context) - try: + if isinstance(fields, nodes.Const) and isinstance(fields.value, str): field_names = tuple(fields.value.replace(',', ' ').split()) - except AttributeError: + elif isinstance(fields, (nodes.Tuple, nodes.List)): field_names = tuple(infer_first(const, context).value for const in fields.elts) + else: + raise UseInferenceDefault() class_definition = _class_template.format( typename = type_name, @@ -242,7 +244,7 @@ def infer_namedtuple(namedtuple_call, context=None): ) # TODO: maybe memoize this call for efficiency, if it's needed. - namedtuple_node = AstroidBuilder(MANAGER).string_build(class_definition).body[3] + namedtuple_node = AstroidBuilder(MANAGER).string_build(class_definition).getattr(type_name)[0] return iter([namedtuple_node]) |
