diff options
author | Claudiu Popa <pcmanticore@gmail.com> | 2015-07-01 03:01:58 +0300 |
---|---|---|
committer | Claudiu Popa <pcmanticore@gmail.com> | 2015-07-01 03:01:58 +0300 |
commit | b1a5e534e68324dda2e2fd396e8d91e4daf0ed59 (patch) | |
tree | f8d80155c72ff52743b0108013881a2290c4da9d /astroid/node_classes.py | |
parent | 5ca427420e197a29a2fa74e385a5d283e8cbf7b7 (diff) | |
parent | d64f5d2447a7c4d25a72c7cb753e8fd84e595813 (diff) | |
download | astroid-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.py | 16 |
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() |