diff --git a/python-ruamel.yaml.convert.changes b/python-ruamel.yaml.convert.changes index 799cf4c..e345858 100644 --- a/python-ruamel.yaml.convert.changes +++ b/python-ruamel.yaml.convert.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Dec 9 04:18:08 UTC 2025 - Steve Kowalik + +- Add patch support-python314.patch: + * Support Python 3.14 ast changes. + ------------------------------------------------------------------- Tue Jun 24 02:22:48 UTC 2025 - Steve Kowalik diff --git a/python-ruamel.yaml.convert.spec b/python-ruamel.yaml.convert.spec index 96e73ea..294242b 100644 --- a/python-ruamel.yaml.convert.spec +++ b/python-ruamel.yaml.convert.spec @@ -1,7 +1,7 @@ # # spec file for package python-ruamel.yaml.convert # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,6 +23,8 @@ Summary: Data format conversion routines to and from YAML License: MIT URL: https://sourceforge.net/projects/ruamel-yaml-convert/ Source: https://files.pythonhosted.org/packages/source/r/ruamel.yaml.convert/ruamel.yaml.convert-%{version}.tar.gz +# PATCH-FIX-OPENSUSE Support Python 3.14 ast changes +Patch0: support-python314.patch BuildRequires: %{python_module pip} BuildRequires: %{python_module ruamel.base >= 1.0.0+post1} BuildRequires: %{python_module ruamel.yaml} @@ -43,7 +45,7 @@ BuildArch: noarch Data format conversion routines to and from YAML. %prep -%setup -q -n ruamel.yaml.convert-%{version} +%autosetup -p1 -n ruamel.yaml.convert-%{version} # Remove unnecessary namespace declaration sed -i '/namespace_packages=/d' setup.py diff --git a/support-python314.patch b/support-python314.patch new file mode 100644 index 0000000..be69295 --- /dev/null +++ b/support-python314.patch @@ -0,0 +1,40 @@ +Index: ruamel.yaml.convert-0.3.2/setup.py +=================================================================== +--- ruamel.yaml.convert-0.3.2.orig/setup.py ++++ ruamel.yaml.convert-0.3.2/setup.py +@@ -49,8 +49,7 @@ if sys.version_info < (3, 4): + + + if sys.version_info >= (3, 8): +- +- from ast import Str, Num, Bytes, NameConstant # NOQA ++ from ast import Constant # NOQA + + + if sys.version_info < (3,): +@@ -100,15 +99,7 @@ def literal_eval(node_or_string): + raise TypeError('only string or AST nodes supported') + + def _convert(node): +- if isinstance(node, Str): +- if sys.version_info < (3,) and not isinstance(node.s, unicode): +- return node.s.decode('utf-8') +- return node.s +- elif isinstance(node, Bytes): +- return node.s +- elif isinstance(node, Num): +- return node.n +- elif isinstance(node, Tuple): ++ if isinstance(node, Tuple): + return tuple(map(_convert, node.elts)) + elif isinstance(node, List): + return list(map(_convert, node.elts)) +@@ -116,7 +107,7 @@ def literal_eval(node_or_string): + return set(map(_convert, node.elts)) + elif isinstance(node, Dict): + return dict((_convert(k), _convert(v)) for k, v in zip(node.keys, node.values)) +- elif isinstance(node, NameConstant): ++ elif isinstance(node, Constant): + return node.value + elif sys.version_info < (3, 4) and isinstance(node, Name): + if node.id in _safe_names: