diff --git a/py314-deprecations.patch b/py314-deprecations.patch new file mode 100644 index 0000000..0c15969 --- /dev/null +++ b/py314-deprecations.patch @@ -0,0 +1,59 @@ +From bb1df1417159f6ad0ec5c6c8b27118d50b35f70a Mon Sep 17 00:00:00 2001 +From: Karolina Surma <33810531+befeleme@users.noreply.github.com> +Date: Tue, 7 Jan 2025 13:58:06 +0100 +Subject: [PATCH] Replace ast.Str usages with ast.Constant (#157) + +--- + tests/test_asttokens.py | 2 +- + tests/test_tokenless.py | 4 ++-- + tests/test_util.py | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/test_asttokens.py b/tests/test_asttokens.py +index b9489cb..c654af3 100644 +--- a/tests/test_asttokens.py ++++ b/tests/test_asttokens.py +@@ -125,7 +125,7 @@ def test_unicode_offsets(self): + + # Verify that ast parser produces offsets as we expect. This is just to inform the + # implementation. +- string_node = next(n for n in ast.walk(root) if isinstance(n, ast.Str)) ++ string_node = next(n for n in ast.walk(root) if isinstance(n, ast.Constant)) + self.assertEqual(string_node.lineno, 1) + self.assertEqual(string_node.col_offset, 4) + +diff --git a/tests/test_tokenless.py b/tests/test_tokenless.py +index ab2f3d6..881c69a 100644 +--- a/tests/test_tokenless.py ++++ b/tests/test_tokenless.py +@@ -47,7 +47,7 @@ def is_fstring_format_spec(node): + and len(node.values) == 1 + and ( + ( +- isinstance(node.values[0], ast.Str) ++ isinstance(node.values[0], ast.Constant) + and node.values[0].value in ['.2f'] + ) or ( + isinstance(node.values[0], ast.FormattedValue) +@@ -97,7 +97,7 @@ def check_node(self, atok, node): + atok_text = atok.get_text(node, padded=padded) + if ast_text: + if sys.version_info < (3, 12) and ( +- ast_text.startswith("f") and isinstance(node, (ast.Str, ast.FormattedValue)) ++ ast_text.startswith("f") and isinstance(node, (ast.Constant, ast.FormattedValue)) + or is_fstring_format_spec(node) + or (not fstring_positions_work() and is_fstring_internal_node(node)) + ): +diff --git a/tests/test_util.py b/tests/test_util.py +index a38fef2..0c7f94d 100644 +--- a/tests/test_util.py ++++ b/tests/test_util.py +@@ -98,7 +98,7 @@ def test_replace(self): + source = "foo(bar(1 + 2), 'hello' + ', ' + 'world')" + atok = asttokens.ASTTokens(source, parse=True) + names = [n for n in asttokens.util.walk(atok.tree) if isinstance(n, ast.Name)] +- strings = [n for n in asttokens.util.walk(atok.tree) if isinstance(n, ast.Str)] ++ strings = [n for n in asttokens.util.walk(atok.tree) if isinstance(n, ast.Constant) and isinstance(n.value, str)] + repl1 = [atok.get_text_range(n) + ('TEST',) for n in names] + repl2 = [atok.get_text_range(n) + ('val',) for n in strings] + self.assertEqual(asttokens.util.replace(source, repl1 + repl2), diff --git a/python-asttokens.changes b/python-asttokens.changes index f7c2c62..0fbef07 100644 --- a/python-asttokens.changes +++ b/python-asttokens.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Sep 21 20:18:07 UTC 2025 - Dirk Müller + +- add py314-deprecations.patch + ------------------------------------------------------------------- Fri Jun 13 05:35:07 UTC 2025 - Steve Kowalik diff --git a/python-asttokens.spec b/python-asttokens.spec index 2fa8a77..c4957d2 100644 --- a/python-asttokens.spec +++ b/python-asttokens.spec @@ -1,7 +1,7 @@ # # spec file for package python-asttokens # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # Copyright (c) 2019-2021 Malcolm J Lewis # # All modifications and additions to the file contributed by third parties @@ -17,8 +17,6 @@ # -%define skip_python2 1 -%define skip_python36 1 %{?sle15_python_module_pythons} Name: python-asttokens Version: 3.0.0 @@ -28,6 +26,7 @@ License: Apache-2.0 Group: Development/Languages/Python URL: https://github.com/gristlabs/asttokens Source: https://files.pythonhosted.org/packages/source/a/asttokens/asttokens-%{version}.tar.gz +Patch1: https://github.com/gristlabs/asttokens/commit/bb1df1417159f6ad0ec5c6c8b27118d50b35f70a.patch#/py314-deprecations.patch BuildRequires: %{python_module astroid} BuildRequires: %{python_module devel} BuildRequires: %{python_module pip} @@ -45,7 +44,7 @@ BuildArch: noarch Annotate AST trees with source code positions %prep -%autosetup -n asttokens-%{version} +%autosetup -p1 -n asttokens-%{version} %build export LC_ALL=en_US.utf8