Python 3.4 fixes.

This commit is contained in:
Dave Halter
2017-07-31 00:25:15 +02:00
parent 7f6bef19e1
commit 3f836c5841
2 changed files with 12 additions and 2 deletions

View File

@@ -356,14 +356,20 @@ class ErrorFinder(Normalizer):
arg_set = set()
kw_only = False
kw_unpacking_only = False
is_old_starred = False
# In python 3 this would be a bit easier (stars are part of
# argument), but we have to understand both.
for argument in node.children:
if argument == ',':
continue
if argument in ('*', '**'):
# Python 2 has the order engraved in the grammar file.
# No need to do anything here.
# Python < 3.5 has the order engraved in the grammar
# file. No need to do anything here.
is_old_starred = True
continue
if is_old_starred:
is_old_starred = False
continue
if argument.type == 'argument':

View File

@@ -292,6 +292,10 @@ def _get_actual_exception(code):
# Python 2.6 has a bit different error messages here, so skip it.
if sys.version_info[:2] == (2, 6) and wanted == 'SyntaxError: unexpected EOF while parsing':
wanted = 'SyntaxError: invalid syntax'
if wanted == 'SyntaxError: non-keyword arg after keyword arg':
# The python 3.5+ way, a bit nicer.
wanted = 'SyntaxError: positional argument follows keyword argument'
return wanted, line_nr