summaryrefslogtreecommitdiff
path: root/dev-python/threadpoolctl
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/threadpoolctl')
-rw-r--r--dev-python/threadpoolctl/Manifest1
-rw-r--r--dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild65
2 files changed, 66 insertions, 0 deletions
diff --git a/dev-python/threadpoolctl/Manifest b/dev-python/threadpoolctl/Manifest
index 28b03f0cc0b3..197bf3a8296c 100644
--- a/dev-python/threadpoolctl/Manifest
+++ b/dev-python/threadpoolctl/Manifest
@@ -1 +1,2 @@
DIST threadpoolctl-3.6.0.gh.tar.gz 37892 BLAKE2B 3b89180bbfdbb5aa027a5f828745ba1bd881533e6c2f5ff44fecf920618db4111fa9ef1b219e929485a327e54fe144f80cb9b78a4012d509dea7151f0892e5f8 SHA512 5c55f81bbff127cd7cdd62f390ed5a386c29c7d2806aa98a67b99b54fde0d0360ac78ce004125561486b7f5076c9085ea8dd52779aea1b9bc65b25cf166925e1
+DIST threadpoolctl-3.7.0.gh.tar.gz 53102 BLAKE2B a6bf0533210eb35b72a2d7d9b7058a6e357a2c8a5e645953c30c1b425ed9dc80514878cfec681c5617c0644ae8d12b39a07588810ae302038ba098faf297d4dd SHA512 957821c45942e0c43deeca4abfc1849fd70a982deaf1ac31f78931847f73ecbed704437892b42b8afd2e20e7e8bdac0bf47e97934bbb69a27f09fe6aabdf4075
diff --git a/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
new file mode 100644
index 000000000000..008367aebffe
--- /dev/null
+++ b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Limit the number of threads used in native libs that have their own threadpool"
+HOMEPAGE="
+ https://github.com/joblib/threadpoolctl/
+ https://pypi.org/project/threadpoolctl/
+"
+SRC_URI="
+ https://github.com/joblib/threadpoolctl/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Asserts against a hardcoded list of CPUs. Either we skip it
+ # or file bugs about missing architectures until upstream realizes
+ # how bad idea that were.
+ tests/test_threadpoolctl.py::test_architecture
+ # This test fails if the Python executable (or any library that it
+ # links to) uses OpenMP. This can particularly be the case with
+ # CPython 3.12 that links to app-crypt/libb2.
+ # https://github.com/joblib/threadpoolctl/issues/146
+ tests/test_threadpoolctl.py::test_command_line_empty
+ )
+
+ # see continuous_integration/build_test_ext.sh
+ if [[ ! -f tests/_pyMylib/my_threaded_lib.so ]]; then
+ pushd tests/_pyMylib >/dev/null || die
+ $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIC -shared \
+ -o my_threaded_lib.so my_threaded_lib.c || die
+ popd >/dev/null || die
+ fi
+
+ pushd tests/_openmp_test_helper >/dev/null || die
+ "${EPYTHON}" setup_inner.py build_ext -i || die
+ "${EPYTHON}" setup_outer.py build_ext -i || die
+ "${EPYTHON}" setup_nested_prange_blas.py build_ext -i || die
+ popd >/dev/null || die
+
+ epytest
+}