kwonly args in lambas for 3.3..3.5

This commit is contained in:
rocky
2020-01-05 11:17:33 -05:00
parent dba95c5200
commit 716e097654
5 changed files with 14 additions and 5 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -15,7 +15,11 @@
"""Isolate Python 3.7 version-specific semantic actions here. """Isolate Python 3.7 version-specific semantic actions here.
""" """
from uncompyle6.semantics.consts import PRECEDENCE, TABLE_DIRECT, maxint from uncompyle6.semantics.consts import (
PRECEDENCE,
TABLE_DIRECT,
maxint,
)
def customize_for_version37(self, version): def customize_for_version37(self, version):
######################## ########################
@@ -135,9 +139,9 @@ def customize_for_version37(self, version):
(3, 'importlist37') ), (3, 'importlist37') ),
"importattr37": ("%c", (0, "IMPORT_NAME_ATTR")), "importattr37": ("%c", (0, "IMPORT_NAME_ATTR")),
'importlist37': ("%C", (0, maxint, ', ') ), "importlist37": ("%C", (0, maxint, ", ")),
'list_if37': ( " if %p%c", (0, 27), 1 ), "list_if37": (" if %p%c", (0, 27), 1),
'list_if37_not': ( " if not %p%c", (0, 27), 1 ), "list_if37_not": (" if not %p%c", (0, 27), 1),
"testfalse_not_or": ("not %c or %c", (0, "expr"), (2, "expr")), "testfalse_not_or": ("not %c or %c", (0, "expr"), (2, "expr")),
"testfalse_not_and": ("not (%c)", 0), "testfalse_not_and": ("not (%c)", 0),
"try_except36": ("%|try:\n%+%c%-%c\n\n", 1, -2), "try_except36": ("%|try:\n%+%c%-%c\n\n", 1, -2),
@@ -158,5 +162,6 @@ def customize_for_version37(self, version):
break break
self.template_engine(("%C", (0, i + 1, ', ')), node) self.template_engine(("%C", (0, i + 1, ', ')), node)
self.prune() self.prune()
return
self.n_importlist37 = n_importlist37 self.n_importlist37 = n_importlist37

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2015-2019 by Rocky Bernstein # Copyright (c) 2015-2020 by Rocky Bernstein
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -538,6 +538,10 @@ def make_function3(self, node, is_lambda, nested=1, code_node=None):
params.reverse() params.reverse()
if not is_lambda: if not is_lambda:
argc += 1 argc += 1
pass
elif is_lambda and kwonlyargcount > 0:
params.insert(0, "*")
kwonlyargcount = 0
# dump parameter list (with default values) # dump parameter list (with default values)
if is_lambda: if is_lambda: