summaryrefslogtreecommitdiff
path: root/dev-python/humanfriendly
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/humanfriendly')
-rw-r--r--dev-python/humanfriendly/Manifest1
-rw-r--r--dev-python/humanfriendly/files/humanfriendly-10.0-py3.13.patch74
-rw-r--r--dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild38
-rw-r--r--dev-python/humanfriendly/metadata.xml10
4 files changed, 123 insertions, 0 deletions
diff --git a/dev-python/humanfriendly/Manifest b/dev-python/humanfriendly/Manifest
new file mode 100644
index 000000000000..eb2f81777ec1
--- /dev/null
+++ b/dev-python/humanfriendly/Manifest
@@ -0,0 +1 @@
+DIST humanfriendly-10.0.tar.gz 360702 BLAKE2B 6db7f2f11bafcdc087c078eae6123046610594b17899678e445baa18c25b2210cc1d84363d858ab7c57fce6d6b7a189be69dea08c1891d3f5b11ff9900c9bef9 SHA512 496700bcea1dabf003c938558bf807fabb41b71192f69622979dd9e243dda9b4b06c5ac8f65cef217df85ebadf99099dc22b50d63216791a569be11081d267d6
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..e4646b5b879f
--- /dev/null
+++ b/dev-python/humanfriendly/humanfriendly-10.0-r2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+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"
+
+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
+}
diff --git a/dev-python/humanfriendly/metadata.xml b/dev-python/humanfriendly/metadata.xml
new file mode 100644
index 000000000000..5e95859f915a
--- /dev/null
+++ b/dev-python/humanfriendly/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>