Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-parso for openSUSE:Factory checked in at 2026-08-05 17:46:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-parso (Old) and /work/SRC/openSUSE:Factory/.python-parso.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-parso" Wed Aug 5 17:46:11 2026 rev:26 rq:1369347 version:0.8.7 Changes: -------- --- /work/SRC/openSUSE:Factory/python-parso/python-parso.changes 2026-05-12 19:26:21.594320291 +0200 +++ /work/SRC/openSUSE:Factory/.python-parso.new.16738/python-parso.changes 2026-08-05 17:46:30.793864259 +0200 @@ -1,0 +2,6 @@ +Thu Jul 30 01:37:10 UTC 2026 - Steve Kowalik <[email protected]> + +- Add patch support-python-315.patch: + * Support exception and parsing changes for Python 3.15. + +------------------------------------------------------------------- New: ---- support-python-315.patch ----------(New B)---------- New: - Add patch support-python-315.patch: * Support exception and parsing changes for Python 3.15. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-parso.spec ++++++ --- /var/tmp/diff_new_pack.7XXBQB/_old 2026-08-05 17:46:31.673895082 +0200 +++ /var/tmp/diff_new_pack.7XXBQB/_new 2026-08-05 17:46:31.673895082 +0200 @@ -24,6 +24,8 @@ License: MIT AND Python-2.0 URL: https://github.com/davidhalter/parso Source0: https://files.pythonhosted.org/packages/source/p/parso/parso-%{version}.tar.gz +# PATCH-FIX-UPSTREAM gh#davidhalter/parso#240 & gh#davidhalter/parso#241 +Patch0: support-python-315.patch BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest >= 3.0.7} BuildRequires: %{python_module setuptools} ++++++ support-python-315.patch ++++++ >From 979bc48bc0cb456d4437ace3fe7f6a36b4777fb5 Mon Sep 17 00:00:00 2001 From: Steve Kowalik <[email protected]> Date: Wed, 29 Jul 2026 10:16:15 +1000 Subject: [PATCH] Support Python 3.15 exception message changes Python 3.15 changed the wording of some SyntaxError exceptions to make it clearer. Closes #239 --- parso/python/errors.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/parso/python/errors.py b/parso/python/errors.py index 09c5047..0916fb3 100644 --- a/parso/python/errors.py +++ b/parso/python/errors.py @@ -973,7 +973,10 @@ def is_issue(self, node): continue if p.name.value in param_names: - message = "duplicate argument '%s' in function definition" + if sys.version_info[:2] < (3, 15): + message = "duplicate argument '%s' in function definition" + else: + message = "duplicate parameter '%s' in function definition" self.add_issue(p.name, message=message % p.name.value) param_names.add(p.name.value) >From e5f0d8ca31fbcf252a29a451ddf79b0659a8f8ba Mon Sep 17 00:00:00 2001 From: Steve Kowalik <[email protected]> Date: Thu, 30 Jul 2026 11:17:59 +1000 Subject: [PATCH] Support more Python 3.15 exception changes Python 3.15 changed the wording of some SyntaxError exceptions to make it clearer. The previous PR only fixed one instance. --- parso/python/errors.py | 5 ++++- test/failing_examples.py | 9 +++++++-- test/test_python_errors.py | 8 ++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/parso/python/errors.py b/parso/python/errors.py index 0916fb3..c51a36d 100644 --- a/parso/python/errors.py +++ b/parso/python/errors.py @@ -659,7 +659,10 @@ def is_issue(self, leaf): @ErrorFinder.register_rule(value='*') class _StarCheck(SyntaxRule): - message = "named arguments must follow bare *" + if sys.version_info[:2] < (3, 15): + message = "named arguments must follow bare *" + else: + message = "named parameters must follow bare *" def is_issue(self, leaf): params = leaf.parent diff --git a/test/failing_examples.py b/test/failing_examples.py index a555fde..af0c711 100644 --- a/test/failing_examples.py +++ b/test/failing_examples.py @@ -139,7 +139,6 @@ def build_nested(code, depth, base='def f():\n'): 'del *a, b', 'def x(*): pass', '(%s *d) = x' % ('a,' * 256), - '{**{} for a in [1]}', '(True,) = x', '([False], a) = x', 'def x(): from math import *', @@ -229,7 +228,6 @@ def build_nested(code, depth, base='def f():\n'): 'async def foo():\n yield x\n return 1', 'async def foo():\n yield x\n return 1', - '[*[] for a in [1]]', 'async def bla():\n def x(): await bla()', 'del None', 'del True', @@ -423,3 +421,10 @@ def y(): FAILING_EXAMPLES += [ 'from .__future__ import whatever', ] + +if sys.version_info[:2] < (3, 15): + # these nested expression successfully evaluate with 3.15 + FAILING_EXAMPLES += [ + '[*[] for a in [1]]', + '{**{} for a in [1]}', + ] diff --git a/test/test_python_errors.py b/test/test_python_errors.py index 0c89016..a3fdaa1 100644 --- a/test/test_python_errors.py +++ b/test/test_python_errors.py @@ -275,9 +275,13 @@ def test_named_argument_issues(works_not_in_py): message = works_not_in_py.get_error_message('def foo(*, **dict): pass') message = works_not_in_py.get_error_message('def foo(*): pass') if works_not_in_py.version.startswith('2'): - assert message == 'SyntaxError: invalid syntax' + wanted = 'SyntaxError: invalid syntax' else: - assert message == 'SyntaxError: named arguments must follow bare *' + if sys.version_info[:2] < (3, 15): + wanted = 'SyntaxError: named arguments must follow bare *' + else: + wanted = 'SyntaxError: named parameters must follow bare *' + assert message == wanted works_not_in_py.assert_no_error_in_passing('def foo(*, name): pass') works_not_in_py.assert_no_error_in_passing('def foo(bar, *, name=1): pass')
