commit: cda5281b0764c1aceaf14d1ec212732246c4bdba Author: Petr Vaněk <arkamar <AT> gentoo <DOT> org> AuthorDate: Sun Jun 30 07:06:45 2024 +0000 Commit: Petr Vaněk <arkamar <AT> gentoo <DOT> org> CommitDate: Sun Jun 30 07:28:27 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cda5281b
dev-python/humanfriendly: enable py3.13 The test restriction is dropped as the test suite seems to work. It was necessary to apply patch [1] in order to make py3.13 work. [1] https://github.com/xolox/python-humanfriendly/pull/75 Signed-off-by: Petr Vaněk <arkamar <AT> gentoo.org> .../files/humanfriendly-10.0-py3.13.patch | 74 ++++++++++++++++++++++ .../humanfriendly/humanfriendly-10.0-r2.ebuild | 38 +++++++++++ 2 files changed, 112 insertions(+) diff --git a/dev-python/humanfriendly/files/humanfriendly-10.0-py3.13.patch b/dev-python/humanfriendly/files/humanfriendly-10.0-py3.13.patch new file mode 100644 index 000000000000..467d3862d331 --- /dev/null +++ b/dev-python/humanfriendly/files/humanfriendly-10.0-py3.13.patch @@ -0,0 +1,74 @@ +From 13d05b8057010121acd2a402a337ef4ee5834062 Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" <[email protected]> +Date: Thu, 30 May 2024 23:05:14 -0400 +Subject: [PATCH] Replace pipes.quote with shlex.quote on Python 3 + +The shlex.quote() API is available from Python 3.3 on; pipes.quote() was +never documented, and is removed in Python 3.13. + +Fixes #73. + +Upstream-PR: https://github.com/xolox/python-humanfriendly/pull/75 +Upstream-Issue: https://github.com/xolox/python-humanfriendly/issues/73 + +diff --git a/humanfriendly/cli.py b/humanfriendly/cli.py +index eb81db1..5dfc14a 100644 +--- a/humanfriendly/cli.py ++++ b/humanfriendly/cli.py +@@ -79,10 +79,14 @@ + # Standard library modules. + import functools + import getopt +-import pipes + import subprocess + import sys + ++try: ++ from shlex import quote # Python 3 ++except ImportError: ++ from pipes import quote # Python 2 (removed in 3.13) ++ + # Modules included in our package. + from humanfriendly import ( + Timer, +@@ -176,7 +180,7 @@ def main(): + def run_command(command_line): + """Run an external command and show a spinner while the command is running.""" + timer = Timer() +- spinner_label = "Waiting for command: %s" % " ".join(map(pipes.quote, command_line)) ++ spinner_label = "Waiting for command: %s" % " ".join(map(quote, command_line)) + with Spinner(label=spinner_label, timer=timer) as spinner: + process = subprocess.Popen(command_line) + while True: +diff --git a/humanfriendly/testing.py b/humanfriendly/testing.py +index f6abddf..f9d66e4 100644 +--- a/humanfriendly/testing.py ++++ b/humanfriendly/testing.py +@@ -25,13 +25,17 @@ + import functools + import logging + import os +-import pipes + import shutil + import sys + import tempfile + import time + import unittest + ++try: ++ from shlex import quote # Python 3 ++except ImportError: ++ from pipes import quote # Python 2 (removed in 3.13) ++ + # Modules included in our package. + from humanfriendly.compat import StringIO + from humanfriendly.text import random_string +@@ -521,7 +525,7 @@ def __enter__(self): + pathname = os.path.join(directory, self.program_name) + with open(pathname, 'w') as handle: + handle.write('#!/bin/sh\n') +- handle.write('echo > %s\n' % pipes.quote(self.program_signal_file)) ++ handle.write('echo > %s\n' % quote(self.program_signal_file)) + if self.program_script: + handle.write('%s\n' % self.program_script.strip()) + handle.write('exit %i\n' % self.program_returncode) diff --git a/dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild b/dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild new file mode 100644 index 000000000000..98cb6f5b17f1 --- /dev/null +++ b/dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( pypy3 python3_{10..13} ) +PYTHON_REQ_USE="threads(+)" +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 pypi + +DESCRIPTION="Human friendly output for text interfaces using Python" +HOMEPAGE="https://pypi.org/project/humanfriendly/ + https://github.com/xolox/python-humanfriendly/ + https://humanfriendly.readthedocs.io/" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux" + +BDEPEND=" + test? ( + dev-python/capturer[${PYTHON_USEDEP}] + >=dev-python/coloredlogs-15.0.1[${PYTHON_USEDEP}] + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-10.0-py3.13.patch" +) + +distutils_enable_tests pytest +distutils_enable_sphinx docs + +python_test() { + epytest humanfriendly/tests.py +}
