diff --git a/test/bytecode_2.1/02_def.pyc b/test/bytecode_2.1/02_def.pyc new file mode 100644 index 00000000..51bfe094 Binary files /dev/null and b/test/bytecode_2.1/02_def.pyc differ diff --git a/test/bytecode_2.2/02_def.pyc b/test/bytecode_2.2/02_def.pyc new file mode 100644 index 00000000..ccd6f1cb Binary files /dev/null and b/test/bytecode_2.2/02_def.pyc differ diff --git a/test/bytecode_2.3/02_def.pyc b/test/bytecode_2.3/02_def.pyc index 8480c67f..ba1a2876 100644 Binary files a/test/bytecode_2.3/02_def.pyc and b/test/bytecode_2.3/02_def.pyc differ diff --git a/test/bytecode_2.4/02_def.pyc b/test/bytecode_2.4/02_def.pyc index 1e44dda5..ed8fbab0 100644 Binary files a/test/bytecode_2.4/02_def.pyc and b/test/bytecode_2.4/02_def.pyc differ diff --git a/test/bytecode_2.5/02_def.pyc b/test/bytecode_2.5/02_def.pyc index cd98701c..fcd3d2e7 100644 Binary files a/test/bytecode_2.5/02_def.pyc and b/test/bytecode_2.5/02_def.pyc differ diff --git a/test/bytecode_2.6/02_def.pyc b/test/bytecode_2.6/02_def.pyc index 44379bcd..dbb316f6 100644 Binary files a/test/bytecode_2.6/02_def.pyc and b/test/bytecode_2.6/02_def.pyc differ diff --git a/test/bytecode_2.7/02_def.pyc b/test/bytecode_2.7/02_def.pyc new file mode 100644 index 00000000..ef7eed5a Binary files /dev/null and b/test/bytecode_2.7/02_def.pyc differ diff --git a/test/bytecode_3.2/02_def.pyc b/test/bytecode_3.2/02_def.pyc index aab6b55b..9677152a 100644 Binary files a/test/bytecode_3.2/02_def.pyc and b/test/bytecode_3.2/02_def.pyc differ diff --git a/test/bytecode_3.3/02_def.pyc b/test/bytecode_3.3/02_def.pyc index 8d84c270..860db3c9 100644 Binary files a/test/bytecode_3.3/02_def.pyc and b/test/bytecode_3.3/02_def.pyc differ diff --git a/test/bytecode_3.4/02_def.pyc b/test/bytecode_3.4/02_def.pyc index fcdc0ba7..15d38fea 100644 Binary files a/test/bytecode_3.4/02_def.pyc and b/test/bytecode_3.4/02_def.pyc differ diff --git a/test/bytecode_3.5/02_def.pyc b/test/bytecode_3.5/02_def.pyc index 31b91011..13385589 100644 Binary files a/test/bytecode_3.5/02_def.pyc and b/test/bytecode_3.5/02_def.pyc differ diff --git a/test/simple_source/def/02_def.py b/test/simple_source/def/02_def.py index 003ad84a..09f1a002 100644 --- a/test/simple_source/def/02_def.py +++ b/test/simple_source/def/02_def.py @@ -13,3 +13,9 @@ def x3(a, b, c=5): def x4(a, b=5, **c): pass + +# Had a bug in 2.x where +# we weren't picking up **kwds when +# it was the sole parameter +def funcattrs(**kwds): + return diff --git a/uncompyle6/parsers/parse26.py b/uncompyle6/parsers/parse26.py index 2d40747c..c7e5ebc7 100644 --- a/uncompyle6/parsers/parse26.py +++ b/uncompyle6/parsers/parse26.py @@ -39,7 +39,7 @@ class Python26Parser(Python2Parser): except_handler tryelsestmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK - except_handler else_suite COME_FROM + except_handler else_suite come_froms _ifstmts_jump ::= c_stmts_opt JUMP_FORWARD COME_FROM POP_TOP diff --git a/uncompyle6/semantics/make_function.py b/uncompyle6/semantics/make_function.py index f8456297..4a8cc630 100644 --- a/uncompyle6/semantics/make_function.py +++ b/uncompyle6/semantics/make_function.py @@ -390,8 +390,7 @@ def make_function2(self, node, is_lambda, nested=1, codeNode=None): if code_has_star_star_arg(code): if argc > 0: self.write(', ') - if argc + kw_pairs > 0: - self.write('**%s' % code.co_varnames[argc + kw_pairs]) + self.write('**%s' % code.co_varnames[argc + kw_pairs]) if is_lambda: self.write(": ")