From e3a6a7e24d0e8c097f7b0c004de311a727d088af Mon Sep 17 00:00:00 2001 From: Yuxin Wu Date: Wed, 20 Dec 2017 13:41:53 -0800 Subject: [PATCH 1/2] Fix for python 3.5 --- codegen.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/codegen.py b/codegen.py index 113d9be..6b57068 100644 --- a/codegen.py +++ b/codegen.py @@ -127,10 +127,18 @@ def write_comma(): self.visit(default) if node.vararg is not None: write_comma() - self.write('*' + node.vararg) + # python 3.5+ compatibility + if hasattr(node.vararg, 'arg'): + self.write('*' + node.vararg.arg) + else: + self.write('*' + node.vararg) if node.kwarg is not None: write_comma() - self.write('**' + node.kwarg) + # python 3.5+ compatibility + if hasattr(node.kwarg, 'arg'): + self.write('*' + node.kwarg.arg) + else: + self.write('**' + node.kwarg) def decorators(self, node): for decorator in node.decorator_list: @@ -213,11 +221,12 @@ def paren_or_comma(): paren_or_comma() self.write(keyword.arg + '=') self.visit(keyword.value) - if node.starargs is not None: + # python 3.5 removes starargs & kwargs + if getattr(node, 'starargs', None) is not None: paren_or_comma() self.write('*') self.visit(node.starargs) - if node.kwargs is not None: + if getattr(node, 'kwargs', None) is not None: paren_or_comma() self.write('**') self.visit(node.kwargs) @@ -383,11 +392,11 @@ def write_comma(): write_comma() self.write(keyword.arg + '=') self.visit(keyword.value) - if node.starargs is not None: + if getattr(node, 'starargs', None) is not None: write_comma() self.write('*') self.visit(node.starargs) - if node.kwargs is not None: + if getattr(node, 'kwargs', None) is not None: write_comma() self.write('**') self.visit(node.kwargs) From 78faa501ed1e42a60c855dea41b59b71b7cbb590 Mon Sep 17 00:00:00 2001 From: Yuxin Wu Date: Wed, 20 Dec 2017 13:43:45 -0800 Subject: [PATCH 2/2] add a missing star --- codegen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen.py b/codegen.py index 6b57068..cd32d00 100644 --- a/codegen.py +++ b/codegen.py @@ -136,7 +136,7 @@ def write_comma(): write_comma() # python 3.5+ compatibility if hasattr(node.kwarg, 'arg'): - self.write('*' + node.kwarg.arg) + self.write('**' + node.kwarg.arg) else: self.write('**' + node.kwarg)