summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-08-30 07:03:32 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-08-30 07:03:32 +0000
commit869384ee4b3208eb7e4fd1f8d9494e676a29eeb2 (patch)
treee7fe78a0932f1fd1acd6929efb5901615a6ebb05 /dev-python
parent701d3eeea97b74c07bf53fe354ce4c1c603d8cb4 (diff)
downloadbaldeagleos-repo-869384ee4b3208eb7e4fd1f8d9494e676a29eeb2.tar.gz
baldeagleos-repo-869384ee4b3208eb7e4fd1f8d9494e676a29eeb2.tar.xz
baldeagleos-repo-869384ee4b3208eb7e4fd1f8d9494e676a29eeb2.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.40.21.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.40.21.ebuild67
-rw-r--r--dev-python/coverage/Manifest2
-rw-r--r--dev-python/coverage/coverage-7.10.6.ebuild (renamed from dev-python/coverage/coverage-7.10.4.ebuild)2
-rw-r--r--dev-python/httplib2/Manifest1
-rw-r--r--dev-python/httplib2/httplib2-0.30.0.ebuild45
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.138.8.ebuild125
-rw-r--r--dev-python/matplotlib/Manifest1
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.6.ebuild330
-rw-r--r--dev-python/mistune/Manifest1
-rw-r--r--dev-python/mistune/mistune-3.1.4.ebuild22
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-9.0.13.ebuild39
-rw-r--r--dev-python/pyfakefs/Manifest1
-rw-r--r--dev-python/pyfakefs/pyfakefs-5.9.3.ebuild60
-rw-r--r--dev-python/pytest-rerunfailures/Manifest1
-rw-r--r--dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.ebuild28
-rw-r--r--dev-python/pytools/Manifest1
-rw-r--r--dev-python/pytools/pytools-2025.2.3.ebuild33
-rw-r--r--dev-python/regex/Manifest1
-rw-r--r--dev-python/regex/regex-2025.8.29.ebuild32
-rw-r--r--dev-python/setuptools-rust/Manifest6
-rw-r--r--dev-python/setuptools-rust/setuptools-rust-1.12.0.ebuild178
-rw-r--r--dev-python/statsmodels/statsmodels-0.14.5.ebuild2
-rw-r--r--dev-python/tox/Manifest1
-rw-r--r--dev-python/tox/tox-4.29.0.ebuild89
29 files changed, 1123 insertions, 2 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index d16e083aa0db..6abc066fa95c 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -6,4 +6,5 @@ DIST boto3-1.40.17.gh.tar.gz 989571 BLAKE2B c44760e4eaab775fc7edf8ab843c3c83e664
DIST boto3-1.40.18.gh.tar.gz 990535 BLAKE2B b27c45a186cc7982e0fb16e9d7290a8fdab8b770be433956bdb99daa6965819e57cdba358527704f9fafaa9a0719efb8f054342cf23b4e5144c4b1332913c700 SHA512 d79865d9541e8cceccb45a541efb86733f14b024e234ed53fdaf3d926765cbe984ad4776f2045e82b6dbc26e7eb8553b4495a90363e9a4598af7493a3969416a
DIST boto3-1.40.19.gh.tar.gz 991027 BLAKE2B db84de35539df907e49dc75bc4797a2e452e5ac08bdb1d3e7d1f0badcf28591396f1191f4681a63aa6320783a5a7b390817a424b12f3fe523a606736c33c5996 SHA512 b359ee8cdfcebc5b67bbf28ab05821ab446594f718ecd2fc181062ead9fff5f1b769e7815394c15f7a6f8c93cec7aad6c78459e0caec51e8f035ff2621a1cfc2
DIST boto3-1.40.20.gh.tar.gz 992089 BLAKE2B 23d76464510023244136518b10d4fbcddd31e62dd0b98126309737763b7274635e32e666efc105b54d4e4d076de83980f1f7e33b227d7a79e108d6e999037c7f SHA512 2647ba715e301eedd309dcc4719ab20cfeabeb65daca03e8d43d6352fce079e0c8e9ee83bc4c526e60b82e59ca4c5507d6d8c6d2d7bc605bdb495a272f0e98ed
+DIST boto3-1.40.21.gh.tar.gz 992637 BLAKE2B 5c5b716506fef7223c4f49d6d966d43b59d5ae060ac861ecd525ef323821df20b88205d54e07ecb26bf41872a52d82ce2fb28c6b07a20ccbec38fa67d423699d SHA512 1dab07cac68498d3c1d5e60629f868c8f8d4259f0325bb672afdfbffa19988c5bc037cac9c2116f8d7fb4cf72014eada6ee6d7772be12ac8849d6640d7bddecd
DIST boto3-1.40.6.gh.tar.gz 981330 BLAKE2B 929b4326d8d48e46750128e6236776b86fd5e59f0aab113e3ec797f18f138c7f52b30a79724f97de8083fd8e8baa04169e68e219ef5acf592561dabb838b4374 SHA512 65431a0d084298f51e0eee1753119f811261e9e57fdc5fa0491c9ce8d4fc745e705aed22527c8c06e003227c5c0bccc1a659e04bcc96a68fafb61bc53ec70a84
diff --git a/dev-python/boto3/boto3-1.40.21.ebuild b/dev-python/boto3/boto3-1.40.21.ebuild
new file mode 100644
index 000000000000..bd6e26787db4
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.21.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_{11..14} )
+
+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.13.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+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() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 6f059e3d0276..a3b40d3bba9b 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -6,4 +6,5 @@ DIST botocore-1.40.17.gh.tar.gz 15158810 BLAKE2B 26bdbaf798f129897503d16e78ebd60
DIST botocore-1.40.18.gh.tar.gz 15162586 BLAKE2B 82f844c792de0f92b5e3e6854758f2d2a9aeb2987f7a43449c586be40030cfb0214563b4359c173b1e1569e5982cbd258a33c3d598a8d36c09d24e3cbd83944c SHA512 5caacfc44fb1de1ce178f7940146b7fb2f5c172bfb062bb16b0c0f395599b7dcac11a6bc9d5ba94139f244ade5eebf7eda5c8a402af97a5805ffc7da6d1ebf8c
DIST botocore-1.40.19.gh.tar.gz 15105448 BLAKE2B d02ce1e61516591745d5d4f9941d6656c26f2badcdef96c539ec7be275996bd7dfe80b6211aef10be9a9ffab0fea9034ab794f0731cf0555f73a0847ef1d1ae9 SHA512 176c0a5d9b1147e6a47ca7b3251d04c2abefa5840d28d4235ebfebad08728f9e5ad40123c5ba72248ccf1e7a66b1edb70fcef14d3dc03520afc6a03e1a9b5070
DIST botocore-1.40.20.gh.tar.gz 15109331 BLAKE2B 9e1822c3aad609144aeea2bc4e34965f6849f5a71d0d173e3af67b5bb6af541013d5768eef6c6fb627f26cf58f2ee8d0217f7fe530cd99ca43b1b85eb3bf9b05 SHA512 4d7a47f59b84e4b64299a191c60b9cef020b8aeda69512e9dbcc77cdb2a774bf44560d2550b8578bbddc9189df91c7e39cd2c51d3d57e33727469607c03268ae
+DIST botocore-1.40.21.gh.tar.gz 15110941 BLAKE2B 93927041ef8b5b3a6349a766a5f15afb73fece9846c9cbf2ac5c8a45b4513e46549539c8a14b85de36d6ffb5a5999cedd2a97251d16e0a93fc3c7dde8bd73b5f SHA512 bc9eca7f4ff7f0a7e58bd3bb60d95df45a71caf2a98739702b341838a1db31b161e1e0818380a6ab805dcb1e05be2e3e182a456c0e2dd91042b34ed3100aaf22
DIST botocore-1.40.6.gh.tar.gz 15096678 BLAKE2B fb76ace4058c814bb8ef17bb216f5f7355eec401e4108d8a6569e07f97b14becb9e99652364dacb7e46e62f3ffaea2e5e1cd241ae832fe0a359ed58bbcfe3500 SHA512 faa311f29da484083f49a9ae7beda844b8878750c7474916ff7200b4a5fdc01e26295923c7a0f0bc4e4b1c22e5381f69546b8685fdeb2112f1c61810d3c9b58d
diff --git a/dev-python/botocore/botocore-1.40.21.ebuild b/dev-python/botocore/botocore-1.40.21.ebuild
new file mode 100644
index 000000000000..a931fcaefec4
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.21.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_{11..14} )
+
+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_PLUGINS=()
+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
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 76953018cfd0..75281ee36f68 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1,4 +1,4 @@
-DIST coverage-7.10.4.tar.gz 823798 BLAKE2B 65ba8f5931ac5e577da9636a3df82e8b5a4b0447c051e671d18446c56cd642f0c0904984995ebf2896e91d8f1c12b3b1c5f2895269979bb4cba430008a2ae4b1 SHA512 59b7ac1b21be9b5fa5af8710568c24dfedc53d39d6ded5e79af2472ad64c2546e76f2eaaf0c0e4e387d00c52c3932e1d81970c4e14432cf6b19eb1be8fbeb21d
DIST coverage-7.10.5.tar.gz 821662 BLAKE2B 36fa0ecff03d140b36efdc93ddfdd8ae9d2cd3aa7a414a73afcda6e1f23c3f02ce5b36cf93250d83b2733c00a438984d7b2428454998238942ca44e0af1ca4a8 SHA512 885454d5b38f523e968df953e7008da23c110c7a8af42aab2fd1c8882784acd587f7f97a0f28bc58b14792ba5177e670683206f413ad4552c632b689b90aac2c
+DIST coverage-7.10.6.tar.gz 823736 BLAKE2B fbe443d98426213c275b3c32c6f0457f0e7994477da9a6fe95140c6876dfb42499e95d1239dc8e7ed796b17b81b9296e7a72962bf2b322fe97a09c6b8d4c6e7d SHA512 9b53246be27e009ba8639da2fdb9c975d743da6782f1d20a9f0da3ab07f4ebf2747124f3bb75c2694685c5b7fcdd09377a4611c85819123b9cc4defcf05c1cc3
DIST coverage-7.9.1.tar.gz 813650 BLAKE2B 42ea77277135a98d812c690aad744db427d6832ff01af68197015e4ff932c7ca88d2f804c0bceaca28b86087cb24245e5f57600444d064f1f008fc8b0a2353b5 SHA512 0bccbf802cdbd7d4df7c88cd7573466b024f7fb4cbf41fc5166a3e2dd70cd107caad01529971eb061cd571faadb342de057d0929f02b3b3e513666c052ecf591
DIST coverage-7.9.2.tar.gz 813556 BLAKE2B 6ed57a0011f7d05634c2a5c1e023f9ccfbb40d9a4bdd9011f2eaf03b658468a18df2044417f15108ec6429b6b62c63cd6a73e31904c0266137a4c6e65557207f SHA512 33ace642aada4b0ff5a72c3df628fe60fcc8b5f586f4851bfecc2ffa237cf019cbd78413c133aa8454e168b8895bfbc1363b722cf072eaf90979935b1982662c
diff --git a/dev-python/coverage/coverage-7.10.4.ebuild b/dev-python/coverage/coverage-7.10.6.ebuild
index e77b298e5776..8a88817c31e2 100644
--- a/dev-python/coverage/coverage-7.10.4.ebuild
+++ b/dev-python/coverage/coverage-7.10.6.ebuild
@@ -22,8 +22,10 @@ SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
IUSE="+native-extensions"
+# pytest-rerunfailures-16 causes hard crashes
BDEPEND="
test? (
+ <dev-python/pytest-rerunfailures-16[${PYTHON_USEDEP}]
>=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/httplib2/Manifest b/dev-python/httplib2/Manifest
index f6cbc21cab80..683426d5f9c2 100644
--- a/dev-python/httplib2/Manifest
+++ b/dev-python/httplib2/Manifest
@@ -1 +1,2 @@
DIST httplib2-0.22.0.gh.tar.gz 373972 BLAKE2B 6adfbc61d4f898666512da5d02cf082fcaf76bf1816de955510f5c4721a36c38d99fef963d5150b62cca091543ed65bb1ef5f33ce99123e1cd2abe467d4970e3 SHA512 77210f85ccaa2d2cf4a6c89f5146ca5eb9a6f26f00e862f6d0716ec73baffdf94714ae1d5eaced4349920b91276a7835e2f028c6d9156e84c241514b198791e5
+DIST httplib2-0.30.0.gh.tar.gz 276043 BLAKE2B a7381b38fa0969bfc19046cb2d5ca4c751135ad2a1d059b9193f66545c9882f3bafde6ae2a870295b7f5420846007892e3c5a6c284eb6b235c600a52dd240243 SHA512 5e7d6d6e4e7f3695b02f2a29314c2668cd11b2ee693b38aa82a20464cc47901640d8206243def668a350258118db28696f1e95f83620fdeaf9b49e249f875283
diff --git a/dev-python/httplib2/httplib2-0.30.0.ebuild b/dev-python/httplib2/httplib2-0.30.0.ebuild
new file mode 100644
index 000000000000..c81e87aed42a
--- /dev/null
+++ b/dev-python/httplib2/httplib2-0.30.0.ebuild
@@ -0,0 +1,45 @@
+# 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
+
+DESCRIPTION="A comprehensive HTTP client library"
+HOMEPAGE="
+ https://pypi.org/project/httplib2/
+ https://github.com/httplib2/httplib2/
+"
+SRC_URI="
+ https://github.com/httplib2/httplib2/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-libs/openssl
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+# note: tests are racy with xdist
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/--cov/d' setup.cfg || die
+ # remove bundled certs, we always want system certs via certifi
+ rm httplib2/cacerts.txt || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 9ed6f851d4a9..3513c288ed84 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -5,3 +5,4 @@ DIST hypothesis-6.137.3.gh.tar.gz 9612265 BLAKE2B bc0c98872b08013194a11cad69e076
DIST hypothesis-6.138.3.gh.tar.gz 9614871 BLAKE2B 3eb0a034abb704524240d4f8a01e7ceb58a38517d6bf07789d343372bc079116c7b444ba141e8139afac5fa6cdfbdf907963b6b5a42fe2cb1943b057a5e8a9f9 SHA512 4be1e6c5837322732b30343bc27a02336db25b9796c24966d4bd3d9978d79f588dc95e5529c2f14139d3997e471a4d8650d4717b1f2c8099d00ebe080421d382
DIST hypothesis-6.138.6.gh.tar.gz 9618337 BLAKE2B 440385d0928f8a2782bcfc45b309e877e190aa224e30cab87916409539942902e364a534950abdd55bcf3d07bb1fa88b78fbb2cdfc9ab827168400e05b28254f SHA512 b420ef1c2e6dbc3d32bc4f79190219e74caa80c60e7f51685e41c8be95f2e7dcbc8bf9b9d868d450bc4825bdb1bbac5704796c67349a7900705ac85b27a9b925
DIST hypothesis-6.138.7.gh.tar.gz 9618391 BLAKE2B a8f9118e1c9cb5116227c97e7555505f4a8ed6dd028b9d75bb4fe62e323caf9523454e3868e26827885b5bedc6303dfd40083204dfa6ebd1774315d2d0d19e57 SHA512 bc4cee1bcf4ca9cc1e6a632ebfaa3f9e7eac2e2d1f4e034b0003eea491e28a2a99f2d03b2671f5b4f3dbc278db4d3f8d1f4ad4aa0cc4824951acb8c57a463edb
+DIST hypothesis-6.138.8.gh.tar.gz 9618512 BLAKE2B 7c6643c9460ce8fe7c36cf9f9504510dd47ddb03b4b271660f068b4e80b2d1229990d691432a140a1a4382cfee87156b694f1c600ce6f0dcad5becbf0eae2b46 SHA512 f9d5affe3c26404355f36e065ed6d0ab190c095a9d742ec5ccbec2bfb1813c780d375e50f01bdc6092390476481070292a2ab4d31fc575777932153a10228984
diff --git a/dev-python/hypothesis/hypothesis-6.138.8.ebuild b/dev-python/hypothesis/hypothesis-6.138.8.ebuild
new file mode 100644
index 000000000000..7a7443937da6
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.138.8.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.13t)
+ EPYTEST_DESELECT+=(
+ # TODO: missing warning
+ 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns'
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]'
+ hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds
+ hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence
+ hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression
+ hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types
+ hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic
+ hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense
+ hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns
+ hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope
+ hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index fca5dcb8e8c2..1757b49ecda2 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -2,3 +2,4 @@ DIST freetype-2.6.1.tar.gz 2302080 BLAKE2B 6a5fb98e5fa6cf4b7d7533ad44e364227d8c2
DIST matplotlib-3.10.1.tar.gz 36743335 BLAKE2B e689dcaa314a6af8ce2934aac95208adf0f87822e4f84d6fb15ac1a17d162deea106636abf52b5332636ad8bb944301f16100b15d409b04ef2a8ecd287ea827c SHA512 1b52a421e61ca0a295d7b1d2bbe9bdcb1dd58f6c750b21d95e263547b20a17d58aadcc86f97ae0fdff9151d3c2f75a6c5419a35b258b698d777f42de7b598c4e
DIST matplotlib-3.10.3.tar.gz 34799811 BLAKE2B f855a65ebf6d33373b8ed62fca0824291aa10319cfa652e0ed07db4fe2511d6bc0232e0ef44858717142ce6f13ef604131c312d3ffa00b414321d34dc45d2727 SHA512 c3027fa116f45a4a7d7ac8e7ce87f509a6604b283c39b74379e8d84a05df61283ddf4e79036c9b83b2dff13291b59945d26aeb7420873d3b275097817a12be72
DIST matplotlib-3.10.5.tar.gz 34804044 BLAKE2B ffda7bfb4c4a5bc6aacabb1f1595525fcdac9070f6e1c039abe6ba480cc34ea1663fc2c35a4583176a4d4695aacc238d3080eb75d965ee4ddc27bd96fda1d3e8 SHA512 761388d0aad410b80179b3bb97d63b6a99d71338a0eb8801702f4a38f4a1a0fdecd8fbb6401e664d2f30a0256f412167c7c102fc494664c1837495572ebf3caa
+DIST matplotlib-3.10.6.tar.gz 34804264 BLAKE2B d6bbea7b225052026dcd326ab0434600191746b663fe922a306c21823b59a7eb6cd23ef45992e7eb4630b1e92fc2e58f351f258f53a7d98b8b1cb9c3dbf038af SHA512 c12686d52229bbbd3c16fa5b1d633a7a6eec8e9bae58221554dc3d9595ceae05f985ebb3207425ad2e134e4dae671f590225b1d692b66c2099dd78da13cc6332
diff --git a/dev-python/matplotlib/matplotlib-3.10.6.ebuild b/dev-python/matplotlib/matplotlib-3.10.6.ebuild
new file mode 100644
index 000000000000..6ed73b73a3fc
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-3.10.6.ebuild
@@ -0,0 +1,330 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 pypi virtualx
+
+FT_PV=2.6.1
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="
+ https://matplotlib.org/
+ https://github.com/matplotlib/matplotlib/
+ https://pypi.org/project/matplotlib/
+"
+SRC_URI+="
+ test? (
+ https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
+ )
+"
+
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
+
+DEPEND="
+ media-libs/freetype:2
+ >=media-libs/qhull-2013:=
+ >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
+"
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ media-fonts/stix-fonts
+ media-libs/libpng:0
+ virtual/imagemagick-tools[jpeg,tiff]
+ cairo? (
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ excel? (
+ dev-python/xlwt[${PYTHON_USEDEP}]
+ )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ latex? (
+ virtual/latex-base
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/poppler[utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ dev-texlive/texlive-xetex
+ )
+ qt6? (
+ $(python_gen_cond_dep '
+ || (
+ dev-python/pyqt6[gui,widgets,${PYTHON_USEDEP}]
+ dev-python/pyside:6[gui,widgets,${PYTHON_USEDEP}]
+ )
+ ' 'python3*')
+ )
+ webagg? (
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ )
+ wxwidgets? (
+ $(python_gen_cond_dep '
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ ' python3_{10..12})
+ )
+"
+
+BDEPEND="
+ ${RDEPEND}
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ test? (
+ $(python_gen_impl_dep 'tk')
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ !hppa? ( !s390? (
+ || (
+ media-video/ffmpeg[openh264]
+ media-video/ffmpeg[x264]
+ )
+ ) )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ # do not unpack freetype
+ unpack "${P//_/}.tar.gz"
+}
+
+python_prepare_all() {
+ # Affects installed _version.py, bug #854600
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+ # increase lock timeout to 30 s
+ sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
+ # upstream uses 'x86_64' condition to require exact matches no their CI
+ # which doesn't match results from other x86_64 systems
+ find -name 'test_*.py' -exec \
+ sed -i -e "s:platform.machine() == 'x86_64':False:" {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ unset DISPLAY # bug #278524
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ DISTUTILS_ARGS=(
+ -Dsystem-freetype=true
+ -Dsystem-qhull=true
+ -Dmacosx=false
+ )
+}
+
+src_test() {
+ mkdir subprojects/packagecache || die
+ cp "${DISTDIR}/freetype-${FT_PV}.tar.gz" subprojects/packagecache/ || die
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by -Wdefault
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
+ tests/test_testing.py::test_warn_to_fail
+ tests/test_legend.py::test_legend_nolabels_warning
+ # TODO?
+ tests/test_backend_qt.py::test_fig_sigint_override
+ tests/test_backend_qt.py::test_ipython
+ tests/test_backend_nbagg.py::test_ipynb
+ # leak tests are fragile
+ tests/test_backends_interactive.py::test_figure_leak_20490
+ # major "images not close", new texlive perhaps
+ tests/test_contour.py::test_all_algorithms
+ 'tests/test_usetex.py::test_usetex[png]'
+ 'tests/test_usetex.py::test_multiline_eqnarray[png]'
+ 'tests/test_usetex.py::test_rotation[png]'
+ # "no warnings"
+ tests/test_backend_pdf.py::test_invalid_metadata
+ tests/test_figure.py::test_too_many_figures
+ # Requires qt5
+ tests/test_backends_interactive.py::test_qt5backends_uses_qt5
+ 'tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
+ 'tests/test_backends_interactive.py::test_interactive_backend[toolmanager-MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_blitting_events[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_blitting_events[MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
+ 'tests/test_backends_interactive.py::test_interactive_thread_safety[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_interactive_timers[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_interactive_timers[MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
+ # Tests mixing qt5 and qt6, requires installing all Qt4Py impl.
+ tests/test_backends_interactive.py::test_cross_Qt_imports
+ )
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_widgets.py::test_check_buttons
+ tests/test_widgets.py::test_check_buttons_lines
+ tests/test_widgets.py::test_check_radio_buttons_image
+ tests/test_widgets.py::test_radio_buttons
+ )
+ ;&
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO: warning isn't passed through
+ tests/test_image.py::test_large_image
+ # TODO: regression in 7.3.18+
+ tests/test_axes.py::test_axes_clear_reference_cycle
+ # TODO
+ tests/test_pickle.py::test_complete
+ tests/test_pickle.py::test_no_pyplot
+ tests/test_pickle.py::test_pickle_load_from_subprocess
+ tests/test_pickle.py::test_simple
+ tests/test_texmanager.py::test_openin_any_paranoid
+ )
+ ;;
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # https://github.com/matplotlib/matplotlib/issues/23384
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ tests/test_constrainedlayout.py::test_compressed1
+ )
+ ;;
+ esac
+
+ case ${ABI} in
+ hppa)
+ EPYTEST_DESELECT+=(
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_quiver.py::test_barbs_pivot[png]'
+ 'tests/test_quiver.py::test_barbs_flip[png]'
+ 'tests/test_text.py::test_parse_math'
+ 'tests/test_text.py::test_parse_math_rcparams'
+ )
+ ;;
+ arm)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_ps.py::test_savefig_to_stringio
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ sparc64)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_pgf.py::test_pdf_pages_metadata_check
+ tests/test_backend_pgf.py::test_minus_signs_with_tex
+ )
+ ;;
+ alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
+ EPYTEST_DESELECT+=(
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ # override BUILD_DIR used by meson, so that mpl is actually rebuilt
+ # against bundled freetype
+ local orig_build_dir=${BUILD_DIR}
+ local BUILD_DIR=${BUILD_DIR}-test
+
+ # we need to rebuild mpl against bundled freetype, otherwise
+ # over 1000 tests will fail because of mismatched font rendering
+ local DISTUTILS_ARGS=(
+ "${DISTUTILS_ARGS[@]}"
+ -Dsystem-freetype=false
+ )
+ distutils_pep517_install "${BUILD_DIR}"/install
+ cp -r {"${orig_build_dir}","${BUILD_DIR}"}/install"${EPREFIX}/usr/bin" || die
+ cp -r {"${orig_build_dir}","${BUILD_DIR}"}/install"${EPREFIX}/usr/pyvenv.cfg" || die
+ local -x PATH=${BUILD_DIR}/install${EPREFIX}/usr/bin:${PATH}
+
+ pushd lib >/dev/null || die
+ local path
+ local sitedir=${BUILD_DIR}/install$(python_get_sitedir)
+ # sigh, upstream doesn't install these
+ while IFS= read -d '' path; do
+ cp -r "${path}" "${sitedir}/${path}" || die
+ done < <(
+ find \( \
+ -name baseline_images -o \
+ -name '*.ipynb' -o \
+ -name '*.pfb' -o \
+ -name '*.ttf' -o \
+ -name tinypages \
+ \) -print0
+ )
+ popd >/dev/null || die
+
+ # pretend we're on CI to increase timeouts
+ local -x CI=1
+ nonfatal epytest --pyargs matplotlib -m "not network" \
+ -o tmp_path_retention_policy=all || die
+}
diff --git a/dev-python/mistune/Manifest b/dev-python/mistune/Manifest
index baf3ba04eae0..60c5ea135073 100644
--- a/dev-python/mistune/Manifest
+++ b/dev-python/mistune/Manifest
@@ -1 +1,2 @@
DIST mistune-3.1.3.tar.gz 94347 BLAKE2B 3464e6b5e4e48faacc303cbf50b15fca235eb9af4fd862bfa7eb4f97a97b4fcefdf4d221151c1e2e546693b3c539d6c71844fe6a2234a2fd9303fb5a9f29f1fd SHA512 6728543398f0e86612adbf2828b4706da8901738cb8f14df68797bf9cb20e8b9fc15b63e9cd88ee6dd8199fc47676bc4586c54063412256548e429bc4c27488b
+DIST mistune-3.1.4.tar.gz 94588 BLAKE2B f08207242c8b91afcfe64cc75d4c3c079f7ffc68a7336772deb410cfdc92be3be7692ab29db18a3ef3dca2ef42f07a00a399127b683022e3be34cb835d816da2 SHA512 e41b096ad7ef08a4e82ceffae74370a8eaaf634b40440e551a9b96ba76f3c274994eed56315abcc5f8dc3dedbd02e6d8eb29bf750a5b4793080ee9bea05f8d11
diff --git a/dev-python/mistune/mistune-3.1.4.ebuild b/dev-python/mistune/mistune-3.1.4.ebuild
new file mode 100644
index 000000000000..74081feebad8
--- /dev/null
+++ b/dev-python/mistune/mistune-3.1.4.ebuild
@@ -0,0 +1,22 @@
+# 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="The fastest markdown parser in pure Python"
+HOMEPAGE="
+ https://github.com/lepture/mistune/
+ https://pypi.org/project/mistune/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 55fd29f498be..e2dc8778a2d2 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,3 +1,4 @@
DIST python-phonenumbers-9.0.11.gh.tar.gz 4918150 BLAKE2B 2c954fab20dbf0ef1a7e09b4c38d3bb52c8196f9a90ab543f50a18d517f566b9ece49e26ea212170ec446752b72fe6fdc1ecacf1a9fbf5bb8ca0454421f38a34 SHA512 803881bfa0b0b97e5fb0db65c8c907420da2c8804acb9892b3ca712cb19359f05757c62a4d8c10f9c8f0ee36ef0a0d2bcec083aab1da54cdbaa5311273d01459
DIST python-phonenumbers-9.0.12.gh.tar.gz 4915140 BLAKE2B 4929e25d0525c12321e71c4b7c3262fa22ea3484c4a5522f3995af737dc3c81aedaf44ad9954ac41e7c815d752108c77ae078294b753d70a67358901dff6b87c SHA512 67ab051e45156f635ad37a075abdeb2b04094de4faa964902e4b15bd78736264f27f3b880aceaa54a3b47e6f78129b4c196824446a82dfe2c6ec11ad7dddc074
+DIST python-phonenumbers-9.0.13.gh.tar.gz 4915436 BLAKE2B f49fd90cbdd761d3aa0f91d78a47af2d83975adc85d54e569788999237bf1edd7c0daefedf5f460b32e6d0469222990a362f2192839dbd0a54ad9d33e76a89f5 SHA512 fe37883632624cf4c80cabdfc6f7e9fd14c1ae486b15a697865d09e8b5dd1d4392ea173d37d3070e8a91d0290798b2dd37428e03f34cde232c69d04cccf9a844
DIST python-phonenumbers-r9.0.10.gh.tar.gz 4915184 BLAKE2B cfa395dde633bfda4d7eea1e0946a9007bcc93994fa32ab6d29af24bc1e1191d4cbd4a71ea4ed600832879f4d7795c95f3e337f79316f43ad28e7376ab4cf671 SHA512 fad4fa5820a8a34110a3686c4ce7bbe004a81333c70e056ea3ad613b7e992fb51e1407559ca9cbe0075a5c16c4baba75dd067ed17f712a75bde3ef04f42544b1
diff --git a/dev-python/phonenumbers/phonenumbers-9.0.13.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.13.ebuild
new file mode 100644
index 000000000000..a4046879a533
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-9.0.13.ebuild
@@ -0,0 +1,39 @@
+# 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_{11..14} )
+
+inherit distutils-r1
+
+MY_P=python-${P}
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+SRC_URI="
+ https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/python
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( ../README.md )
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/pyfakefs/Manifest b/dev-python/pyfakefs/Manifest
index 1575e49294c4..3916112d2c29 100644
--- a/dev-python/pyfakefs/Manifest
+++ b/dev-python/pyfakefs/Manifest
@@ -1,2 +1,3 @@
DIST pyfakefs-5.9.1.gh.tar.gz 255569 BLAKE2B 510e04d23eba15fe3b74c973ef8856851a2cc5b9411273456f631b086af6fa72a4444c1cf4fcd0bb1f59ccc3e551144883181897a8d74736f7e1ed9f16efa303 SHA512 4d869897b98c73e73397032513304116ec1f3740f35831df053e9e80a6d50a5b063034c44269b6c8488119845246f7a4201af6d06ea7611ed988a11564fa0c5a
DIST pyfakefs-5.9.2.gh.tar.gz 256364 BLAKE2B 2efa560d8492075570f3e06ea254fbfa550d0edc0bde52b4c94ffeb1a0cbbe246d89d71bb3925129164140793a2ec629b41ba36675c5673781aafa6104b24370 SHA512 323ba306cf7252645eeafb33dc8c7c5c7296dc7418acac7c9c62b8673d658ad737bd1541f5b18e988d718a6442c193d30608720ece6414a1fbb6dbf464f5ddd5
+DIST pyfakefs-5.9.3.gh.tar.gz 256673 BLAKE2B 638720a82f06a0c54298959e4f9d32195fc9ffb2bae00f21fb6c4cc93862e6cb6c5680d7c4e5340ffd6259505f1ce291fdcdbcced077ab89a2b0ba58c365e732 SHA512 5a79fc56836bd8c3416f653c3222f7d93203cff112f08b9ae357b271c695a720f65fc90a8a3bfff2b8b6168ddd8dfba0219ba8582e0f54ec4d9ce393ab55dab9
diff --git a/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild b/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild
new file mode 100644
index 000000000000..d9374aa09c61
--- /dev/null
+++ b/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild
@@ -0,0 +1,60 @@
+# 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
+
+DESCRIPTION="A fake file system that mocks the Python file system modules"
+HOMEPAGE="
+ https://github.com/pytest-dev/pyfakefs/
+ https://pypi.org/project/pyfakefs/
+"
+SRC_URI="
+ https://github.com/pytest-dev/pyfakefs/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires *.dist-info/RECORD file that we're stripping
+ pyfakefs/tests/fake_filesystem_test.py::RealFileSystemAccessTest::test_add_package_metadata
+ # wants dev-python/openpyxl
+ pyfakefs/tests/patched_packages_test.py::TestPatchedPackages::test_read_excel
+ )
+ local EPYTEST_IGNORE=(
+ # test for regression with opentimelineio package
+ pyfakefs/pytest_tests/segfault_test.py
+ # test for regression with undefined package
+ pyfakefs/pytest_tests/pytest_fixture_test.py
+ )
+
+ if ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ pyfakefs/pytest_tests/pytest_reload_pandas_test.py
+ )
+ fi
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO: this test messes up everything
+ pyfakefs/tests/fake_filesystem_unittest_test.py::TestDeprecationSuppression::test_no_deprecation_warning
+ # TODO
+ pyfakefs/tests/fake_pathlib_test.py::SkipPathlibTest::test_exists
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/pytest-rerunfailures/Manifest b/dev-python/pytest-rerunfailures/Manifest
index 201d5fa00fc5..cad53a470734 100644
--- a/dev-python/pytest-rerunfailures/Manifest
+++ b/dev-python/pytest-rerunfailures/Manifest
@@ -1 +1,2 @@
DIST pytest_rerunfailures-15.1.tar.gz 26981 BLAKE2B 78413183180edccbd9be6ca85ef05be7a1cce96470cf086a056b21231f84a9c7af4a3923fcb18f2081f14e53f6aea7a97807f7c311323cd5b99ff740c9aefedd SHA512 6344d625829038978f9cf224d59d3de07b1afcc6dcea578b22cdff8faefdbcacfaa54d6fc142351f9f5af6bacf6c2bda0e3f62013439b0276e1d48d6c30e8fe0
+DIST pytest_rerunfailures-16.0.tar.gz 28338 BLAKE2B ea90b0fb1fc3aee61f58b475b6ad53f646fcd5fe27233073104124f71e2d44d32381cb130563c3766c7b446328b12c5602b7130ce3b513436bd856d982074126 SHA512 30eb96a1cd442544a99653c4f0291909f330c5beb6a8b29e115bb63db68a35dda1587d093f641b253535503e41bb6282808e8e9583741861dbd27b36d0f1339a
diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.ebuild
new file mode 100644
index 000000000000..6741207a6414
--- /dev/null
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.ebuild
@@ -0,0 +1,28 @@
+# 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="pytest plugin to re-run tests to eliminate flaky failures"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-rerunfailures/
+ https://pypi.org/project/pytest-rerunfailures/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/packaging-17.1[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index 50fdad663f62..51677cdb7e34 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -1 +1,2 @@
DIST pytools-2025.2.2.tar.gz 84641 BLAKE2B 942b949ee3d6c0ad27300cd35bb6b8ae44e352943fb7213769e73295cf337164a028a6f58e5f1b4fd427a68b5e877fcb2ce8086cc44f73d0987ffa29c24518d2 SHA512 eaef09ffedec7d73fe9d397502c0f28ad1383f07d68aa8b317c641cc274148a19ea17e1bc07387d4990fce5783031d4040059f0131aaf8660420096a96e27954
+DIST pytools-2025.2.3.tar.gz 85860 BLAKE2B d76daad77e500e1a531f0720ea3b7a7b2b1fb46173df85a852c4eaedf0bc192377aaa308be3d38c32da842d58543b876624b9f84238e836570dc0d048f80cd43 SHA512 4aac187d61c82e7bc871b5fe64e0a3438afb42838ac2f72072caac51f409fb7776230cde672ff9543be5b388407975cdd1a6bce13df7e8e0b1eb3e11371e7b11
diff --git a/dev-python/pytools/pytools-2025.2.3.ebuild b/dev-python/pytools/pytools-2025.2.3.ebuild
new file mode 100644
index 000000000000..4d847634cb6a
--- /dev/null
+++ b/dev-python/pytools/pytools-2025.2.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_{11..14} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+# NB: numpy are an "extra" (optional) deps
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/siphash24-1.6[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index 5e92114e9f85..e23210381b58 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,3 +1,4 @@
DIST regex-2024.11.6.tar.gz 399494 BLAKE2B 5b805e71d505516f1b1454d5198591c902eadf56887529bff988e301af639e891b25196467d4b7e2a55144e223ae731e878e2237c1b1ac7852f282aad1d34e13 SHA512 e04c611c22c07cf649ca01517c2508ea5ffbc0c729c43e6f9e0274a7ede68ace88a452987b50345928317869f710c9c75e0c5a0280e2410fc760bcbac7482dd6
DIST regex-2025.7.31.tar.gz 407354 BLAKE2B 76ff46c4d745c6710faeb2745b7e97260c07093d697dfc26c25118d988d3cb34efdb456417296de8bc3372c2c6e55dc7bb0407a2043ca418ebd1d8cb19a80a18 SHA512 d30a07dee87612efd743eee687c158a886d19de34bcf98183ccbf0c72f911c6f6534875312c46c77506e7897894bf96b6fb42fa7309825e12ea4855045896c3a
DIST regex-2025.7.34.tar.gz 400714 BLAKE2B 4eb0c5600b9ef759f1e7511d01d533a3fda7b6010b6c974c0071e7cde2f5bbd9a8c62289b7abb4f2e0d9c251a9421876f6bf0a021892073babffb181d099ae55 SHA512 d30f69559804db12d85ee4c81d7055f3aab70f9a7c86b642932b7a12295ab2a4ca8e2a9bbf3a208b0546b7f7c76c64216cbd0b3ddfb7dfbd3fff7f9d4fa1d9ec
+DIST regex-2025.8.29.tar.gz 400817 BLAKE2B 826f2deb3e94069124e35848f2ef33c4eab60464d548c5cba0e3dc16b09185dad0cfc427dde89d38f04f924bb16fbb539d79ebf34d83bcd7c62f344f9ace208d SHA512 9c17e000145523bdbeeffb9cfe177eab89fd55b2bcd7f74d3c122bfed7c7ce42b92b8f6b407157c3f5c84c32b285d24377d27c228ba52ef804ed432d0cd92623
diff --git a/dev-python/regex/regex-2025.8.29.ebuild b/dev-python/regex/regex-2025.8.29.ebuild
new file mode 100644
index 000000000000..f59db819ba31
--- /dev/null
+++ b/dev-python/regex/regex-2025.8.29.ebuild
@@ -0,0 +1,32 @@
+# 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
+# pypy isn't supported upstream because of its UTF8 representation for strings
+# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="
+ https://github.com/mrabarnett/mrab-regex/
+ https://pypi.org/project/regex/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc"
+
+distutils_enable_tests unittest
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/Features.html )
+ local DOCS=( README.rst docs/*.rst )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/setuptools-rust/Manifest b/dev-python/setuptools-rust/Manifest
index 0345b789e70a..0c87ece07f91 100644
--- a/dev-python/setuptools-rust/Manifest
+++ b/dev-python/setuptools-rust/Manifest
@@ -43,10 +43,15 @@ DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19b
DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
DIST proc-macro2-1.0.82.crate 48452 BLAKE2B c01f60b788c1395d1041d7eb55fe9519ae4e78f86e3dfa732458747767ff801fcdd5a19a81ee9a8d8cd2457eb0a2bb7cec118299a5a9a64d65b5cf06b9d81165 SHA512 3726463868483243adce01c319c1deb1ab153188f1adcb083b53bff838fa80371091bb8e20ce88709ea850ab3ef74dcd99ca5aa95fa375b330841fd4230c842d
DIST pyo3-0.24.1.crate 1113050 BLAKE2B 5a203f8c845b08b40ed64561d385d2e4134a38916723ef6b0b4be8f44fa9de594c4eca138c318ad83a156f66273b20b55acb19897dca3eba5d479e6333be815e SHA512 6c2a8f9d554a3cf151a796ee20610b596ebdbf9e642d6b2ddc35d0142841d7be51e739ddef4332cfa8c4625c972d9705eae5f694b4d8907882bec4add7c6c6ed
+DIST pyo3-0.25.1.crate 1121993 BLAKE2B 79a982131fc4c4f9292e97bc8d938d236ee9cefb99bb90646a84703660ad506aee8ae1f1e626d985aa62c695722510f2697544581fa5c3a01f193be2bc2779fe SHA512 9c842c89d274dba0c8a3085a8524736245d65f07e5c05bc13fc89167cfdeb1a4ff2b4a9da9467eee918e45d01777473f39bda11efe0052859969d4fdeac1adc6
DIST pyo3-build-config-0.24.1.crate 34020 BLAKE2B 34ed5a2385de138fde0308439c5fcd8a92a48b215b41799838d5b3106b0845f70023ccd97d60c39cea4729cd8bd850e1ef4e372ac332a06037dc5dd574b09834 SHA512 6008f6737685882b2fd958fcc5f171c0ddc10520631904ca759f857117241dc0a648d4cf30d9a84483662bfbc435eccc3deed9981f98b88016b12a5944ae3ff7
+DIST pyo3-build-config-0.25.1.crate 34126 BLAKE2B ca905f1f74e26f38ab63a4f5754055c9dff01f9396f81ece09b7ce067181b657e6746db3b373f7177805f6564d0df0db064b5fcab8160d5edc357e64dd32d0fc SHA512 d6fe4a46111188203a839c8c73b9835f98cd6bc5982868cbcc9f502c5a09b35c3e61117b50ef8372470051b5bc4959731907748ffca89f42f300a3081b7b0467
DIST pyo3-ffi-0.24.1.crate 76435 BLAKE2B 1fc7b122f0c1064382bf304491617abfd5a8f275ab7511cf31ed892576728b7b55814ea454761bb0fb4d01e263daf8f2c302504fc624970fc9940a5a2cb143fe SHA512 b06265f3852f419a2a788fef049cf9032a5dd4fa6ca818d8d5ceae24b3642164497c61e67492a6576f1c8b22d66e2d887b295c48317fee94f8db8e14de25a71e
+DIST pyo3-ffi-0.25.1.crate 78058 BLAKE2B 351fe00c99008a34a003e50cd4f6d25e6dae5a446928358cd5146ac9924254614724a015ae77d8aade7bcb497cf5e5b5018021ff5d89a8efa6412f5ccb48744e SHA512 35ab63888f49df13fab8b96b87f6c705186173923fd5898abe8730675156426f020ee517019926ba5e06cdb4fc5f91a75f648ce9eba892e9eaf3ee17864a8ec7
DIST pyo3-macros-0.24.1.crate 8866 BLAKE2B 48436f5f1a6a6e93d916873be5e18cfdc892d59479e4963f267d2a1805bd134eed6890d53915fdafa8ff93c7458d136b57fbf783bee18f34a6087f7819c9dd92 SHA512 7b9fc55232284d7b138e3e9c9a9c864a1b0d9b5317c3263a057df5dc1976087e934558d6c046d784735e063f1009df35b91776c850ad709800ca8b2be8e993d8
+DIST pyo3-macros-0.25.1.crate 8886 BLAKE2B aad9c975c90ff93429be24287d76edd945578b546a927f54d82b6d4bf184f1f8d426ac112307205346e85999a1e89b097f68310de647f27474790bff01c3517a SHA512 08387f3d1ddb0cc253eed376e6e8ebe5722b31664ec742f16c0454b52f1fbcadbe7720ae9e2d3870fe0ca2690916cf6e3e032f5a3e65d767322c068432f6d470
DIST pyo3-macros-backend-0.24.1.crate 72588 BLAKE2B 35f1810f5d1da5b5f0b5533d0c9e832ea7c7a7a5be20711d9694b84aad62d13b8a9a1c498c61a9a1f2679fda7d25bf508536d38cded43520ed97524681dcfabe SHA512 8378154aa74c75a4d4533de673515298d8ada8377feb687694688bcf21fc5c2bcf856c2db7ce172cb038936b407e57a665ad6c3b9ce1a499a474e54c6bf119ff
+DIST pyo3-macros-backend-0.25.1.crate 76006 BLAKE2B 02225f8591585a6cbea7d6e53503bfbac395253cb0f45c588a2eb38908bf241034412832f2fcf4e9301318b5b9b82a888755d970f544f402a4f0cf9e4a6eefe9 SHA512 4c9006424630ab9bcd5dcdd45fe927a95a40a61757f0950396eb9f0c3f1794772092a19773c102220489cc621ad65d81dbbe459a1be472f6cd3211c50ef33cc2
DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
DIST rand-0.7.3.crate 112246 BLAKE2B ecc7c1bd70ac874c03bd8b7faa3016bb2d5ee5c19603280a12a45a81598f706e445971ee081e6ca410ab6f0f5f7a06d9315848cd556a2d8522a82024f6ff91e4 SHA512 f9b68ef9446f1ca2c8092c50990f15c1b4cb5529eeeac4df8d69755e0b7253c663c587775e7cb0a7298c31edb444975dda34926759306541f6d43d0d3cf57b7e
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
@@ -65,6 +70,7 @@ DIST serde-1.0.200.crate 77611 BLAKE2B 57f4a76cf534ffda009a5441e694b0ac87b30e470
DIST serde_derive-1.0.200.crate 55785 BLAKE2B 45eca5504aff6bd099a42dfc794cf732c7e76e5ed362d16082ac069d29e1e6c22bb3e13dede4bc498df8f008bdba15479de618380f37c9742a34d97c9ca12efe SHA512 e70f0e092d81542a96b33610da8ddbf04023d8ecc1fa4a4f31978699c118f096e8534f9e3e4e479ee74280efb86d752dd1fce038ef2def329fdcc10c1aa50942
DIST servo_arc-0.1.1.crate 9817 BLAKE2B 88586ca0c969df8bfb3a04ba4a689606995876434877a2cd48a72b26451deb6fdcf65273aa9b03948adcbc66b2450301840910e5c4162b993535d69585c62128 SHA512 59d531dcf7a9191b8462ce395e713194994714b65275c0af412186f862be169d0c6fc5d86603332a1aacd8af9ace934dc78531b9cb576cf8179ec35709225447
DIST setuptools-rust-1.11.1.gh.tar.gz 305306 BLAKE2B ffeead1cb92290dd7ab2cd5a92e07144f23ba10a05b7690a25f53a0bae4bde3ed6472a821efd976a41ab42d36bda37e7fd8f54eccb22944b6c22227fd94cc9c1 SHA512 2234454cb215e66135bdb737b007d74005f3d377d7912953506e3ed631f0a382bde392ea2e357619f644f14c0c3ddab7d9696fb11d8e62d78efba9cf3a5327c3
+DIST setuptools-rust-1.12.0.gh.tar.gz 305563 BLAKE2B 8565385eeaa081b72b384406beed3fd5ac28cfb03b5a3732630c8fdac0be3b59d7c22d25ff3f13d08a5790af277f933759354b60a1f55336a5f8a7c7ecef3616 SHA512 59c3a32fcb6a306c57b9c43c75c1abef96c2865546083279d0b363115ff2eb493d8d6dba226a26f97c976aa4b5db3b69378cd32ab76a4c59959ed0a26cc980e6
DIST siphasher-0.3.11.crate 10442 BLAKE2B 771221614bbd56f609b9743da4352dc7a2cbd0f6257952fab0cd052e5e5b258a4c95a0461d6d1b579dec90b72d66a0e58e036899b3db8341ae753a421a4cd4d5 SHA512 601121bd41da896142dc6ccc74a6eec3ebee3e976857ab8b5d21e915fdc8bc6e979af66a489c406371fbbbfc7a13338cc4b3744aa981206e43c53998f3e1699b
DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
diff --git a/dev-python/setuptools-rust/setuptools-rust-1.12.0.ebuild b/dev-python/setuptools-rust/setuptools-rust-1.12.0.ebuild
new file mode 100644
index 000000000000..63125c20b489
--- /dev/null
+++ b/dev-python/setuptools-rust/setuptools-rust-1.12.0.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=yes
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+CRATES="
+ autocfg@1.3.0
+ bitflags@1.3.2
+ bitflags@2.5.0
+ byteorder@1.5.0
+ cfg-if@1.0.0
+ convert_case@0.4.0
+ cssparser-macros@0.6.1
+ cssparser@0.27.2
+ derive_more@0.99.17
+ dtoa-short@0.3.4
+ dtoa@1.0.9
+ futf@0.1.5
+ fxhash@0.2.1
+ getrandom@0.1.16
+ getrandom@0.2.15
+ heck@0.5.0
+ html5ever@0.25.2
+ indoc@2.0.5
+ itoa@0.4.8
+ kuchiki@0.8.1
+ libc@0.2.154
+ lock_api@0.4.12
+ log@0.4.21
+ mac@0.1.1
+ markup5ever@0.10.1
+ matches@0.1.10
+ memoffset@0.9.1
+ new_debug_unreachable@1.0.6
+ nodrop@0.1.14
+ once_cell@1.19.0
+ parking_lot@0.12.2
+ parking_lot_core@0.9.10
+ phf@0.8.0
+ phf_codegen@0.8.0
+ phf_generator@0.10.0
+ phf_generator@0.8.0
+ phf_macros@0.8.0
+ phf_shared@0.10.0
+ phf_shared@0.8.0
+ portable-atomic@1.6.0
+ ppv-lite86@0.2.17
+ precomputed-hash@0.1.1
+ proc-macro-hack@0.5.20+deprecated
+ proc-macro2@1.0.82
+ pyo3-build-config@0.25.1
+ pyo3-ffi@0.25.1
+ pyo3-macros-backend@0.25.1
+ pyo3-macros@0.25.1
+ pyo3@0.25.1
+ quote@1.0.36
+ rand@0.7.3
+ rand@0.8.5
+ rand_chacha@0.2.2
+ rand_chacha@0.3.1
+ rand_core@0.5.1
+ rand_core@0.6.4
+ rand_hc@0.2.0
+ rand_pcg@0.2.1
+ redox_syscall@0.5.1
+ rustc_version@0.4.0
+ scopeguard@1.2.0
+ selectors@0.22.0
+ semver@1.0.23
+ serde@1.0.200
+ serde_derive@1.0.200
+ servo_arc@0.1.1
+ siphasher@0.3.11
+ smallvec@1.13.2
+ stable_deref_trait@1.2.0
+ string_cache@0.8.7
+ string_cache_codegen@0.5.2
+ syn@1.0.109
+ syn@2.0.61
+ target-lexicon@0.13.2
+ tendril@0.4.3
+ thin-slice@0.1.1
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ utf-8@0.7.6
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasi@0.9.0+wasi-snapshot-preview1
+ windows-targets@0.52.5
+ windows_aarch64_gnullvm@0.52.5
+ windows_aarch64_msvc@0.52.5
+ windows_i686_gnu@0.52.5
+ windows_i686_gnullvm@0.52.5
+ windows_i686_msvc@0.52.5
+ windows_x86_64_gnu@0.52.5
+ windows_x86_64_gnullvm@0.52.5
+ windows_x86_64_msvc@0.52.5
+"
+
+inherit distutils-r1 cargo
+
+DESCRIPTION="A plugin for setuptools to build Rust Python extensions"
+HOMEPAGE="
+ https://github.com/PyO3/setuptools-rust/
+ https://pypi.org/project/setuptools-rust/
+"
+SRC_URI="
+ https://github.com/PyO3/setuptools-rust/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+# crates are used at test time only, update via pycargoebuild -L -i ...
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${RUST_DEPEND}
+ <dev-python/semantic-version-3[${PYTHON_USEDEP}]
+ >=dev-python/semantic-version-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-62.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-62.4[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/cffi[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+"
+
+export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_test() {
+ local examples=(
+ html-py-ever
+ namespace_package
+ rust_with_cffi
+ )
+ for example_dir in ${examples[@]}; do
+ pushd examples/${example_dir} >/dev/null || die
+ einfo "Running ${example_dir} test"
+ esetup.py build --build-lib=build/lib
+
+ case ${example_dir} in
+ html-py-ever)
+ pushd tests >/dev/null || die
+ local -x PYTHONPATH=../build/lib
+ ${EPYTHON} run_all.py || die "Tests failed with ${EPYTHON}"
+ popd >/dev/null || die
+ ;;
+ *)
+ pushd build/lib >/dev/null || die
+ epytest ../../tests
+ popd >/dev/null || die
+ ;;
+ esac
+
+ rm -rf build || die
+ popd >/dev/null || die
+ done
+}
diff --git a/dev-python/statsmodels/statsmodels-0.14.5.ebuild b/dev-python/statsmodels/statsmodels-0.14.5.ebuild
index 29c04c9dd534..b081774ce079 100644
--- a/dev-python/statsmodels/statsmodels-0.14.5.ebuild
+++ b/dev-python/statsmodels/statsmodels-0.14.5.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~riscv ~amd64-linux"
+KEYWORDS="amd64 ~arm64 ~riscv ~x86 ~amd64-linux"
IUSE="examples"
# NB: upstream requires building with numpy-2 but supports 1.x
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 05e0bdb6474a..7513bcd4e7a4 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -1,3 +1,4 @@
DIST tox-4.26.0.tar.gz 197260 BLAKE2B be05b52e88e3a3d0484203cb893af25e6e6e6f3719cf9e8d5cecf5343e22382b86676345ce00219d599353330ade897f710daf4976e48c2d7277664094a263c9 SHA512 ad2e311cd63c45a079b8c230a2feb364270b7a8bcf44b626385f8e442c6683ae841b3f34417b504f927608685a254fef3767d832fb5cfcc324c9cbf6ff7ea997
DIST tox-4.28.3.tar.gz 199617 BLAKE2B 4bccdf5e4202bb5ea27868ebbf9aadb9f9447a474540a7c41f2b960ef685c8ff7a273da5a920c998eff62cbea891170dc7f3a6b6f814149d37e69560902231d6 SHA512 149a303b3af65987f165e1237dc0f7591bc4970cbb8c5002b6bd927afafb3f76c748757f5b3014f754903b191587181148c17ca83fd1337b7e96bf0cd087bd2a
DIST tox-4.28.4.tar.gz 199692 BLAKE2B 0cefd242537cf1f8bd29dac7d3b2553c019b9878d9abbd8388047f6b276287996274f4957ec541e814d5db175784d25ad4e56605d962b9646b66b1e37b13e51b SHA512 f1f19cb41f54a63036cb32e4f4e8ee281b687f71b8baab9cd0d06287af52e84a75eca99a27b5b450105753c1a31cc9b2a53c8cff8e60878a93275dfaf42c94c0
+DIST tox-4.29.0.tar.gz 200853 BLAKE2B 6b9ea0be59a0a73d71b87f4f7b5aa5ca075b80316d5ce2a52a093a717c63eef7cf250efb692a4d962abdeb6f421628cb726b41eb674bebc1f43573813545ad85 SHA512 9f1a88c42d90717f59a414490052107f6f2d357bf981ad6d0c63569af31d2215e626a28c1b3fcdd7e30883f0df5fda0207ed12f91683b0d3261b69af630fa84a
diff --git a/dev-python/tox/tox-4.29.0.ebuild b/dev-python/tox/tox-4.29.0.ebuild
new file mode 100644
index 000000000000..40f54eaddd32
--- /dev/null
+++ b/dev-python/tox/tox-4.29.0.ebuild
@@ -0,0 +1,89 @@
+# 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="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,xdist} )
+distutils_enable_tests pytest
+
+src_prepare() {
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ case ${EPYTHON} in
+ python*)
+ local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine )
+ ;;
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+ ;;
+ esac
+
+ epytest -o addopts=
+}