summaryrefslogtreecommitdiff
path: root/astroid/brain/brain_stdlib.py
diff options
context:
space:
mode:
authorCeridwen <ceridwenv@gmail.com>2015-11-14 18:40:05 -0500
committerCeridwen <ceridwenv@gmail.com>2015-11-14 18:40:05 -0500
commit17c7515226e16a85e626ae0b44815779cefbdc25 (patch)
treec239104716b9da3388ae9ffb29417a77567376a3 /astroid/brain/brain_stdlib.py
parent5f2879660760ec34ccf278762fa3b2b31356031c (diff)
downloadastroid-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.py8
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])