diff options
author | Petr Vaněk <arkamar@gentoo.org> | 2024-06-30 09:06:45 +0200 |
---|---|---|
committer | Petr Vaněk <arkamar@gentoo.org> | 2024-06-30 09:28:27 +0200 |
commit | cda5281b0764c1aceaf14d1ec212732246c4bdba (patch) | |
tree | 099cbc34d231a7e0559c52eddc824d9d5d50c34e /dev-python/humanfriendly | |
parent | dev-python/humanfriendly: fix variable order (diff) | |
download | gentoo-cda5281b0764c1aceaf14d1ec212732246c4bdba.tar.gz gentoo-cda5281b0764c1aceaf14d1ec212732246c4bdba.tar.bz2 gentoo-cda5281b0764c1aceaf14d1ec212732246c4bdba.zip |
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@gentoo.org>
Diffstat (limited to 'dev-python/humanfriendly')
-rw-r--r-- | dev-python/humanfriendly/files/humanfriendly-10.0-py3.13.patch | 74 | ||||
-rw-r--r-- | dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild | 38 |
2 files changed, 112 insertions, 0 deletions
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" <code@musicinmybrain.net> +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 +} |