commit:     a5fb37c6a8244d744a082560a29e42fbbcdcf4eb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 20 08:07:01 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 20 08:16:33 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a5fb37c6

dev-python/isort: Enable py3.14

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

 .../isort/files/isort-7.0.0-pool-close.patch       | 29 ++++++++
 dev-python/isort/isort-7.0.0-r1.ebuild             | 79 ++++++++++++++++++++++
 2 files changed, 108 insertions(+)

diff --git a/dev-python/isort/files/isort-7.0.0-pool-close.patch 
b/dev-python/isort/files/isort-7.0.0-pool-close.patch
new file mode 100644
index 000000000000..73c7937295d1
--- /dev/null
+++ b/dev-python/isort/files/isort-7.0.0-pool-close.patch
@@ -0,0 +1,29 @@
+From efe21278fbef3ace7d677d17f6ae5213c927a1db Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
+Date: Tue, 20 Jan 2026 09:03:13 +0100
+Subject: [PATCH] Fix closing multiprocessing.Pool()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is simpler equivalent to https://github.com/PyCQA/isort/pull/2442.
+
+Signed-off-by: Michał Górny <[email protected]>
+---
+ isort/main.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/isort/main.py b/isort/main.py
+index f5408f69..cdd45b1a 100644
+--- a/isort/main.py
++++ b/isort/main.py
+@@ -1246,6 +1246,9 @@ def main(argv: Sequence[str] | None = None, stdin: 
TextIOWrapper | None = None)
+ 
+             is_no_attempt = False
+ 
++        if jobs:
++            executor.close()
++
+         num_skipped += len(skipped)
+         if num_skipped and not config.quiet:
+             if config.verbose:

diff --git a/dev-python/isort/isort-7.0.0-r1.ebuild 
b/dev-python/isort/isort-7.0.0-r1.ebuild
new file mode 100644
index 000000000000..6d087fcdd2f4
--- /dev/null
+++ b/dev-python/isort/isort-7.0.0-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python utility/library to sort imports"
+HOMEPAGE="
+       https://github.com/PyCQA/isort/
+       https://pypi.org/project/isort/
+"
+SRC_URI="
+       https://github.com/PyCQA/isort/archive/${PV}.tar.gz
+               -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+       dev-python/hatch-vcs[${PYTHON_USEDEP}]
+       test? (
+               dev-python/black[${PYTHON_USEDEP}]
+               >=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
+               dev-python/natsort[${PYTHON_USEDEP}]
+               dev-vcs/git
+       )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-mock )
+distutils_enable_tests pytest
+
+src_prepare() {
+       local PATCHES=(
+               # https://github.com/PyCQA/isort/issues/2438
+               # https://github.com/PyCQA/isort/pull/2442 (simplified)
+               "${FILESDIR}/${P}-pool-close.patch"
+       )
+
+       # unbundle tomli
+       sed -i -e 's:from ._vendored ::' isort/settings.py || die
+       rm -r isort/_vendored || die
+
+       distutils-r1_src_prepare
+
+       export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+}
+
+python_test() {
+       cp -a "${BUILD_DIR}"/{install,test} || die
+       local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+       # Install necessary plugins
+       local p
+       for p in example*/; do
+               pushd "${p}" >/dev/null || die
+               distutils_pep517_install "${BUILD_DIR}"/test
+               popd >/dev/null || die
+       done
+
+       local EPYTEST_IGNORE=(
+               # Excluded from upstream's test script
+               tests/unit/test_deprecated_finders.py
+       )
+
+       if ! has_version "dev-python/pylama[${PYTHON_USEDEP}]"; then
+               EPYTEST_IGNORE+=(
+                       tests/unit/test_importable.py
+                       tests/unit/test_pylama_isort.py
+               )
+       fi
+
+       epytest tests/unit
+}

Reply via email to