diff --git a/lower-huge-int.patch b/lower-huge-int.patch new file mode 100644 index 0000000..3764eea --- /dev/null +++ b/lower-huge-int.patch @@ -0,0 +1,25 @@ +From 8342d6aa5dcdcf20f89a19057527510c245c7a2e Mon Sep 17 00:00:00 2001 +From: Jochen Sprickerhof +Date: Fri, 30 Dec 2022 14:47:57 +0100 +Subject: [PATCH] Reduce huge int in test (Closes: #212) + +Int was above limits: + +https://docs.python.org/3/library/stdtypes.html#int-max-str-digits +--- + tests/test_code_gen.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_code_gen.py b/tests/test_code_gen.py +index 0d01be7..6cc0f4c 100644 +--- a/tests/test_code_gen.py ++++ b/tests/test_code_gen.py +@@ -291,7 +291,7 @@ def test_with(self): + self.assertAstRoundtripsGtVer(source, (2, 7)) + + def test_huge_int(self): +- for n in (10**10000, ++ for n in (10**1000, + 0xdfa21cd2a530ccc8c870aa60d9feb3b35deeab81c3215a96557abbd683d21f4600f38e475d87100da9a4404220eeb3bb5584e5a2b5b48ffda58530ea19104a32577d7459d91e76aa711b241050f4cc6d5327ccee254f371bcad3be56d46eb5919b73f20dbdb1177b700f00891c5bf4ed128bb90ed541b778288285bcfa28432ab5cbcb8321b6e24760e998e0daa519f093a631e44276d7dd252ce0c08c75e2ab28a7349ead779f97d0f20a6d413bf3623cd216dc35375f6366690bcc41e3b2d5465840ec7ee0dc7e3f1c101d674a0c7dbccbc3942788b111396add2f8153b46a0e4b50d66e57ee92958f1c860dd97cc0e40e32febff915343ed53573142bdf4b): + self.assertEqual(astornum(n), n) + diff --git a/python-astor.changes b/python-astor.changes index e293af9..511f117 100644 --- a/python-astor.changes +++ b/python-astor.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Jun 13 05:37:21 UTC 2025 - Steve Kowalik + +- Switch to pyproject macros. +- Add patches, to support Python 3.12+: + * lower-huge-int.patch + * support-match.patch + ------------------------------------------------------------------- Thu Jul 4 12:06:42 UTC 2024 - Daniel Garcia diff --git a/python-astor.spec b/python-astor.spec index 7960c23..a2d93b0 100644 --- a/python-astor.spec +++ b/python-astor.spec @@ -1,7 +1,7 @@ # # spec file for package python-astor # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,12 +23,16 @@ Version: 0.8.1 Release: 0 Summary: Read/rewrite/write Python ASTs License: BSD-3-Clause -Group: Development/Languages/Python URL: https://github.com/berkerpeksag/astor Source: https://github.com/berkerpeksag/astor/archive/%{version}.tar.gz#/astor-%{version}.tar.gz # https://github.com/berkerpeksag/astor/pull/177 Patch0: remove_nose.patch +# https://github.com/berkerpeksag/astor/commit/8342d6aa5dcdcf20f89a19057527510c245c7a2e +Patch1: lower-huge-int.patch +Patch2: support-match.patch +BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch @@ -72,29 +76,22 @@ There are some other similar libraries, but astor focuses on the following areas # ugly fix for the use of /usr/bin/env sed -i 's@#!.*@@' astor/rtrip.py chmod a-x astor/rtrip.py -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} # fix executeable bits %python_expand chmod 755 %{buildroot}%{$python_sitelib}/astor/rtrip.py %check -# https://github.com/berkerpeksag/astor/issues/212 -python38_donttest="test_huge_int" # https://github.com/berkerpeksag/astor/issues/196 -python39_donttest="${python38_donttest} or test_convert_stdlib" -python310_donttest=${python39_donttest} -python311_donttest=${python310_donttest} -python312_donttest=${python311_donttest} -python313_donttest=${python312_donttest} -%pytest tests ${$python_donttest:+ -k "not (${$python_donttest})"} +%pytest tests -k "not test_convert_stdlib" %files %{python_files} %doc AUTHORS README.rst docs/*.rst %license LICENSE %{python_sitelib}/astor -%{python_sitelib}/astor-%{version}*-info +%{python_sitelib}/astor-%{version}.dist-info %changelog diff --git a/support-match.patch b/support-match.patch new file mode 100644 index 0000000..a8769dc --- /dev/null +++ b/support-match.patch @@ -0,0 +1,40 @@ +Index: astor-0.8.1/astor/code_gen.py +=================================================================== +--- astor-0.8.1.orig/astor/code_gen.py ++++ astor-0.8.1/astor/code_gen.py +@@ -546,6 +546,35 @@ class SourceGenerator(ExplicitNodeVisito + def visit_Name(self, node): + self.write(node.id) + ++ # ast.Match is new in Python 3.10 ++ def visit_Match(self, node): ++ self.write(node.subject) ++ for c in node.cases: ++ self.write(c) ++ ++ # ast.match_case is new in Python 3.10 ++ def visit_match_case(self, node): ++ self.write(node.pattern) ++ self.write(node.guard) ++ self.write(node.body) ++ ++ # ast.MatchSingleton is new in Python 3.10 ++ def visit_MatchSingleton(self, node): ++ self.write(node.value) ++ ++ # ast.MatchClass is new in Python 3.10 ++ def visit_MatchClass(self, node): ++ self.write(node.cls) ++ for p in node.patterns: ++ self.write(p) ++ self.write(node.kwd_attrs) ++ self.write(node.kwd_patterns) ++ ++ # ast.MatchAs is new in Python 3.10 ++ def visit_MatchAs(self, node): ++ self.write(node.pattern) ++ self.write(node.name) ++ + # ast.Constant is new in Python 3.6 and it replaces ast.Bytes, + # ast.Ellipsis, ast.NameConstant, ast.Num, ast.Str in Python 3.8 + def visit_Constant(self, node):