summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-09 03:04:44 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-09 03:04:44 -0500
commitdd4dbff7d90d19cb3b8a4657236e598887ffbd41 (patch)
treefc3717b00180b43464a834fd1f3c9442f57ae45a /dev-python
parent23850c0a8390d403a1fe131e47265df579818dd5 (diff)
downloadsrcux-dd4dbff7d90d19cb3b8a4657236e598887ffbd41.tar.gz
srcux-dd4dbff7d90d19cb3b8a4657236e598887ffbd41.tar.xz
srcux-dd4dbff7d90d19cb3b8a4657236e598887ffbd41.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiostream/Manifest1
-rw-r--r--dev-python/aiostream/aiostream-0.7.2.ebuild36
-rw-r--r--dev-python/ast-serialize/Manifest3
-rw-r--r--dev-python/ast-serialize/ast-serialize-0.11.0.ebuild47
-rw-r--r--dev-python/bibtexparser/Manifest1
-rw-r--r--dev-python/bibtexparser/bibtexparser-2.0.0.ebuild26
-rw-r--r--dev-python/bibtexparser/metadata.xml4
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.90.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.90.ebuild67
-rw-r--r--dev-python/cattrs/cattrs-26.2.0-r1.ebuild80
-rw-r--r--dev-python/cfn-lint/Manifest2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.1.ebuild61
-rw-r--r--dev-python/clang/Manifest2
-rw-r--r--dev-python/clang/clang-23.1.1.ebuild50
-rw-r--r--dev-python/cmd2/Manifest1
-rw-r--r--dev-python/cmd2/cmd2-4.2.4.ebuild59
-rw-r--r--dev-python/filelock/Manifest2
-rw-r--r--dev-python/filelock/filelock-3.32.6.ebuild31
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.168.0.ebuild143
-rw-r--r--dev-python/lit/Manifest2
-rw-r--r--dev-python/lit/lit-23.1.1.ebuild42
-rw-r--r--dev-python/mapbox-earcut/Manifest2
-rw-r--r--dev-python/mapbox-earcut/mapbox-earcut-2.1.0.ebuild41
-rw-r--r--dev-python/msgspec/msgspec-0.21.1.ebuild2
-rw-r--r--dev-python/narwhals/Manifest2
-rw-r--r--dev-python/narwhals/narwhals-2.26.0.ebuild44
-rw-r--r--dev-python/openapi-core/files/openapi-core-0.23.1-deps.patch89
-rw-r--r--dev-python/platformdirs/Manifest2
-rw-r--r--dev-python/platformdirs/platformdirs-4.11.8.ebuild50
-rw-r--r--dev-python/pylatexenc/Manifest1
-rw-r--r--dev-python/pylatexenc/metadata.xml15
-rw-r--r--dev-python/pylatexenc/pylatexenc-2.11.ebuild22
-rw-r--r--dev-python/pytest-env/Manifest4
-rw-r--r--dev-python/pytest-env/pytest-env-1.7.1.ebuild (renamed from dev-python/pytest-env/pytest-env-1.6.0.ebuild)2
-rw-r--r--dev-python/python-lsp-ruff/Manifest3
-rw-r--r--dev-python/python-lsp-ruff/python-lsp-ruff-2.3.4.ebuild (renamed from dev-python/python-lsp-ruff/python-lsp-ruff-2.3.1.ebuild)8
-rw-r--r--dev-python/python-slugify/Manifest1
-rw-r--r--dev-python/python-slugify/python-slugify-9.0.0.ebuild31
-rw-r--r--dev-python/python-socks/Manifest1
-rw-r--r--dev-python/python-socks/python-socks-3.1.1.ebuild42
-rw-r--r--dev-python/sip/files/sip-6.16.1-legacy-abi-without-minimum.patch27
-rw-r--r--dev-python/sip/sip-6.16.1-r1.ebuild49
-rw-r--r--dev-python/siphash24/Manifest2
-rw-r--r--dev-python/siphash24/siphash24-1.9.ebuild30
-rw-r--r--dev-python/sphinx-autodoc-typehints/Manifest4
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.6.ebuild (renamed from dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.12.1.ebuild)2
-rw-r--r--dev-python/tifffile/Manifest2
-rw-r--r--dev-python/tifffile/tifffile-2026.9.9.ebuild (renamed from dev-python/tifffile/tifffile-2026.8.16.ebuild)0
-rw-r--r--dev-python/time-machine/Manifest1
-rw-r--r--dev-python/time-machine/time-machine-3.5.1.ebuild36
-rw-r--r--dev-python/tox/Manifest2
-rw-r--r--dev-python/tox/tox-4.61.3.ebuild84
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.12.11.ebuild100
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.12.11.ebuild151
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/virtualenv-21.7.9.ebuild117
-rw-r--r--dev-python/weasyprint/Manifest2
-rw-r--r--dev-python/weasyprint/weasyprint-70.0.ebuild51
63 files changed, 1734 insertions, 9 deletions
diff --git a/dev-python/aiostream/Manifest b/dev-python/aiostream/Manifest
index 5b0f515a5c56..a0e46161fdb6 100644
--- a/dev-python/aiostream/Manifest
+++ b/dev-python/aiostream/Manifest
@@ -1 +1,2 @@
DIST aiostream-0.7.1.gh.tar.gz 46944 BLAKE2B f081eb96125ce4e5ccf77dcff6eedbba7c9a2a643ba1dde19139232b16b9be34a7803135d52857d2cd4a921da37441b040affe790a0a18dcf289bffe74e97229 SHA512 2859e6781a133fce70e9ba3af0f021b05f35b975298341400161ac0d1e4b884b93ad0f423beb4cd4bcc97c9f2050cd32f6fb9f6f55cee34ad1a9aeb14e549d09
+DIST aiostream-0.7.2.gh.tar.gz 47105 BLAKE2B c9369872a3fe2f12f3feaefbb4f267855d60af16ba3cd74b3d0d97ac4f40e3e4d9ddc6b22a5873c1faa22134e6bb65a47aae234cdc2709e5f60b3bc80ec230cd SHA512 667b9094c15be49db44444216ce7cef85e1c1298984822cc0fa800c03385b23c8c3cc3b20b95095a31e2af9e12438c774242bb1f27d0ceaa28da6b497718407c
diff --git a/dev-python/aiostream/aiostream-0.7.2.ebuild b/dev-python/aiostream/aiostream-0.7.2.ebuild
new file mode 100644
index 000000000000..ba7515c52bf9
--- /dev/null
+++ b/dev-python/aiostream/aiostream-0.7.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Generator-based operators for asynchronous iteration"
+HOMEPAGE="
+ https://pypi.org/project/aiostream/
+ https://github.com/vxgmichel/aiostream/
+"
+SRC_URI="
+ https://github.com/vxgmichel/aiostream/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e 's:--cov aiostream::' \
+ pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/ast-serialize/Manifest b/dev-python/ast-serialize/Manifest
index e19c4278b178..996fc8ef010f 100644
--- a/dev-python/ast-serialize/Manifest
+++ b/dev-python/ast-serialize/Manifest
@@ -14,6 +14,9 @@ DIST arrayvec-0.7.8.crate 33260 BLAKE2B 3c04ce1e36b9b05f794fbe889c8e9cb07a340ea0
DIST ast_serialize-0.10.0-crates.tar.xz 8982344 BLAKE2B 1c5a26985bbca3537808e0c49a11af37f4666194b9f757d3039d55ca895bd7932bf50d4a7944fad85973a4c88d2ea5680313241abe56dfe81c25f98a7a37ffc7 SHA512 aed9985a44ff14b227d2c67e89358d1dfdd13d728fc1347d6b139d65f1ed4a8a8c5c461a80a5862525aa12c07f8ee86162aad0a722f30221e38e26bfc4163d69
DIST ast_serialize-0.10.0.tar.gz 952608 BLAKE2B 5e9e74dba06de73ca3a7391e65d14e0d4514187618d22700b638bc9077f50571fe85e4475626b66403047cdc1cda962deaad8fd2f6b60a31d26a5a1349e42b26 SHA512 64c8076ba4a48863996dbeef4bccd0cd464719bb7b1ee06cfdb405e6daf8d11164fb82405a06fe0f6d6c52f253d575abf443b625580a0f3f6e55417f06b49e99
DIST ast_serialize-0.10.0.tar.gz.provenance 9976 BLAKE2B b53ba5b18e7de1ef64942996e08513cbfd7bb9d8c6810abc8dd581bea4ca0191936c7012386a1698df929af6afc114a31fe5213faa472195a66b7bf3bd5b7f4f SHA512 15aa4f2dd545bc6f766044e65357144409fea554daa7c0b679ada31808fee363994e1ae101a7f648c718f2aaf7d5f1ec5bedde543389a5deb3a0330b57bc0716
+DIST ast_serialize-0.11.0-crates.tar.xz 8982344 BLAKE2B 1c5a26985bbca3537808e0c49a11af37f4666194b9f757d3039d55ca895bd7932bf50d4a7944fad85973a4c88d2ea5680313241abe56dfe81c25f98a7a37ffc7 SHA512 aed9985a44ff14b227d2c67e89358d1dfdd13d728fc1347d6b139d65f1ed4a8a8c5c461a80a5862525aa12c07f8ee86162aad0a722f30221e38e26bfc4163d69
+DIST ast_serialize-0.11.0.tar.gz 953724 BLAKE2B f20f1f3a2a916c71d39807d796037ce8c4dbef9cf99617cf786bccab86d54041077824a4135db94c5c235bfc110b4e229b37414def4d6c51b81a1d52d85797ef SHA512 be177f88c945cf939e858dbebf11fbeac8d824815f9d6b37ca258d50674bcabbbff610daa990d77b13572bfeaa81289a444ae8fab2e0b84e8e3956816ad61c8b
+DIST ast_serialize-0.11.0.tar.gz.provenance 10019 BLAKE2B 8d8ba1f83b9b0f4db9526d090c5688d11e1344fdd1b8e80c9954e075100f8b3ec5b6cdf4b7a406293ef330945cd0f7582de514e5707f8fa9bb2a3c742b29c55f SHA512 ce40b3ba3044877f356f9b18fa0b9b61ade4d4bc5fa7bfb3dbc9c7dace592a7fe8b5a87f935da77c1f1a012dbf243d67f348edecf1622e39eb5ade0c1720121a
DIST ast_serialize-0.7.0.tar.gz 845507 BLAKE2B 2ae173ce25210a8fa69917acef2eb6de3dec5f3bc3ea0cddf1fd962f654b5ed9b7fb3ac3d39f089fa8c9c058dd366d48a49543d97f706164b8459f243259fdb3 SHA512 b50d29b37640939e0b7e6f05ee46e7f8fb0e5f2e7a2cdec91c7093e01015d0ce9d23e1734594be2435fb17e6111ec88f40c3d8297a520edd7e95516b17ca6940
DIST ast_serialize-0.7.0.tar.gz.provenance 9942 BLAKE2B b6c2a9796d9079900d1b1b729c3488a8bed445d3f22410112dceb7c2991d699e29dac56e3674fa059064d6908f28401e442b2dc7e6bb00ba01871d085726a68a SHA512 4775c8a45e5c5cfaf87486fe468c1b115172dcfd21e5fe459033c8d604b157158d12689d7a0ea4134ef4c91a0fb5ac934d51f11e47f6cf51d995e82122b5d202
DIST ast_serialize-0.8.0.tar.gz 845638 BLAKE2B 9b09fb82f073c3ae73486dab703c22e80cb2c5973adc94faa747d01923221d79b06f17b5b300adf13e59fa5e64b3d0fb31d7beecf1e84b0a7b692d1ae79ae8ea SHA512 5ccb2f87da07e432e6f7f3790c6c9adb9403fb90c60a223a2fc598c6a931e44b88b504b1f3e45bcef5b51f2f75349fd0e3718d7f484addd046f566b3b1045315
diff --git a/dev-python/ast-serialize/ast-serialize-0.11.0.ebuild b/dev-python/ast-serialize/ast-serialize-0.11.0.ebuild
new file mode 100644
index 000000000000..7142c24913c5
--- /dev/null
+++ b/dev-python/ast-serialize/ast-serialize-0.11.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYPI_VERIFY_REPO=https://github.com/mypyc/ast_serialize
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.95.0"
+CRATES="
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Python bindings for mypy AST serialization"
+HOMEPAGE="
+ https://github.com/mypyc/ast_serialize/
+ https://pypi.org/project/ast-serialize/
+"
+SRC_URI+="
+ https://github.com/gentoo-crate-dist/ast_serialize/releases/download/v${PV}/ast_serialize-${PV}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0
+ Unicode-DFS-2016 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ crates
+)
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/ast_serialize/ast_serialize.*"
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_gen_config
+}
diff --git a/dev-python/bibtexparser/Manifest b/dev-python/bibtexparser/Manifest
index 2fd603716924..ce35a4df7c6b 100644
--- a/dev-python/bibtexparser/Manifest
+++ b/dev-python/bibtexparser/Manifest
@@ -1 +1,2 @@
DIST bibtexparser-1.4.4.gh.tar.gz 97227 BLAKE2B 53ba09d456e339d5c58254c2403629ca2fccbef79800f5c3a0f2bb1e961399f764b5e4ef9391463f0421338ce8c140f247471f1220f840d431db3c36cda3c9a7 SHA512 fe853847215c2d363ad2238afbc310b2e5946630092b86ff010c1053e1afa9acbed81ee4954fb1793d11a9bb19627f31f56bdb59c429c1d520aa4deffb454599
+DIST bibtexparser-2.0.0.tar.gz 88017 BLAKE2B a3ad59546a7a3c5c5ba736d70e77a07c6d6aaf60139a129ee77e3676bceecae3a90e3011395130ed678f9a0792fb3d730864f7345dd5dd5e73ef4f4172cc5dd4 SHA512 044e18c30fd6147dffd7d0b4b5f15fccc0ec443c62503ddd3f18d13270df0a9eb65b8eb1a0ba8ed01a362397781d59820ee20415f1c9a4cc79e9e0e7a1acdbd1
diff --git a/dev-python/bibtexparser/bibtexparser-2.0.0.ebuild b/dev-python/bibtexparser/bibtexparser-2.0.0.ebuild
new file mode 100644
index 000000000000..9fd150062431
--- /dev/null
+++ b/dev-python/bibtexparser/bibtexparser-2.0.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A BibTeX parser written in Python"
+HOMEPAGE="
+ https://github.com/sciunto-org/python-bibtexparser/
+ https://pypi.org/project/bibtexparser/
+"
+
+LICENSE="|| ( BSD LGPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/pylatexenc-2.10[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/bibtexparser/metadata.xml b/dev-python/bibtexparser/metadata.xml
index 46f5f4420f9f..d9aee5e87c21 100644
--- a/dev-python/bibtexparser/metadata.xml
+++ b/dev-python/bibtexparser/metadata.xml
@@ -5,6 +5,10 @@
<email>tex@gentoo.org</email>
<name>Gentoo TeX Project</name>
</maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
<stabilize-allarches />
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index b7d1a4078906..aedef680c72b 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -10,3 +10,4 @@ DIST boto3-1.43.72.gh.tar.gz 1208773 BLAKE2B 1250a1fffa6b31c2e3c5ab40221db938a56
DIST boto3-1.43.78.gh.tar.gz 1213393 BLAKE2B b3e4188ba53609873bf6613d5667792d24634d728dfe0e0588917ade93c4d6c9a5a28d2e46bd5ca314723604a9cab9a4fae7ca1e6f9e496cc29671bc68849d7e SHA512 c98ede06cf4934089ba4a62c4fb03da692a5f9e2a415728e9f51979e33942229d8f4cd6fa02ac229b360b63a930fd91890f2ed645d17011d4a42e236943fd780
DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46bee541110e51fdcd231c60cac0452f4cdfec58ea4041757835c195cd2b8becb3c4e9fd24ad7bc306d90b16af082f63 SHA512 ed110edd551138c5d63ab7ead46a4c9ddb410dea1b5e642045102936af22c4208f357f79fc994434fc6a7df7c16aba99052508103bad7599f8cc558ae1c5f842
DIST boto3-1.43.89.gh.tar.gz 1225424 BLAKE2B 625bb37a542644c8fe37aab42a115bf8be2e36373d7f6149dcc7e150e327c75b334ef480897be1d4954809b233a47e02854d7b28b4a3904f0e5cdcea3f0440d7 SHA512 1c04fd6df819abbe60d551c6d706f7254fe6d6758e95fd53ec70d4dd892b6f7bf69981cb001fc6ca5bc5885f083718b80a4fd045b146e7f4add16a50ac3a9d38
+DIST boto3-1.43.90.gh.tar.gz 1226424 BLAKE2B 027f90499bd5b8e3389b65dbe06b3221efae0df3809b7b364edaec6e7c33082043fbcf8ae69f48b55ab46fb161a7c707c17a61558ce503a9ebf1ab883857967a SHA512 aa68333b98d43e4fe04b1f8fc23098bb252286e6cc57332e592a26b551ec75f75165e790ddbf37a15ca406b7ba82a24c470a11f46377c10a58b0da1a470cd34d
diff --git a/dev-python/boto3/boto3-1.43.90.ebuild b/dev-python/boto3/boto3-1.43.90.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.90.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..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"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.19.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 6ba85138cd83..e70856b2c527 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -10,3 +10,4 @@ DIST botocore-1.43.72.gh.tar.gz 16966215 BLAKE2B ccb01e2001fd1584bc635a19daf2413
DIST botocore-1.43.78.gh.tar.gz 17008224 BLAKE2B 137656d64f62025ca47f03c48ba84aa7eccae9dbc752c81f909c3c3f12dd843bb40173075fc7e255492385d8ea8824da08e5d3155bb5ff1dbfd62c858c0a057f SHA512 bd65c7fe451ef0b3bef21e25e557aa37748ca01f71e567b31b852ac356d323f1cfa6dd0e920eff7c52e0db879a34cf99eed6c1b841dfa6065e139362702f9d13
DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b80cc279627174ac96f9b79d85418ecc0442fbd27d7e79ccdf12526ac02489fde4254e360f216103f3cd5ff050b3cf1a838 SHA512 618c0ef0fc89879ee6900606e3378b2876901c4a63ede52529de12898a65e34fc41a8f0ad8ab682b7788626176f9b86904e257b63d88be9d58c53116918b1d12
DIST botocore-1.43.89.gh.tar.gz 17111395 BLAKE2B 25837125b5d9477b011c065594ffa1b49a2f5d0cf76e1c664aa5401d50dfe8dd9573d0ab3a60f739c796c32965a7dd7608e302a284bfcc97d9f7f4a8a2b698e3 SHA512 c9c0b7636fb7595d4ff3ee2ec7e1ef8ad3000e9e453ce6edb827a1152109fc2fb6b226bd08f27653fc1436444c39be6f160fa4f7c34eb50a7384988686933590
+DIST botocore-1.43.90.gh.tar.gz 17119827 BLAKE2B ade6107a22be148042c1c67dfd60445c819e021f112d62d696bd2d25409a1ce256a5d91fad193c152c408c247a046045fc6bb21cc8f4adff98c5d25e26136e14 SHA512 c072f119ce927495fa9720de11bfa95e7dfbef8f68c87689af248eabed4a3451d6adb20e1d9b4c17eace231d38f5bee5395efc7861f39951078b7873abb625ab
diff --git a/dev-python/botocore/botocore-1.43.90.ebuild b/dev-python/botocore/botocore-1.43.90.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.90.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..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"
+
+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/cattrs/cattrs-26.2.0-r1.ebuild b/dev-python/cattrs/cattrs-26.2.0-r1.ebuild
new file mode 100644
index 000000000000..e55ebb75734a
--- /dev/null
+++ b/dev-python/cattrs/cattrs-26.2.0-r1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Composable complex class support for attrs and dataclasses"
+HOMEPAGE="
+ https://pypi.org/project/cattrs/
+ https://github.com/python-attrs/cattrs/
+"
+SRC_URI="
+ https://github.com/python-attrs/cattrs/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/attrs-25.4.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.14.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/immutables-0.20[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-1.0.5[${PYTHON_USEDEP}]
+ >=dev-python/msgspec-0.21.1[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.8[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ujson-5.10.0[${PYTHON_USEDEP}]
+ test-rust? (
+ >=dev-python/cbor2-5.4.6[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.11.3[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+# xdist can randomly break tests, depending on job count
+# https://bugs.gentoo.org/941429
+EPYTEST_PLUGINS=( hypothesis )
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ if ! has_version "dev-python/cbor2[${PYTHON_USEDEP}]"; then
+ # https://github.com/python-attrs/cattrs/pull/748
+ sed -i -e '/cbor2_make_converter/d' tests/test_preconf.py || die
+
+ EPYTEST_DESELECT+=(
+ tests/test_preconf.py::test_cbor2
+ tests/test_preconf.py::test_cbor2_converter
+ tests/test_preconf.py::test_cbor2_converter_unstruct_collection_overrides
+ tests/test_preconf.py::test_cbor2_efficient_enum
+ tests/test_preconf.py::test_cbor2_native_enums
+ tests/test_preconf.py::test_cbor2_unions
+ )
+ fi
+ if ! has_version "dev-python/orjson[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_preconf.py::test_orjson
+ tests/test_preconf.py::test_orjson_converter
+ tests/test_preconf.py::test_orjson_converter_unstruct_collection_overrides
+ )
+ fi
+
+ epytest -o addopts= tests
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index a0f48c1096ff..cb678d99d6a8 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -6,3 +6,5 @@ DIST cfn_lint-1.55.1.tar.gz 4646651 BLAKE2B d3ca76fb15a3695019334345897423e26ac0
DIST cfn_lint-1.55.1.tar.gz.provenance 10179 BLAKE2B bee20ea785698e115569fa307d03ca09f1d6e8fcacaf418dfe0fc91553f3a7be127c1bff39804930c7d900007efe4cb31f1fb943064e28fad760d38990e7c729 SHA512 c71b2a1463cd290bb0532868b7f7f0ce047a7acdf18304240a15d3b472d8926a09a58665a89cd5a70913604bf27f0d75d93a567f42c8ebf20e2dcb6e9c71337d
DIST cfn_lint-1.56.0.tar.gz 4741346 BLAKE2B 610ed9da227212846ff36caf13e01031e0dfd2021fa9a0a5e619cca7196669ad833878707016a7870e53cb18abb0d57a407b2c62e8ab0f8ebe5506667eaf8659 SHA512 d6514d0c6e0b51d0c9a24d1ecb8965c78923027529fcf964c5146c70efca493eb76ead77c633c1f9e11cf2486decc2afd4f945e64f2aacd0275714303480c6dc
DIST cfn_lint-1.56.0.tar.gz.provenance 10175 BLAKE2B f0086aa9fb5358d28982dc5920e5d2658fcef45383f7fc6d0daf5d8be5d40251767203f8af17c3fbbddf581917b824f6e87a5f1ce0542c0f3d56a6ef57f0bb84 SHA512 07d7e71bdd6d201ccf6bd5edba4b8aa10729acd84a1ab82ef0725039c44b6dd990037dbf79eb73b4abc1989e5573b7e904ed467d2e6b7886993f3756c858d6a8
+DIST cfn_lint-1.56.1.tar.gz 4764990 BLAKE2B e7128b864c06a51d4356d42f2336584c872ab4c3a9967dafb8599eb3bce4a379beb7601f6d6cd1cef23a8be75311cb995b588969f376840c2222edbde860fd8e SHA512 47707daa1ef22a8f97c4a8ae56c9139ae5ecb6de2ec8d52359ae4d87be80f28ff34b766ac0e8b5092f187c353d4dfeaa3c9d1aeeb0468e0cc981994cd8f47867
+DIST cfn_lint-1.56.1.tar.gz.provenance 10085 BLAKE2B 02224c865a6555230d84bce06398da10f9a87e322164d97fe85e02d609bd3f0a52bd132de998f4c8fe3658dd20297980973900accf6067168de0207d82609741 SHA512 124e7b36867a463829b1c0416fc787ece9a1817a7d1aab7906681fda8310b127f92000d12e3890e1b60d27d0e032e1ff149120a1bc06d68201ebd0ebbf789131
diff --git a/dev-python/cfn-lint/cfn-lint-1.56.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.1.ebuild
new file mode 100644
index 000000000000..60bfe8f96df0
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.56.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/aws-cloudformation/cfn-lint
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # different line wrapping somehow
+ test/unit/module/template/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # crashes on 3.12+, probably pygraphviz
+ test/unit/module/test_api.py::TestLintByConfig::test_graph
+ # scripts missing from sdist
+ test/unit/module/maintenance/test_update_specs_from_pricing.py
+ # Internet
+ test/unit/module/schema/test_manager.py::TestUpdateResourceSchemas::test_update_force
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ epytest test/unit
+}
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index 7a416e37b42b..bb684066886b 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -13,3 +13,5 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061
DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f
+DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
+DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
diff --git a/dev-python/clang/clang-23.1.1.ebuild b/dev-python/clang/clang-23.1.1.ebuild
new file mode 100644
index 000000000000..2a1b09426737
--- /dev/null
+++ b/dev-python/clang/clang-23.1.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/{bindings/python,include} )
+llvm.org_set_globals
+
+distutils_enable_tests unittest
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ eunittest
+}
diff --git a/dev-python/cmd2/Manifest b/dev-python/cmd2/Manifest
index b3979e9619a7..57c013a96dc8 100644
--- a/dev-python/cmd2/Manifest
+++ b/dev-python/cmd2/Manifest
@@ -2,3 +2,4 @@ DIST cmd2-4.1.2.tar.gz 848904 BLAKE2B 515fb26b4df87be2d646ca2fbaf8b26acddb2f79b5
DIST cmd2-4.2.1.tar.gz 854163 BLAKE2B f1dea29bf9aae55b27d87e0ce01d4668bda416e4fd66508b399d498a692fa2f6574115b12770347d1b43d9d77ae58dc919f9d44aacc881db6484a4f228b82611 SHA512 6f9543b354c448582247d004e7f0c876219827a28b88118b0f359d87e0750a2fd6cea1eadab5aaaa40bd1b0c4c0c406e48a38cd50b810071d2dfcc2098d74338
DIST cmd2-4.2.2.tar.gz 856874 BLAKE2B f4ae9262dfe765693c33e9503c1835adbbada66de5ae8f82d0ae2920915b1bb4fea2d69b2f553b21671895f37c096a77e34db1f026a502808b03bbe8a1163bf8 SHA512 2b337ad2e9f18cf39ed76388a1733f76458509ecbc812f1aa828d6acc781a0bf82b7659ebe4c3ed79a1fdbb5332af9fd831312293214e4780d8698e59b4a64c5
DIST cmd2-4.2.3.tar.gz 733039 BLAKE2B a1d1891838f289da18f0760e69db663cb4a67c348e114312a6fdd15894aeaf1859c759cf45f1b995b479c64a2a8cd74c3f5226b5511f5e5cb327ef537edff0ff SHA512 7569f148ea001cf805a71639b0b0930d5d3958fc4dbc115adc80d8caeb0aa0f36743d48e7bda63f17118efafcce5cbef1b1713c7c616f8b060f5f9400222f0c6
+DIST cmd2-4.2.4.tar.gz 737716 BLAKE2B 2c6903498ac2ff2c14edc3a708e84cf7cefffcc8df88487cb6542f49a016ed61d2c1edc6f49aee5e01dc5bcf3ca801ddc06804b9970453e263e3152b4d941bea SHA512 1364e213c1badaaffa5cedafad13eecb76707c9ab5ea2e8dee47ec16b83e1eacb5464e52bcd311f00d1783d982caacb9f97d096404175b6293a7b6dbd2f879ca
diff --git a/dev-python/cmd2/cmd2-4.2.4.ebuild b/dev-python/cmd2/cmd2-4.2.4.ebuild
new file mode 100644
index 000000000000..0dd4a4021580
--- /dev/null
+++ b/dev-python/cmd2/cmd2-4.2.4.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature virtualx pypi
+
+DESCRIPTION="Extra features for standard library's cmd module"
+HOMEPAGE="
+ https://github.com/python-cmd2/cmd2/
+ https://pypi.org/project/cmd2/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ >=dev-python/prompt-toolkit-3.0.53[${PYTHON_USEDEP}]
+ >=dev-python/pyperclip-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/rich-15.0.0[${PYTHON_USEDEP}]
+ >=dev-python/rich-argparse-1.7.2[${PYTHON_USEDEP}]
+"
+# pyperclip uses clipboard backends in the following preference order:
+# pygtk, xclip, xsel, klipper, qtpy, pyqt5, pyqt4.
+# klipper is known to be broken in Xvfb, and therefore causes test
+# failures. to avoid them, we must ensure that one of the backends
+# preferred to it is available (i.e. xclip or xsel).
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ || (
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+src_test() {
+ # tests rely on very specific text wrapping...
+ local -x COLUMNS=80
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ # TODO: tests_isolated?
+ nonfatal epytest -o addopts= tests || die
+}
+
+pkg_postinst() {
+ optfeature "IPython shell integration" dev-python/ipython
+}
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index 622b7b2f6dd0..93ee4c44263f 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -6,3 +6,5 @@ DIST filelock-3.32.4.tar.gz 222126 BLAKE2B 8061bbb3d3e2e78c685764a4789caf1ba8196
DIST filelock-3.32.4.tar.gz.provenance 9716 BLAKE2B 7e5776c9c7a32e7f67f61b344d3d83c540e6b6497a2e12a31623fc1c8e9e46bf140612b125a8c980f5659275cfa4f42b58663fc04725f284591f3ca85b4939ca SHA512 4239c3c48c4e23f5ad14dabb82f53bd150a1f4a85f9f46b2c88a4483b8a18425fd8d2ff1452df84bb2dfe9d256e7c24f6bfcc8753b0f6d6e3f20382fe1edbf8c
DIST filelock-3.32.5.tar.gz 222838 BLAKE2B 61ea53f89ec434d8ab49cf468fed811486e4c5638b5c14df5d38e441ec1f45533dc406bba401ce871792eda20d4d0c9040553ea0e9a39d06db7a9892ce0323a3 SHA512 2ac9dd42e244cdf7c45527743c6f42b67e955b4001449237a2a016c5bc7bfc52094298f50e89aad1a41a940b986f16a42923f737b8044ba2d9398a9bb045d231
DIST filelock-3.32.5.tar.gz.provenance 9622 BLAKE2B 076bfaf9260ac890f689d84bb0b85d8807536804e14c79c5843a29c10806cf4806b77862761daf9b01a053af73aa611abe0af839d8792d29b1063c657c83f121 SHA512 3df81c5cda929a05ed494b06359431d42c2522b7cb0a640ca3a13657486f23d270cc930b28cf6e5cc948462d1fcf6eb6268b9c82de820b3dcc2c11134d485c8a
+DIST filelock-3.32.6.tar.gz 225172 BLAKE2B f077ad228f28f6080cff6487b10d18789174592ccca9117766946572e07f97af88c68c796665e1183d39b9d92aa5c6881da3a278ce3ca2691b8f85ce4abaf116 SHA512 a2431f17c1f7e01e0eb704354a8e3b27c2e0b2e769962ea904b20206ef36e1b173fca846c696680b7c6c8a0bee846b9a6d5449a4b09e0ae7c390bb374380ccc6
+DIST filelock-3.32.6.tar.gz.provenance 9904 BLAKE2B f3509822beb0993f3050ac404835a62a1beec9f98ca4f28202b237daf7f1db0fa8ac2803d822138a140761229d9334928f85e54583d7aaefc7bafdfca607f51e SHA512 6a30896d8c8166f19be54362a7e278922d6104f8e5093dca36e25d9fb7331f7918201b19919c56feef9005e6a62fd2766b9ebea371c8fff419b63f0634c419d6
diff --git a/dev-python/filelock/filelock-3.32.6.ebuild b/dev-python/filelock/filelock-3.32.6.ebuild
new file mode 100644
index 000000000000..1f38026c0588
--- /dev/null
+++ b/dev-python/filelock/filelock-3.32.6.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A platform independent file lock for Python"
+HOMEPAGE="
+ https://github.com/tox-dev/filelock/
+ https://pypi.org/project/filelock/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 785837562f47..6703ef772aba 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -7,6 +7,7 @@ DIST hypothesis-6.164.0.gh.tar.gz 9665401 BLAKE2B 9d5c5fc98191166cb0da35ac03ae5a
DIST hypothesis-6.165.10.gh.tar.gz 9696772 BLAKE2B 12d76870dcd6f5a4e8d4495137cd3c4a7a6a35b79a36a4de9a3069dd4c0f485720b45ee0488491f8c6d0091af4c4cda3160197eb05e16834f7615be1ea0a9716 SHA512 1c41ab3816d8943b6addfcf21980521b2c2c35c5a744a265410d012350227dee72b782b1bfc39f3f5c76da4c1e4dc2b114ef2704218ae9f7dea16684f81ffc28
DIST hypothesis-6.166.0.gh.tar.gz 9698294 BLAKE2B 282339254a6c8d0b97f39d956f521291f04a801c1a03c9b7122592ecf459c623331867c520d4ca60a9f33be9bee397992d193c50e5872babffd3feac8df874a0 SHA512 29e21f1e03b4139cc55e991f6875adcee79728f1b897bd761ad64a8dc3dafc1f413cd912bb8088d69fe98c3da1f897ea264ce917ebef1503c2d252c9a8e8b7ea
DIST hypothesis-6.167.1.gh.tar.gz 9702396 BLAKE2B 484559752fe8b3047df0ecd53d2eab79dc90ad83e6f98fddf18aebee6cfcbb845786bfa87f78186715f4e34f84ee628769ab274bb90366841c7e92ee35af92a5 SHA512 e38edc39515d5fe682804377fc75bf0d06c1db4d585cd30f2fb4cc6e95b5ff0da8b5928e475a6653f1e37f12003d4a293967d34b09132dcbf84bc737fa24154d
+DIST hypothesis-6.168.0.gh.tar.gz 9712003 BLAKE2B f6d77a8df01f8c385b4d0f23126503460f6c9a3e397a865481f0e02cfab5fe68450d3e2dfc5fac15e75ad03a08c03652e88bbd36996abb6fac7b200e50fc89b3 SHA512 38c38b042f3c7e0617a29b37681ef661dd30b6941f60699c809808474c74b1b6d25b533d32f68bd570837739217933d8e9faf2e89762acf8ef80450fa1f4731d
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
diff --git a/dev-python/hypothesis/hypothesis-6.168.0.ebuild b/dev-python/hypothesis/hypothesis-6.168.0.ebuild
new file mode 100644
index 000000000000..bf665e6799ed
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.168.0.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+CLI_COMPAT=( python3_{12..15} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+RUST_MIN_VER="1.91.0"
+CRATES="
+ cfg-if@1.0.4
+ crunchy@0.2.4
+ getrandom@0.3.4
+ half@2.7.1
+ heck@0.5.0
+ libc@0.2.186
+ once_cell@1.21.4
+ portable-atomic@1.13.1
+ ppv-lite86@0.2.21
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.2
+ pyo3-ffi@0.29.2
+ pyo3-macros-backend@0.29.2
+ pyo3-macros@0.29.2
+ pyo3@0.29.2
+ quote@1.0.46
+ r-efi@5.3.0
+ rand@0.9.4
+ rand_chacha@0.9.0
+ rand_core@0.9.5
+ syn@2.0.118
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+ wasip2@1.0.4+wasi-0.2.12
+ wit-bindgen@0.57.1
+ zerocopy-derive@0.8.53
+ zerocopy@0.8.53
+"
+
+inherit cargo distutils-r1 optfeature
+
+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/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${P}/hypothesis"
+
+LICENSE="MPL-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=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/attrs-22.2.0[${PYTHON_USEDEP}]
+ 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
+
+QA_PREBUILT="usr/lib/python.*/site-packages/hypothesis/_native.*"
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/
+ local EPYTEST_DESELECT=(
+ # broken somehow (xdist?)
+ 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
+ )
+ local EPYTEST_IGNORE=(
+ # require syrupy
+ tests/cover/test_custom_reprs.py
+ )
+
+ case ${EPYTHON} in
+ python3.15*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest 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/lit/Manifest b/dev-python/lit/Manifest
index 7a416e37b42b..bb684066886b 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -13,3 +13,5 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061
DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f
+DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
+DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
diff --git a/dev-python/lit/lit-23.1.1.ebuild b/dev-python/lit/lit-23.1.1.ebuild
new file mode 100644
index 000000000000..9c6e9718fe19
--- /dev/null
+++ b/dev-python/lit/lit-23.1.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/mapbox-earcut/Manifest b/dev-python/mapbox-earcut/Manifest
index 532e242dc9c4..24badc0a21f8 100644
--- a/dev-python/mapbox-earcut/Manifest
+++ b/dev-python/mapbox-earcut/Manifest
@@ -1 +1,3 @@
+DIST mapbox_earcut-2.1.0.tar.gz 46744 BLAKE2B ee2ca9110781c48312773ede58effe3b34a3c97ed25962534992a4b642bc7ce191ee305b1e246a0eeb57baf4eeba29114d679baecf7c7ce9170f127b76aa1eb9 SHA512 b4d0ea5aa212438c8dd55f88823005d555bfd15a2902fcb0f924465089730c97e4c5803214a55b8d59b68247b09548a113bf06d5d0cd6f18244e01a0dd25959d
+DIST mapbox_earcut-2.1.0.tar.gz.provenance 9823 BLAKE2B 9238ab8c01713d7ab49c95e445dc3998a913c7e2abd2edcbf9367c156d1fb24a148aa8e9a8d435a86dd871d62a8b34e3b6aa200afd3a2d98570d6ad0e4be30f0 SHA512 fbafc676f1c6f41d012b3bd87e52a262b359e66df6dcdb39f78331326630b11c416ee6ff1af211b45a0d093da144d2247116a945f2a0099ddb2e50b339ed2e23
DIST mapbox_earcut_python-2.0.0.gh.tar.gz 38939 BLAKE2B 625555d1b466bb433c9e7fa8c1c5205b3cecc47ffab5cc9af11bb4187df19599c7551a3572802fb49694c143cf7f1b6f7c0b192a30e0d56921ed5ae9867851f5 SHA512 e673b89e16a2007085e6e036b32867bdcdf984b3dec3bf93182ad352b36d6bf3ae4f750de136a9833b3328241fdf725b4f11c4981f9334a9a27e1b4077af1cea
diff --git a/dev-python/mapbox-earcut/mapbox-earcut-2.1.0.ebuild b/dev-python/mapbox-earcut/mapbox-earcut-2.1.0.ebuild
new file mode 100644
index 000000000000..07ca7c04fbe6
--- /dev/null
+++ b/dev-python/mapbox-earcut/mapbox-earcut-2.1.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=scikit-build-core
+PYPI_VERIFY_REPO=https://github.com/skogler/mapbox_earcut_python
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings to the mapbox earcut C++ library"
+HOMEPAGE="
+ https://github.com/skogler/mapbox_earcut_python/
+ https://pypi.org/project/mapbox-earcut/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND="
+ dev-python/numpy:=[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-python/nanobind-2.9.2[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+DOCS=( CHANGELOG.md README.md )
+
+python_test() {
+ rm -rf mapbox_earcut || die
+ epytest
+}
diff --git a/dev-python/msgspec/msgspec-0.21.1.ebuild b/dev-python/msgspec/msgspec-0.21.1.ebuild
index 395498e7489a..10c4753dfa6f 100644
--- a/dev-python/msgspec/msgspec-0.21.1.ebuild
+++ b/dev-python/msgspec/msgspec-0.21.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~alpha ~amd64"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index f8d343817944..70c5afdb5913 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -2,3 +2,5 @@ DIST narwhals-2.24.0.tar.gz 661143 BLAKE2B af72a6a3b2e6bed10ba77f7243c64fc454dce
DIST narwhals-2.24.0.tar.gz.provenance 9942 BLAKE2B 3db6a7198e6628468845ac6b46ab3db9ebef9d5f06822866f613c82d6bd5382bd272787276d5ecb811515c070d2c938673b1fa1b80d8f66ab1377f4fe326084b SHA512 be3f588387bb1f8d2b1b0091b3c0a14dd2a556f49ce0da996660bc0b3adc831e3f023d25759c1638e868eab4003dad35c32c939b8afa6148fe6fee222ba34a96
DIST narwhals-2.25.0.tar.gz 677076 BLAKE2B 3a1630bf71ca2f6dfa77c2702ef5f227de8d5d3e52ea563183edd6d3928386bb550206f1c9fffaf3c53599eaae051e8fa02facec8f607fec13a6573199571c9b SHA512 225190b5e31f3fd5ac514527bd8dcb3c50ae7f4abd3620ae1cf5a28b5f88b5c115b590705eb3c63de97dd8c5e172fd892286c3f896439815a3a83c076c18b3ba
DIST narwhals-2.25.0.tar.gz.provenance 10179 BLAKE2B 37ae8a1329c6676e349ad725e743d6eaff306a55fe4e1ce9a4a95ee0dd4d68cb41f4e92fa93ed8dbd98ca3460744b6dcc2894eb4a6ce979e2deb9de066a5f919 SHA512 89a3a5fab107d06b619de9a62b5c3a21a808ea117ba9517004fa6b715c16e5399020e60d5cac2d7278b9a3e689ed70e9dc56efad24e3900941774058d9274691
+DIST narwhals-2.26.0.tar.gz 686970 BLAKE2B 145d115bb50f94519de8a734fc98f0473d4d7f4a2d2ede0035dfdaeb1e9d571f4950620127e4f9ca1ba79fe326e3985a72b81924a7449710d7f97217ff1aed92 SHA512 39f9273e785565b39aa4e34602e7484002dd515deb47ce457d48f1365b047bcd8c53cf66f8cd6ada024a9937b2224de6f8037b1beb8340c07317667fe7e54076
+DIST narwhals-2.26.0.tar.gz.provenance 10073 BLAKE2B e22d566a8d8004daaf6276d91a6866f186f2ed88ce17974daee46bcca0fdc5ba7466173d87ece8646a1af1886192773b2bbc1607a924ec1e13c5c6a1b01b2b07 SHA512 2cdc70379ba0b5adab29b64762584aa5de69c6f3e436922e132d7a35f0fcedb2a7743848a8149cb4a4f3c44669c82f880c764a62a1d489a29f458ed9092cd431
diff --git a/dev-python/narwhals/narwhals-2.26.0.ebuild b/dev-python/narwhals/narwhals-2.26.0.ebuild
new file mode 100644
index 000000000000..359955646416
--- /dev/null
+++ b/dev-python/narwhals/narwhals-2.26.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYPI_VERIFY_REPO=https://github.com/narwhals-dev/narwhals
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extremely lightweight compatibility layer between dataframe libraries"
+HOMEPAGE="
+ https://github.com/narwhals-dev/narwhals/
+ https://pypi.org/project/narwhals/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+BDEPEND="
+ test? (
+ >=dev-python/pandas-1.1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-13.0.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-env )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # segfaults
+ # https://github.com/apache/arrow/issues/47252
+ 'tests/modern_polars/unpivot_test.py::test_unpivot[pyarrow]'
+ # fragile to parallel merges that can cause non-atomic .dist-info
+ # changes
+ tests/system_info_test.py::test_get_deps_info
+ )
+
+ epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow"
+}
diff --git a/dev-python/openapi-core/files/openapi-core-0.23.1-deps.patch b/dev-python/openapi-core/files/openapi-core-0.23.1-deps.patch
new file mode 100644
index 000000000000..706206b41e79
--- /dev/null
+++ b/dev-python/openapi-core/files/openapi-core-0.23.1-deps.patch
@@ -0,0 +1,89 @@
+From 080936641de41f2ba533f3ce02832be14330686b Mon Sep 17 00:00:00 2001
+From: p1c2u <maciag.artur@gmail.com>
+Date: Fri, 29 May 2026 11:20:19 +0100
+Subject: [PATCH] Upgrade jsonschema-path 0.5 schema-validator 0.9
+ spec-validator 0.9
+
+--- a/openapi_core/templating/paths/finders.py
++++ b/openapi_core/templating/paths/finders.py
+@@ -18,6 +18,8 @@
+ from openapi_core.templating.paths.protocols import PathsIterator
+ from openapi_core.templating.paths.protocols import ServersIterator
+
++DEFAULT_SERVER = SchemaPath.from_dict({"url": "/"})
++
+
+ class BasePathFinder:
+ paths_iterator: PathsIterator = NotImplemented
+@@ -63,7 +65,7 @@ def find(self, method: str, name: str) -> PathOperationServer:
+ class APICallPathFinder(BasePathFinder):
+ paths_iterator: PathsIterator = TemplatePathsIterator("paths")
+ operations_iterator: OperationsIterator = SimpleOperationsIterator()
+- servers_iterator: ServersIterator = TemplateServersIterator()
++ servers_iterator: ServersIterator = TemplateServersIterator(DEFAULT_SERVER)
+
+
+ class WebhookPathFinder(APICallPathFinder):
+--- a/openapi_core/templating/paths/iterators.py
++++ b/openapi_core/templating/paths/iterators.py
+@@ -122,6 +122,9 @@ def __call__(
+
+
+ class TemplateServersIterator:
++ def __init__(self, default_server: SchemaPath):
++ self.default_server = default_server
++
+ def __call__(
+ self,
+ name: str,
+@@ -136,7 +139,7 @@ def __call__(
+ or spec.get("servers", None)
+ )
+ if not servers:
+- servers = [SchemaPath.from_dict({"url": "/"})]
++ servers = [self.default_server]
+ for server in servers:
+ server_url_pattern = name.rsplit(path_result.resolved, 1)[0]
+ server_url = server["url"]
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -67,11 +67,11 @@ aiohttp = {version = ">=3.0", optional = true}
+ starlette = {version = ">=0.40.0,<1.1.0", optional = true}
+ isodate = "*"
+ more-itertools = "*"
+-openapi-schema-validator = ">=0.7.0,<0.9.0"
+-openapi-spec-validator = "^0.8.0"
++openapi-schema-validator = "^0.9.0"
++openapi-spec-validator = "^0.9.0"
+ requests = {version = "*", optional = true}
+ werkzeug = ">=2.1.0"
+-jsonschema-path = "^0.4.5"
++jsonschema-path = "^0.5.0"
+ jsonschema = "^4.23.0"
+ multidict = {version = "^6.0.4", optional = true}
+ aioitertools = {version = ">=0.11,<0.14", optional = true}
+--- a/tests/unit/templating/test_paths_finders.py
++++ b/tests/unit/templating/test_paths_finders.py
+@@ -6,6 +6,7 @@
+ from openapi_core.templating.paths.exceptions import PathNotFound
+ from openapi_core.templating.paths.exceptions import PathsNotFound
+ from openapi_core.templating.paths.exceptions import ServerNotFound
++from openapi_core.templating.paths.finders import DEFAULT_SERVER
+ from openapi_core.templating.paths.finders import APICallPathFinder
+
+
+@@ -195,13 +196,12 @@ def test_returns_default_server(self, finder, spec):
+
+ path = spec / "paths" / self.path_name
+ operation = spec / "paths" / self.path_name / method
+- server = SchemaPath.from_dict({"url": "/"})
+ path_result = TemplateResult(self.path_name, {})
+ server_result = TemplateResult("/", {})
+ assert result == (
+ path,
+ operation,
+- server,
++ DEFAULT_SERVER,
+ path_result,
+ server_result,
+ )
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index 8e96f9240dc5..eda9b9a4b412 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -8,3 +8,5 @@ DIST platformdirs-4.11.5.tar.gz 34823 BLAKE2B f293190f29e9fa5417bd2eb4ce0f103948
DIST platformdirs-4.11.5.tar.gz.provenance 9871 BLAKE2B 026412ddd8cf20de7dc7b43c2cb02cb4812a537bcba18dcec5680d70ac8bb2deae31798fab48f288009dbf0360f94c72fe04332a38d415bc1cb59353c7de0293 SHA512 69e8fcfb25ac561c65562fa08205876fe47ea59d98f8fa53378871af81a0b213d6f3d13df883b54823687d8e91c031a666fda7588b280aa644ea1c4352c9c812
DIST platformdirs-4.11.7.tar.gz 35127 BLAKE2B 1cd3f4461c0f1c2c1c7ac62491d23a7d57ad14fb4f1a58f0ce78f72ea6fd9cc7ac2428dad2129a3ca70335377085a7854cd4d45ec229b178c65339377d3f439d SHA512 717cfe7407e3afcbd9a115d4a7758d8e70c96f7b26479c8d3144bc41aebe87852197b534a86c11c0c3ed01687955aacd049c656062fb3ca4e802476872a65197
DIST platformdirs-4.11.7.tar.gz.provenance 9640 BLAKE2B 2cbc679cbcabea84ba9533d4aedd50a9339f2c727823dab79726aa8d005fb8a4e65995b65b6df3d9924290d4c8f9e3266a459353eb713509af967d4536fe0acd SHA512 814547814683965b3285c82b66747b7c712ef01ec92e90be5ef4b50d9bb0e103cbcdc848dd7b27c2aa95dccbb4f813c64bc3dd76cb51bc9ce69b518cf3540f18
+DIST platformdirs-4.11.8.tar.gz 37182 BLAKE2B 223120ca204637bfa8b1f13182ea73aaf03d9d0abd6cba6a190e587fb9c3a7c27678ebe2893a662ada540e2de1fcd35e8bcd1b6caf52c0e8b0d696aeb522d6fd SHA512 eaca02bb4fd5526b68cd820cdddfbb2fc9a837d8a7c0f18afd2871b134738ec180406e9f886ad318b7c1812a751055f958756ccdd8942681fe78b0976c2f6eb5
+DIST platformdirs-4.11.8.tar.gz.provenance 9930 BLAKE2B 3039cea46b90560c85320e0f6dfc5d851efb047df90b3596ea1144bc3e1f09355a355b992885571459d18d7bfd9035f30092efed476f2c1c11e0d3c5a109ac3b SHA512 ec6d06cdf399f660f639fc741839244094cc6028c037b9ab24e66cdda1e91aa2ee7819d5b02c4e3adfa651d4cd0cd37374da580bbf5424ef973719e2cfa48606
diff --git a/dev-python/platformdirs/platformdirs-4.11.8.ebuild b/dev-python/platformdirs/platformdirs-4.11.8.ebuild
new file mode 100644
index 000000000000..97987e113428
--- /dev/null
+++ b/dev-python/platformdirs/platformdirs-4.11.8.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE="
+ https://pypi.org/project/platformdirs/
+ https://github.com/tox-dev/platformdirs/
+"
+
+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"
+
+BDEPEND="
+ test? (
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "hatchling' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "${PN}"
+ version = "${PV}"
+ description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
+ EOF
+ # sigh
+ cat > src/platformdirs/version.py <<-EOF || die
+ __version__ = version = '${PV}'
+ __version_tuple__ = version_tuple = (${PV//./, })
+ EOF
+}
diff --git a/dev-python/pylatexenc/Manifest b/dev-python/pylatexenc/Manifest
new file mode 100644
index 000000000000..00533856fe25
--- /dev/null
+++ b/dev-python/pylatexenc/Manifest
@@ -0,0 +1 @@
+DIST pylatexenc-2.11.tar.gz 165743 BLAKE2B 88c035b894fe3531f567a9575f7cac79f60350996a621df6074ad4cc432a450525bae3933af01fb6f0c1c9aded190ee8898a135998aff09a45e6f21b3ccdd602 SHA512 a885ca5178bcb0257ce594a90f0268a4287e9a7ce604c059102265476375082344d07e9d112aeb3631a1d446a273f5f0439e94302cde9b50290dfa1caaa6e9f6
diff --git a/dev-python/pylatexenc/metadata.xml b/dev-python/pylatexenc/metadata.xml
new file mode 100644
index 000000000000..7140dc76e283
--- /dev/null
+++ b/dev-python/pylatexenc/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <stabilize-allarches />
+ <longdescription>
+ Simple LaTeX parser providing latex-to-unicode and unicode-to-latex conversion.
+ The pylatexenc.latexencode module provides a function unicode_to_latex() which converts a unicode string into LaTeX text and escape sequences. It should recognize accented characters and most math symbols. A couple of switches allow you to alter how this function behaves.
+ You can also run latexencode in command-line to convert plain unicode text (from the standard input or from files given on the command line) into LaTeX code, written on to the standard output.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/pylatexenc/pylatexenc-2.11.ebuild b/dev-python/pylatexenc/pylatexenc-2.11.ebuild
new file mode 100644
index 000000000000..b241fd72ceba
--- /dev/null
+++ b/dev-python/pylatexenc/pylatexenc-2.11.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple LaTeX parser providing latex-to-unicode and unicode-to-latex conversion"
+HOMEPAGE="
+ https://github.com/phfaist/pylatexenc/
+ https://pypi.org/project/pylatexenc/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-env/Manifest b/dev-python/pytest-env/Manifest
index 83616badeef3..4c5e0235520b 100644
--- a/dev-python/pytest-env/Manifest
+++ b/dev-python/pytest-env/Manifest
@@ -1,4 +1,4 @@
-DIST pytest_env-1.6.0.tar.gz 16163 BLAKE2B eb7c69bbc6dbf6acbe4638984e58a1142639a143c915011b2ed14a55f7030ebd688e6781bbfbe61b2e304756619970ca1c8d90cfaade0be0ed49a504bf1bd9b5 SHA512 3b5e0dc01654dd56497c45e03e4372c9f1be193ef3210ed1a48a09b20f4033e6f1a62fcfbf726dd43c1a4eed4e1f26095c3f1c1b510d428690e2e7349f228ea6
-DIST pytest_env-1.6.0.tar.gz.provenance 9475 BLAKE2B e1aac6bf68473e1e74fb0d23bbc37dc7c5c0b429124df164985e8523bdfe50491ff4a6faadc404393f8bd44b45ec8b48f825f6482bc21606466d6d8a4b7db770 SHA512 023891954a67fb254ae5277d74c78e7f3218ca315b672883d7156687879ca24b69bc2b8dc1f887d80ac125b9c434300af3645fce5c2e4eb06805ef395d9ac869
DIST pytest_env-1.7.0.tar.gz 16408 BLAKE2B ff03e9124d518523018e699205b7629dde5e8c72a1392a0ff215cd9abb890bfce8917c9bdc95746423205df3c37513b739fab40a39a1175e755cbeb6374e9167 SHA512 071eead1a149ae1a3fb219e8573a8faa5f185550bff8d2216d56b3a69e71dc34385cf8a6fc771352a82b3e25a3d7311fd92c65c91ebf1e8022095ade5e2052b4
DIST pytest_env-1.7.0.tar.gz.provenance 9812 BLAKE2B 864808526fd573d78c2552b5716f44143d1b1de8c02a5e0a9b98c817365e10e55075f96ab59da456d2c20de697a4b32dec53edcb232936250a8b56af5613b494 SHA512 26233daa7206e899b8baf36a3590bc2ef0a7d8fb2931e01d8555c51a8a6c9aadd1dc92b4271298665adec65038f19b29c1ac8b070c262a9494b06fa9bbae2827
+DIST pytest_env-1.7.1.tar.gz 17091 BLAKE2B 64b726da3660c87456a52d89b25b32be3bd3c0d08df31a8f0f5eabc73ea9d539a057a9d9594a0150bf221bec8a8c816d5fdc5903e319e1c6b2f637eb9a64c0e0 SHA512 d51e3bbff89f27cc082a4459c64ef46e9c97f33188d048200c18d866bc282949a361de63fbf291c22b238b1eac078a8945eb1cfb65dac6ca495084e2e0df5e02
+DIST pytest_env-1.7.1.tar.gz.provenance 9767 BLAKE2B 4a0563d9fdff25824fc5e0f6be2ec53b8ad226719100b325bb251c6a6797098bcba13dbe001440cd2223749188dff61e227d7eca936541d5a0a8404b287f0ef5 SHA512 1f25f4f74de81a53a9eb141ab56bfdce0757bbf1d19d776e25810b96f39acb3b1928670fbac2663a6bf4beb275cb01810e2811611c236afc4f3dc4501af36aec
diff --git a/dev-python/pytest-env/pytest-env-1.6.0.ebuild b/dev-python/pytest-env/pytest-env-1.7.1.ebuild
index 53377984e1c8..91585a3371ef 100644
--- a/dev-python/pytest-env/pytest-env-1.6.0.ebuild
+++ b/dev-python/pytest-env/pytest-env-1.7.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
RDEPEND="
>=dev-python/python-dotenv-1.2.2[${PYTHON_USEDEP}]
diff --git a/dev-python/python-lsp-ruff/Manifest b/dev-python/python-lsp-ruff/Manifest
index 79ae7faf0fac..bc5e027a605e 100644
--- a/dev-python/python-lsp-ruff/Manifest
+++ b/dev-python/python-lsp-ruff/Manifest
@@ -1,3 +1,4 @@
-DIST python_lsp_ruff-2.3.1.tar.gz 17421 BLAKE2B 304db767fbe03857f85c54257d431146b812ddf1a0186b31eec48a73565cafe998453af19ef7c6919f9a007b5775ac361a619ee762589d00ee7f53e641158235 SHA512 a30e7a40a9962b59b61e9d9501c67e615e7f74da041aa13a68818f2c4746e17f576ea1bce486cf0057442b96e4795c7b4be3a6b22dde8f7f94bff14db920dca1
DIST python_lsp_ruff-2.3.3.tar.gz 17361 BLAKE2B b7b143ba12851c0325fa2b07bb39fba7be375d5ce2bd7dcfc5d72f6a38cff9d888d0ad1530bc85cbb272091b51575f55997545877080be3972e50979eafb8471 SHA512 ed4c2fb45876d4258a17a2dc93cbed28137537013953a40d5b39996663e09df8a8a618f5f232a473d585707705e8eecd66a98be86e9598c9af80acdec7394e95
DIST python_lsp_ruff-2.3.3.tar.gz.provenance 10248 BLAKE2B f65f4e5d6dac45824106fd8289a240a40bb9259bd28ea716cc2ad40ec35ba72ee03d85db7aab36ec369a67033b771013ff5fd34b3289ba54aa5b0d2b3eac7208 SHA512 f0c7dcd60683f5657321439318e2a308f7fe4572ffc4230c45be94de30f06ceb0a4df204332db9e3096da8ac02815a4c35084becf9e4d86767d52df35cfef2c0
+DIST python_lsp_ruff-2.3.4.tar.gz 17397 BLAKE2B 87fb551d46333a0a3e72cbf949b6d263cea146fd33f87b9d93e433a79070da8c5b73294146c4117d2e1e1a8c7c6e710f6a6b77ee84865b38a95223c4e1c3a05a SHA512 862c0fc24520b2f1119de35aa3b3a08710999436bfeb8e123875ec16a82e20ff1b20418e6171c6da96acbcc62d4090b5c90aed0112ec8ca1536d8f04ff7822b3
+DIST python_lsp_ruff-2.3.4.tar.gz.provenance 10060 BLAKE2B 7170280a19fcaabbfa4500e97b4490d52ff934499ffeb2824016097bdf4f06c072dcbd603c4fcf9c74a05f51bff1d66dea22787e3ebab8246a52da4d4469fde7 SHA512 c2429e6c617b3c13e3263956cefd5a5c97682915cd4648ea9ea4fd962dba0a6c7ec31b55322e9a9c23aa40fa5f58cb9e8414bccd9bc38d300bdf0afbfa1dac32
diff --git a/dev-python/python-lsp-ruff/python-lsp-ruff-2.3.1.ebuild b/dev-python/python-lsp-ruff/python-lsp-ruff-2.3.4.ebuild
index 1c9e3d5710ab..3942ab9019ce 100644
--- a/dev-python/python-lsp-ruff/python-lsp-ruff-2.3.1.ebuild
+++ b/dev-python/python-lsp-ruff/python-lsp-ruff-2.3.4.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/python-lsp/python-lsp-ruff
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1 pypi
@@ -33,3 +34,10 @@ EPYTEST_DESELECT=(
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip Python-level dep on ruff, since we don't install .dist-info
+ sed -i -e '/ruff.*>=/d' pyproject.toml || die
+}
diff --git a/dev-python/python-slugify/Manifest b/dev-python/python-slugify/Manifest
index af80a0330af7..3b30aae33c60 100644
--- a/dev-python/python-slugify/Manifest
+++ b/dev-python/python-slugify/Manifest
@@ -1 +1,2 @@
DIST python-slugify-8.0.4.gh.tar.gz 14098 BLAKE2B 684061ef5f1ee96d727caeb123957709ed391c4a746ef8a40945294ae9278947c18bd8be3d51fd2d9466b420f27ce833a54b84882375617004f9909a683090a9 SHA512 b401e574f23fa77152f8c64f15263766ed7d081759e93c28fce5fa32495eb4921701030b395ca1c738ca46a509e54bc987d81ff07fa602dd42bfa630a49aa4a0
+DIST python_slugify-9.0.0.tar.gz 60189 BLAKE2B c1459a0600301eab6005a49e58ee9fa18199539d80df99b37c4823a6952fcce2b8f8d99590f3e6b5ca08660fd766a290530e09f1ce093f38494370ab9ed4bc1a SHA512 2f2ddc0dee7c790a96dc38f84c3dcc006a7e22c3dd67b9a878461dbed03f6cc0b0c56b327dd0ec0b497ee730d27d2a8c96120b72f7233f199ba912868590cd94
diff --git a/dev-python/python-slugify/python-slugify-9.0.0.ebuild b/dev-python/python-slugify/python-slugify-9.0.0.ebuild
new file mode 100644
index 000000000000..438081ec48f0
--- /dev/null
+++ b/dev-python/python-slugify/python-slugify-9.0.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python Slugify application that handles Unicode"
+HOMEPAGE="
+ https://github.com/un33k/python-slugify/
+ https://pypi.org/project/python-slugify/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/text-unidecode-1.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/anyascii[${PYTHON_USEDEP}]
+ dev-python/unidecode[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/python-socks/Manifest b/dev-python/python-socks/Manifest
index ae9cd8361325..d57ca1643496 100644
--- a/dev-python/python-socks/Manifest
+++ b/dev-python/python-socks/Manifest
@@ -1,2 +1,3 @@
DIST python-socks-2.8.2.gh.tar.gz 33105 BLAKE2B dbc2492070ea6992552eecdfeb47cdc4299491a1350c14d04bce41695470516d5e05a0b07f4d0b0434348355c9dd32b5de30a186f5a9febee573dd737d42cd46 SHA512 0ab02015a0c409548e53b829e7af37ba8c2d88e8857aae481391fb8c86b9156ec47e155940b1cbe05692ad9a7cd02798e530e36717f02efd472ea86cae5a5865
DIST python-socks-3.0.0.gh.tar.gz 181844 BLAKE2B 390769e03331b7e97d66496110d1414ed5494937a701ba356d81d6dd3c7d22b1bed1ae121569fe6da281b2660ce02bf50bcd60a6b04bde9ea0f7cf2faf858960 SHA512 641e4d2402212ce5eac30aea1919269dbe4d9773994b60fe08d734203b1084ea4e47df40477bb6f18117765286eeddf3bb85f39e289f7d19a3de1c56dfe6b3e7
+DIST python-socks-3.1.1.gh.tar.gz 181886 BLAKE2B 88c2801fd1e3a65821bda5c91a0f79a54e3949ed03e80a4f361a4973b5833ac6c5f91915e6114569c9e9fa0092d30c92371ac53fb415cdf4f13d9c45e0df47a6 SHA512 4907f88b88054e4b7574a9d07f3e665d78cfdde37c10fa6e1a646bf77ad9273214384bc7ef9b4f44c287d0c117c40b7cd213cc99232e7408d6613796d4177d54
diff --git a/dev-python/python-socks/python-socks-3.1.1.ebuild b/dev-python/python-socks/python-socks-3.1.1.ebuild
new file mode 100644
index 000000000000..364e8b802100
--- /dev/null
+++ b/dev-python/python-socks/python-socks-3.1.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="SOCKS4, SOCKS5, HTTP tunneling functionality for Python"
+HOMEPAGE="
+ https://github.com/romis2012/python-socks/
+ https://pypi.org/project/python-socks/
+"
+SRC_URI="
+ https://github.com/romis2012/python-socks/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# curio is not packaged
+# asyncio is the only backend we have, so dep on its deps unconditionally
+# TODO: revisit
+BDEPEND="
+ test? (
+ >=dev-python/flask-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/starlette-0.49.3[${PYTHON_USEDEP}]
+ >=dev-python/tiny-proxy-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.30.0[${PYTHON_USEDEP}]
+ >=dev-python/trustme-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/uvicorn-0.39.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.22.0[${PYTHON_USEDEP}]
+ )
+"
+
+# Test markers exist to exclude trio etc if needed
+EPYTEST_PLUGINS=( anyio pytest-{asyncio,trio} )
+distutils_enable_tests pytest
diff --git a/dev-python/sip/files/sip-6.16.1-legacy-abi-without-minimum.patch b/dev-python/sip/files/sip-6.16.1-legacy-abi-without-minimum.patch
new file mode 100644
index 000000000000..b3f1afcfda4c
--- /dev/null
+++ b/dev-python/sip/files/sip-6.16.1-legacy-abi-without-minimum.patch
@@ -0,0 +1,27 @@
+From 09598895c607f3e41f0249ade217ace0a4da6437 Mon Sep 17 00:00:00 2001
+From: Phil Thompson <phil@riverbankcomputing.com>
+Date: Sun, 23 Aug 2026 12:18:00 +0100
+Subject: [PATCH] Bug fixes
+
+- Fixed a regression in SIP v6.16.1 that meant that bindings using legacy
+ABIs would not build if they didn't specify `%MinimumABIVersion`.
+Resolves #114
+---
+ sipbuild/generator/parser/parser_manager.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sipbuild/generator/parser/parser_manager.py b/sipbuild/generator/parser/parser_manager.py
+index 8f2501ff..83c63310 100644
+--- a/sipbuild/generator/parser/parser_manager.py
++++ b/sipbuild/generator/parser/parser_manager.py
+@@ -1938,6 +1938,10 @@ def _finalise_abi_version(self):
+ # We have no minimum version information from which to derive a
+ # major version so use the default.
+ major = DEFAULT_ABI_MAJOR
++ elif major <= 13 and not minimums:
++ # Allow older ABIs that don't specify %MinimumABIVersion. This
++ # case can be removed in SIP v7.
++ pass
+ else:
+ # Check that this major version is supported and that any minor
+ # version meets the minimum requirements.
diff --git a/dev-python/sip/sip-6.16.1-r1.ebuild b/dev-python/sip/sip-6.16.1-r1.ebuild
new file mode 100644
index 000000000000..f18bc365fc4a
--- /dev/null
+++ b/dev-python/sip/sip-6.16.1-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings generator for C/C++ libraries"
+HOMEPAGE="https://github.com/Python-SIP/sip/"
+SRC_URI="
+ https://github.com/Python-SIP/sip/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2 BSD"
+SLOT="5"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ # https://github.com/Python-SIP/sip/issues/114
+ "${FILESDIR}/${P}-legacy-abi-without-minimum.patch"
+)
+
+distutils_enable_sphinx docs \
+ dev-python/myst-parser \
+ dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ # the latest ABI version gets tested by default, but ABI 14
+ # requires python3.15 or higher
+ local epytestargs=()
+ [[ ${EPYTHON} =~ python3.1[2-4]t? ]] &&
+ epytestargs=( --sip-abi-version=13 )
+
+ epytest "${epytestargs[@]}"
+}
diff --git a/dev-python/siphash24/Manifest b/dev-python/siphash24/Manifest
index cb15cbe1c94e..597adc625d86 100644
--- a/dev-python/siphash24/Manifest
+++ b/dev-python/siphash24/Manifest
@@ -1,2 +1,4 @@
DIST siphash24-1.8.tar.gz 19946 BLAKE2B b6c54c6ee528c01cc575985144bb2c27cc1ef7411d66ec9ec1a15fa3c48afa4fa53ad19d2d3b88af32b2cbbe69def2f5e1567ae4bbabdeb2f75e525a657a5810 SHA512 90511e7d6105f48527fd5927b0dc89f477ca0ae122b3d793bd666b187a3236866bb3c51e3282ac455bf4f26e9fa087ca4215b9ad8a3003fa10d3b76f67ee2ec5
DIST siphash24-1.8.tar.gz.provenance 9349 BLAKE2B d3031c3fe404bbe5817e333830b7b0dec9c99e984e819e2a727764f1f03bfc44f6366be5cdc0465b47cae8d3946b8771d23f338d25bc7e29c9c5fe63e67bfda0 SHA512 1fe7a226097f86fbe6688863dfdfd92be253ca3f9fed651c4288b3def99526d5cf47c638eea0e108ec97a74e1c9b32b49deebbbad579079ed22caafa1db50bff
+DIST siphash24-1.9.tar.gz 20270 BLAKE2B e7e8c3d09cbbecc133c597a5cb5bf9eaaee98168dbd8e5e8bc484bf2d7370068e2e519dbfaacc08c8a7b473d6d3043e1c757a8ac7ff97b0aa4e5965dad40a14a SHA512 08d1fa287cc97d12359f3607a67757f4eb560515ff9fd69b024f3f20d1929098528ca7b7f2a77a438da61bb103f76c83ca48392560f668c45f1e56fc6cbb3d6d
+DIST siphash24-1.9.tar.gz.provenance 9938 BLAKE2B 57330e88e638ee1f8f6d3205780e6af60751914609da860f29b7a69ccf903a4dc1abdeaf802a3336bd551ecba9a518166638facf22e8f8beec1aacf39d78b424 SHA512 aabb3dd3de920192b83b99ddedbaf0f0dc230d4d7e6c26c68f04e6c48ab3b495b2d8209a361136ce16d089d3c40047c20704386002c3595a9aa9c9a269788f2a
diff --git a/dev-python/siphash24/siphash24-1.9.ebuild b/dev-python/siphash24/siphash24-1.9.ebuild
new file mode 100644
index 000000000000..fc1c4e88278f
--- /dev/null
+++ b/dev-python/siphash24/siphash24-1.9.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/dnicolodi/python-siphash24
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Streaming-capable SipHash-1-3 and SipHash-2-4 Implementation"
+HOMEPAGE="
+ https://github.com/dnicolodi/python-siphash24/
+ https://pypi.org/project/siphash24/
+"
+
+LICENSE="|| ( Apache-2.0 LGPL-2.1+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+DEPEND="
+ dev-libs/c-siphash
+"
+BDEPEND="
+ >=dev-python/cython-3.1.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/sphinx-autodoc-typehints/Manifest b/dev-python/sphinx-autodoc-typehints/Manifest
index 166104421d59..78bcaee49a74 100644
--- a/dev-python/sphinx-autodoc-typehints/Manifest
+++ b/dev-python/sphinx-autodoc-typehints/Manifest
@@ -1,8 +1,8 @@
-DIST sphinx_autodoc_typehints-3.12.1.tar.gz 84421 BLAKE2B 5807639a01751209119ef11a8a5ea1f76d46e3115da59d3bc2e79f5d195944f355d487681ec17fb12ead0be83cd3c3408ab3fecb68b7897cc52b4e62d0e427fd SHA512 6cf8eca5a01deff3a73f759af72cebd1de0c37210f6e4e9134cd7d96f49d0cc56ca1f2884c799e652c11ac86ec52a03dcee31fcd3af75ce71b4e7216e384923e
-DIST sphinx_autodoc_typehints-3.12.1.tar.gz.provenance 10280 BLAKE2B 9ca2dc04dda61eaff9986389bb9acbcb7ad3d034dc80dc73a6a264302a5eca8e5ee3db9e290f0dca778c9a4e02954ef2d1a4d07c9e53548354ad9985af1ed55f SHA512 e69f82582a71a8fbe1470cb38c73ea04cde05e03cc282c93e235c31ad814821fbf3386ee081440ee7e678de048a910116135479030d0b83802a12e1d24bbb4d0
DIST sphinx_autodoc_typehints-3.13.2.tar.gz 88492 BLAKE2B c98510386f21e9922767f7cd309e6eb21a8451be19830845c56a4898a15119e812a2286191ba46cdfa66b67515723c332a05f75c35ffeb96a8a9d4804e409061 SHA512 af70ab2145760372c9c0b42085c17d3cf965b71c42bc9b1f953cf3153dadb5dc6a8d346856159fd424fd5792a7bdf4f5a1a0a89b254d393048cb247cb2ad1291
DIST sphinx_autodoc_typehints-3.13.2.tar.gz.provenance 10041 BLAKE2B 57d4b5d3fd46726c71eee70cc715883d0412c00c56777032263eb8dbc5c81cc07e300dea3fe7ecf6716bc9a5215b238d96a292e56d28602e6e8d857ae770e3f3 SHA512 4b3698e630f789e49f92c590dd085605cf9bfd2204498c53fa397fcb32cde4d5583d7e8583cf4c7fd15c7b6050d179492aae28d43b8ca6af1b1701ee8755eeb7
DIST sphinx_autodoc_typehints-3.13.4.tar.gz 92020 BLAKE2B a779fb9f55d0d4bb34174f9c16d65fcc2d5cdca8dfaf6012b25cf0c98e8d596ccbe2e5c2074576f581a16d760edbc124af7a24414798445595f1df767adb3c3c SHA512 c96b7b921c1a9420b946091902aeb2b666a6e79f25221aa3bdfac36b5384eb498c60d0a9d2cf04d6a1164d4b2bc6c801f241b29bfc46407bfaf2f83f27a1f263
DIST sphinx_autodoc_typehints-3.13.4.tar.gz.provenance 10000 BLAKE2B 9051daeda979371a7bf67238512430562be8aa83b29db46cc2955d8402dffcd2cb38070eb4c2e82411f001289d43efbb4ae685da9c49c5bfe5299092b465e1f8 SHA512 f2d15633423a043857fafaf7948baa6913a7417a704cac6a61750e8e29276a6644ce39c9f61144451914b25bfafb7c9d9676a57056038d8ee8f352f1e701c57d
DIST sphinx_autodoc_typehints-3.13.5.tar.gz 92932 BLAKE2B 20c8d262aa0458f2e153314d50799cade2a8d37ad8923d1d5dea463c12b4507688acdcb1e8ddb5b9136fc9e8c6b38f776425c2e1ca52cc89ea5aebf0ffd48386 SHA512 b09a7a9599cc4b3f1ed2938c7abc06128c87813e0a83192bb50e7eb36f8346583493740a3c83aee768f441d996ae21c05c6c20db676bb791aac02e7cf78756bb
DIST sphinx_autodoc_typehints-3.13.5.tar.gz.provenance 10227 BLAKE2B 8bc6b35c9f3ff8c4e5087b346524371aa8a6511da7d3ad776f5fb89f1c529695beea84d845ed246816a871b6f48c46d7423f7330b62c93de88f0cdc9b51fd1d2 SHA512 05b8a43e687bdd9fb6011bd556744bf2c69719c00ca3453882108c298637a0a4b7b4390217fdbb62fe13ee1cf60b862018e311d09bedc51a92c3e9f7e4ff3c5e
+DIST sphinx_autodoc_typehints-3.13.6.tar.gz 95235 BLAKE2B e9574881509897dd4822ac70612ef46fb6203812bf1508c0a3939874ecab4e538b5960b58ecc4922f8d23bf4a409453acf826f15cf63de8f048d06afdf6004d2 SHA512 2f3d314a6bb69271468b45ce4e12aef4f888c37d416dfa09e2539d73d016766a7af128f40cb1a747c41085fbd9f8d40e6775bd7f011084b5c66f7b86742681e9
+DIST sphinx_autodoc_typehints-3.13.6.tar.gz.provenance 10227 BLAKE2B c5e584dfa6b6dc7045aa791af8dcc0340713e818bf519f897db85cb46910c580d69415a869f3d32762809fb92ee51303dfc3e87e72c6d071d7bbb62b196e3145 SHA512 235d2185f022e080d47e938fefd8f4f962c48fa6e5582219ca65f43a0a30e757b5b4b1d661f0a1a2867519ec0b9bf0984b4a0eb1d861333728b0ccfcdd502c52
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.12.1.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.6.ebuild
index fc631287b941..238733c448a1 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.12.1.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.6.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
>=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index d0d2ae71c39e..334a1cacab93 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,2 @@
-DIST tifffile-2026.8.16.gh.tar.gz 424743 BLAKE2B 771c8e1fc915a5870abe428fde241698d49ac26e5a8bda27ce3ebc4959470ce77a4a9c99bb527173601b18518f09701e6d902e703c2b0b19e279445245c1cee3 SHA512 60f4fd4dcd07ea926b036e3220f4a2330c0a9974710f12d990080dd5fd4218c88293bad215e152de93d17ad7c7fcc4428c6d91c97cd8747d8ecc3d1f6fa2e3c3
DIST tifffile-2026.8.23.gh.tar.gz 428025 BLAKE2B b6021be6bc47814a09847f610dd1f111317830df31aacaf3d68a793933c5bcfbd625f4607c7ac9c68907db295f8c17148d2b6215d6ef809215863b09ca1a4497 SHA512 86778792b8f156798dba02a3288bc7cff4fd09e1a7feef57104469761699a1c0bf76bebc08fe9e8620c2a368617189cb2dcd5273b1a06bef767629d42f6e4bff
+DIST tifffile-2026.9.9.gh.tar.gz 427709 BLAKE2B 8e935e91b9bc43ec74ed26f0d7b1038b3c2ea9e03cd90b6712d3fc2999fe584954b1baa5111baa1ec00e4ca4e556adde3ee9092ae7031ffd00c690aec06bbc5d SHA512 75256c187bf979d55217b945e1443e2d3d895821c200b96f72a9ba98e4f3c84e879f776e8c7b30e0cefceb6d0ab8770c67d8abc31da8db633f8726b2be53f4d9
diff --git a/dev-python/tifffile/tifffile-2026.8.16.ebuild b/dev-python/tifffile/tifffile-2026.9.9.ebuild
index 49630e1bd1b8..49630e1bd1b8 100644
--- a/dev-python/tifffile/tifffile-2026.8.16.ebuild
+++ b/dev-python/tifffile/tifffile-2026.9.9.ebuild
diff --git a/dev-python/time-machine/Manifest b/dev-python/time-machine/Manifest
index 5fc268e6fdfa..64d6fdf5ddf0 100644
--- a/dev-python/time-machine/Manifest
+++ b/dev-python/time-machine/Manifest
@@ -2,3 +2,4 @@ DIST time-machine-3.2.0.gh.tar.gz 85884 BLAKE2B dc771f17c8089a6f121cf99ad8dcf5f0
DIST time-machine-3.3.1.gh.tar.gz 106731 BLAKE2B 2bfa1278325a8e09b5ce98b9b16fcbe6bc783d0ee45713f341815c12fb0e573d52d5595b2e542139b940cc1136d173c2260523193eaa8a653da5288ab5136904 SHA512 29db83914ffdce0a00a6f84bf4638c1ccaf7d4a3d85e9423cb0b9c5700ee89d11710e754bfb448fde5e9a4cb8acb455143c0896af8ca34919296c06cd1380fe6
DIST time-machine-3.4.0.gh.tar.gz 112256 BLAKE2B 08a915d2e72b1d416d4b8a629bad5de29e9b96166af397d31b47669531b59cf710d8276c2bb2b77799d7f28506b287628bcaef17837190c9a17903f19f159bcf SHA512 539c6be5ed35331698ccd9d95beb969c201c9e8427f19ddd4db0e5edc1a6d22c63960674115964e40bfd59d03cade800a581d68b01f63b927c819042bf5a404d
DIST time-machine-3.5.0.gh.tar.gz 134115 BLAKE2B c7b23c0efcb6e179416bd44d245bcc7bd235f4d46a601c3db3cd0afd5bba01790369f1341ff717549c73326cd4883674ee001231c3aac9a394709186b62bafc7 SHA512 418e5d868995448624dbb63dcb0032801b368d43bb43027e51b5b737b752e879c6bb10029efe302c63018fef290b92148e6925f4aa6e0567c50b54a6166b4d7c
+DIST time-machine-3.5.1.gh.tar.gz 146210 BLAKE2B dddcc578bb23cb038b46c7a37640ce769369febe7d64d97f6ace4293c776b6cb374388bcd5705d7ccfd42000311e86fa214429c07655d1e15f2ac3c73d85c70a SHA512 04b365a010cb1a604a3ea214855bc016890c00795214c1bd09b1ec3d4b858e9428284a6c94308a7510fd3018f4c8974f2dba6836983807975d2994c30eb06be9
diff --git a/dev-python/time-machine/time-machine-3.5.1.ebuild b/dev-python/time-machine/time-machine-3.5.1.ebuild
new file mode 100644
index 000000000000..11af38908765
--- /dev/null
+++ b/dev-python/time-machine/time-machine-3.5.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-2026 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_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Travel through time in your tests"
+HOMEPAGE="
+ https://github.com/adamchainz/time-machine/
+ https://pypi.org/project/time-machine/
+"
+SRC_URI="
+ https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tokenize-rt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" hypothesis )
+distutils_enable_tests pytest
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 146b3d2e91bc..2497c827019d 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -6,3 +6,5 @@ DIST tox-4.61.1.tar.gz 306574 BLAKE2B ab2f4b6d155a02dc7f235811fa358895d982807b40
DIST tox-4.61.1.tar.gz.provenance 9313 BLAKE2B 7cc5c6b23f3b482df6da69287af28b6d0be743fb5368f2c9d8575330d2117c2e14b0c2015d70642bc34648f0b989fcfd905acf2caf8193cd1b6bb437166ff954 SHA512 18b6fa4555123ab881b4e12d4fe6ce85e2c69009836be8655dfc8bc0519154f1ad0cdfe7b9ccd4251375a3c251c3aea500bab0efb7607a3ee0413eade2a6016b
DIST tox-4.61.2.tar.gz 306825 BLAKE2B 71159dd79aef91c04aed340bc56cbb7cb1bc9b0e11655b7d8663ba3fc483a559f730bbb2082b8eceaa7ed845ddaa18dbf78f4c72498a55f47c6d57e5f58fb352 SHA512 8ba3dfd3f1595077b756204b159721f7b28279425b1cbc7f04e46282c9f08b81496827fcf4738fa056ea6da2a82ce85d69e826b89fa7163b7fc57f2fc60e378e
DIST tox-4.61.2.tar.gz.provenance 9818 BLAKE2B b6f6d6d2ac83a7c5598df9ba0942a87a7830ea1b2ba5936fd2653db6febde47187a4f9e705504d4a42d7c898b2b850bc005709d9ffc24f787f4ce0dd62977a78 SHA512 c452837d29391310bdba4fc82ea7d0d6464efa394ed5a6629bb997db9578c9f97bf9322174aafb66212f88c69349f85cf73c587029aa501f7d475a4ecc90227b
+DIST tox-4.61.3.tar.gz 307979 BLAKE2B 895d2b3bf0131a71a51afefa3daee9713121acfeff739af079c00e66400203eb65277a8855e064b7d39fb9de7169ec543310ca2f00da601c772efcb6245dd400 SHA512 83e1f61f28cc865935b3329f5a9d11405ce2622facf5648206e5043cd77aef4fe602c36f12f0f26e21eddb4eda3325f84fd0dbf9cc0cb4c123007e1f729e1c46
+DIST tox-4.61.3.tar.gz.provenance 9438 BLAKE2B 5b7114d82ba2b6435eb2197d18f484a8bb5e9f75ce1c4fa8e68da2d154cac45da4a3a421c95d3a04bfb85cb798fe8842bdeb31fb994f00457b10b8b1c78bfd0e SHA512 379a14692ffc7649d74271c21dae7eee460dd040b7f33d047248c1648449680c4a317acb400f2360ca44764605e5ce6d29359dfa25889e666b5c0e2078a68080
diff --git a/dev-python/tox/tox-4.61.3.ebuild b/dev-python/tox/tox-4.61.3.ebuild
new file mode 100644
index 000000000000..8eb35c40185e
--- /dev/null
+++ b/dev-python/tox/tox-4.61.3.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/tox
+PYTHON_COMPAT=( python3_{13..14} )
+
+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 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${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/python-discovery[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.15[${PYTHON_USEDEP}]
+ ' 3.12)
+"
+BDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} time-machine )
+EPYTEST_RERUNS=3
+# upstream timeouts are quite short
+: ${EPYTEST_TIMEOUT:=180}
+# xdist seems to mess up state between successive implementation runs
+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
+ tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
+ # require tombi
+ tests/session/cmd/test_schema.py::test_schema_tombi_lint
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ epytest -o addopts=
+}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 557e3b095585..6c072c9ae249 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -3,6 +3,7 @@ DIST uv_build-0.11.25.tar.gz 404894 BLAKE2B 6922a5e91c5c657ca5ed90edb0250cbd7192
DIST uv_build-0.11.29.tar.gz 411484 BLAKE2B 4a9250bd8ecb4967c222f5ed0842c6415963a3423b593f59dfb87a2fa343839abb0d77f1cb1f90d69ac45c54722cde8ff68e3e567478f54a0b21ba74fd4d55fd SHA512 c9722cb2575d9d0b50ba36b53b8cb2eae35f18e2da92ea7eab74743354e8b17034172f2c932e381cf158d2d748103d9bcb97ba383e465f7770efc2dc11ae2dc6
DIST uv_build-0.12.1.tar.gz 412371 BLAKE2B b5eb43ce1af6d78dbb68b2445329b90520ac6e9269ff6711270763d43d09cdd3a66ac9cbeab4f52964feea3b0d08559c133cd2510f65403dbf678d7bae3e5588 SHA512 5dda5acdf4a665cbc59a24c657921c81a6a5622fef463da255df2372d48186aed56806311824ede70337f64e8dde797b82386fa4aa2ed11b82fb11047ec2ec67
DIST uv_build-0.12.10.tar.gz 423598 BLAKE2B 363ee130a5da490859d0a2f0122be340f36904218998d332c4d925cd76e5f3fda2218dad501455d602b77bbb50f68463dc4186ad61ee78713aca9c77eead8137 SHA512 759ef57aa5c74698b11c0cd8c6c2b729f2ba31f5966a7ebce61f06b46e260c314d4ef99412875544c6f784fa5df8e4df30ca7ebf3907ee5619916e412dd9dd63
+DIST uv_build-0.12.11.tar.gz 424313 BLAKE2B daa6e52372e12a3985d2d51b7d5dea07a6f79f227a1267e131cc95319556c163abede0d4443e5f48c89e1a35970bade29c6c3cf2ee3178360598933263878902 SHA512 9ac0d0f512fc7262ae5fbecdc95dfef273e05a12ed6cccca7d9053d19e0a7d72c7aa94332d5c4a4a166450c97a5b73661de4c8c686e69924c0f77640840f2a81
DIST uv_build-0.12.3.tar.gz 414444 BLAKE2B f226c1c2bf0b2af538f66095e20c02ad1933afdee62a07eff5f1135692bab47e286f67e7a8f5882e98c61fbb6bf831a85dd56a2d5af2bee6d62d8857a59e56bc SHA512 90d9af3e1a1ff1d7dda21fa38c0ac2d94536e73697ddabb408fb38e2d381498b2401007af0ab31c39cbf3b632aeca2991b3a66d7108e1c5eb7294b3fba8fe107
DIST uv_build-0.12.6.tar.gz 419593 BLAKE2B f6de34befe98b15e30e4a067993fa1763cb9769612e8ed518080fcb91a994cc0d86a0a08b9e784fa5ddf9ab343e4889e2615548b94003835512b2e9ac8495259 SHA512 c609f89b8c0f1decdf64c056084354ae04d6337e27dbd22297b5d462fcba0f0ce29f5a0a40b8f274ac5668f4805d9971b1da5509d10071ee2354f6fe78cc65ee
DIST uv_build-0.12.7.tar.gz 418759 BLAKE2B 94aa33b2644f849a686d80d7f7d365ca8433615d93f27209fca5b21747363cd349d11e887d090420102f06a49977ce963b8f19c24a4280bf82a09943ba08885b SHA512 135f845b3ee6d1925f740917f83f94ec1a7e95aab5ed2db0aa70516c712ab0a143a0e427d3c172fac0bb1fabaa9103718bb2a26c31c9a287e3af65ac0175a245
diff --git a/dev-python/uv-build/uv-build-0.12.11.ebuild b/dev-python/uv-build/uv-build-0.12.11.ebuild
new file mode 100644
index 000000000000..65d94f2051ae
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.12.11.ebuild
@@ -0,0 +1,100 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maturin compiles uv-build executable for every impl, we do not want
+# that, so we use another backend. And since we use another backend,
+# why not dogfood it in the first place?
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="PEP517 uv build backend"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv-build/
+"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/uv-${PV}
+"
+BDEPEND="
+ test? (
+ app-arch/unzip
+ dev-python/build[${PYTHON_USEDEP}]
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # use the executable from dev-python/uv instead of building
+ # a largely overlapping uv-build executable (at least for now)
+ sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
+
+ # replace the build-system section
+ sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
+ cat >> pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["uv_build<9999"]
+ build-backend = "uv_build"
+ backend-path = ["src"]
+ EOF
+
+ # rename to make uv-build find it
+ mv python src || die
+}
+
+python_test() {
+ "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
+
+ local zip_result=$(
+ unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
+ )
+ local zip_expected="\
+Archive: dist/uv_build-${PV}-py3-none-any.whl
+ testing: uv_build/ OK
+ testing: uv_build/__init__.py OK
+ testing: uv_build/__main__.py OK
+ testing: uv_build/py.typed OK
+ testing: uv_build-${PV}.dist-info/ OK
+ testing: uv_build-${PV}.dist-info/WHEEL OK
+ testing: uv_build-${PV}.dist-info/METADATA OK
+ testing: uv_build-${PV}.dist-info/RECORD OK
+No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
+"
+ if [[ ${zip_result} != ${zip_expected} ]]; then
+ eerror ".zip result:\n${zip_result}"
+ eerror ".zip expected:\n${zip_expected}"
+ die ".whl result mismatch"
+ fi
+
+ local tar_result=$(
+ tar -tf "dist/uv_build-${PV}.tar.gz" || die
+ )
+ local tar_expected="\
+uv_build-${PV}/PKG-INFO
+uv_build-${PV}/pyproject.toml
+uv_build-${PV}/pyproject.toml.orig
+uv_build-${PV}/
+uv_build-${PV}/README.md
+uv_build-${PV}/src
+uv_build-${PV}/src/uv_build
+uv_build-${PV}/src/uv_build/__init__.py
+uv_build-${PV}/src/uv_build/__main__.py
+uv_build-${PV}/src/uv_build/py.typed\
+"
+ if [[ ${tar_result} != ${tar_expected} ]]; then
+ eerror ".tar.gz result:\n${tar_result}"
+ eerror ".tar.gz expected:\n${tar_expected}"
+ die ".tar.gz result mismatch"
+ fi
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index a76e7e070117..419b46cc14a9 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -8,6 +8,8 @@ DIST uv-0.12.1-crates.tar.xz 42260544 BLAKE2B decb42423e6d5804ff4b12c956e678b14e
DIST uv-0.12.1.gh.tar.gz 7231201 BLAKE2B d83bab24879f3b92ef842150f3af3d8c08850155f8b7d120c1c4a16f463911b55fe2b2ab6c3e928d654ab1c2db56062094f9ae994bf7f67252ee7ec9d3dc74a4 SHA512 15c84d4b719295c1d9fca178025317d1b808f4c34a572609b78e35382bb12abdc4ba7a3b2bd1bc5576763b655b34b222be15f99c3481419f92a5f74e460ef96f
DIST uv-0.12.10-crates.tar.xz 44161200 BLAKE2B ef5f654005a5c074a2c251471bfe91db9e172b5733ede5e9b5f48a3464194f50e288aeb8afdbd2f0923106380812490bb800506c3c10dca916e994c2c6548a6c SHA512 26676348002e1c3ddfdc772ce6a429ab0d69fe7641a539dba2694a0e946c2f23789e5c8d6ceeaef407efbd20ec4b0fe889463d94c498514462bc19f0d85fff7d
DIST uv-0.12.10.gh.tar.gz 8739701 BLAKE2B afbe730771deffa2a3bf51417700433e050eae158b25f61d3027ce179591a7bd6bf27cebb01f154814d3baa42d1b6fee18e23cf634894c653b56da092f621ee2 SHA512 e9b4cb1bf5f7e65d666f1e4f9a957964508f0f7b531f682e75b9a64a58cf0fe0ead1b1639e0f8ed37df8cbf39cde42fa02d7df2e6cecec3615034907d85127a2
+DIST uv-0.12.11-crates.tar.xz 44156404 BLAKE2B aa6233aef300c43cca0c8cff35e79b0a654daf276fe60624ebad6b2679f4a4521a1c200412c36d8bcd21c684d68527e2f5ca4adcb4ef2483f41bb1f122470772 SHA512 055932bcae92331d5ad7b0127171f3a978b237e3715b72aaf6a0916dbd07b1c3e8ac04cd86819ba236941302ddde1bbdddbe747e3a97ff70a9ed3d15b5e47fe9
+DIST uv-0.12.11.gh.tar.gz 8759415 BLAKE2B c6b761109324bfc95a3f10de8c02cc4be53a6749c731f56cf8d3223a80951b20c7ca5f08d4293e8533fe5af62bccbba851a08caf6aace8fd2874deee3ee81d98 SHA512 a30bb73c80581828520c2e59dfda4ed5022ffd8d9e384e4d2263f67ff1f57d9948d300717dc74d13292042f008632c066afce5d21a24505c9454c85574378e2d
DIST uv-0.12.3-crates.tar.xz 42197452 BLAKE2B 996bb294d37774e0cb5529c34552d20877cd82a3d063b6e4dc1f6feff05a7822a91c44408a970f038d3045312be0edd4c9e8d34f6eebc04d71bd4d2ffa0184ee SHA512 8de33956c5a603fb4aa1bb5ab6db68c537d7523a84f3092057f562b1209bc976b0bc64cc6ed76cbf1b0edb4981b6a41765fa5e2729a487e4e2322052aa08b8a4
DIST uv-0.12.3.gh.tar.gz 7273161 BLAKE2B 706a2297090b13c6f731d25f55ae8c2225e3b9bd820c61814f512c1e04d98d2e46ce5bfac6ec6ea346dbce1663aea644384b37663b53d64a08a90b48217bdb0d SHA512 a4933b9b9b852dee2485800ad82ee3be111a4a5a437ab32d5064cfd4004e124ba733294a546a097379c74cf1fc234d1da0488aec7725037c7b967ec1aa862a71
DIST uv-0.12.6-crates.tar.xz 44170700 BLAKE2B 915b68dc4355b944c10c497cd500fce7ceccbabfc9fb8dc4291fa91932737e8fe88c24022b4f2bd28b8bd64aed7568c88a25757619efdb04c8f6e2de9522c1a5 SHA512 d4d5bce3625ce937c6237ad12ef89fd46ad5c17573c7278db7ff41ca069bfe19f22593a8e63ca32e4d7344ffce0ec18b11be11354db956f5657759bd5e037a54
diff --git a/dev-python/uv/uv-0.12.11.ebuild b/dev-python/uv/uv-0.12.11.ebuild
new file mode 100644
index 000000000000..9826f9045941
--- /dev/null
+++ b/dev-python/uv/uv-0.12.11.ebuild
@@ -0,0 +1,151 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+RUST_MIN_VER="1.96.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=${PV}
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
+ CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
+ Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ dev-lang/python:3.13
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # force thin lto, makes build much faster and less memory hungry
+ # (i.e. makes it possible to actually build uv on 32-bit PPC)
+ sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
+}
+
+src_configure() {
+ local myfeatures=(
+ test-git
+ test-pypi
+ test-python
+ )
+
+ cargo_src_configure --no-default-features
+ # otherwise, rustc/llvm runs out of address space
+ use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ dobin "$(cargo_target_dir)"/{uv,uvx}
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index 39058ac0c34b..99e02b8473c6 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -8,3 +8,5 @@ DIST virtualenv-21.7.7.tar.gz 5347022 BLAKE2B fbd9fbbb3e48ef719ddf097eca32557ba4
DIST virtualenv-21.7.7.tar.gz.provenance 9416 BLAKE2B 1908bbb5a2b25e4e2d94661f3939716816c3739a79665e561e139be70802c96012decf5ed8598fd87c466dac83446e55310a6155917a1ef74c98043b694ff863 SHA512 48eb2eedb8d65373496d77fee372c46810768a74be9388f3810ffe97e5e96b44e12ff50dc37c076e7d0f85fb4750851a963bf228c30f7115008a647df122b36c
DIST virtualenv-21.7.8.tar.gz 5347580 BLAKE2B d5b2c8258b36b19d646a4e907e938bd336a05a501d66d5f9b3ce38b55d8473b4c2443eca60f06e78ce4afb210b7c4a247f68be3f1bd286a7b859aa8fc1af57e6 SHA512 df5a7fa1fa924f4294d4248ea1ab8aebf43b1efae1fce94932135e3fac53d2e2070f3369d2509253215d7ed824a936d7d9f51672575700981ac12f2b9a3b4a5e
DIST virtualenv-21.7.8.tar.gz.provenance 9342 BLAKE2B 2d8b235ef47c92657a63bac84558e3eba85afafb71e46c0aa2d4231c1246d12e7b03f81518c1f67d1c4fef07fb9ad3a02b38d6e2ba67c7790a0b5f42193715fe SHA512 23292aebd030e5990faa2e141e0ef10a1b2dc29bfbcc2a95c87aeed8902c9497b92d0bbfbd6e5ef51a3f4ab0de395139f110be7e94c8120da242a16259c33300
+DIST virtualenv-21.7.9.tar.gz 5348882 BLAKE2B cadcd4423bbe28d58363e653a62a0408fb4e989379b1cdc72b4e1d63ce27f5427732b9682fb794292b56d79e411e59fb46aa19246b9cb866c8029805ba174586 SHA512 e226116dc1cca408490caa1ac03d6759dd9bf33874b9546c426a8e850869fceb7f8d79e80fa029ec1d55b1649535ef34114be63683004052256fe8bb83b46622
+DIST virtualenv-21.7.9.tar.gz.provenance 9655 BLAKE2B e7b7b08f61878dedc3cdfb09de2bb3925e7ac661b7a5995bfd5d1ddefc84df0cb118d5221ab33250b5d50c5835b96847edf28bb6b737f6217976cdf6940575b2 SHA512 5ded379491dd1e652326b839451b8ac20ff56bd170eaa25b1c28a7f2bdb0a6666c2d5579f5ce83ba75eeb86afb0d3eb518889956eb18815370cda278ca31d8dd
diff --git a/dev-python/virtualenv/virtualenv-21.7.9.ebuild b/dev-python/virtualenv/virtualenv-21.7.9.ebuild
new file mode 100644
index 000000000000..b2791558c0f7
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.7.9.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ >=dev-python/ensurepip-setuptools-70.1
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-21.5.1-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ # Internet
+ tests/unit/create/test_creator.py::test_create_distutils_cfg
+ # we do not use bundled wheels
+ tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
+ )
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine )
+ local EPYTEST_RERUNS=5
+ local EPYTEST_TIMEOUT=180
+ local EPYTEST_XDIST=1
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}
diff --git a/dev-python/weasyprint/Manifest b/dev-python/weasyprint/Manifest
index d99708b12ba3..4f5b21914abb 100644
--- a/dev-python/weasyprint/Manifest
+++ b/dev-python/weasyprint/Manifest
@@ -1,2 +1,4 @@
DIST weasyprint-69.0.tar.gz 1549834 BLAKE2B eef92c0fbf753ca225ce5d04904544faece8c4bd3d677d60174ec31779141c42c22ffc2d3fe9d42ee36aa427b592a704dad5493a57b9514e859b4e0771eed535 SHA512 fb56d7f6173f8a67f8ef4c31408c03625b0a774d0efde003f779e3da054737c88afe9f44ee40b6dda5fc92cfacfa5709d4d96bf1a112862d309eaf2d93881ef6
DIST weasyprint-69.0.tar.gz.provenance 9576 BLAKE2B 0aa230580b5cb7f2067c413fcb997edfa5c6d4b95fd8625525c23aa3caa449fa17286ff073c579180685f545aeb2a86a4fe72f9191c7b435e6b3176cb77c615f SHA512 c739fc257a8dc332559413b9767b21d5fc96372b90d6f3de22a3c10bd948574b91207c335f0a62653a802a99a07fa66cc099679ae39eb50d2bb7bea43249d9db
+DIST weasyprint-70.0.tar.gz 1565482 BLAKE2B 0e3025a1f48b1fd8d523f5c9b678ee049c36073c5bb2ac6dfd3db2bd2495de51c04035fd3c493b773b55f7a5d232a80de39798212e01f4ef1ab16c033eeb5187 SHA512 52e93a808419f4af1de4382c814bfb12d04f0f33197ee945209cde6f98de81ea793072d3b44119ec687a0973a174164d03bb8ac06346da7dae171aa97ebbb9a1
+DIST weasyprint-70.0.tar.gz.provenance 9527 BLAKE2B 99ce0bdcebd857db99efb9f3bec24a46ae61004b66340224f4eaf2f625cb33dfc85c39263a34a8c178678f43fdcb74d5ea62e75f23adaa6d8967273031e3136e SHA512 52c661310b86aa447f76aee527561ff6342919f73a1c927e9af8a246b7dd42fd74aea2531bb49bf57bfb8b5e162cf5094fc330295e7d73a19671e16b43bc024a
diff --git a/dev-python/weasyprint/weasyprint-70.0.ebuild b/dev-python/weasyprint/weasyprint-70.0.ebuild
new file mode 100644
index 000000000000..9452021038cd
--- /dev/null
+++ b/dev-python/weasyprint/weasyprint-70.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/Kozea/WeasyPrint
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Visual rendering engine for HTML and CSS that can export to PDF"
+HOMEPAGE="
+ https://weasyprint.org/
+ https://github.com/Kozea/WeasyPrint/
+ https://pypi.org/project/weasyprint/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
+ >=dev-python/cssselect2-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.59.2[${PYTHON_USEDEP}]
+ >=dev-python/pillow-9.1.0[jpeg,jpeg2k,${PYTHON_USEDEP}]
+ >=dev-python/pydyf-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/pyphen-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/tinycss2-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/tinyhtml5-2.0.0[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ x11-libs/pango
+"
+
+BDEPEND="
+ test? (
+ >=app-text/ghostscript-gpl-9.56.1-r3
+ >=dev-python/pillow-12.1.0
+ media-fonts/ahem
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # apparently requires some fancy fonts
+ tests/draw/svg/test_text.py::test_emoji_text_svg
+)