Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #3384 from xonsh/parser38
Create python3.8 parser
  • Loading branch information
melund committed Jan 30, 2020
2 parents bcfbd4c + 2aae02d commit 49cd281
Show file tree
Hide file tree
Showing 6 changed files with 364 additions and 123 deletions.
4 changes: 1 addition & 3 deletions .circleci/config.yml
Expand Up @@ -272,8 +272,6 @@ workflows:
- build_35
- build_36
- build_37
- build_38
- build_elm
- build_black
# conda-foge does not yet have all Python 3.8 packages available
# uncomment when it does
#- build_38
5 changes: 2 additions & 3 deletions azure-pipelines.yml
Expand Up @@ -11,9 +11,8 @@ jobs:
python.version: '3.6'
Python37:
python.version: '3.7'
# Uncomment when Python 3.8 is supported
#Python38:
# python.version: '3.8'
Python38:
python.version: '3.8'
maxParallel: 4

steps:
Expand Down
23 changes: 23 additions & 0 deletions news/parser38.rst
@@ -0,0 +1,23 @@
**Added:**

* <news item>

**Changed:**

* Moved python 3.8 parsing out of base parser

**Deprecated:**

* <news item>

**Removed:**

* <news item>

**Fixed:**

* <news item>

**Security:**

* <news item>
4 changes: 3 additions & 1 deletion xonsh/parser.py
Expand Up @@ -6,7 +6,9 @@

@lazyobject
def Parser():
if PYTHON_VERSION_INFO > (3, 6):
if PYTHON_VERSION_INFO > (3, 8):
from xonsh.parsers.v38 import Parser as p
elif PYTHON_VERSION_INFO > (3, 6):
from xonsh.parsers.v36 import Parser as p
elif PYTHON_VERSION_INFO > (3, 5):
from xonsh.parsers.v35 import Parser as p
Expand Down
132 changes: 16 additions & 116 deletions xonsh/parsers/base.py
Expand Up @@ -853,7 +853,6 @@ def p_parameters(self, p):
p2 = p[2]
if p2 is None:
p2 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
Expand All @@ -870,26 +869,14 @@ def p_equals_test(self, p):
def p_typedargslist_kwarg(self, p):
"""typedargslist : POW tfpdef"""
p[0] = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[2],
defaults=[],
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(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[3],
defaults=[],
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[3], defaults=[]
)
self._set_var_args(p0, p[2], None)
p[0] = p0
Expand All @@ -898,27 +885,15 @@ def p_typedargslist_times4_comma(self, p):
"""typedargslist : TIMES comma_pow_tfpdef"""
# *, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[2],
defaults=[],
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[2], defaults=[]
)
p[0] = p0

def p_typedargslist_times5_tdpdef(self, p):
"""typedargslist : TIMES tfpdef comma_tfpdef_list comma_pow_tfpdef_opt"""
# *args, x, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[4],
defaults=[],
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[4], defaults=[]
)
self._set_var_args(p0, p[2], p[3]) # *args
p[0] = p0
Expand All @@ -927,13 +902,7 @@ def p_typedargslist_times5_comma(self, p):
"""typedargslist : TIMES comma_tfpdef_list comma_pow_tfpdef_opt"""
# *, x, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[3],
defaults=[],
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[3], defaults=[]
)
self._set_var_args(p0, None, p[2]) # *args
p[0] = p0
Expand All @@ -942,13 +911,7 @@ def p_typedargslist_t5(self, p):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt"""
# x
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
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
Expand All @@ -957,27 +920,15 @@ def p_typedargslist_t7(self, p):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt POW tfpdef"""
# x, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[6],
defaults=[],
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

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(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
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])
Expand All @@ -987,13 +938,7 @@ def p_typedargslist_t10(self, p):
"""typedargslist : tfpdef equals_test_opt comma_tfpdef_list_opt comma_opt TIMES tfpdef_opt COMMA POW vfpdef"""
# x, *args, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[9],
defaults=[],
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)
Expand All @@ -1003,7 +948,6 @@ def p_typedargslist_t11(self, p):
"""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=[],
Expand Down Expand Up @@ -1089,25 +1033,13 @@ def _set_var_args(self, p0, vararg, kwargs):
def p_varargslist_kwargs(self, p):
"""varargslist : POW vfpdef"""
p[0] = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[2],
defaults=[],
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(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[3],
defaults=[],
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[3], defaults=[]
)
self._set_var_args(p0, p[2], None)
p[0] = p0
Expand All @@ -1116,13 +1048,7 @@ def p_varargslist_times5(self, p):
"""varargslist : TIMES vfpdef_opt comma_vfpdef_list comma_pow_vfpdef_opt"""
# *args, x, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[4],
defaults=[],
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=p[4], defaults=[]
)
self._set_var_args(p0, p[2], p[3]) # *args
p[0] = p0
Expand All @@ -1131,13 +1057,7 @@ def p_varargslist_v5(self, p):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt"""
# x
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
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
Expand All @@ -1146,13 +1066,7 @@ def p_varargslist_v7(self, p):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt POW vfpdef"""
# x, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[6],
defaults=[],
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
Expand All @@ -1161,13 +1075,7 @@ def p_varargslist_v8(self, p):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt TIMES vfpdef_opt comma_vfpdef_list_opt"""
# x, *args
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=None,
defaults=[],
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])
Expand All @@ -1177,13 +1085,7 @@ def p_varargslist_v10(self, p):
"""varargslist : vfpdef equals_test_opt comma_vfpdef_list_opt comma_opt TIMES vfpdef_opt COMMA POW vfpdef"""
# x, *args, **kwargs
p0 = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
kw_defaults=[],
kwarg=p[9],
defaults=[],
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)
Expand All @@ -1192,7 +1094,6 @@ def p_varargslist_v10(self, p):
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=[],
Expand Down Expand Up @@ -1957,7 +1858,6 @@ def p_lambdef(self, p):
p1, p2, p4 = p[1], p[2], p[4]
if p2 is None:
args = ast.arguments(
posonlyargs=[],
args=[],
vararg=None,
kwonlyargs=[],
Expand Down

0 comments on commit 49cd281

Please sign in to comment.