| |
@@ -0,0 +1,94 @@
|
| |
+ From 3735b217a7bc167fd0fbf9bec9f240603e9f6a25 Mon Sep 17 00:00:00 2001
|
| |
+ From: Anthony Sottile <asottile@umich.edu>
|
| |
+ Date: Thu, 20 May 2021 07:23:19 -0700
|
| |
+ Subject: [PATCH] fix syntax error offsets for python 3.10 (#635)
|
| |
+
|
| |
+ ---
|
| |
+ pyflakes/test/test_api.py | 45 ++++++++++++++++++++++++++-------------
|
| |
+ 1 file changed, 30 insertions(+), 15 deletions(-)
|
| |
+
|
| |
+ diff --git a/pyflakes/test/test_api.py b/pyflakes/test/test_api.py
|
| |
+ index 128aa69..1639c92 100644
|
| |
+ --- a/pyflakes/test/test_api.py
|
| |
+ +++ b/pyflakes/test/test_api.py
|
| |
+ @@ -441,7 +441,7 @@ def baz():
|
| |
+ evaluate(source)
|
| |
+ except SyntaxError:
|
| |
+ e = sys.exc_info()[1]
|
| |
+ - if not PYPY:
|
| |
+ + if not PYPY and sys.version_info < (3, 10):
|
| |
+ self.assertTrue(e.text.count('\n') > 1)
|
| |
+ else:
|
| |
+ self.fail()
|
| |
+ @@ -449,10 +449,17 @@ def baz():
|
| |
+ with self.makeTempFile(source) as sourcePath:
|
| |
+ if PYPY:
|
| |
+ message = 'end of file (EOF) while scanning triple-quoted string literal'
|
| |
+ + elif sys.version_info >= (3, 10):
|
| |
+ + message = 'unterminated triple-quoted string literal (detected at line 8)' # noqa: E501
|
| |
+ else:
|
| |
+ message = 'invalid syntax'
|
| |
+
|
| |
+ - column = 8 if sys.version_info >= (3, 8) else 11
|
| |
+ + if sys.version_info >= (3, 10):
|
| |
+ + column = 12
|
| |
+ + elif sys.version_info >= (3, 8):
|
| |
+ + column = 8
|
| |
+ + else:
|
| |
+ + column = 11
|
| |
+ self.assertHasErrors(
|
| |
+ sourcePath,
|
| |
+ ["""\
|
| |
+ @@ -468,21 +475,25 @@ def baz():
|
| |
+ """
|
| |
+ with self.makeTempFile("def foo(") as sourcePath:
|
| |
+ if PYPY:
|
| |
+ - result = """\
|
| |
+ -%s:1:7: parenthesis is never closed
|
| |
+ -def foo(
|
| |
+ - ^
|
| |
+ -""" % (sourcePath,)
|
| |
+ + msg = 'parenthesis is never closed'
|
| |
+ + elif sys.version_info >= (3, 10):
|
| |
+ + msg = "'(' was never closed"
|
| |
+ else:
|
| |
+ - result = """\
|
| |
+ -%s:1:9: unexpected EOF while parsing
|
| |
+ -def foo(
|
| |
+ - ^
|
| |
+ -""" % (sourcePath,)
|
| |
+ + msg = 'unexpected EOF while parsing'
|
| |
+
|
| |
+ - self.assertHasErrors(
|
| |
+ - sourcePath,
|
| |
+ - [result])
|
| |
+ + if PYPY:
|
| |
+ + column = 7
|
| |
+ + elif sys.version_info >= (3, 10):
|
| |
+ + column = 8
|
| |
+ + else:
|
| |
+ + column = 9
|
| |
+ +
|
| |
+ + spaces = ' ' * (column - 1)
|
| |
+ + expected = '{}:1:{}: {}\ndef foo(\n{}^\n'.format(
|
| |
+ + sourcePath, column, msg, spaces
|
| |
+ + )
|
| |
+ +
|
| |
+ + self.assertHasErrors(sourcePath, [expected])
|
| |
+
|
| |
+ def test_eofSyntaxErrorWithTab(self):
|
| |
+ """
|
| |
+ @@ -515,6 +526,10 @@ def foo(bar=baz, bax):
|
| |
+ if ERROR_HAS_LAST_LINE:
|
| |
+ if PYPY and sys.version_info >= (3,):
|
| |
+ column = 7
|
| |
+ + elif sys.version_info >= (3, 10):
|
| |
+ + column = 18
|
| |
+ + elif sys.version_info >= (3, 9):
|
| |
+ + column = 21
|
| |
+ elif sys.version_info >= (3, 8):
|
| |
+ column = 9
|
| |
+ else:
|
| |
+ --
|
| |
+ 2.31.1
|
| |
+
|
| |
This resolves upstream bug https://github.com/PyCQA/pyflakes/issues/613, corresponding to https://bugzilla.redhat.com/show_bug.cgi?id=1927152.
Scratch build in Python 3.10 side tag: https://koji.fedoraproject.org/koji/taskinfo?taskID=69493927