Merge pull request #3304 from carmenbianca/posonlyargs

Python 3.8: Prevent posonlyargs error
This commit is contained in:
Anthony Scopatz 2019-09-30 19:55:35 -04:00 committed by GitHub
commit 9b23723bf0
Failed to generate hash of commit
2 changed files with 139 additions and 16 deletions

23
news/posonlyargs.rst Normal file
View file

@ -0,0 +1,23 @@
**Added:**
* <news item>
**Changed:**
* <news item>
**Deprecated:**
* <news item>
**Removed:**
* <news item>
**Fixed:**
* Defining functions inside of the shell no longer crashes on Python 3.8.
**Security:**
* <news item>

View file

@ -853,6 +853,7 @@ class BaseParser(object):
p2 = p[2]
if p2 is None:
p2 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
@ -869,14 +870,26 @@ class BaseParser(object):
def p_typedargslist_kwarg(self, p):
"""typedargslist : POW tfpdef"""
p[0] = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[2], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[2],
defaults=[],
)
def p_typedargslist_times4_tfpdef(self, p):
"""typedargslist : TIMES tfpdef comma_pow_tfpdef_opt"""
# *args, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[3], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[3],
defaults=[],
)
self._set_var_args(p0, p[2], None)
p[0] = p0
@ -885,7 +898,13 @@ class BaseParser(object):
"""typedargslist : TIMES comma_pow_tfpdef"""
# *, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[2], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[2],
defaults=[],
)
p[0] = p0
@ -893,7 +912,13 @@ class BaseParser(object):
"""typedargslist : TIMES tfpdef comma_tfpdef_list comma_pow_tfpdef_opt"""
# *args, x, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[4], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[4],
defaults=[],
)
self._set_var_args(p0, p[2], p[3]) # *args
p[0] = p0
@ -902,7 +927,13 @@ class BaseParser(object):
"""typedargslist : TIMES comma_tfpdef_list comma_pow_tfpdef_opt"""
# *, x, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[3], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[3],
defaults=[],
)
self._set_var_args(p0, None, p[2]) # *args
p[0] = p0
@ -911,7 +942,13 @@ class BaseParser(object):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt"""
# x
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
p[0] = p0
@ -920,7 +957,13 @@ class BaseParser(object):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt POW tfpdef"""
# x, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[6], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[6],
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
p[0] = p0
@ -928,7 +971,13 @@ class BaseParser(object):
def p_typedargslist_t8(self, p):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt TIMES tfpdef_opt comma_tfpdef_list_opt"""
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
self._set_var_args(p0, p[6], p[7])
@ -938,7 +987,13 @@ class BaseParser(object):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt TIMES tfpdef_opt COMMA POW vfpdef"""
# x, *args, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[9], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[9],
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
self._set_var_args(p0, p[6], None)
@ -948,6 +1003,7 @@ class BaseParser(object):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt TIMES tfpdef_opt comma_tfpdef_list COMMA POW tfpdef"""
# x, *args, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
@ -1033,13 +1089,25 @@ class BaseParser(object):
def p_varargslist_kwargs(self, p):
"""varargslist : POW vfpdef"""
p[0] = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[2], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[2],
defaults=[],
)
def p_varargslist_times4(self, p):
"""varargslist : TIMES vfpdef_opt comma_pow_vfpdef_opt"""
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[3], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[3],
defaults=[],
)
self._set_var_args(p0, p[2], None)
p[0] = p0
@ -1048,7 +1116,13 @@ class BaseParser(object):
"""varargslist : TIMES vfpdef_opt comma_vfpdef_list comma_pow_vfpdef_opt"""
# *args, x, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[4], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[4],
defaults=[],
)
self._set_var_args(p0, p[2], p[3]) # *args
p[0] = p0
@ -1057,7 +1131,13 @@ class BaseParser(object):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt"""
# x
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
p[0] = p0
@ -1066,7 +1146,13 @@ class BaseParser(object):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt POW vfpdef"""
# x, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[6], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[6],
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
p[0] = p0
@ -1075,7 +1161,13 @@ class BaseParser(object):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt TIMES vfpdef_opt comma_vfpdef_list_opt"""
# x, *args
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
self._set_var_args(p0, p[6], p[7])
@ -1085,7 +1177,13 @@ class BaseParser(object):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt TIMES vfpdef_opt COMMA POW vfpdef"""
# x, *args, **kwargs
p0 = ast.arguments(
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[9], defaults=[]
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[9],
defaults=[],
)
self._set_regular_args(p0, p[1], p[2], p[3], p[4])
self._set_var_args(p0, p[6], None)
@ -1094,6 +1192,7 @@ class BaseParser(object):
def p_varargslist_v11(self, p):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt TIMES vfpdef_opt comma_vfpdef_list COMMA POW vfpdef"""
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
@ -1858,6 +1957,7 @@ class BaseParser(object):
p1, p2, p4 = p[1], p[2], p[4]
if p2 is None:
args = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],