summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Vaněk <arkamar@gentoo.org>2024-06-30 09:06:45 +0200
committerPetr Vaněk <arkamar@gentoo.org>2024-06-30 09:28:27 +0200
commitcda5281b0764c1aceaf14d1ec212732246c4bdba (patch)
tree099cbc34d231a7e0559c52eddc824d9d5d50c34e /dev-python/humanfriendly
parentdev-python/humanfriendly: fix variable order (diff)
downloadgentoo-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.patch74
-rw-r--r--dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild38
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
+}