You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 01:09:52 +08:00
Fix handling py3 annotation args + defparam comma issue
This commit is contained in:
@@ -1016,26 +1016,48 @@ class Python3Parser(PythonParser):
|
||||
|
||||
# Note order of kwargs and pos args changed between 3.3-3.4
|
||||
if self.version <= 3.2:
|
||||
rule = "mkfunc ::= %s%s%sload_closure LOAD_CODE %s" % (
|
||||
kwargs_str,
|
||||
"expr " * args_pos,
|
||||
"expr " * annotate_args,
|
||||
opname,
|
||||
)
|
||||
if annotate_args > 0:
|
||||
rule = "mkfunc_annotate ::= %s%s%sannotate_tuple load_closure LOAD_CODE %s" % (
|
||||
kwargs_str,
|
||||
"pos_arg " * args_pos,
|
||||
"annotate_arg " * (annotate_args - 1),
|
||||
opname,
|
||||
)
|
||||
else:
|
||||
rule = "mkfunc ::= %s%sload_closure LOAD_CODE %s" % (
|
||||
kwargs_str,
|
||||
"pos_arg " * args_pos,
|
||||
opname,
|
||||
)
|
||||
elif self.version == 3.3:
|
||||
rule = "mkfunc ::= %s%s%sload_closure LOAD_CODE LOAD_STR %s" % (
|
||||
kwargs_str,
|
||||
"expr " * args_pos,
|
||||
"expr " * annotate_args,
|
||||
opname,
|
||||
)
|
||||
if annotate_args > 0:
|
||||
rule = "mkfunc_annotate ::= %s%s%sannotate_tuple load_closure LOAD_CODE LOAD_STR %s" % (
|
||||
kwargs_str,
|
||||
"pos_arg " * args_pos,
|
||||
"annotate_arg " * (annotate_args - 1),
|
||||
opname,
|
||||
)
|
||||
else:
|
||||
rule = "mkfunc ::= %s%sload_closure LOAD_CODE LOAD_STR %s" % (
|
||||
kwargs_str,
|
||||
"pos_arg " * args_pos,
|
||||
opname,
|
||||
)
|
||||
|
||||
elif self.version >= 3.4:
|
||||
rule = "mkfunc ::= %s%s%s load_closure LOAD_CODE LOAD_STR %s" % (
|
||||
"expr " * args_pos,
|
||||
kwargs_str,
|
||||
"expr " * annotate_args,
|
||||
opname,
|
||||
)
|
||||
if annotate_args > 0:
|
||||
rule = "mkfunc_annotate ::= %s%s%sannotate_tuple load_closure LOAD_CODE LOAD_STR %s" % (
|
||||
"pos_arg " * args_pos,
|
||||
kwargs_str,
|
||||
"annotate_arg " * (annotate_args - 1),
|
||||
opname,
|
||||
)
|
||||
else:
|
||||
rule = "mkfunc ::= %s%s load_closure LOAD_CODE LOAD_STR %s" % (
|
||||
"pos_arg " * args_pos,
|
||||
kwargs_str,
|
||||
opname,
|
||||
)
|
||||
|
||||
self.add_unique_rule(rule, opname, token.attr, customize)
|
||||
|
||||
|
Reference in New Issue
Block a user