summaryrefslogtreecommitdiff
path: root/astroid/node_classes.py
diff options
context:
space:
mode:
authorClaudiu Popa <pcmanticore@gmail.com>2015-07-01 03:01:58 +0300
committerClaudiu Popa <pcmanticore@gmail.com>2015-07-01 03:01:58 +0300
commitb1a5e534e68324dda2e2fd396e8d91e4daf0ed59 (patch)
treef8d80155c72ff52743b0108013881a2290c4da9d /astroid/node_classes.py
parent5ca427420e197a29a2fa74e385a5d283e8cbf7b7 (diff)
parentd64f5d2447a7c4d25a72c7cb753e8fd84e595813 (diff)
downloadastroid-b1a5e534e68324dda2e2fd396e8d91e4daf0ed59.tar.gz
Merged in jarradhope/astroid (pull request #73)
add annotations to as_string method of Arguments
Diffstat (limited to 'astroid/node_classes.py')
-rw-r--r--astroid/node_classes.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/astroid/node_classes.py b/astroid/node_classes.py
index 312c095..e5a7167 100644
--- a/astroid/node_classes.py
+++ b/astroid/node_classes.py
@@ -316,7 +316,9 @@ class Arguments(NodeNG, AssignTypeMixin):
"""return arguments formatted as string"""
result = []
if self.args:
- result.append(_format_args(self.args, self.defaults))
+ result.append(
+ _format_args(self.args, self.annotations, self.defaults)
+ )
if self.vararg:
result.append('*%s' % self.vararg)
if self.kwarg:
@@ -375,17 +377,23 @@ def _find_arg(argname, args, rec=False):
return None, None
-def _format_args(args, defaults=None):
+def _format_args(args, annotations=None, defaults=None):
values = []
if args is None:
return ''
+ if annotations is None:
+ annotations = []
if defaults is not None:
default_offset = len(args) - len(defaults)
- for i, arg in enumerate(args):
+ for i, (arg, annotation) in enumerate(zip(args, annotations)):
if isinstance(arg, Tuple):
values.append('(%s)' % _format_args(arg.elts))
else:
- values.append(arg.name)
+ argname = arg.name
+ if annotation is not None:
+ argname += ': ' + annotation.name
+ values.append(argname)
+
if defaults is not None and i >= default_offset:
if defaults[i-default_offset] is not None:
values[-1] += '=' + defaults[i-default_offset].as_string()