commit:     c7d219dc13055433f212ec036475f0cfc4deac1b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 28 12:50:22 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 28 13:18:48 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7d219dc

dev-python/ruamel-yaml-clib: Enable py3.14

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../files/ruamel-yaml-clib-0.2.12-py314.patch      | 39 ++++++++++++++++++++++
 .../ruamel-yaml-clib-0.2.12.ebuild                 |  7 +++-
 2 files changed, 45 insertions(+), 1 deletion(-)

diff --git 
a/dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch 
b/dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch
new file mode 100644
index 000000000000..55329b596155
--- /dev/null
+++ b/dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch
@@ -0,0 +1,39 @@
+diff -r df8c53ddf0d3 setup.py
+--- a/setup.py Sun Oct 20 11:56:33 2024 +0200
++++ b/setup.py Wed May 28 15:14:40 2025 +0200
+@@ -75,9 +75,6 @@
+             print('{:%Y-%d-%mT%H:%M:%S}'.format(datetime.datetime.now()), 
file=fp, end=' ')
+             print(*args, **kw1)
+ 
+-if sys.version_info >= (3, 8):
+-    from ast import Str, Num, Bytes, NameConstant  # NOQA
+-
+ 
+ def literal_eval(node_or_string):
+     """
+@@ -98,14 +95,8 @@
+         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
++        if isinstance(node, Constant):
++            return node.value
+         elif isinstance(node, Tuple):
+             return tuple(map(_convert, node.elts))
+         elif isinstance(node, List):
+@@ -114,8 +105,6 @@
+             return set(map(_convert, node.elts))
+         elif isinstance(node, Dict):
+             return {_convert(k): _convert(v) for k, v in zip(node.keys, 
node.values)}
+-        elif isinstance(node, NameConstant):
+-            return node.value
+         elif sys.version_info < (3, 4) and isinstance(node, Name):
+             if node.id in _safe_names:
+                 return _safe_names[node.id]

diff --git a/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild 
b/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
index 319fabe0016d..f4065b9a7d97 100644
--- a/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
+++ b/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
@@ -7,7 +7,7 @@ DISTUTILS_EXT=1
 DISTUTILS_USE_PEP517=setuptools
 PYPI_NO_NORMALIZE=1
 PYPI_PN=${PN//-/.}
-PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} )
+PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
 
 inherit distutils-r1 pypi
 
@@ -27,6 +27,11 @@ BDEPEND="
        dev-python/cython[${PYTHON_USEDEP}]
 "
 
+PATCHES=(
+       # https://sourceforge.net/p/ruamel-yaml-clib/tickets/45/
+       "${FILESDIR}/${P}-py314.patch"
+)
+
 src_unpack() {
        default
        mv "ruamel.yaml.clib-${PV}" ruamel_yaml_clib || die

Reply via email to