summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-01 08:39:32 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-01 08:39:32 +0000
commit129358821b30468316bd6ff04501305b95ab8bed (patch)
tree5e0e2547289be5afc1030b41130ce175a251cc58 /dev-python
parent23cdf322153700a1362a7ad7d872834c6f42dd1e (diff)
downloadbaldeagleos-repo-129358821b30468316bd6ff04501305b95ab8bed.tar.gz
baldeagleos-repo-129358821b30468316bd6ff04501305b95ab8bed.tar.xz
baldeagleos-repo-129358821b30468316bd6ff04501305b95ab8bed.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.38.6.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.38.6.ebuild67
-rw-r--r--dev-python/braintree/Manifest4
-rw-r--r--dev-python/braintree/braintree-4.31.0.ebuild39
-rw-r--r--dev-python/braintree/braintree-4.33.1.ebuild39
-rw-r--r--dev-python/braintree/braintree-4.35.0.ebuild (renamed from dev-python/braintree/braintree-4.33.0.ebuild)0
-rw-r--r--dev-python/cachecontrol/Manifest1
-rw-r--r--dev-python/cachecontrol/cachecontrol-0.14.3.ebuild46
-rw-r--r--dev-python/cython/Manifest1
-rw-r--r--dev-python/cython/cython-3.1.0_rc1.ebuild84
-rw-r--r--dev-python/django-debug-toolbar/django-debug-toolbar-5.2.0.ebuild2
-rw-r--r--dev-python/django-template-partials/django-template-partials-24.4.ebuild2
-rw-r--r--dev-python/ensurepip-setuptools/Manifest1
-rw-r--r--dev-python/ensurepip-setuptools/ensurepip-setuptools-80.1.0.ebuild20
-rw-r--r--dev-python/hcloud/Manifest1
-rw-r--r--dev-python/hcloud/hcloud-2.5.1.ebuild49
-rw-r--r--dev-python/humanize/Manifest1
-rw-r--r--dev-python/humanize/humanize-4.12.3.ebuild33
-rw-r--r--dev-python/jupyterlab/Manifest1
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.3.7.ebuild81
-rw-r--r--dev-python/libarchive-c/libarchive-c-5.2.ebuild2
-rw-r--r--dev-python/mpmath/Manifest1
-rw-r--r--dev-python/mpmath/mpmath-1.4.0_alpha5.ebuild69
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-3.2.7.ebuild120
-rw-r--r--dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild4
-rw-r--r--dev-python/redis/Manifest1
-rw-r--r--dev-python/redis/redis-6.0.0.ebuild114
-rw-r--r--dev-python/setuptools/Manifest1
-rw-r--r--dev-python/setuptools/setuptools-80.1.0.ebuild135
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-12.1.0.ebuild95
-rw-r--r--dev-python/termcolor/Manifest1
-rw-r--r--dev-python/termcolor/termcolor-3.1.0.ebuild34
36 files changed, 1020 insertions, 86 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index e01a17d7dead..8ba609f0bb5b 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.37.37.gh.tar.gz 930327 BLAKE2B 93ed4e903189a9620f13e71fe64557ebcfa5
DIST boto3-1.38.3.gh.tar.gz 934010 BLAKE2B f5008a63aec620385e06c15e97ea37335bba190e5a29920c14389ae0dfc0e09a70ce70f8b50c0d25feda3defd9e855739305d19df7759688c156f53fc698b533 SHA512 8f300e38c7912f5df00431c1b70494521ac49500512b4aba7dc18f6bf0e570508d6a00fe8a98eb3c8607af39744a67e3b47d69507dbaf25d44dd02085f24bf95
DIST boto3-1.38.4.gh.tar.gz 934346 BLAKE2B e8c1a924d565208839ff3ad069bd19f022b2caf09b19b0b045324233a4020e92579845b8c94b589e530db2f599b3ab8aaae301ddc68a49bcf20a850238d2e191 SHA512 652d9a9bf476632dbe2a227d46cb9ae216a41cce812b0bf703b69c89bb7573a00ac43134955c70cac5234f0866b38ab411dd4205ddefb29d284fc1da40ee06f6
DIST boto3-1.38.5.gh.tar.gz 935622 BLAKE2B 57b3d454340298ae91904c7d343c3a663f782d773f98175d90b6e3ff39bee97a9f55a42193298e7690bcaf43af42241043eadc0c60b8549c104db2cd2df6dbf8 SHA512 d2cb67eea9cd06602ff25e791ecf66ef59901725f95af9b8d3a87099d862bdf5430dcf2866f024ebd13d41934eb0dd12c162e30d64c81d7b8e96850a40ce76e8
+DIST boto3-1.38.6.gh.tar.gz 936598 BLAKE2B 592503453cf4ebe08005337e20d5f7f24926e660bc85c64d44f0503b9030ad3b2df4743998843335b6a3fcbe14f12c98f89cc14c153a1f55cda76c98d35af3c6 SHA512 570c51448dab236ff091f582ecbfb3e1fdcce7c9d0ebcc77ae3a0586a1917ca6c8569aa1c335d00b9714bcf2f6d4f4d43a6b54adcf0e439647b93a469d04bd66
diff --git a/dev-python/boto3/boto3-1.38.6.ebuild b/dev-python/boto3/boto3-1.38.6.ebuild
new file mode 100644
index 000000000000..b862f479d876
--- /dev/null
+++ b/dev-python/boto3/boto3-1.38.6.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.12.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index e952f001b2b5..319b8358dfc1 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.37.37.gh.tar.gz 14563135 BLAKE2B 290689f13333ab7ebdbac0bccf65680
DIST botocore-1.38.3.gh.tar.gz 14578552 BLAKE2B 4766db1ba2651ebe65c79f8a37c91cf95875a20c0cc51c1886cd394b90d50109738daa79b398e0c4b80031cfab69e1338dfaafbc0ae796fffa3348f6b13fc1ce SHA512 ad69e119d5bbc98a0c14c1c927badeecc1f57d31305e6a07af41d4d4bf6755f5abc150e36321f71b9495221ad93052d84a1dc964fb9ef6fdd791d4c37e75a01a
DIST botocore-1.38.4.gh.tar.gz 14586930 BLAKE2B 0af73a09979542d92656ecd0f4ad8bdc1d16d99e708b256f7f5150fbd45a3e6fdce261ef388663490174df6a5851118894a69858cd3cb9050d22f6005f92fdd9 SHA512 779ae3bfafc3538871cde13f6aaaf4efdbc1c6ce94d66c6329ec547fd10404d9679b7ab754723fb34c9748217ceccbe921ed8e67da2c0164b291201e0541d530
DIST botocore-1.38.5.gh.tar.gz 14593808 BLAKE2B 2b9d177cc2da31dfffa76004ded8d1c71bdd8fc89006aa18218d0b5450b23ee953f3afd813e940197b6eadc84a9e46482b013ebdf512a3026d3e3694c822da65 SHA512 cd66fc5e71739c4880af2db7a08f11693e6ce89f97edd1af57f30b517ea28d75bfbede0d2188c197682d06012f8762e8018dca792ecc0e0b561631c076bb6eb0
+DIST botocore-1.38.6.gh.tar.gz 14601398 BLAKE2B 9d997eb7b9a8bbf85406b3a71c6888186b0642298f14233944e403772155a7bbce4ce6d84582646d95ca262a15e734c1b5d1d4ea06a60c342e67f7d0b535d0d8 SHA512 22bdaf20838a77add2cdf1d91e3fdc30bc3b00bc5675d70d02e5201736321e1548e46a0b5f1b95c809bf9bdf88a96b55b56d4af5c4e18ff453aa82d54db6e024
diff --git a/dev-python/botocore/botocore-1.38.6.ebuild b/dev-python/botocore/botocore-1.38.6.ebuild
new file mode 100644
index 000000000000..df85ee0d220c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.38.6.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/braintree/Manifest b/dev-python/braintree/Manifest
index 9a5f113ba181..cadbabc31863 100644
--- a/dev-python/braintree/Manifest
+++ b/dev-python/braintree/Manifest
@@ -1,4 +1,2 @@
-DIST braintree_python-4.31.0.gh.tar.gz 239483 BLAKE2B 959f039fa98a6acefb9b114bf8c7fef6d9b848f0a9c2e36dac86704df2e228604b316092022bfa2624c6d5688011e2ad85db6b2270736522497b67bfdbd8a2ff SHA512 5a29ab736f3c535c1e54f9210a148059833d1b56d073a0190407f103b65719cfdd02b3dd77ec61298127017dcc8bc4be0478aba2b386358169f5aaba264f19ea
-DIST braintree_python-4.33.0.gh.tar.gz 247006 BLAKE2B 55f28e7bd99bf76d92875701a06779c0385a821a29a5ee7a137d00ea0ec8e9b7b2293eae12b2ec7d0470edbc450ea5ad610f8d1815ef4b55665fbf41b9904df4 SHA512 bb6fea92cde62beaa1556263c2eccc707692c7f9ed2c8ede2f12ef7382c07c17955f5dd1fd1f2bae90effa9e4e2f6bb7fdf4f51d849ab192fc49b3d08ce170a5
-DIST braintree_python-4.33.1.gh.tar.gz 247023 BLAKE2B af47e62e1ee66699f40a4532f008eddcfb5968a8f771331934ab469d5c6011dd0d171c780cc27100af67294ca464505cdc93d53d069dc45c3158eb133f318c9c SHA512 9b347966e3edf33b94c6d70a2efed99db0665c71adb7658df3d71c42f77e98efd2b3a88b524f691f3b685bfc291d85a6368b780166d0bfca7806fa08885c3eaa
DIST braintree_python-4.34.0.gh.tar.gz 250439 BLAKE2B cc3d31be58c7b0a1ee1fbae258cd5721573f8a58e789950c481ea008d85a795da87a313b55b816a2660a764d22abfde8408327769722236d26cd1cd9620beeb0 SHA512 a181e0e38745c8037b9074ecc3b21ceb0c9f4d30a9931cf626cd1b75831a6d1daf9cf2f0ab02fa9c5f004d9f0f62e721aa02ad75ced57157e4f226290442c0a4
+DIST braintree_python-4.35.0.gh.tar.gz 245250 BLAKE2B 953614483a824d56d892d488eb98e01da24b48d8842b58901d12ee2f5b150ad62fbecd3fbde847e70d088ae4fd4eb12acced9c04a5008d9886488228517f2583 SHA512 5983592fff47b60e307f6535c32f7f9a2a0deea9d6f4dcb5d917e210d56bbd278feabece70bdef0b2e8b6aa598166c6665f2e54e88ceccf9254e3f093ba3dbc2
diff --git a/dev-python/braintree/braintree-4.31.0.ebuild b/dev-python/braintree/braintree-4.31.0.ebuild
deleted file mode 100644
index 55474790e8ae..000000000000
--- a/dev-python/braintree/braintree-4.31.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2020-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1
-
-MY_P=braintree_python-${PV}
-DESCRIPTION="Braintree Python Library"
-HOMEPAGE="
- https://developer.paypal.com/braintree/docs/reference/overview/
- https://github.com/braintree/braintree_python/
- https://pypi.org/project/braintree/
-"
-# no tests in sdist, as of 4.19.0
-SRC_URI="
- https://github.com/braintree/braintree_python/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- >=dev-python/requests-0.11.0[${PYTHON_USEDEP}]
-"
-
-DOCS=( README.md )
-
-distutils_enable_tests unittest
-
-python_test() {
- eunittest tests/unit
-}
diff --git a/dev-python/braintree/braintree-4.33.1.ebuild b/dev-python/braintree/braintree-4.33.1.ebuild
deleted file mode 100644
index 56280ce81eda..000000000000
--- a/dev-python/braintree/braintree-4.33.1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2020-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1
-
-MY_P=braintree_python-${PV}
-DESCRIPTION="Braintree Python Library"
-HOMEPAGE="
- https://developer.paypal.com/braintree/docs/reference/overview/
- https://github.com/braintree/braintree_python/
- https://pypi.org/project/braintree/
-"
-# no tests in sdist, as of 4.19.0
-SRC_URI="
- https://github.com/braintree/braintree_python/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- >=dev-python/requests-0.11.0[${PYTHON_USEDEP}]
-"
-
-DOCS=( README.md )
-
-distutils_enable_tests unittest
-
-python_test() {
- eunittest tests/unit
-}
diff --git a/dev-python/braintree/braintree-4.33.0.ebuild b/dev-python/braintree/braintree-4.35.0.ebuild
index 56280ce81eda..56280ce81eda 100644
--- a/dev-python/braintree/braintree-4.33.0.ebuild
+++ b/dev-python/braintree/braintree-4.35.0.ebuild
diff --git a/dev-python/cachecontrol/Manifest b/dev-python/cachecontrol/Manifest
index ef8fd57e2a1f..9f68a4a14ced 100644
--- a/dev-python/cachecontrol/Manifest
+++ b/dev-python/cachecontrol/Manifest
@@ -1,2 +1,3 @@
DIST cachecontrol-0.14.1.tar.gz 28928 BLAKE2B 9f01bc35c905f0fb489e796f96ccc0063a475bacc24b980ee67f8053412a52d9167b4b96495a8a7f7c561e2485a1b6fcb4ec94b1408ea5111f8661fea59394fd SHA512 f99463ee08199058d0f84a173d6a85276cfe6caec0bec6692e5af74f4c8e684a68ab6910c6c85cbd1f4515c7044ee2fbf149cfd85e4ce9d9ac97e9850698c07f
DIST cachecontrol-0.14.2.tar.gz 28832 BLAKE2B fc572206871a39a2d4c50d0970b9aa2c58f9c99b28ab9bf98e76fad8c3f6e89962e84d368287d7d4beab1fcf16666e42a46a11e194c26f3c487359b767d8d77f SHA512 694dc7dfc976a4087471119a8d5f4b76aa08d62f814293d183331164a4225e8d6f9cbf58551ad806ea9e4bb4adac0d98bb54d7aa09ef4a64feff93a8899c4a58
+DIST cachecontrol-0.14.3.tar.gz 28985 BLAKE2B 130b372dc5b17eadc1f16ca6ee361bbc5fc83306a333059f538972b2e9cf29b2e0f608faa904c3d2793c7289e5ad176193534a3d1997aca97c490b9784a10bc0 SHA512 12205946ac78263148da4751a55d8c19356bdf055953a014cedfb3084869bb73034860592b5785d4e3e0bd3317c7dc80061105146460a1059eeef458ed5e8dfb
diff --git a/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild b/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild
new file mode 100644
index 000000000000..f28a507ca6cf
--- /dev/null
+++ b/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="httplib2 caching for requests"
+HOMEPAGE="
+ https://pypi.org/project/CacheControl/
+ https://github.com/psf/cachecontrol/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/msgpack-2[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.5.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.16.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/cherrypy[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.8.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ if [[ ${EPYTHON} == pypy3* ]]; then
+ EPYTEST_DESELECT+=(
+ tests/test_adapter.py::TestSessionActions::test_do_not_leak_response
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/cython/Manifest b/dev-python/cython/Manifest
index 78e39a3ba5fc..8e484c3d6e72 100644
--- a/dev-python/cython/Manifest
+++ b/dev-python/cython/Manifest
@@ -1,2 +1,3 @@
DIST cython-3.0.12.tar.gz 2757617 BLAKE2B 064549e36e03424065eab081b60e2761d198490cfd4d7836ea236b833ada3962e6ed42ba1710b33418f8a31ac282cdc156ceb544ee21be80ee34b7a3d3f6c7fb SHA512 c4e85596eeea444fae983d32ce8731cc5d0d612d1f96b998db3aa7946e8be151a7ea62c6df163d875111e306c870656b82a8468dd873cacf84c7bd5671a39bc3
DIST cython-3.1.0b1.tar.gz 3192916 BLAKE2B 13a8fa48319d9c4c8cc634d3cf5af599b867466d5de4cf3a24dd342b7812a392e854d9a6152309c6ef84a2925ebfa2257792d0f4e0c8fa36580d7138a663105a SHA512 ced9d57536d3bacd274b5edc4137d400a6182b4b7a89a28cf358f843dcbb0e0e7171fb0842441a81e1d2ac12acb6fd6a3df7018fe2a8708cb188a96cb184d799
+DIST cython-3.1.0rc1.tar.gz 3158411 BLAKE2B 44540e95b8b060956654a0d92fc4b8417088816a1e3f8fc17c8575a1cbd4b71a76cc69209d58c731281a310a9f6a7e2e711f88dc6855bc487d08056203cb04d8 SHA512 b0cefe1d4e248e6044af373088902475839ae06b5855b5b3bffdce5159a0f6e54802c24715a6f6e3242a250841c2ff1e56435b7ed3e304964af01a162f8a851a
diff --git a/dev-python/cython/cython-3.1.0_rc1.ebuild b/dev-python/cython/cython-3.1.0_rc1.ebuild
new file mode 100644
index 000000000000..2f47286fe83a
--- /dev/null
+++ b/dev-python/cython/cython-3.1.0_rc1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 multiprocessing pypi toolchain-funcs
+
+DESCRIPTION="A Python to C compiler"
+HOMEPAGE="
+ https://cython.org/
+ https://github.com/cython/cython/
+ https://pypi.org/project/Cython/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ <dev-python/numpy-2[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch"
+ "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
+)
+
+distutils_enable_sphinx docs \
+ dev-python/jinja2 \
+ dev-python/sphinx-issues \
+ dev-python/sphinx-tabs
+
+python_prepare_all() {
+ # Needs dev-python/pip and doesn't like 'externally-managed' (bug #927995)
+ rm tests/run/coverage_cmd_src_pkg_layout.srctree || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ # Python gets confused when it is in sys.path before build.
+ local -x PYTHONPATH=
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON} (xfail)"
+ return
+ fi
+
+ # Needed to avoid confusing cache tests
+ unset CYTHON_FORCE_REGEN
+
+ tc-export CC
+ # https://github.com/cython/cython/issues/1911
+ local -x CFLAGS="${CFLAGS} -fno-strict-overflow"
+ "${PYTHON}" runtests.py \
+ -vv \
+ -j "$(makeopts_jobs)" \
+ --work-dir "${BUILD_DIR}"/tests \
+ --no-examples \
+ --no-code-style \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/django-debug-toolbar/django-debug-toolbar-5.2.0.ebuild b/dev-python/django-debug-toolbar/django-debug-toolbar-5.2.0.ebuild
index 8176a2727252..afbb244e49fc 100644
--- a/dev-python/django-debug-toolbar/django-debug-toolbar-5.2.0.ebuild
+++ b/dev-python/django-debug-toolbar/django-debug-toolbar-5.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/django-template-partials/django-template-partials-24.4.ebuild b/dev-python/django-template-partials/django-template-partials-24.4.ebuild
index 891d4e155b21..8e25e01118b4 100644
--- a/dev-python/django-template-partials/django-template-partials-24.4.ebuild
+++ b/dev-python/django-template-partials/django-template-partials-24.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest
index 76b5a1a77085..26e4afd20fda 100644
--- a/dev-python/ensurepip-setuptools/Manifest
+++ b/dev-python/ensurepip-setuptools/Manifest
@@ -5,3 +5,4 @@ DIST setuptools-79.0.0-py3-none-any.whl 1256065 BLAKE2B b2168b63a07307ad61a3ac26
DIST setuptools-79.0.1-py3-none-any.whl 1256281 BLAKE2B 8ae51bdd1c0ccada116757c2bd765225fcf4bedc7ada18567ae12f09b6978cdbcddd4f635a39a5568b6d3ed4388e4f73af5c33a7060f2ac0d0907fc82d8fd74f SHA512 fef6cfc6f95a5bb7320f1680e1c665cb8d9a4e4227cde4d8aab8a50bed4bcf04320085b9d7d5343359f887008db5c5a861e57f3d08b7b0b2311a28adaeee6b4a
DIST setuptools-80.0.0-py3-none-any.whl 1240907 BLAKE2B 6feac214d465b395bddca823cd52855d726138285aabf60324a5073991180c5d2ec38973f75d7b018b11a42f650274d0fae1726ea13793d9eed05d86a832dc66 SHA512 d4c6f1a13754bf7b86af470fb9a39fdb3b7ad21cb926ffd88afbe2b728ac3bdc12811100f0c173e7645f80cfbc7634ba0278a1feca93e8e5be6cba57e3e63056
DIST setuptools-80.0.1-py3-none-any.whl 1240915 BLAKE2B ac4bba300cbaa29888a2eff9ce919603ccf15b9c3ec5d4a031fd75fb339dd3e8f5da884a32365c5c070bce129782a2e86669207f7c20eb976073b4cedfe8a428 SHA512 3c6a38cb5ed64c374b269ad23e1167ef689c28be7a9ad7064b25cbf1c605dc83c61348756980efb3cf13a8620c2ff0719ce0f21b6c7abc9ef45f53e5ba8b36b8
+DIST setuptools-80.1.0-py3-none-any.whl 1240689 BLAKE2B 7f5bc92bf06dcd2e0a42d654803e59627fe6e3c0e7f01be77519ade8276c7c6fcd1da31b4c761502e6ef711ed0400bd47a94509bf066801c021a2d74c24dd842 SHA512 890cf30b504ef50a48fac650dae4f476dba09e03d792836315e34e5345eb382b502066c79350c9c0fb951030df66bf0d153aa21a579d4e0ebf7cacc94b0afb3c
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.1.0.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.1.0.ebuild
new file mode 100644
index 000000000000..b76c3f6972d8
--- /dev/null
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.1.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pypi
+
+DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
+HOMEPAGE="https://pypi.org/project/setuptools/"
+SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
+S=${DISTDIR}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+src_install() {
+ insinto /usr/lib/python/ensurepip
+ doins "${A}"
+}
diff --git a/dev-python/hcloud/Manifest b/dev-python/hcloud/Manifest
index 25c38e4e5a05..962191ed3fa3 100644
--- a/dev-python/hcloud/Manifest
+++ b/dev-python/hcloud/Manifest
@@ -1,2 +1,3 @@
DIST hcloud-python-2.4.0.gh.tar.gz 120779 BLAKE2B 9a81c91e7ddc90148b10ca370589e27cb06af9b8a7acff26979fa9ed4f4a095f0ebb458ba4b8223338d8c69123e0ca5763627a41a4d610786b2ac98594700098 SHA512 a22970ab1f1241368d424bc08d540da5f9287581d2a4ecdbba3feb7a97176ddafce66fc0397ee5e22b4131702cfabcab89347da3709a8b6d4d1aa71df001518b
DIST hcloud-python-2.5.0.gh.tar.gz 121327 BLAKE2B 582d55116082dc1dbd06310f93a77a984d58191cebc715e3b68822b3ee98c6c3a0fc01ae58493d6444d56b53e24dc679652ac2cab87f86cfc852197c6fc8a72f SHA512 1b29de830c9ce001ffa93c73a0391569d65cc2da36ba36073af8840a1030777f327c9712220a0d63ed6a374b8ab57d4a2fe62f0cbdeb583059622df705d9cc0d
+DIST hcloud-python-2.5.1.gh.tar.gz 121374 BLAKE2B 08f936960415252e2fb980d2f1175e94ae8d148fa9699e1fc2885204240a5588754064375a4e40be6fbbcf4b40a699052b1c6637ce6760fa5cfb6cb5bce0e342 SHA512 9f54bc0f0eca3aad3dabe0187d9ce2612c5d9b806ceb3c04311e6794a0f21538a6ac65d0ebc74b4702f3a3b179f686950148f6d21cfb0cf3596eea41efb69a64
diff --git a/dev-python/hcloud/hcloud-2.5.1.ebuild b/dev-python/hcloud/hcloud-2.5.1.ebuild
new file mode 100644
index 000000000000..4dec20f2ed8c
--- /dev/null
+++ b/dev-python/hcloud/hcloud-2.5.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+MY_P=hcloud-python-${PV}
+DESCRIPTION="Official Hetzner Cloud python library"
+HOMEPAGE="
+ https://github.com/hetznercloud/hcloud-python/
+ https://pypi.org/project/hcloud/
+"
+# sdist is missing doc assets as of 1.19.0
+# https://github.com/hetznercloud/hcloud-python/pull/183
+SRC_URI="
+ https://github.com/hetznercloud/hcloud-python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples"
+
+RDEPEND="
+ >=dev-python/python-dateutil-2.7.5[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs \
+ dev-python/myst-parser \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # Integration tests need docker:
+ # https://github.com/hetznercloud/hcloud-python/blob/master/.travis.yml#L16
+ tests/integration
+)
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/humanize/Manifest b/dev-python/humanize/Manifest
index 9d6c9bab05e9..05d9c3d141bd 100644
--- a/dev-python/humanize/Manifest
+++ b/dev-python/humanize/Manifest
@@ -1 +1,2 @@
DIST humanize-4.12.2.tar.gz 80871 BLAKE2B 77af866cc388566c8930a7869a836458517babd3f804505681f5bd51adb1690746cfd1e251d71a7b1d9408ae8a51218fe59e94bca9ee2c2d209a0f54db1e37be SHA512 33b7c54acf0aa6e4170016baf8c0b512533546551f6b64bccca251d59a9a997e5f4379b1e038401d6fbff4aaec99606afb24df0428202dd8d82ff7b9595463b7
+DIST humanize-4.12.3.tar.gz 80514 BLAKE2B 23faa42db0005376509c7b756613ee139a0ddb2038d61be90e35ba85cc61bd47dda32edbd61e98ad8192cd29863b7a97b211c7192e9ba1cf3f7df4cea1959fc9 SHA512 530ea137f0176e1765eabf9adca353fb1616e3701f6e618822cffa70f731f59854dc629f17188edbb9dc82f37b80e643e87508ea0ef8c51ec889e5ad0c0c1dfe
diff --git a/dev-python/humanize/humanize-4.12.3.ebuild b/dev-python/humanize/humanize-4.12.3.ebuild
new file mode 100644
index 000000000000..c262c6b3dcb8
--- /dev/null
+++ b/dev-python/humanize/humanize-4.12.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Common humanization utilities"
+HOMEPAGE="
+ https://github.com/python-humanize/humanize/
+ https://pypi.org/project/humanize/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -e '/coverage/d' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/jupyterlab/Manifest b/dev-python/jupyterlab/Manifest
index d8d77955d89f..c61d68575541 100644
--- a/dev-python/jupyterlab/Manifest
+++ b/dev-python/jupyterlab/Manifest
@@ -1 +1,2 @@
DIST jupyterlab-4.3.6.tar.gz 21827019 BLAKE2B e2d57309d13034625482b13c13bfef707b8c14f35087233edbf8267d2b7047b3614971fee03d31310c74324bfcb90c13b6bf9169b38a6d46b78088e95b5d30b1 SHA512 bec63f3ba4d93c056b5f1c5bef6dee63832075e26d52fd30c42b6ba67283d8eceb29ab54f3fcbba49f5bdb17f2bb1ba083c73d6209e29bc5d9ec5b24282808bd
+DIST jupyterlab-4.3.7.tar.gz 21827544 BLAKE2B 6aa1886b3fa9e67c8e4978e90cf5b0e84466de15ad5dfa90c07913e1141b5c24b755f9374b34b9b9bcbd6f712f3d58b72d259e969c91263859ff7e16358a296b SHA512 57301337c8ebfc22b6ad8c09468b2f2642785967f20b74060e5ee50b0a3e1eb778f92d8179535dde5564c56b34102d096c4eee05f3fd3c6f6edbcf830f2765ed
diff --git a/dev-python/jupyterlab/jupyterlab-4.3.7.ebuild b/dev-python/jupyterlab/jupyterlab-4.3.7.ebuild
new file mode 100644
index 000000000000..cf7bd4255367
--- /dev/null
+++ b/dev-python/jupyterlab/jupyterlab-4.3.7.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi xdg
+
+DESCRIPTION="JupyterLab computational environment"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyterlab/jupyterlab/
+ https://pypi.org/project/jupyterlab/
+"
+
+LICENSE="BSD MIT GPL-3 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.5.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-41.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.2.2[${PYTHON_USEDEP}]
+ ' 3.10)
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+ net-libs/nodejs[npm]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ >=dev-python/pytest-jupyter-0.5.3[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-cache[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # These tests call npm and want internet
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_uninstall_core_extension
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned_folder
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom_minimal_core_config
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_check
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_clear
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_build
+)
+
+EPYTEST_IGNORE=(
+ jupyterlab/tests/test_announcements.py
+)
+
+distutils_enable_tests pytest
+# TODO: package sphinx_copybutton
+#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/libarchive-c/libarchive-c-5.2.ebuild b/dev-python/libarchive-c/libarchive-c-5.2.ebuild
index d8392f7c379a..0e83ad26f8cd 100644
--- a/dev-python/libarchive-c/libarchive-c-5.2.ebuild
+++ b/dev-python/libarchive-c/libarchive-c-5.2.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="CC0-1.0"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
RDEPEND="
app-arch/libarchive
diff --git a/dev-python/mpmath/Manifest b/dev-python/mpmath/Manifest
index 11be7898c592..fd2f78a9076e 100644
--- a/dev-python/mpmath/Manifest
+++ b/dev-python/mpmath/Manifest
@@ -1,3 +1,4 @@
DIST mpmath-1.4.0a2.tar.gz 2079112 BLAKE2B 9d2d99dddd4e800b3860f38ef1955b7d803c928d54a7e5d7b07386a127c5a6477818e3ac5c9f679f596c7a2c21bbf430f0bb2348c70ab77d6a888cfb19c6a218 SHA512 523775f3e7d96fd9e0d2c5e4caf855f62d0b683ac00df9dce4fd50d8764bfcf77282fdb34afb51bc53bb303178e7f0e8b6d72700e530d3ca11e3d365b09fc4de
DIST mpmath-1.4.0a3.tar.gz 2079258 BLAKE2B f57e4603758f8aae879e9e61d42f11303eb3f81c02ee51ea54260ce26fa49013f41c7f6f7d97eea6489c42d490ae4f423c3d7f79052972d6b089fb8a03d47aa0 SHA512 8fd32e98beaf2382a2ec8a92df2a097f2101e746bd3e821b92183b6be560b0fed30daeb0b93d459fad62bea29c425ed142055819a346629d385a1426fb00e611
DIST mpmath-1.4.0a4.tar.gz 2079349 BLAKE2B 197578fe989776a2def8bc7de009a9a7a2720ebf488e03e4d0a97ec7fbebbf75b009686bf936b884af5d98dd82abf8f65df0e3b8a9b29a92b3d92925103ead67 SHA512 ea04bed2d95de4ff45420d5e8785410589c118831f7d66f0cc0eb5e9a1a8b42e7acc39d7d36b39c28b6c92640617432c17f7162a5bc66410b2581e98c75e951f
+DIST mpmath-1.4.0a5.tar.gz 2081385 BLAKE2B a6a2b0415f1401948cc8af1bb61449d2804d52a75464b29bbeb18bcda089838336a10c4e5c4cb6a83ac7d710ebbfa1f2ba6566369d5e6bf5ea84047d465570b7 SHA512 998f11ffb66054fab88f6f9aa00def5dc0deee22f59031c8049fb6cda7485ef13352b48e51ab6e490c09c477adcd283b5c8e1d080974488fec5cd9b9139a914d
diff --git a/dev-python/mpmath/mpmath-1.4.0_alpha5.ebuild b/dev-python/mpmath/mpmath-1.4.0_alpha5.ebuild
new file mode 100644
index 000000000000..2a1203ec1253
--- /dev/null
+++ b/dev-python/mpmath/mpmath-1.4.0_alpha5.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Python library for arbitrary-precision floating-point arithmetic"
+HOMEPAGE="
+ https://mpmath.org/
+ https://github.com/mpmath/mpmath/
+ https://pypi.org/project/mpmath/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/gmpy2[${PYTHON_USEDEP}]
+ ' 'python3*')
+ !mips? (
+ !hppa? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ )
+ )
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # minor whitespace mismatch, apparently fixed in pypy 7.3.18
+ mpmath/tests/test_format.py::test_mpf_floats_bulk
+ mpmath/tests/test_format.py::test_mpc_complexes
+ )
+ ;;
+ esac
+
+ # CLI crashes otherwise, sigh (not a regression)
+ # https://github.com/mpmath/mpmath/issues/907
+ > "${HOME}/.python_history" || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p rerunfailures --reruns=5 -p timeout
+}
+
+pkg_postinst() {
+ optfeature "gmp support" dev-python/gmpy2
+ optfeature "matplotlib support" dev-python/matplotlib
+}
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index d5dcb447a646..53c1f61689fd 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -1,2 +1,3 @@
DIST psycopg-3.2.6.gh.tar.gz 558574 BLAKE2B a994f6fb3ee85c42371b848d0947858897a9a1f7256486aa964c8c7634b198b9229a53626c526cb85218a8468308dd9e7e605c1fc1058a08c7fb7183aed83b8d SHA512 99472813c9b6542611b15f0dd52d418a7e3f01cf0447a9a58c1d4135249fb526ca25f7569cc5d7d8a2a99184dccca52f485ee9cc9514e6ada1ebd526f8d62305
+DIST psycopg-3.2.7.gh.tar.gz 562235 BLAKE2B 26f661b9072e2db610ee237dc4a794636ba44a17de3248f018787ed46c34b8087115a91bf2fd06c817c15ba1e2d3da93120f6fd23fcc164d90154928e7d2f1cc SHA512 76f7e8a515b6a7925811a5451eea2fa827b7ba52976faff0dd67c79e8354e83969176a504c1b34993c8a81f0b5ee9cdaf2461acbfc6a047884d47480b08dfc77
DIST psycopg2-2.9.10.tar.gz 385672 BLAKE2B 4a3ad64f406c427b785ffeb85f6520aa67ed04de2d1749eb22d8275146b71ba451f7c04c9ead401d6f7a273781492cd6a5a36beba68b36b1e5203ee75f7df503 SHA512 d0916f6a645b5e87f89f2463dc22fad78340a85fbff320d099bf429a42557f40d3a4eebdc670768469aef1e9fcee60123767bfe49e1186e8574f95bfd6f46900
diff --git a/dev-python/psycopg/psycopg-3.2.7.ebuild b/dev-python/psycopg/psycopg-3.2.7.ebuild
new file mode 100644
index 000000000000..93518ee84ce8
--- /dev/null
+++ b/dev-python/psycopg/psycopg-3.2.7.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="
+ https://www.psycopg.org/psycopg3/
+ https://github.com/psycopg/psycopg/
+ https://pypi.org/project/psycopg/
+"
+SRC_URI="
+ https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="+native-extensions"
+
+DEPEND="
+ native-extensions? (
+ >=dev-db/postgresql-8.1:=
+ )
+ !native-extensions? (
+ >=dev-db/postgresql-8.1:*
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ )
+ test? (
+ >=dev-db/postgresql-8.1[server]
+ >=dev-python/anyio-4.0[${PYTHON_USEDEP}]
+ >=dev-python/dnspython-2.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_compile() {
+ # Python code + ctypes backend
+ cd psycopg || die
+ distutils-r1_python_compile
+
+ # optional C backend
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ local DISTUTILS_USE_PEP517=standalone
+ cd ../psycopg_c || die
+ distutils-r1_python_compile
+ fi
+ cd .. || die
+}
+
+src_test() {
+ rm -r psycopg{,_c} || die
+
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" test || die
+
+ local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for the psycopg_pool package
+ tests/pool
+ # some broken mypy magic
+ tests/test_module.py::test_version
+ tests/test_module.py::test_version_c
+ tests/test_typing.py
+ tests/crdb/test_typing.py
+ # TODO, relying on undefined ordering in Python?
+ tests/test_dns_srv.py::test_srv
+ )
+
+ case ${ARCH} in
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/types/test_numpy.py::test_classes_identities
+ )
+ ;;
+ esac
+
+ local impls=( python )
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ impls+=( c )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PSYCOPG_IMPL
+ for PSYCOPG_IMPL in "${impls[@]}"; do
+ einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
+ # leak and timing tests are fragile whereas slow tests are slow
+ epytest -p anyio -k "not leak" \
+ -m "not timing and not slow and not flakey"
+ done
+}
diff --git a/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild b/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild
index a54694a6ff6f..5cef11a1f636 100644
--- a/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild
+++ b/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}/py_ext
LICENSE="|| ( Apache-2.0 BSD )"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
DEPEND="dev-libs/tlsh"
RDEPEND="${DEPEND}"
diff --git a/dev-python/redis/Manifest b/dev-python/redis/Manifest
index 3eeded4eb29a..17090f64b526 100644
--- a/dev-python/redis/Manifest
+++ b/dev-python/redis/Manifest
@@ -1 +1,2 @@
DIST redis-py-5.2.1.gh.tar.gz 4824044 BLAKE2B 9adf1b7093d7e562782f0c17c9134f33326b19f6ae9895142eadf251165c7d8bed7e61eedc96360724602b42cde4e1f9a0a4193fa76a3de2e30b95268a2f5e2b SHA512 583495712b492558fa186a0b72f19576418fc49937e4e2c2716335f3b05f5c5da6dda149abe6a55ef1dc93284660348a5d545a69db0a1dde08218305f44e9f52
+DIST redis-py-6.0.0.gh.tar.gz 4853361 BLAKE2B a82f2c9d05c62c2e4fc310923d78ad9164c3fa4886f046f15261a97d843ff4478f7bd5ed283739424bcc9fe378265afaf00448aa954e537fecf0f1a3947d9f6e SHA512 72c91bc132dcc9cc32ed221b931c6315615dac9e4b1054638df6ed651f0ba787c319d59c22a001962efca40efcf73654ff012007cda4b277783cb2fa6a9cb9d6
diff --git a/dev-python/redis/redis-6.0.0.ebuild b/dev-python/redis/redis-6.0.0.ebuild
new file mode 100644
index 000000000000..052d5bd9a5f1
--- /dev/null
+++ b/dev-python/redis/redis-6.0.0.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=redis-py-${PV}
+DESCRIPTION="Python client for Redis key-value store"
+HOMEPAGE="
+ https://github.com/redis/redis-py/
+ https://pypi.org/project/redis/
+"
+SRC_URI="
+ https://github.com/redis/redis-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/async-timeout-4.0.3[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # https://github.com/redis/redis-py/issues/3339
+ sed -i 's:(forbid_global_loop=True)::' tests/test_asyncio/*.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Flaky test
+ tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock
+ # require extra redis modules that apparently aren't packaged
+ # on Gentoo
+ tests/{,test_asyncio/}test_bloom.py
+ tests/{,test_asyncio/}test_graph.py
+ tests/{,test_asyncio/}test_json.py
+ tests/{,test_asyncio/}test_timeseries.py
+ # apparently available only in "Redis Stack 7.2 RC3 or later"
+ tests/test_commands.py::TestRedisCommands::test_tfunction_load_delete
+ tests/test_commands.py::TestRedisCommands::test_tfunction_list
+ tests/test_commands.py::TestRedisCommands::test_tfcall
+ # TODO
+ tests/test_commands.py::TestRedisCommands::test_module
+ tests/test_commands.py::TestRedisCommands::test_module_loadex
+ tests/test_commands.py::TestRedisCommands::test_zrank_withscore
+ tests/test_commands.py::TestRedisCommands::test_zrevrank_withscore
+ tests/test_commands.py::TestRedisCommands::test_xinfo_consumers
+ tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrank_withscore
+ tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrevrank_withscore
+ tests/test_asyncio/test_commands.py::TestRedisCommands::test_xinfo_consumers
+ tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_socket_error[pool-hiredis-listen]
+ )
+ local EPYTEST_IGNORE=(
+ # fails over missing certs, we don't do cluster anyway
+ tests/test_asyncio/test_cluster.py
+ # require redis_entraid
+ tests/test_asyncio/test_credentials.py
+ tests/test_credentials.py
+ )
+
+ # TODO: try to run more servers?
+ epytest -m "not redismod and not onlycluster and not replica and not ssl"
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+
+ if has_version ">=dev-db/redis-7"; then
+ local extra_conf="
+ enable-debug-command yes
+ enable-module-command yes
+ "
+ fi
+
+ # Spawn Redis itself for testing purposes
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1 ::1
+ ${extra_conf}
+ EOF
+
+ # Run the tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
index 647a1b51eca3..b05c50dc387b 100644
--- a/dev-python/setuptools/Manifest
+++ b/dev-python/setuptools/Manifest
@@ -5,3 +5,4 @@ DIST setuptools-79.0.0.tar.gz 1367685 BLAKE2B b85eae52bd372c97248ad9e9d8544f151b
DIST setuptools-79.0.1.tar.gz 1367909 BLAKE2B d495a22753400b3b0ef71423e2c9b5adaad1a065d1f9638b5da8161b29c453495701c3efaa3abd2482777e186ba992bd7b57090dfc711d9cdfdaa8254616a8ff SHA512 5b68d7cc775f4318e178f7d7f69c60a01b1abc607411e88c88e3507a08bd85eed241b915d4be5f3ada90df4b68718056c2ba032943c1f53fe68d171c7d728179
DIST setuptools-80.0.0.tar.gz 1354221 BLAKE2B e9cabaccc8563f95fef103177e7c4f7a71e9ca01294d0912a1cf060e195a68fcf971d0966386823a504ef231f8724bf9ed1ba01f7587de581102e5df66ed71f3 SHA512 b0ba9269b9fb029d39e454c4278a82b92203dc638a3b102e0bed322d022db5fbd2bb7f82c707c9d1cfbba9a6718a25e3870f0e7fb5e821889517a127073c64b7
DIST setuptools-80.0.1.tar.gz 1354165 BLAKE2B 4ca7ab6973adbe1b8967a68ee2eaa2adc29624770b38a3ddce9ea7941c1d55cee6ac3c0c10552e6002dacbb43fc0b0ac70324f6a62c666fb8a05f73b87a6b8bb SHA512 8f63688f954370e964f98b34a63b94d4a32c9825c15a0522eaeccaf1280b8de62b567746ad56d7a01024c5a7209ae1cc76b2af356801cea84020a96c75d98587
+DIST setuptools-80.1.0.tar.gz 1354038 BLAKE2B 457f76a67bef8c05d7d670bbdf0cd72a3fc4ea2c76dc1fd6ae3adab70f3ba169a0cb54ba286863734322f5670e4520a9bf50f140b29b6db2fbcd34fce19582da SHA512 c25194fb390b8df8b3148e6deb6e55274ecf698f9a19464fa15a8ce4295478a3f6817ec0c5cb55d706aa89d9373383d13cde647a8681bfcb51f4494d65aac82e
diff --git a/dev-python/setuptools/setuptools-80.1.0.ebuild b/dev-python/setuptools/setuptools-80.1.0.ebuild
new file mode 100644
index 000000000000..b73a465d9e42
--- /dev/null
+++ b/dev-python/setuptools/setuptools-80.1.0.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+# please bump dev-python/ensurepip-setuptools along with this package!
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !<dev-python/setuptools-rust-1.8.0
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-4[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.2.2[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.44.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
+ ' 3.10)
+ !<=dev-libs/gobject-introspection-1.76.1-r0
+ !=dev-libs/gobject-introspection-1.78.1-r0
+ !=dev-libs/gobject-introspection-1.80.1-r1
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/build-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
+ dev-python/pytest-subprocess[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+# setuptools-scm is here because installing plugins apparently breaks stuff at
+# runtime, so let's pull it early. See bug #663324.
+#
+# trove-classifiers are optionally used in validation, if they are
+# installed. Since we really oughtn't block them, let's always enforce
+# the newest version for the time being to avoid errors.
+# https://github.com/pypa/setuptools/issues/4459
+PDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ local PATCHES=(
+ # TODO: remove this when we're 100% PEP517 mode
+ "${FILESDIR}/setuptools-62.4.0-py-compile.patch"
+ # https://github.com/abravalheri/validate-pyproject/pull/221
+ "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # breaks tests
+ sed -i -e '/--import-mode/d' pytest.ini || die
+
+ # remove bundled dependencies
+ rm -r */_vendor || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # network
+ setuptools/tests/test_build_meta.py::test_legacy_editable_install
+ setuptools/tests/test_develop.py::TestNamespaces::test_namespace_package_importable
+ setuptools/tests/test_distutils_adoption.py
+ setuptools/tests/test_editable_install.py
+ setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
+ setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ # expects bundled deps in virtualenv
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
+ # fails if python-xlib is installed
+ setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
+ # TODO, probably some random package
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
+ # broken by unbundling
+ setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
+ # fails on normalized metadata, perhaps different dep version?
+ setuptools/tests/test_build_meta.py::TestBuildMetaBackend::test_build_with_pyproject_config
+ # TODO
+ setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist
+ # relies on -Werror
+ setuptools/_static.py::setuptools._static.Dict
+ setuptools/_static.py::setuptools._static.List
+ # TODO
+ setuptools/dist.py::setuptools.dist.Distribution._find_pattern
+ )
+
+ local EPYTEST_XDIST=1
+ local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
+ epytest -o tmp_path_retention_policy=all \
+ -m "not uses_network" setuptools
+}
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index 3157c96be6f7..80b6f7a4c7d3 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,2 +1,3 @@
DIST stripe-12.0.0.tar.gz 1369861 BLAKE2B abd767466760e8e43d313e7072dcab5d74b09cd395eafb894ef0ee7d21db5503e3f36493e194ab02100f3b9d648342a91efd5c46574af290481c2a260680a974 SHA512 ab9cac4712989227562ade7a7058c2c3342c04f98f02496597047755d9f790f720c29b5f8c26da1a2f4d795793931a8a073789708f395cdfa0057a8e71724a49
DIST stripe-12.0.1.tar.gz 1370176 BLAKE2B 72298f444c491b1166cb2b6e7e16e25737531b65c6320404be5b1d5ece5b6a62dd36f66e8e95ff7aa6972c7046f04b0ccc0b5b2ccfb7cea7da7d8ca8cdd9b18e SHA512 aa5a02f6a1e2f7e6be649399ffe8af93e3a637128a4e8db3dd12abe3faa4c876b33a93128ecefb3e9119931b690ca7a14fcbf83cf77fd2b8d9ac1068d5b8a426
+DIST stripe-12.1.0.tar.gz 1379855 BLAKE2B 9d1fcfbceccb48def5724b12ef4d801b23a3fb08883ad59435a7babe6d0533af69be4d6706a6d2493362347fa65ec99183b8a2749a9c460a6b976491f55eec51 SHA512 31ba62055e0e3b4e66313ebd8505833a1d69b7d133047a76492ea98f496b329a16d5f1d763f7b9ef5239d578d1b0dde293f2be4fa2e8ef33f481033ac213cce3
diff --git a/dev-python/stripe/stripe-12.1.0.ebuild b/dev-python/stripe/stripe-12.1.0.ebuild
new file mode 100644
index 000000000000..f7eddb16e823
--- /dev/null
+++ b/dev-python/stripe/stripe-12.1.0.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Stripe Python bindings"
+HOMEPAGE="
+ https://github.com/stripe/stripe-python/
+ https://pypi.org/project/stripe/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="telemetry"
+
+RDEPEND="
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+# please bump dev-util/stripe-mock dep to the latest version on every bump
+BDEPEND="
+ test? (
+ >=dev-util/stripe-mock-0.194.0
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ net-misc/curl
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+DOCS=( LONG_DESCRIPTION.rst CHANGELOG.md README.md )
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ if ! use telemetry; then
+ sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_http_client.py::TestLiveHTTPClients::test_httpx_request_async_https
+ 'tests/test_integration.py::TestIntegration::test_async_raw_request_timeout[asyncio-aiohttp]'
+ # timing
+ tests/test_integration.py::TestIntegration::test_passes_client_telemetry_when_enabled
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests -p anyio -p pytest_mock
+}
+
+src_test() {
+ local stripe_mock_port=12111
+ local stripe_mock_max_port=12121
+ local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log"
+ # Try to start stripe-mock until we find a free port
+ while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do
+ ebegin "Trying to start stripe-mock on port ${stripe_mock_port}"
+ stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" &
+ local stripe_mock_pid=${!}
+ sleep 2
+ # Did stripe-mock start?
+ curl --fail -u "sk_test_123:" \
+ "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null
+ eend ${?} "Port ${stripe_mock_port} unavailable"
+ if [[ ${?} -eq 0 ]]; then
+ einfo "stripe-mock running on port ${stripe_mock_port}"
+ break
+ fi
+ (( stripe_mock_port++ ))
+ done
+ if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then
+ eerror "Unable to start stripe-mock for tests"
+ die "Please see the logfile located at: ${stripe_mock_logfile}"
+ fi
+
+ local -x STRIPE_MOCK_PORT=${stripe_mock_port}
+ distutils-r1_src_test
+
+ # Tear down stripe-mock
+ kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock"
+}
diff --git a/dev-python/termcolor/Manifest b/dev-python/termcolor/Manifest
index 0ccc4ce4e3be..cee8db525337 100644
--- a/dev-python/termcolor/Manifest
+++ b/dev-python/termcolor/Manifest
@@ -1 +1,2 @@
DIST termcolor-3.0.1.py.tar.gz 12935 BLAKE2B 88f8a98449c414538bb7f275fcbcc37a82e78dcf05e70c2352194e2a5869b9b04df872e51d283fd0c5e2a70173831ba3e4ec2d3885213898e0bd6007b964a5a0 SHA512 a74ff0b15abcf304b2bcf870840dace182e209dddf1e0b8d40a4a8b9dc426512e5b753b6aae4e6b34327afdfaabc875be5cabc7312896f5448ba15b9161a8885
+DIST termcolor-3.1.0.py.tar.gz 14324 BLAKE2B 04c8ad649cd34fcb469ca261c2f4377f64a12f71a9cb05e9ee9426354a01b5d7cc03f1c92c8b66903c4cd9b5540d8f34b8a7ca8d04ba9b2d38bc050ae0e841e4 SHA512 1311d86fee4bc1c5a11c24ce57e8787347a5e72d6de283034ebd307b63248cc1e24b4b4dec2fc242f5c18f6a9a3b8f0ae197b43ff91809b9f558804ecceabe4b
diff --git a/dev-python/termcolor/termcolor-3.1.0.ebuild b/dev-python/termcolor/termcolor-3.1.0.ebuild
new file mode 100644
index 000000000000..152c576d8921
--- /dev/null
+++ b/dev-python/termcolor/termcolor-3.1.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="ANSI Color formatting for output in terminal"
+HOMEPAGE="
+ https://github.com/termcolor/termcolor/
+ https://pypi.org/project/termcolor/
+"
+# rename is for avoiding conflict with dev-cpp/termcolor
+SRC_URI="$(pypi_sdist_url) -> ${P}.py.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # avoid dep on coverage (to ignore warnings from coverage)
+ sed -i -e '/coverage/d' pyproject.toml || die
+}