summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-16 03:04:44 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-16 03:04:44 -0500
commit687a263b5212436c1ced6387f36d785b0a34599f (patch)
tree0196c232ff96b66c09be11acb466add8ce44899e /dev-python
parentafe8b68a6636c2d8e95d0710f831470d59ab2790 (diff)
downloadbaldeagleos-repo-687a263b5212436c1ced6387f36d785b0a34599f.tar.gz
baldeagleos-repo-687a263b5212436c1ced6387f36d785b0a34599f.tar.xz
baldeagleos-repo-687a263b5212436c1ced6387f36d785b0a34599f.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/awscrt/Manifest2
-rw-r--r--dev-python/awscrt/awscrt-0.36.4.ebuild (renamed from dev-python/awscrt/awscrt-0.36.2.ebuild)24
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.95.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.95.ebuild80
-rw-r--r--dev-python/esp-pylib/Manifest2
-rw-r--r--dev-python/esp-pylib/esp-pylib-1.1.4.ebuild30
-rw-r--r--dev-python/esp-pylib/metadata.xml14
-rw-r--r--dev-python/filelock/Manifest4
-rw-r--r--dev-python/filelock/filelock-3.32.7.ebuild (renamed from dev-python/filelock/filelock-3.31.0.ebuild)2
-rw-r--r--dev-python/flask-compress/Manifest3
-rw-r--r--dev-python/flask-compress/flask-compress-1.25.ebuild (renamed from dev-python/flask-compress/flask-compress-1.23.ebuild)5
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.21.1.ebuild65
-rw-r--r--dev-python/jwcrypto/Manifest1
-rw-r--r--dev-python/jwcrypto/jwcrypto-1.6.1.ebuild32
-rw-r--r--dev-python/libvirt-python/libvirt-python-12.2.0.ebuild2
-rw-r--r--dev-python/numpydoc/Manifest1
-rw-r--r--dev-python/numpydoc/numpydoc-1.11.0.ebuild49
-rw-r--r--dev-python/plotly/Manifest2
-rw-r--r--dev-python/plotly/plotly-7.1.0.ebuild (renamed from dev-python/plotly/plotly-6.9.0.ebuild)0
-rw-r--r--dev-python/propcache/Manifest2
-rw-r--r--dev-python/propcache/propcache-0.5.4.ebuild55
-rw-r--r--dev-python/pymdown-extensions/Manifest2
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild34
-rw-r--r--dev-python/pyproject-api/Manifest4
-rw-r--r--dev-python/pyproject-api/pyproject-api-1.11.1.ebuild (renamed from dev-python/pyproject-api/pyproject-api-1.10.1.ebuild)2
-rw-r--r--dev-python/pyproject-hooks/Manifest2
-rw-r--r--dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild37
-rw-r--r--dev-python/sqlalchemy/Manifest1
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild95
-rw-r--r--dev-python/threadpoolctl/Manifest1
-rw-r--r--dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild65
-rw-r--r--dev-python/tifffile/Manifest2
-rw-r--r--dev-python/tifffile/tifffile-2026.9.15.ebuild (renamed from dev-python/tifffile/tifffile-2026.8.23.ebuild)0
-rw-r--r--dev-python/tornado/Manifest2
-rw-r--r--dev-python/tornado/tornado-6.5.10.ebuild61
-rw-r--r--dev-python/trakit/Manifest2
-rw-r--r--dev-python/trakit/trakit-0.4.0.ebuild (renamed from dev-python/trakit/trakit-0.2.5.ebuild)11
-rw-r--r--dev-python/urllib3/Manifest2
-rw-r--r--dev-python/urllib3/urllib3-2.8.0.ebuild118
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.12.15.ebuild100
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.12.15.ebuild151
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/virtualenv-21.7.10.ebuild117
-rw-r--r--dev-python/xvfbwrapper/Manifest1
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild31
-rw-r--r--dev-python/yarl/Manifest4
-rw-r--r--dev-python/yarl/yarl-1.25.1.ebuild (renamed from dev-python/yarl/yarl-1.24.2.ebuild)2
52 files changed, 1245 insertions, 38 deletions
diff --git a/dev-python/awscrt/Manifest b/dev-python/awscrt/Manifest
index 10b7a0fa6dab..7af44b7ae334 100644
--- a/dev-python/awscrt/Manifest
+++ b/dev-python/awscrt/Manifest
@@ -1,2 +1,2 @@
-DIST awscrt-0.36.2.tar.gz 37121147 BLAKE2B d75e83e023c7be0ed351df02056337bb6541dbbd8364e8e1037adf9644dbb0418f06a78789ed7d3823d9a30348dea77bd870b0af9bf3735f41f8f43b50a37d76 SHA512 e58de9bc41cdf7b70e15517da3025f1494e27a3eddf207fe571975e02a63b7a447900fc81b5fcf5c9876bd9ce514da02c7c7d8a39e90948d5cd03b96d644726a
DIST awscrt-0.36.3.tar.gz 37812193 BLAKE2B 350a906fee04981975f5b983f0497fc028b13c4092563205e3364322502c6274ef0d7c10e283fbbc33357624973f501963391656765e7a96da8fa54fc3920b3b SHA512 94b4b4a5823bd373c7d72e52d6b8e734ba0080e5b8f1d045c60ce4ebffb9e9d7598f4246b849bff06cf8915018c87fc4af2be3f85cacc898bff55ea1abe633fe
+DIST awscrt-0.36.4.tar.gz 37816271 BLAKE2B af49b608a5b9c691186c43cf7e353174855adbe091dd62a1844632a990c8c2697d9497ed22e0ca61be945d538f8aac22e852263b936bd4f6e6e8079f6b2354e2 SHA512 8d61aa3c0f94c5a96212cb27e54340d6708ee9fb0b25611f07403f7539402618fd6516a870d6913677ba09503e831b2971530c44459d835593a4ccc993642397
diff --git a/dev-python/awscrt/awscrt-0.36.2.ebuild b/dev-python/awscrt/awscrt-0.36.4.ebuild
index 01d810a1ca6a..3374314287ab 100644
--- a/dev-python/awscrt/awscrt-0.36.2.ebuild
+++ b/dev-python/awscrt/awscrt-0.36.4.ebuild
@@ -20,18 +20,18 @@ SLOT="0"
KEYWORDS="~amd64 ~arm64 ~riscv"
DEPEND="
- dev-libs/aws-c-common:=
- dev-libs/aws-c-auth:=
- dev-libs/aws-c-sdkutils:=
- dev-libs/aws-c-cal:=
- dev-libs/aws-c-io:=
- dev-libs/aws-c-compression:=
- dev-libs/aws-c-event-stream:=
- dev-libs/aws-c-http:=
- dev-libs/aws-c-auth:=
- dev-libs/aws-c-mqtt:=
- dev-libs/aws-c-s3:=
- dev-libs/aws-checksums:=
+ >=dev-libs/aws-c-common-1.0.0:=
+ >=dev-libs/aws-c-auth-1.0.0:=
+ >=dev-libs/aws-c-sdkutils-1.0.0:=
+ >=dev-libs/aws-c-cal-1.0.0:=
+ >=dev-libs/aws-c-io-1.0.0:=
+ >=dev-libs/aws-c-compression-1.0.0:=
+ >=dev-libs/aws-c-event-stream-1.0.0:=
+ >=dev-libs/aws-c-http-1.0.0:=
+ >=dev-libs/aws-c-auth-1.0.0:=
+ >=dev-libs/aws-c-mqtt-1.0.0:=
+ >=dev-libs/aws-c-s3-1.0.0:=
+ >=dev-libs/aws-checksums-1.0.0:=
dev-libs/openssl:=
dev-libs/s2n-tls:=
"
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 65916717aa07..7739109fafa2 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,3 +4,4 @@ DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46b
DIST boto3-1.43.89.gh.tar.gz 1225424 BLAKE2B 625bb37a542644c8fe37aab42a115bf8be2e36373d7f6149dcc7e150e327c75b334ef480897be1d4954809b233a47e02854d7b28b4a3904f0e5cdcea3f0440d7 SHA512 1c04fd6df819abbe60d551c6d706f7254fe6d6758e95fd53ec70d4dd892b6f7bf69981cb001fc6ca5bc5885f083718b80a4fd045b146e7f4add16a50ac3a9d38
DIST boto3-1.43.93.gh.tar.gz 1230597 BLAKE2B 183d94cea0d706147a75674cb85a600ad21c2683618ba18a14e8630f23b19c94c11d0bc03ddc517194dad42dfb9445d1b34076b1f1b3ecbcec51ceccf30e5db0 SHA512 01612175497aada3b3fdf62ffcdb0626dc0fd5090d7d156d2a1f5fad4ec19b904ffecfd4b59880cf71ec07658bf00c2245bdd3c989a7513689ab59a2511e06ea
DIST boto3-1.43.94.gh.tar.gz 1231556 BLAKE2B 759bb159fb0fc616fab031fdf398482fc559d9a08f8a66bc62d7d4d5284a8a08886eae757f47482cbcc60a45f8bf55df781d963a9b79c2ca7922ee54410b991b SHA512 7c642a77a6d6f218a3eff7f3477cba09b4b4f0f750313adc8f9904639c382566412db2e9aed98353cdd8f180c7fce0a7fd9793479b3dcbe50c08c51c1b13d4c8
+DIST boto3-1.43.95.gh.tar.gz 1232157 BLAKE2B 31fe611aa3023f8328a974e83b2c7599b2d0956989eee20ec4a1542b62e00f1295d67f62c0f2173ae3395d96cd5b9a03925bb2753fa3c42b96f97a9fbe79f785 SHA512 31ea41eed63b0fd6e18f76638d92ac7b22219f443b52087e779956b467bdb77c754418c4e9de462b39032988e243087c5b9d3038ec07a9e9d55772f2a2c0d2b3
diff --git a/dev-python/boto3/boto3-1.43.95.ebuild b/dev-python/boto3/boto3-1.43.95.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.95.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 603b745bba67..6364e95a1a18 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,3 +4,4 @@ DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b8
DIST botocore-1.43.89.gh.tar.gz 17111395 BLAKE2B 25837125b5d9477b011c065594ffa1b49a2f5d0cf76e1c664aa5401d50dfe8dd9573d0ab3a60f739c796c32965a7dd7608e302a284bfcc97d9f7f4a8a2b698e3 SHA512 c9c0b7636fb7595d4ff3ee2ec7e1ef8ad3000e9e453ce6edb827a1152109fc2fb6b226bd08f27653fc1436444c39be6f160fa4f7c34eb50a7384988686933590
DIST botocore-1.43.93.gh.tar.gz 17142451 BLAKE2B eec2955aa252ff8bc49c24095006f0c75669f7946dcdaece4c7f640e724910b14c1b1b0b07fb8e6661d96e95fe148201381d70b4685a7282c2c64f2656fde57a SHA512 e021322d630deb94f738aa5096a7b72ffdeffbeaf5d3f6fbc9e835b7f41afa25a738d353e37b4fbd73b5b8889334ccdf4caec64d4c63e4e966e0e245c6117cf0
DIST botocore-1.43.94.gh.tar.gz 17147633 BLAKE2B 2a872b6b2289e8a330ea901b32faaa3a1950782009103b27fdc7d54cd0d6163ce3f5fc3bc8ef722fc63fef76db805fce7c2e40854858b6b8c2bb293b264adbbf SHA512 6f63be5ab5f625c018de0c6e0046eeb2e6adfd1913bebe6b91615968309ba41c9ee1d36baa38abca6e714a43c679e88a1931a5c9fe4dde34fa98a9a562280854
+DIST botocore-1.43.95.gh.tar.gz 17151488 BLAKE2B d895c9a42387b0b5425e54741d9894da2afe5d83977c079a47e4d6cdccc157e6e9395953f033f8739ce7b423f91b1522e303711cb38753af3d3fb238798c3b9c SHA512 73f2a6d6fc3a6b49e8c61a338357282b08d80e567b9c7dd025ac1a7132f7ab48e02c6f08290b1c65e09e745653605775076cc706420fbed25f216a9899e7c56b
diff --git a/dev-python/botocore/botocore-1.43.95.ebuild b/dev-python/botocore/botocore-1.43.95.ebuild
new file mode 100644
index 000000000000..14ad5b2d1f27
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.95.ebuild
@@ -0,0 +1,80 @@
+# 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
+ )
+
+ # The test suite can eat up a lot of memory when running via xdist,
+ # and slow down some tiny tests. Let's just run a safe subset
+ # of tests known to be slow-ish in parallel, and the rest in series.
+ local parallel_tests=(
+ tests/functional/*/
+ tests/functional/test_event_alias.py
+ tests/functional/test_[cds-z]*.py
+ tests/unit/
+ )
+
+ epytest "${parallel_tests[@]}"
+
+ local EPYTEST_IGNORE=( "${parallel_tests[@]}" )
+ EPYTEST_XDIST= epytest tests/functional
+}
diff --git a/dev-python/esp-pylib/Manifest b/dev-python/esp-pylib/Manifest
new file mode 100644
index 000000000000..0484040abe9a
--- /dev/null
+++ b/dev-python/esp-pylib/Manifest
@@ -0,0 +1,2 @@
+DIST esp_pylib-1.1.4.tar.gz 98849 BLAKE2B 60ee0260b38f04730712c4589ee5f018c86c5ae0e1a53bd12725619b487baeb065b18a4caeabf286284deb7f52d14cdd1d1ff64229a7a1b6381530bb644ed222 SHA512 74d9d34fcf2b35870e6e1550e9a314e124791132050fe04e29ecf6977659c7702843b4c6d07c016dfc2325adff69938588366167ff6069d91be38f06a249cf83
+DIST esp_pylib-1.1.4.tar.gz.provenance 9954 BLAKE2B d36dd9d9dfaf2ac6de77163e52498480d68f874a7479a1ad894247ffd16d4bce48bdb572b523152b043a530ace9980c990e1239073e59afce78f5c3db35de853 SHA512 9dbfc6d3836812d4ae59f8968bb605708b60d81f4d6149ace843ad6345e62437b06d4d80a59dd6026b30aa0fae8c3ee474bc9d790bba8a6e9ee0a08c00b3b382
diff --git a/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
new file mode 100644
index 000000000000..48ae86528e95
--- /dev/null
+++ b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
@@ -0,0 +1,30 @@
+# 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/espressif/esp-pylib
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="library for logging, utils and constants for Espressif Systems' Python projects"
+HOMEPAGE="
+ https://github.com/espressif/esp-pylib/
+ https://pypi.org/project/esp-pylib/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/rich-click[${PYTHON_USEDEP}]
+ dev-python/websockets[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( )
+distutils_enable_tests pytest
diff --git a/dev-python/esp-pylib/metadata.xml b/dev-python/esp-pylib/metadata.xml
new file mode 100644
index 000000000000..ce623b75b477
--- /dev/null
+++ b/dev-python/esp-pylib/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>martin.dummer@gmx.net</email>
+ <name>Martin Dummer</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index 93ee4c44263f..04a13c8de628 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -1,5 +1,3 @@
-DIST filelock-3.31.0.tar.gz 180931 BLAKE2B 1921f1ec88d79cb764c30dc5f2ebf9192209dd433504d6577f8f5c3b73951268345af331f1a684fd986d9f9f25ea3f88179dcd5ce32604c6af6f7b7e8903413d SHA512 e24d88921f975db582b64baf5e23bd1ebb3de1364b874e9d63a2a4a42cd9e71d2a30e6646f9b7afcbca3cd3b075eb480bb38c6451f5410b711ba57578252d871
-DIST filelock-3.31.0.tar.gz.provenance 9855 BLAKE2B 9b98e156d7e941a8585d6deb01ac732966ab560cbcf86dc5a6c076c74a7877c7fde9cc7982e084e502f3047a62b2571baffc4e81010d576a2283844b3be64d68 SHA512 4400dda6b091d5efbe61dc2cbc62e03fcaaf5d28f8e80e38e7e3e9cd5bc7f2d53eb969c123c0b8bb9da277e455dad1ef7769fecf7c999e94ad1a691b7b5ea1ff
DIST filelock-3.32.3.tar.gz 218135 BLAKE2B 5b4419e69a892ef0df4afac008fedf19025f162092dfbe472c925141278b9f5834edd3f9c5ba10db39091f42bf748653b63659c0215dc24f29b4951ae4f5d70f SHA512 896063634b104faa169aae67df71f1b77161340c2b99205923fb8c9e74cdd1b2d618153b44831095299a30bf83ed8319c5d2bc5229f17afad88909417e98dbea
DIST filelock-3.32.3.tar.gz.provenance 9622 BLAKE2B 67bc8f6e8909a9b1ce99cc53b627df63762019b1075f796f9027e70d196944b6ea2e3e63dc6e759077bda139912cdbb8c1c298f591fe1c1c90a12219404a02d3 SHA512 b2ac1f0f6a087605da3bbbffec6918661aa164991ae33e0f6098039eae6cbc1e6ed0f6bee2073d86f1c30fc84df1e3b1a0893882d697c5c494b76c51568770a9
DIST filelock-3.32.4.tar.gz 222126 BLAKE2B 8061bbb3d3e2e78c685764a4789caf1ba8196e179a6595caca754dc34c905a4543b24343077808aae8064d3875657c3bcb9000e311f6728ce8776c9e491f5fb9 SHA512 199cbe99519fa152dd1fefa208306fd4c0cc9c48daff0aded91fd56171901b0a1883f0ba4ed2c0107363e028a0266a4f0af9fde55170d94d7e569204b296a3cc
@@ -8,3 +6,5 @@ DIST filelock-3.32.5.tar.gz 222838 BLAKE2B 61ea53f89ec434d8ab49cf468fed811486e4c
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
+DIST filelock-3.32.7.tar.gz 225154 BLAKE2B 8235b3db8218f46b0bcc9287dc2a5f93f81a08a5d1fb26014ea3bdd980c259f76dd35f3f26c7302d08d96dcd82997b6082b4ec9d44c5b778aeaf6f6e2835b875 SHA512 ce49bd21ab60aa2711daa467239aea7ad054e7be2e1d638dbe6de8962b7f2ca5a8dca4dba247098c89b0306700e2c45f64359833319afb1010025cd6362f8e12
+DIST filelock-3.32.7.tar.gz.provenance 9669 BLAKE2B 145e8c0f37a7ae187771f8c82199404dc5d1677b83faffd264f2d69afdba1d390dd28aa63d8fdb242296dbe130c8c7085cd59186bedfa20b5397b244c670832c SHA512 5db27b4f9a3fd138353d4504eb621e6a6bb7ba24038499f354606dab5825aaddb241c859713760d974a28ccf1cf5bdc18f6a7e792e497f03dbc136f03f41ca09
diff --git a/dev-python/filelock/filelock-3.31.0.ebuild b/dev-python/filelock/filelock-3.32.7.ebuild
index 0c8f0c0c6c99..1f38026c0588 100644
--- a/dev-python/filelock/filelock-3.31.0.ebuild
+++ b/dev-python/filelock/filelock-3.32.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/flask-compress/Manifest b/dev-python/flask-compress/Manifest
index 1f3fd6808d9b..2187a31714e9 100644
--- a/dev-python/flask-compress/Manifest
+++ b/dev-python/flask-compress/Manifest
@@ -1,3 +1,4 @@
-DIST flask_compress-1.23.tar.gz 20135 BLAKE2B bb1aa78bb1192e0bf12ba29a98dcd910642d156fdd41a890cd80e65904cd910d84919fc33e124f0c88e8fb79ab55a82bdd775177fce3cef4bc12b5b12c4357ce SHA512 e1ccd6c24c54b8c65d3ac833dbb16a145a622241fe60843c81d9a54ef14691c843410098ab3820d1afb24c48ae9c141d82c2696b0635058233ed31449a90a674
DIST flask_compress-1.24.tar.gz 21089 BLAKE2B ca8822823b917c5676b41c1b3998cd38542f3456560d18bcd6fff2d79bc72ad703e7d1a7f96bd7dd6e8ce54e32b1e93192b46d332fa2eb8037d75c65ab9e05cd SHA512 4b4f0c0c5aec341003a05b080487d175fe5f399747d7afe25a025a66670470002e7b96faa0808e6a19794914f0f5f6b5bf8c75c45f30e439e00622f0556a3680
DIST flask_compress-1.24.tar.gz.provenance 9594 BLAKE2B 239741e40f14d160b81f904bbbff223d0a21981d992bf6f7da609e9f6d025e2dab393cf89e574b1e16585f28c43d9bbade1d375787ec8bc45d693c95611569f0 SHA512 53b268d06c38ff269a6b204a014bd14f574dc306d769dcf73b2136f53a83c2c97b36d68d5eeb228f2e45181c683308481155f6e069975d4a152c7461bc0957d5
+DIST flask_compress-1.25.tar.gz 21719 BLAKE2B 84ac6a013d36bbd02ad572f31d6755566d73b31d183f0667f1174fe5d3388ba47c80c9fb761056a695f2f8a4fe79c1b92d9236fc37272a5790d266ef5a96442f SHA512 dd5a8d9d0abb2fbeabdbf62ca16f32ec10f8a62fb843878feeedce75589d3f83acc854feddf6331a1159d0b62015f103e122712079e23b1b594ca59f0dc7424d
+DIST flask_compress-1.25.tar.gz.provenance 10005 BLAKE2B 4e050dccdf23a65ba1b091e2bc5eb6d80a2e411570bc229fe952e257ecc1b22e7be70ce1f8084e67035014381d0cfa1cf18a5756bd2fbf8dc3dda69ecc2fda23 SHA512 c4964fbd3788bfdfaf2ec4499eb7598314069f77ea0d4586d2600d53685676466ba18f951250db22911be63feb3372307e76b7131294deee684853951985097e
diff --git a/dev-python/flask-compress/flask-compress-1.23.ebuild b/dev-python/flask-compress/flask-compress-1.25.ebuild
index d3ee3dbcae69..a7db65c93fca 100644
--- a/dev-python/flask-compress/flask-compress-1.23.ebuild
+++ b/dev-python/flask-compress/flask-compress-1.25.ebuild
@@ -5,6 +5,7 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_PN="Flask-Compress"
+PYPI_VERIFY_REPO=https://github.com/colour-science/flask-compress
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1 pypi
@@ -17,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
# brotli on cpython, brotlicffi on pypy3
RDEPEND="
@@ -25,7 +26,7 @@ RDEPEND="
dev-python/flask[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
dev-python/backports-zstd[${PYTHON_USEDEP}]
- ' 3.{11..13})
+ ' 3.{12..13})
"
BDEPEND="
test? (
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index 31fff246deb4..68bf0666762e 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1,2 +1,3 @@
DIST jupyter_server-2.20.0.tar.gz 756523 BLAKE2B a55bce21bf2a3d8b7f544161eb20802971e947eb082e3ebf6e0d8e777e46044d1deae8a3568b580cabd8cb6d88ca18cc871a829441b820d02f656ebe30e97b36 SHA512 859d890d67f92212c5a3fa772e9e6abf58c3ef4b08a94e84a64e1c9714114b5bbe5667bb93fab3448671c32ef670c2f4869f4009aa2aa257a67223b47628d578
DIST jupyter_server-2.21.0.tar.gz 760357 BLAKE2B f78368f76d9e7dce8b4429640abcf482014c87d051625ed7b162ae08e18e4afc175643ab17f036b18439f83111ed2dd6e1c9bc3ef7072e968440ddb6e570cbc1 SHA512 b595eb045958f9602c423ddaa01f079f21ef63492933b6b0ef07772d1877f06d348bb927c43e8f685aa98604ea74b18bf126c047227cdfc0bbd6fb16c8b5cae4
+DIST jupyter_server-2.21.1.tar.gz 761651 BLAKE2B e6cb80250523ed9c1cf774375e96d9c9c557652a5788ea0c3d9192e9e96008b93bc81a93b9302c7ae3d87c28cb7eb501212a085182e986705a7e0fad5db3017b SHA512 b3c6801d636634b068db386fc9f828af44805686e9ccca637361dd6588a79570291d5ba5360c6ea25c891251cc07cea052d2c1dd12dd53c74666c42b08072b5a
diff --git a/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild b/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild
new file mode 100644
index 000000000000..0321dafd4aab
--- /dev/null
+++ b/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild
@@ -0,0 +1,65 @@
+# 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 pypi
+
+DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/jupyter_server/
+ https://pypi.org/project/jupyter-server/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/argon2-cffi-21.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-terminals-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-events-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-22.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus-client-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24[${PYTHON_USEDEP}]
+ >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # This fails if your terminal is zsh (and maybe other non-bash as well?)
+ tests/test_terminal.py
+ # Fails because above is ignored
+ tests/auth/test_authorizer.py
+ # Fails with additional extensions installed
+ tests/extension/test_app.py::test_stop_extension
+ )
+
+ # FIXME: tests seem to be affected by previously installed version
+ epytest -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/jwcrypto/Manifest b/dev-python/jwcrypto/Manifest
index b30249ac17b0..af3e6ced6beb 100644
--- a/dev-python/jwcrypto/Manifest
+++ b/dev-python/jwcrypto/Manifest
@@ -1,3 +1,4 @@
DIST jwcrypto-1.5.8.tar.gz 90772 BLAKE2B b91b810466e527d5a121b021f5cb8c4f952b88aebe6a0c3e8cff4afd285c135b71c45254dd2d821f2fe645f02f3a78763c819f84c53033f9100bc8969c37970d SHA512 b7f63049583e6d468952d46f41ce80258868a0bd74b7123bbfe02b44f01668be550247b67374db42b24bc2d25af5f71abe97b857fb2842d877cc6217a888f869
DIST jwcrypto-1.5.9.tar.gz 115793 BLAKE2B f5905b2d7c3f8a20b71a1542b351fab790db4eff23af6502bd0765a3702a5628098fcfa795eae5d4bcf1a045dde2719e676a96bbf325f88dcfe0f064e850e888 SHA512 a77d7f77dfec3e05b0b07db9d4d6d393cb5be58feb85c019cb561d0ac651a28492c3d509a5ba7724b65f374c608579b1a831b7a5791b92a91250da7aacbb3892
DIST jwcrypto-1.6.0.tar.gz 116186 BLAKE2B 013484d22e3b2f0fee5899495c5168fa8b80a9e1aede4fdae400f82540f61270ada3e9eeaaa83634b1ce8ef15420edfe18f506984471e7dd1d1aa009efb8065d SHA512 8f8fb08fb8ce13c0a11d58aca9a81bdbcad398c300c4e55108ca75c1fa42fc9ab44e8fe149a0e26bb901e40bffa68eab80a3aa2d226c3c0b5fa27897531a11c7
+DIST jwcrypto-1.6.1.tar.gz 116287 BLAKE2B e4111daadee7469bed35e72033e80bc1ffd734e82ae052ee4cf2e4b0ef899d970a3ac11506522a80146c6d8608509fc94df8845e5e7bdc75def15913a0353e06 SHA512 40da6729ae57c698a712f132d22451b1c9061af6862c80390a4c43209633bd28e133c9539061b165e65cab9d065e2753f6bc19f3ac6fd935071e753163b3a461
diff --git a/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild b/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild
new file mode 100644
index 000000000000..1befd595f58c
--- /dev/null
+++ b/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild
@@ -0,0 +1,32 @@
+# 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 pypi
+
+DESCRIPTION="Implements JWK,JWS,JWE specifications using python-cryptography"
+HOMEPAGE="
+ https://github.com/latchset/jwcrypto/
+ https://pypi.org/project/jwcrypto/
+"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-49.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_install() {
+ distutils-r1_src_install
+ rm -r "${ED}/usr/share/doc/jwcrypto" || die
+}
diff --git a/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild b/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild
index d38436112d50..abaf49c3f064 100644
--- a/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild
@@ -23,7 +23,7 @@ else
MY_P="${P/-/_}"
SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ KEYWORDS="amd64 ~arm arm64 ppc64 x86"
RDEPEND="app-emulation/libvirt:0/${PV}"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/dev-python/numpydoc/Manifest b/dev-python/numpydoc/Manifest
index 35cc51b83d88..16a371a4eb56 100644
--- a/dev-python/numpydoc/Manifest
+++ b/dev-python/numpydoc/Manifest
@@ -1 +1,2 @@
DIST numpydoc-1.10.0.gh.tar.gz 94037 BLAKE2B 356004e4e30634048f9e4adb2b560fde574feac973c59d9becf6bd4bbd4d502c79ca6eaadb21322d13db0882a596e88e89f87d32565a003253b88bc6439c3446 SHA512 bd8becb71fe45f7a0e11bbd3f804c9855b1192ff22acbc0291380c462c493facd2efd6d59e560111ae56132925502d37abc90643db217358f3a8c1138ce7c693
+DIST numpydoc-1.11.0.gh.tar.gz 97229 BLAKE2B da290e76635955bc3fe6aac74ec693cb95e9842a770ca0aec71ce38a1ab01c30ce1159a02e509f415a107f932c1aae686d42511a9dab0363e3428eb72b9f909d SHA512 2c483c694ef3a6fbda63df9cfb76211ea36f1a96b1d5fc494a02e04f10ed8d9f01f9d0258a80be7ff72f272cb5299c2eece3614aacf32242714773f5c87b217b
diff --git a/dev-python/numpydoc/numpydoc-1.11.0.ebuild b/dev-python/numpydoc/numpydoc-1.11.0.ebuild
new file mode 100644
index 000000000000..bf6b2e18e7e7
--- /dev/null
+++ b/dev-python/numpydoc/numpydoc-1.11.0.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
+
+MY_P=${P/_}
+DESCRIPTION="Sphinx extension to support docstrings in Numpy format"
+HOMEPAGE="
+ https://numpydoc.readthedocs.io/en/latest/
+ https://github.com/numpy/numpydoc/
+ https://pypi.org/project/numpydoc/
+"
+SRC_URI="
+ https://github.com/numpy/numpydoc/archive/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/sphinx-6[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/matplotlib-3.2.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # these require Internet (intersphinx)
+ numpydoc/tests/test_full.py::test_MyClass
+ numpydoc/tests/test_full.py::test_my_function
+ # TODO
+ numpydoc/tests/test_validate.py::test_extract_ignore_validation_comments
+ )
+ epytest -o addopts= --pyargs numpydoc
+}
diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest
index 130439adc03c..a53d3ef10510 100644
--- a/dev-python/plotly/Manifest
+++ b/dev-python/plotly/Manifest
@@ -1,2 +1,2 @@
-DIST plotly.py-6.9.0.gh.tar.gz 10539701 BLAKE2B 9bc7856d14acc8bac28c3981967485d51a741d948c275ccb0d7cc6462273d2a68cb74104eb54db98899e6890423bbd066b612804bc59f3657ac7611a4a1fd109 SHA512 6c302391beaa81c389ab574a700b3269cc517b1fc81552f57bb12f0d8c283c0757fba6bca2582a02bd29c98697e94900af3805288b42ff70904f7d54c51ada9e
DIST plotly.py-7.0.0.gh.tar.gz 9588726 BLAKE2B f725857ed1e645861b364697f0766b5aa750f04683736e9879bf0ebb70bd326af4a53ab862fe884c3e16e14958d86eee13f06d4d0e6d5b48c9b51a8c77f96ae2 SHA512 54fb04dd442f5deb2c18fdd78f8d74f76040dbf3af7451807c5567d86376fb72c995ac54c69acdfa86b369a078da300a5729f38bd506ac2760b1e8c96dc86761
+DIST plotly.py-7.1.0.gh.tar.gz 10239984 BLAKE2B d94c0d51c1d810c508b6a42567d8bb96bc47df7dd905f30a7557169a321505c92a6c0138702141766eaec1464ac1dcdd887f4a2ed611e65d5fd01a07db90fd43 SHA512 21527325f66e5cec00c98be740db89a5ecc53a057ffdb99950a3cbf915ac7188bdf346936308a57526e9cf14b6f30442c45a209635386c0abaec1f4c16c55707
diff --git a/dev-python/plotly/plotly-6.9.0.ebuild b/dev-python/plotly/plotly-7.1.0.ebuild
index ab56c16f27b2..ab56c16f27b2 100644
--- a/dev-python/plotly/plotly-6.9.0.ebuild
+++ b/dev-python/plotly/plotly-7.1.0.ebuild
diff --git a/dev-python/propcache/Manifest b/dev-python/propcache/Manifest
index 5552abe176b2..6738faf61d32 100644
--- a/dev-python/propcache/Manifest
+++ b/dev-python/propcache/Manifest
@@ -1,2 +1,4 @@
DIST propcache-0.5.2.tar.gz 50208 BLAKE2B 53b0a36724277bbe1b08e4fe9b6bf7b32933fbb52b5c4fa3477b3fba1d021875f9311cb4abc020989a40c3482707b0e9e3b40669b9d219334b10b0303dfbfbe9 SHA512 7d720b55a54a3dc35a13c27c8b2821e5dc8ccabae1c004c4049df6a4d914c7f5247cac4efb8a6e0cc95cb9cf62119c27febfeaaaa900343f19ee8c8cef92e15f
DIST propcache-0.5.2.tar.gz.provenance 9321 BLAKE2B 4a48da3e3c88f767ef481373c560fc6d0895987422a43a4a9cd09d27a70c254d2b05fe19876c03f72d094770965992d1df0d8b066cbb9cd15f3eb4ee867dfc33 SHA512 ef3796ac1f4b65bfec89d1d9944870dfdead6f932671eb0725d6bf0ba1e19a8a8d50dd9e1b73c02d97b64d19af314e782dfda52a131c9851bb506f4a2a3cd08e
+DIST propcache-0.5.4.tar.gz 61545 BLAKE2B e6aa31867cc04cedeaaaa597934cf2e8cc9362fe7f7f05059dbc50e87865091c1083d89e76023e7537c77fdb91759db06a4292958a74d58c5e16eb07b90b0bc9 SHA512 90cc06be430dd305e30c1931bf5504ea811169badd19e54a7cc92a721c9d353419d649c5eab5eba59f035e557cbb451087974bec5af752ec16590430061c0d43
+DIST propcache-0.5.4.tar.gz.provenance 9535 BLAKE2B 713d4b82f4789afab22772fdef3713913f230a5cbd50f53ba291858a8f5c1c4f987b0fbe0f02c0d77e6b013dcf75f64edb34bb748c465f55798a7c1a034b6f9c SHA512 75f71a1065560d6ef17654f5a27ceb2d387bddacda4374ed8d6106c83dd8131959550502344579a8bfef4ce7cce27cdb01e997e91edc330d1cddf501f49a4548
diff --git a/dev-python/propcache/propcache-0.5.4.ebuild b/dev-python/propcache/propcache-0.5.4.ebuild
new file mode 100644
index 000000000000..b7f6c241980e
--- /dev/null
+++ b/dev-python/propcache/propcache-0.5.4.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/aio-libs/propcache
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Accelerated property cache"
+HOMEPAGE="
+ https://github.com/aio-libs/propcache/
+ https://pypi.org/project/propcache/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ dev-python/expandvars[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x PROPCACHE_NO_EXTENSIONS=0
+ if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ PROPCACHE_NO_EXTENSIONS=1
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ tests/test_benchmarks.py
+ )
+
+ local opts=()
+ if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ opts+=( --no-c-extensions )
+ fi
+
+ rm -rf propcache || die
+ epytest -o addopts= "${opts[@]}"
+}
diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest
index b294c54a658c..704894af9e08 100644
--- a/dev-python/pymdown-extensions/Manifest
+++ b/dev-python/pymdown-extensions/Manifest
@@ -2,5 +2,7 @@ DIST pymdown_extensions-11.0.1.tar.gz 857113 BLAKE2B a585fd5c325fb4b146ecdddf920
DIST pymdown_extensions-11.0.1.tar.gz.provenance 10025 BLAKE2B 11c409e59669f3219fdf115b6593a7f1e40ac7725ffea84e0c3b25d468774a1bd5513df54e7885443631e64d1dcf7c2ef0a521547dca9ca8cf092a4333fc4161 SHA512 5a0515a30b1e65d73fc01e405a5fd0b470259273f1d8c3c152f2f8d2a5ab86bc72830d5c8b08b40fba564cfd0b69fd556524042412ea022cee3528b117aa7083
DIST pymdown_extensions-11.0.2.tar.gz 855419 BLAKE2B e7a73d571f8334a829953c7df6796f930558393c7c3ae272a779ea5271f6112f2163384046c95feddc2365333b6134df41b71e078d213e7ebab0be4d0c1aeb8b SHA512 cd84ba04447bee2f2953453f1045e79c8495b5db0442227a8cc0ef348a9bb64e99e4ac0232032574967683e88b0db21b7eabeb8aa4e6edafde843e07438c5b5a
DIST pymdown_extensions-11.0.2.tar.gz.provenance 9980 BLAKE2B 52445950a371bf69ab7ebbe1f8df0e9e689fead80f6aa1b8e356c2a851578c149ffe7ef205c78683b73131a4b463c5867e449383e166475e1bbd5f8249fbb71e SHA512 7940ae93bca9f3ff8027db324e43101871fd5768ea7c59aa25856e10f333c6bce30ada9da383fb46c7f28dd95b6862e296b998d78d3f84eabba06d9ff30ac3c7
+DIST pymdown_extensions-12.0.1.tar.gz 866904 BLAKE2B 99dc77c0cf21fc3ae37f9ffca62cfc59f295772ea76cebc4374d07b87f898ac9f4bd1a753ed6706b222a39a1af00238c6d1bc86bb584855ed8d76fdbaf014730 SHA512 bdf73e2fded2e6533fb5c06c20d9aad0a9091d458567de532e2d0a526d6199fbf6e7dca67e74b2b16f7e949a95156653861191b7aae4d683d2d5dce4af8d788d
+DIST pymdown_extensions-12.0.1.tar.gz.provenance 9890 BLAKE2B 491f20c46cfdb392d7ad484b52d26397d30aa28ce95039fa9ccf93e69cb1b4a54147d2ce81f7d22fd3079b111041109102a65de9e8a7a00a2e91fbd01c533687 SHA512 0992eead14c6c8147683616ad66d32d8134dab1279b275b06bda5f50e60d5dbd4566eea139903f3dba535f6ed3c1d91cfa91965637ace3c1389771c40c48c0af
DIST pymdown_extensions-12.0.tar.gz 867035 BLAKE2B 2a95a81964b16f816c435892c9498614c3c9befd50c5d34b3d3e1fd324ef14a4dcb43eec487b1af865e4c778746f7b1b4f4d50ce77edb626fdbc5fc9f2f8b83f SHA512 bc1738a04021889df3a802074d93131a84ec5000db3aa4cae5b068cb9ace315941bcf57565983d172f3965cb57017c168df96ab25667132ed3e2517a61edc2b7
DIST pymdown_extensions-12.0.tar.gz.provenance 9995 BLAKE2B 2c231bb3f412bbdad5abbeb7627be427e8ba3bc6eec22f2128ad089e71d639599494edaf9a9e84db8093ea484955843b23f642fd33c7d1f93c5a3ae0ee02175f SHA512 36de2ab58cf83c00e4f207b6421eddf225646ee38bf79dbfad6a969dde532c8d8352ba39e173567a455037710cc9dfd77e658607a02fad987e43bded7e2f82c7
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild
new file mode 100644
index 000000000000..1c6dfb8c42e4
--- /dev/null
+++ b/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild
@@ -0,0 +1,34 @@
+# 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/facelessuser/pymdown-extensions
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extensions for Python Markdown"
+HOMEPAGE="
+ https://github.com/facelessuser/pymdown-extensions/
+ https://pypi.org/project/pymdown-extensions/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/pygments-2.19.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pyproject-api/Manifest b/dev-python/pyproject-api/Manifest
index eed12a6aafc5..dc1afc4a4866 100644
--- a/dev-python/pyproject-api/Manifest
+++ b/dev-python/pyproject-api/Manifest
@@ -1,4 +1,4 @@
-DIST pyproject_api-1.10.1.tar.gz 23477 BLAKE2B b7051bbd72f5c9d4115118e20d691e705fdaf5293c99c667db9528fd0a1a40010f331450fcea8b7349e8df7174dffcbfbe61bd03ec9873a1d02627bdf9dc234a SHA512 f37c805879a37aa9564fc5bc15cf7bcf7724fb1cec56dcc82328e1cc9f803c6e2053cccd2f30cca7d621f594db52773348e25f7a2b581a893a63e7f11e00f7c0
-DIST pyproject_api-1.10.1.tar.gz.provenance 10016 BLAKE2B 704a82013aacc995d75a24f48c7c4d08e5ce9d06697fe02827286a2ec47f4e26d42ae83cd9345fb177ceb5ed28bec18ce8e24c47d4f83e8ff00625c9e3d1050e SHA512 673a0779e7c8237b94296331257718bf6a5faa530f36ff57e4fe64e7ecfd23e3a17ede37e511804bf0c1f405b36595cecd9fd9dcd2794b49fd5af89aed7e944d
DIST pyproject_api-1.11.0.tar.gz 23787 BLAKE2B 63846530d8299564466546f8b00bf46c3b2010b95c5661727f80a3966d0d5cdfb36e43a6848b1ac970ca11d489b67aa96e49387d69d5fd36a1170bafd0096951 SHA512 0d42bf451077ad1661c1d0ee5d5dfce1525ef65000e556bc3f71a7ffe5b8324aa25b5688322763b760bbd14130c3dda28e30610351084d95b73c81e706241884
DIST pyproject_api-1.11.0.tar.gz.provenance 9781 BLAKE2B 956f3099e731974bf28a4b31f7c29f8e34d2f4e5816e15f6c4db0257ff833b349c5b63caf9c83e2590a36d02ecc94d1771fb90488bc7955142b12666a6de3c46 SHA512 01fc7652d185f6f5b255461e3b7a0fd7d1d07680416e179a7ef9ba5cf71e6e813699fafbdb04780f85e9c2e30b9cb7bca02975171d93a5c3c465ac8a46e5b0a6
+DIST pyproject_api-1.11.1.tar.gz 23991 BLAKE2B 29db06754c715a3c60c98974e9c98dd343cc5a75746eb58cb055647968b188d72c5dac67463b1bf17bd6ce0b8fc17b22141e21061d6a723adeb8be51f17002c3 SHA512 f012aa1734ab6108eee56f621ccdf938a07cf57a81e68425a8004c0a2de0130c6c246b131a88d439b07bdad828e9e895833947d27d74e9ea936d21fcea5f33fa
+DIST pyproject_api-1.11.1.tar.gz.provenance 9736 BLAKE2B 056f457a9d5c45fcd7983fc0ff6fedefc3b7ee3b74c7a98d3e9988769d9391f9fe5e803dea6ac5a65a4902d77c51371c7ef77dbbb824b617eab0477a324bd144 SHA512 52808c3501cfa20824de9798b0dba3ec7688e2410019820234f875cad61c4e97122d7875ae33799b4c0177bdac9af5391d96bf77cfb9b6c2c2ed19be5e21953d
diff --git a/dev-python/pyproject-api/pyproject-api-1.10.1.ebuild b/dev-python/pyproject-api/pyproject-api-1.11.1.ebuild
index 3c1ce09fd2b8..81e717ad883d 100644
--- a/dev-python/pyproject-api/pyproject-api-1.10.1.ebuild
+++ b/dev-python/pyproject-api/pyproject-api-1.11.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
>=dev-python/packaging-25[${PYTHON_USEDEP}]
diff --git a/dev-python/pyproject-hooks/Manifest b/dev-python/pyproject-hooks/Manifest
index 7321a8dc1af8..473b147afa3c 100644
--- a/dev-python/pyproject-hooks/Manifest
+++ b/dev-python/pyproject-hooks/Manifest
@@ -1 +1,3 @@
DIST pyproject_hooks-1.2.0.tar.gz 19228 BLAKE2B e02864220393876639cc459918f48c02e19835b392102d117cb5900c9a4f5228bc21377421f7afdd67300ba15d131194197a3b4b1ce0ad7fef195bca9be4344b SHA512 e098e521f03cfae9a96c0ee5d2e2ef46ef832d8f38c7d8380fc17355776e09ae3a704879e6e4a2bc7999092c4dbf80267b3b56850135c74d275a12607e0ffe83
+DIST pyproject_hooks-1.3.0.tar.gz 20883 BLAKE2B a2e9984a25c6f730e6f1e46a0a144bef4ad05909d389a615e6ff72019c0b06c6996ca89fea0a875e6ccc39f2414d084dc00c7a7d87a4d50ddb5d6e6d8cf2a896 SHA512 08dc8e6e92fea46da684cc1105a205ba3f657307a4219fb6f562d4cd4f269399bbbe7bd95b933a9940d63ea5af4433f48c0058c8573ff69c055a4b3cf5ffef95
+DIST pyproject_hooks-1.3.0.tar.gz.provenance 9655 BLAKE2B a8b76df1718a1b065f8c798ca03a8111c20b391b283a0f0bc91dbe80f8a8ad51045f432fe55a2e12d8ff716629b8906fc563b54f7d5b0c709f4b57c33a3b8499 SHA512 3f15ea931c5ae9f2f56cda1f88ae571d667cb04813d6ae964bb80dcd17974ac4d2a6325f26a3301c75424baf67e60840122b9323e4d169628151530f1a9cffc7
diff --git a/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild b/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild
new file mode 100644
index 000000000000..d68373bb12cf
--- /dev/null
+++ b/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild
@@ -0,0 +1,37 @@
+# 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/pypa/pyproject-hooks
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Wrappers to build Python packages using PEP 517 hooks"
+HOMEPAGE="
+ https://pypi.org/project/pyproject-hooks/
+ https://github.com/pypa/pyproject-hooks/
+ https://pyproject-hooks.readthedocs.io/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fails due to setuptools 70.1
+ # https://bugs.gentoo.org/936052
+ # https://github.com/pypa/pyproject-hooks/issues/203
+ tests/test_call_hooks.py::test_setup_py
+)
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index 682880484ebb..70680577549b 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,3 +1,4 @@
DIST sqlalchemy-2.0.52.tar.gz 9945637 BLAKE2B 4af6f1485d26c94569babc99ba6cb3314f0bbc4267bc17ebefbb786390214110283b0a43a81cc38d275fcd852bbb74e77ed2167dce6a5ec9b144119eb0593206 SHA512 9341389b75b684b37f2f1bba8fde882c95c77a68e5ff15b8ab16b163db9c31088a884352999b750fbabadbd723cff093e971035159e77562d5cd843305258fdd
DIST sqlalchemy-2.0.53.tar.gz 9966200 BLAKE2B b14be728d4ba7e6517b6e4af96127e3c5bde05218d77afa5bba16638f4270e85c69eded7bd4497c517afc2dbcc5db1baa1201c84d8354ac9a7de8e0f5cf3f98b SHA512 568035a5c37e337eee5606756e5c3bb3edff248cca4879144d690ff4215abc51d697eeb0ab7a3991ea933b65a639d2ae8812e9b325d4fd7d860a26513892609c
+DIST sqlalchemy-2.0.54.tar.gz 9969559 BLAKE2B b29973d44b49e8c98267d509246369e78c213a3d53280098c4ea14c6d2ae6161fc2bfb71bd2e4af32c39bc187efd0ae03668bad3963ca79187c3889521da4911 SHA512 d88af975c7fc7d4e1b0781e654ef003fb1de90f00e6a4168b167c2b8c6927732caea5bb9ec084451994d89e8808691bc18abf236d80f6e13158f6f1f0a406d1b
DIST sqlalchemy-2.1.0rc1.tar.gz 10436777 BLAKE2B 3840f114f930dc1d18e8837cd51ebc66a193f386139eda7b825a0efcc280488a4d1f78c0997c4c81d5c8c2b6b92b2cb789beec32dbae43fa05bd638d3afe493b SHA512 66435f258067621f649ae8f28ed409772319cf9939b21cb8a7b2de1ddcdb482f536402350767ff618dbec2be5254b243f903f8c7a7261c49bc66269235bce2eb
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild
new file mode 100644
index 000000000000..b46152f6c679
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=SQLAlchemy
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="
+ https://www.sqlalchemy.org/
+ https://pypi.org/project/SQLAlchemy/
+ https://github.com/sqlalchemy/sqlalchemy/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+IUSE="examples +sqlite test"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_impl_dep sqlite)
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/greenlet/d' setup.cfg || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ test/ext/mypy/test_mypy_plugin_py3k.py
+ test/typing/test_mypy.py
+ # hardcode call counts specific to Python versions
+ test/aaa_profiling
+ )
+ local EPYTEST_DESELECT=(
+ # warning tests are unreliable
+ test/base/test_warnings.py
+ # TODO: flaky? xdist?
+ test/base/test_concurrency_py3k.py::TestAsyncioCompat::test_await_fallback_no_greenlet
+ )
+ local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
+ if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution
+ test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]"
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]"
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]"
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]"
+ "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]"
+ "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]"
+ )
+ fi
+
+ # upstream's test suite is horribly hacky; it relies on disabling
+ # the warnings plugin and turning warnings into errors; this also
+ # means that any DeprecationWarnings from third-party plugins cause
+ # everything to explode
+ epytest --reruns-delay=2 -m "not gc_intensive and not timing_intensive and not mypy"
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "asyncio support" dev-python/greenlet
+ optfeature "MySQL support" \
+ dev-python/mysqlclient \
+ dev-python/pymysql
+ optfeature "postgresql support" dev-python/psycopg:2
+}
diff --git a/dev-python/threadpoolctl/Manifest b/dev-python/threadpoolctl/Manifest
index 28b03f0cc0b3..197bf3a8296c 100644
--- a/dev-python/threadpoolctl/Manifest
+++ b/dev-python/threadpoolctl/Manifest
@@ -1 +1,2 @@
DIST threadpoolctl-3.6.0.gh.tar.gz 37892 BLAKE2B 3b89180bbfdbb5aa027a5f828745ba1bd881533e6c2f5ff44fecf920618db4111fa9ef1b219e929485a327e54fe144f80cb9b78a4012d509dea7151f0892e5f8 SHA512 5c55f81bbff127cd7cdd62f390ed5a386c29c7d2806aa98a67b99b54fde0d0360ac78ce004125561486b7f5076c9085ea8dd52779aea1b9bc65b25cf166925e1
+DIST threadpoolctl-3.7.0.gh.tar.gz 53102 BLAKE2B a6bf0533210eb35b72a2d7d9b7058a6e357a2c8a5e645953c30c1b425ed9dc80514878cfec681c5617c0644ae8d12b39a07588810ae302038ba098faf297d4dd SHA512 957821c45942e0c43deeca4abfc1849fd70a982deaf1ac31f78931847f73ecbed704437892b42b8afd2e20e7e8bdac0bf47e97934bbb69a27f09fe6aabdf4075
diff --git a/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
new file mode 100644
index 000000000000..008367aebffe
--- /dev/null
+++ b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Limit the number of threads used in native libs that have their own threadpool"
+HOMEPAGE="
+ https://github.com/joblib/threadpoolctl/
+ https://pypi.org/project/threadpoolctl/
+"
+SRC_URI="
+ https://github.com/joblib/threadpoolctl/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Asserts against a hardcoded list of CPUs. Either we skip it
+ # or file bugs about missing architectures until upstream realizes
+ # how bad idea that were.
+ tests/test_threadpoolctl.py::test_architecture
+ # This test fails if the Python executable (or any library that it
+ # links to) uses OpenMP. This can particularly be the case with
+ # CPython 3.12 that links to app-crypt/libb2.
+ # https://github.com/joblib/threadpoolctl/issues/146
+ tests/test_threadpoolctl.py::test_command_line_empty
+ )
+
+ # see continuous_integration/build_test_ext.sh
+ if [[ ! -f tests/_pyMylib/my_threaded_lib.so ]]; then
+ pushd tests/_pyMylib >/dev/null || die
+ $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIC -shared \
+ -o my_threaded_lib.so my_threaded_lib.c || die
+ popd >/dev/null || die
+ fi
+
+ pushd tests/_openmp_test_helper >/dev/null || die
+ "${EPYTHON}" setup_inner.py build_ext -i || die
+ "${EPYTHON}" setup_outer.py build_ext -i || die
+ "${EPYTHON}" setup_nested_prange_blas.py build_ext -i || die
+ popd >/dev/null || die
+
+ epytest
+}
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index 334a1cacab93..84d006476c4b 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,2 @@
-DIST tifffile-2026.8.23.gh.tar.gz 428025 BLAKE2B b6021be6bc47814a09847f610dd1f111317830df31aacaf3d68a793933c5bcfbd625f4607c7ac9c68907db295f8c17148d2b6215d6ef809215863b09ca1a4497 SHA512 86778792b8f156798dba02a3288bc7cff4fd09e1a7feef57104469761699a1c0bf76bebc08fe9e8620c2a368617189cb2dcd5273b1a06bef767629d42f6e4bff
+DIST tifffile-2026.9.15.gh.tar.gz 428109 BLAKE2B 510e16937f4286fef6da3b19c2f7edfa06e26e19eeb938357885d2731bd1404315eb44624352491535d71b5d5328ce8e30b5b865616819b66d43c87c7b5502ea SHA512 76f1ed5a122f46d4d9e05e6024ad362dbca8c3f1af8fb328f0f19945d53a3da21df2ec2b467fa56a214486607b479abdc0ab0b67f1d4885233262c7487b34179
DIST tifffile-2026.9.9.gh.tar.gz 427709 BLAKE2B 8e935e91b9bc43ec74ed26f0d7b1038b3c2ea9e03cd90b6712d3fc2999fe584954b1baa5111baa1ec00e4ca4e556adde3ee9092ae7031ffd00c690aec06bbc5d SHA512 75256c187bf979d55217b945e1443e2d3d895821c200b96f72a9ba98e4f3c84e879f776e8c7b30e0cefceb6d0ab8770c67d8abc31da8db633f8726b2be53f4d9
diff --git a/dev-python/tifffile/tifffile-2026.8.23.ebuild b/dev-python/tifffile/tifffile-2026.9.15.ebuild
index 49630e1bd1b8..49630e1bd1b8 100644
--- a/dev-python/tifffile/tifffile-2026.8.23.ebuild
+++ b/dev-python/tifffile/tifffile-2026.9.15.ebuild
diff --git a/dev-python/tornado/Manifest b/dev-python/tornado/Manifest
index 7fcffa153f4c..62d409037691 100644
--- a/dev-python/tornado/Manifest
+++ b/dev-python/tornado/Manifest
@@ -1,3 +1,5 @@
+DIST tornado-6.5.10.tar.gz 537910 BLAKE2B 6ec1bcba8c7dc2175206528b97be64e6dbbfb51ae6c9cdd1d0dc0bdc4eff55c1a9a0ebe9c700ea18e88fef3197b0d7efe1812fab5196dfab5cdfd71b6d1568bc SHA512 0a3a38162a91d7d82f0d790d37788c5761bd9663af0356641bd6bd0ec5f6d490e5013965db1f91f28959d925127640cffbd4b661415b43ca5b50ee812841f445
+DIST tornado-6.5.10.tar.gz.provenance 9454 BLAKE2B 4a8faa5670534337aead096a06c10b3f77c0ba8dc13e70d94dc92fae59a28e072333ef37635cf2db12fe20de17e175e96da6b575e73c8426103320b6a58f71ac SHA512 c03ebd606a6543a816ffff74217061702ffbdfbeb209ac7541f50d6beca4caf8568e32b40712a3b9ef567f15d50453fe789a84f6e4c2420201216a50776c6951
DIST tornado-6.5.8.tar.gz 520493 BLAKE2B e48ca20fe0551b8536162071e0b9267ccd167df617c25f930481668e733c656904109014e65462e561d47acc557cfe32f86a422e8f7e840b4262acbafb2b720a SHA512 88c096ca30357644c07b6013cd514b5e64135b26a77d9ff17640951632d6f68c9a68d7fa80224743f7900fbf5ddde838088bd9838395651d87d876c8d1d1a2fe
DIST tornado-6.5.8.tar.gz.provenance 9416 BLAKE2B 1f4d1d9289f8aa8fdde1dda19454da15e9056111f0225e0701eb385ef42b0fae26a6bb9dc5df3ffb9796e4d805db5aa7406aa466ec9389802df1033cdb5231a6 SHA512 b1c364aed55ecb3cbab7343de9ebfaa181579ca81a57e498953c7d0e657bd8b08ee9fb6e5f72d8205f379fbd25237054bfecdb9982fc973e4bb55a00a0411444
DIST tornado-6.5.9.tar.gz 536145 BLAKE2B 13071c50a8f0701d750f26aa5fb3669ee5c78c4d249d570b519a672d8fdfa76d38f90633ad21fa1c7d551c50c5f6d0dab53ebb694685d52f1cc1269cb0728564 SHA512 e497f0cacca0ca0d34b65117a72e9ebe0056f77ced09eb5d200dea24da8c28182d5704d1b17510fc139841718fce6a19c7f154d416e59292f4236eb717a0a75c
diff --git a/dev-python/tornado/tornado-6.5.10.ebuild b/dev-python/tornado/tornado-6.5.10.ebuild
new file mode 100644
index 000000000000..68d483b79d3a
--- /dev/null
+++ b/dev-python/tornado/tornado-6.5.10.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/tornadoweb/tornado
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python web framework and asynchronous networking library"
+HOMEPAGE="
+ https://www.tornadoweb.org/
+ https://github.com/tornadoweb/tornado/
+ https://pypi.org/project/tornado/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/pycurl-7.19.3.1[${PYTHON_USEDEP}]
+ ' python3_{13..15})
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.3.2-ignore-deprecationwarning.patch"
+)
+
+src_prepare() {
+ # network-sandbox? ipv6?
+ sed -i -e 's:test_localhost:_&:' \
+ tornado/test/netutil_test.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x ASYNC_TEST_TIMEOUT=60
+ # Avoid time-sensitive tests
+ # https://github.com/tornadoweb/tornado/blob/10974e6ebee80a26a2a65bb9bd715cf858fafde5/tornado/test/util.py#L19
+ local -x TRAVIS=1
+ local -x NO_NETWORK=1
+
+ cd "${T}" || die
+ "${EPYTHON}" -m tornado.test.runtests --verbose ||
+ die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/trakit/Manifest b/dev-python/trakit/Manifest
index ace11e1ac489..0c6e51504b47 100644
--- a/dev-python/trakit/Manifest
+++ b/dev-python/trakit/Manifest
@@ -1,2 +1,2 @@
-DIST trakit-0.2.5.tar.gz 34873 BLAKE2B 5e5272a7a9882328dd1f5fc2a8e142511d0a1cb19d488378b9fa43772ee77ce787d309d0b10fe77ee8f737817e41c8fdf6cc2d8eaafa989353706cbc92358e89 SHA512 95dfd06d8cb6c9f4b2f1412c4b505209e5122595f0ebba1b6bef9ecb80c31e4f8a4b7aba706931ce9684f2e8ddf4f9836c9f034053ce2f25c857d08c76a9eaf1
DIST trakit-0.3.0.tar.gz 34888 BLAKE2B 63668b7b5a0f4f94c055bf6e20220549fe54cb06a3b0832d6c6220075c2ef1a4488e75bb8ff3b24740597853fc0b6ce9661c8e04e7b2a449603545c9e6f09967 SHA512 11eebf7656ff1da72c8a05f8e58d1e6cac753ae1f5b8ee3c8c1afc52ab4c001b7ded3fa395a422fbbd4d452d3d8769f597e49df0985e83fc50f31551c1d468bc
+DIST trakit-0.4.0.tar.gz 34465 BLAKE2B 7d6be36561c1c968b62bcf7dd24ff21dc3f1df0927acb476cf278884a74f42038c61f11667d573371a740c923e61d2a94b834d9a374ce388898a80640eb06829 SHA512 46b3cf32e059b642bdc69ea5e7b20b216bda265c0b114a3e1c1ef16a3145d7236f2d9da6c7e8b648e2203f91daa399bc0334386798e7f5f19ac370cb421370c5
diff --git a/dev-python/trakit/trakit-0.2.5.ebuild b/dev-python/trakit/trakit-0.4.0.ebuild
index 91f8db29b4f6..a7e48a7a0afc 100644
--- a/dev-python/trakit/trakit-0.2.5.ebuild
+++ b/dev-python/trakit/trakit-0.4.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=poetry
+DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1 pypi
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
RDEPEND="
>=dev-python/babelfish-0.6.0[${PYTHON_USEDEP}]
@@ -36,10 +36,3 @@ EPYTEST_DESELECT=(
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # sigh, poetry
- sed -i -e 's:\^:>=:' pyproject.toml || die
-}
diff --git a/dev-python/urllib3/Manifest b/dev-python/urllib3/Manifest
index b209d1bf7ebf..4f52106b16f6 100644
--- a/dev-python/urllib3/Manifest
+++ b/dev-python/urllib3/Manifest
@@ -1,3 +1,5 @@
DIST hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.gh.tar.gz 156216 BLAKE2B fcb5f49653401e6e4079e1c770d3cd407602d4d6764437b735bd4ec04191dec59cdc930822fa2aff726ee25cddd0f71fd457dedf31026bff1da121d93af8b768 SHA512 62d6787d88a2e716f0ac04fc49f6cdc586e473a660ee754ff66961922ae78bcc75d1f78b091e78557dd60f006e8e480114738c7b4ff71beac804e4fc9603240b
DIST urllib3-2.7.0.tar.gz 433602 BLAKE2B 2a74917dbcca8a30cd0e202c6c4d1b2cb096b6466b4c7c4d7a11d74205f971cea41aac5628ea8d69cfd99f1a0ac1aff4221119cddcf53449e8271bc4d50e6abf SHA512 6f75e5873f18301de37c0d7f17c726b21c9928f2fe9ec58d843f1172b80be6eb05117bdf7af27dd7eb1ab0175a94e0f49cde01d8d8919f61de8710e163fabc03
DIST urllib3-2.7.0.tar.gz.provenance 9499 BLAKE2B 86eb7207644c7f94a76f8818927d4e2301648c4bde0acc029f95ddf40ae3b777ad6149ca8fbfa51de26493c6c3987d99ddfb90df101c4e5eb1d3c85ddf101134 SHA512 25447cda48b206b5a351c9295771111bc0e61d53fb878a3735ac1d7c6a333df863b396b215a9bbc3a7821b368738aa3f5bbac7dbc67e617c354ff977e3432743
+DIST urllib3-2.8.0.tar.gz 458972 BLAKE2B 10ff4ea8f934c19159b5a10d2c2af954d93114c636eb2c052970d6a9a7787b8e99dc49f1bdbb42d31458c9c7f37a22a0b206a34a14dfe0aa72d272f37905c7ea SHA512 3104f0b89b9d7421b0b13ff34c9e68a315772f2e1271c8b02da516b7dc4108676e632145ab9b390c3d9033019253f36a48ca44c5b89269058eebb0d21f472383
+DIST urllib3-2.8.0.tar.gz.provenance 9611 BLAKE2B bbb95ca460058ed0993b895a8a76ca00cea828abc0ad16d163d6a0a0014aa7e69d0daabbb3a7f7dd82e6dbad0ea21ea3e6743e21549ed265b49b53e534034db7 SHA512 3c290a3a51161e10f3ab5d8c02875c68adc0c04eed4f12b121b5b3637646fac311e10910ddb7cd51130fbcad7fed0b269aa2b4e8c8d886936fb846011d1aaa85
diff --git a/dev-python/urllib3/urllib3-2.8.0.ebuild b/dev-python/urllib3/urllib3-2.8.0.ebuild
new file mode 100644
index 000000000000..34f352fc9aa7
--- /dev/null
+++ b/dev-python/urllib3/urllib3-2.8.0.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/urllib3/urllib3
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1 pypi
+
+# The package has a test dependency on their own hypercorn fork.
+HYPERCORN_COMMIT=d1719f8c1570cbd8e6a3719ffdb14a4d72880abb
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="
+ https://github.com/urllib3/urllib3/
+ https://pypi.org/project/urllib3/
+"
+SRC_URI+="
+ test? (
+ https://github.com/urllib3/hypercorn/archive/${HYPERCORN_COMMIT}.tar.gz
+ -> hypercorn-${HYPERCORN_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="brotli http2 test zstd"
+RESTRICT="!test? ( test )"
+
+# [secure] extra is deprecated and slated for removal, we don't need it:
+# https://github.com/urllib3/urllib3/issues/2680
+RDEPEND="
+ >=dev-python/pysocks-1.5.8[${PYTHON_USEDEP}]
+ <dev-python/pysocks-2.0[${PYTHON_USEDEP}]
+ brotli? ( >=dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}] )
+ http2? (
+ <dev-python/h2-5[${PYTHON_USEDEP}]
+ >=dev-python/h2-4[${PYTHON_USEDEP}]
+ )
+ zstd? (
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.{11..13})
+ )
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep "
+ ${RDEPEND}
+ dev-python/brotlicffi[\${PYTHON_USEDEP}]
+ dev-python/freezegun[\${PYTHON_USEDEP}]
+ dev-python/h2[\${PYTHON_USEDEP}]
+ dev-python/httpx[\${PYTHON_USEDEP}]
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[\${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[\${PYTHON_USEDEP}]
+ dev-python/quart[\${PYTHON_USEDEP}]
+ dev-python/quart-trio[\${PYTHON_USEDEP}]
+ dev-python/trio[\${PYTHON_USEDEP}]
+ >=dev-python/tornado-4.2.1[\${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}]
+ " "${PYTHON_TESTED[@]}")
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.{12..13})
+ )
+"
+
+src_prepare() {
+ # upstream considers 0.5 s to be "long" for a timeout
+ # we get tons of test failures on *fast* systems because of that
+ sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die
+
+ # remove stupid warning checks
+ sed -e '/str(wm)/d' \
+ -e '/assert not warn\.called/d' \
+ -i test/with_dummyserver/test_https.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTHONPATH=${WORKDIR}/hypercorn-${HYPERCORN_COMMIT}/src
+ local -x CI=1
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # TODO: timeouts
+ test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries
+ test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries
+ # TODO
+ test/contrib/test_pyopenssl.py::TestSocketClosing::test_socket_shutdown_stops_recv
+ test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_socket_shutdown_stops_recv
+ # hangs randomly
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread
+ test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread
+ # more random warning failures
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_ssl_correct_system_time
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_ssl_wrong_system_time
+ # some plugin?
+ test/test_connection.py::TestConnection::test_HTTPSConnection_default_socket_options
+ )
+
+ local EPYTEST_PLUGINS=( pytest-timeout )
+ local EPYTEST_RERUNS=10
+ local EPYTEST_XDIST=1
+ epytest --reruns-delay=2
+}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index fc268a0cccf9..e75ed3a8e5dd 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -3,6 +3,7 @@ DIST uv_build-0.12.10.tar.gz 423598 BLAKE2B 363ee130a5da490859d0a2f0122be340f369
DIST uv_build-0.12.12.tar.gz 424423 BLAKE2B c7ed255923f884467ecaf8d70be044bea5c39db61611d320105d2a5c4c8e885a674ed22fa285ed398abbcaa229d9cca339f31f7d2e022adf099b5e0fe175d4c8 SHA512 38b91b29112af0e9677ae666125356b1735d8608ecdbcfae1d87ceff2b8cb8f61d5ecf917292a620d0e9c6f6d3ac121994fba2a0d7d076e18cd52e813fc1e2b2
DIST uv_build-0.12.13.tar.gz 424846 BLAKE2B 9fee11946f1067045349d28ba05b6dae8aaea430fdbbe19970c286d20f758d03343ed9a6afd2166f85ecfee3009fb66c7429f6ee8c58a6453e0203f2a3fca38a SHA512 77bf75208e6932b791b42d2a9dc199901a981d3ab8881e58cd5604e3207aef020538ff120770e0eb31646c1c0b7e972c816932c9d3bb0defc6b9583763607584
DIST uv_build-0.12.14.tar.gz 427528 BLAKE2B 81c3c2310058e279debf4c3964ac02fbccb0deec757fbb0824cf0e9a7e6edc0a49b269b382ee8ec47290bf37194c33c806bbb6778ba52d6915bbff3109007a9d SHA512 d8ff710bab00c287e3935e1411c9b9898a9db2107ac03285155bbcdda58e2d94d40556ace50986777b90832a03ea896149846b51e57691f9f243203c32ec44f7
+DIST uv_build-0.12.15.tar.gz 427499 BLAKE2B 30c3f72775de6f609ada7eca182fbd46da150624945983bd64691c59afb86e5e6c2bbeda1ea7f0bb5d12e8c9a332e741a9e2443ac6edba09da90352c00680d6a SHA512 8ad1d541ee1e287683d3013efb453e0ce1867e1404b369c36ac8f46b7300dd201516ade51930aad08b38ef1d42dff362baa13f58281d454344fde22f00443919
DIST uv_build-0.12.3.tar.gz 414444 BLAKE2B f226c1c2bf0b2af538f66095e20c02ad1933afdee62a07eff5f1135692bab47e286f67e7a8f5882e98c61fbb6bf831a85dd56a2d5af2bee6d62d8857a59e56bc SHA512 90d9af3e1a1ff1d7dda21fa38c0ac2d94536e73697ddabb408fb38e2d381498b2401007af0ab31c39cbf3b632aeca2991b3a66d7108e1c5eb7294b3fba8fe107
DIST uv_build-0.12.7.tar.gz 418759 BLAKE2B 94aa33b2644f849a686d80d7f7d365ca8433615d93f27209fca5b21747363cd349d11e887d090420102f06a49977ce963b8f19c24a4280bf82a09943ba08885b SHA512 135f845b3ee6d1925f740917f83f94ec1a7e95aab5ed2db0aa70516c712ab0a143a0e427d3c172fac0bb1fabaa9103718bb2a26c31c9a287e3af65ac0175a245
DIST uv_build-0.12.9.tar.gz 423446 BLAKE2B 8f32f7527633f5853a11a0f798a2aa075f9e96c2b34144f986a639dbd042bac7c5e33853287ef43273352a3ee84da852062c42daead1f188281295b635694177 SHA512 3aa6ea5b4e60218e7cbc3c5ed8ff7fbeeace36eb0d2c75627fb7a0ce7c060e8d6405378e9713f7164319cce55dc96b1a335ccb3032cfc7e9e60e99862295e79e
diff --git a/dev-python/uv-build/uv-build-0.12.15.ebuild b/dev-python/uv-build/uv-build-0.12.15.ebuild
new file mode 100644
index 000000000000..65d94f2051ae
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.12.15.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 0fc2a569f30f..51b06af7f5f4 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -8,6 +8,8 @@ DIST uv-0.12.13-crates.tar.xz 44176012 BLAKE2B 5a2459d28a794edf2a049c973916c6af9
DIST uv-0.12.13.gh.tar.gz 8784071 BLAKE2B afb0acdf733efe4937ba5e7a8ca5257e9f3c6651e13adf5b44e96985be9f0abebd2167aec84bf285385b8c984636c0c9ff0f4c6077188088cff27af40334fa78 SHA512 e8a03cde57914007d932c55d017be780a9aaeac62d1b5831a3fd62f8c44299d6c8bc01582eb3e6c06c92b3edfbd519e1ea4d8d95fbb2cd0bdffd85b1cd36a137
DIST uv-0.12.14-crates.tar.xz 44168832 BLAKE2B ad318ae7073d47eec81b715bb5461993c03de35b99d7b657fc1541ae63a3e3a2e5e9010bd2dbc525fc9b543ef85bdb276552383bdf916164b980c510646f2c74 SHA512 1cb24613d418983e2d7b921fe4766c5dce9d68eede6f1a99a1187657d002446a1b97685b0246d96136c6d3701050d2490830f0f325bfb602620a856b4aa498ac
DIST uv-0.12.14.gh.tar.gz 8629043 BLAKE2B 2260d63c6061d3dd2bdcb267848e9e6379f2e09a72e34a024f988d27aeb6818b75c1dd34962f1730d5d394722c19394abc356735ed919f9edc0ac680f0fe6f1d SHA512 72354cb5cce51e938aba647cb6fa0956efb5a5d49be1a928f8965a0639d207e142170cefb2f5d5dc9e72943951580ca156e2a12be6b7c08d049c4dc3a7f1d944
+DIST uv-0.12.15-crates.tar.xz 44168832 BLAKE2B ad318ae7073d47eec81b715bb5461993c03de35b99d7b657fc1541ae63a3e3a2e5e9010bd2dbc525fc9b543ef85bdb276552383bdf916164b980c510646f2c74 SHA512 1cb24613d418983e2d7b921fe4766c5dce9d68eede6f1a99a1187657d002446a1b97685b0246d96136c6d3701050d2490830f0f325bfb602620a856b4aa498ac
+DIST uv-0.12.15.gh.tar.gz 8628030 BLAKE2B 6640138ba52b1d4758e7d703652669b82de5246866145cbe62d0eda101738cc15a967037962c8a2f3a964cdf329896243a6363966088e2346a9499d2b85ea626 SHA512 7bc4c206e00ebb4540cd03b4eb70b120aebafe0392cfe652bd94dc8e003ea922eb451d2ce50c1468641f97709672cbea6c05f93739162fc822a8481fe2027089
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.7-crates.tar.xz 44143088 BLAKE2B 075113e8cbafd99a1c70c4ce53678f2ceb13ce31dc7cafb5773e32ae9dfa14144390380e0149219912a0c4b92e6d3b9d0a0a0016cdd4c69097bf75adf1b8a716 SHA512 f9dbdad7cbddd3238c7cc9fbcbec4e92fc8c8c66bc7247ccc8159bb186223c199e3bd411ad9148750ec1fa258775dcec1e2bb6bc3287fca7aeb6ffa7ba4d6b44
diff --git a/dev-python/uv/uv-0.12.15.ebuild b/dev-python/uv/uv-0.12.15.ebuild
new file mode 100644
index 000000000000..9826f9045941
--- /dev/null
+++ b/dev-python/uv/uv-0.12.15.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 99e02b8473c6..f8e0dd7dd414 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,5 +1,7 @@
DIST virtualenv-21.6.1.tar.gz 5526620 BLAKE2B a970f52b9a8ef5948ac0f2827ce9d2b724010bf77ef1fd678024d61834dd607cade4f1895c7f3cffd88d0b5f20353ee3b1934056d6d93a6d7576782aa71249e3 SHA512 bb5388dec00fa8e607188b1bd9240f2bbccf1b80ba94e4df30737eb435aae2be8637d534e2448cf7eae14dcc2f2b02a63168816c2207c8251c129db2a5665f39
DIST virtualenv-21.6.1.tar.gz.provenance 9508 BLAKE2B fa5122071df6df6435ad11f102bed2f85d5ebbaf8ab6056c2f2c66c1d3e8366692dadda375f2c39151abc413ec540169197730101ba3061dccec0cf2f7bd2668 SHA512 f5180591d1f4cca9bb5632ea2918437daf30c1deb91fac7676a783e5ee19ea424a6bac7fd3a8c6eddff7996ef6c1a4358746d92788cbd283a8abb579d745935e
+DIST virtualenv-21.7.10.tar.gz 5350247 BLAKE2B 9d9b5f419c4ac1225ed4435a9f5a2e337854efe68b3453a67fb764e84b48d34d896ea322ab01de1892f33a0ceabf29a7937ecc1fa6173615c3e4e68aae4b3665 SHA512 87e8de301a3d089c1066a87cc40848c0e60985eddaba9aff217f41aaa10149d96dc0ec39ee507066c3f3cc402a9ca09ca8b22d14cf369c63075e2eb703187311
+DIST virtualenv-21.7.10.tar.gz.provenance 9440 BLAKE2B 6f75442780a0ce863a63316b4c43c92c5464ca27065f1d31e410a8cdadbf716fd3b8c07dcb22e2c855b2a745d9dcdcab1249ee20457e413b25b611a08f86e18a SHA512 f4386b408b460bbd0921d48e1f0751dc93b253dd4f3a1adfbb565263fd63488f6fd64d68ef52b0a60651a256c7714a687fe5cb6c23126446a6def5578f2dc5ed
DIST virtualenv-21.7.4.tar.gz 5345511 BLAKE2B 30c7b5e782e4867e5d2a1726ab564af6d106280a909666a4dbee0a42d0cf9bde932681eb442cecb186d3a04bea329ebce458e45ecc5b745bfcc8a8fcc1e85997 SHA512 52db3945bf8c3c8f87db9b2e9df3ff22ab45b4ce3f0ffdbb9a7b3678df4cde0b0980dd9040adf478a6909d0650ff6f873a2db2d022e402e8d46edc8b67cf5c97
DIST virtualenv-21.7.4.tar.gz.provenance 9618 BLAKE2B 5cf72407fb515710895b6534a32c0b7b96329c3c8387aae5a1552e7d43a5447bb2d10c2198b61bd0150cf3cf719d54d5e3329a5a7230abb470e3805f87031a6b SHA512 a7280f39dfeb05379b7c9ba5dd3b9fdb8e7fda8a9496805795f53407fc175b308309640e77dfadec21806e2fb07c545ccb95c7e7b87fee68fa63fdf1fb30f58e
DIST virtualenv-21.7.5.tar.gz 5346743 BLAKE2B 52c54885686970e47eb44c6271515164929382f7ab8f514c1cd4861fb9145354d4b299e1d2d5eb658504713545dc9d481db8dec8541235983f9f68d795b68d52 SHA512 708068427c768f6469ffc49afa9738ef7d7b1f3edd1809ed2e8267878eae7f5729ad0992fc9acefbda6059c4c42a78a6cba31af0c6dbf4de7414b6c12da924de
diff --git a/dev-python/virtualenv/virtualenv-21.7.10.ebuild b/dev-python/virtualenv/virtualenv-21.7.10.ebuild
new file mode 100644
index 000000000000..b2791558c0f7
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.7.10.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/xvfbwrapper/Manifest b/dev-python/xvfbwrapper/Manifest
index d51eb6556120..491bcc8c5fca 100644
--- a/dev-python/xvfbwrapper/Manifest
+++ b/dev-python/xvfbwrapper/Manifest
@@ -1,3 +1,4 @@
DIST xvfbwrapper-0.2.29.tar.gz 12853 BLAKE2B d6d931a9742e29e34bc1506da2121c67eaf3bbcaa61f2c14c61fc2a7baaf4424949f836248917903264a7f64c425e8f20a6fa631a789fbff4a0c071a8d59dd47 SHA512 c546c7db922dc0027450a9526e94102cdcc0ac322c106574fb35ff70315daa6b4c1d1319aa240259fb1574af129227835cd3a0670dccf89b5d81f6e7b9a643c5
DIST xvfbwrapper-0.2.32.tar.gz 13308 BLAKE2B 2bc2a5d5c681a7ff898c09803b1fd16c8550bbd0871705ac950c0daec64df58525dc249c3d475e28266d0ea3fdb6c0b5d0c681fb9b4bcecca8846dad7db162c1 SHA512 0c4cf35816e325de2688b3781d4a96518d97ac1c2654a5c422ac5787bf6306cfb3af2b57a526823715286c0cba0a0b3b02694c29c14995f5f5ff59a189b2e802
DIST xvfbwrapper-0.2.33.tar.gz 13488 BLAKE2B c0d8ab22efa27c0d20b6b77499e0f10a260b3ae1f533a714d633c9542439c550deb33d237a9a44efb2a94096702de28e07ae306c1ad238fb468ddb73e4116c8e SHA512 2898cd60db19823fd0cb482402e5dc243fa5188bdc7029e27d9b900251fb8822b9aa7b1a5e8e8649b10986c6f6a2bbaa3457064ad680e6a406283c42c55e779c
+DIST xvfbwrapper-0.2.34.tar.gz 13264 BLAKE2B d1ec1808f0f6824397cff5d75ded199c9e578aa129593088a15a121a473afd4bafdc08edc44a49988f49f87534886a0b282bf257f9eba9c2412b3d0228b61704 SHA512 ae94b449e87b4136e058ad30dc7e02de5618cf1bffb7bf5cba1d2fc4e653c96c8d2626792860375e4c25c98c39233e2e3374aa5509e99868d7378259473fad3b
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild
new file mode 100644
index 000000000000..787856574075
--- /dev/null
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.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="Python wrapper for running a display inside X virtual framebuffer"
+HOMEPAGE="
+ https://github.com/cgoldberg/xvfbwrapper/
+ https://pypi.org/project/xvfbwrapper/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ x11-base/xorg-server[xvfb]
+"
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/yarl/Manifest b/dev-python/yarl/Manifest
index 9a9653fdf088..0217245f26ce 100644
--- a/dev-python/yarl/Manifest
+++ b/dev-python/yarl/Manifest
@@ -1,4 +1,4 @@
-DIST yarl-1.24.2.tar.gz 210798 BLAKE2B 24307407fe04c59e33a34bc4c8a529f47966328a592134fc7af3c8fe7170404f5bc7cf0886c05b6d26fae62e7f42470491e92161d71ceb6757998f13a9724942 SHA512 1804d105d20d828c29827cf593aecabb3369af3a5edb62c46af4daa54bb39e452b815258e2a5e6a9fcfcd2485d93e4354822549abd3de29cd681aa0d04e46aab
-DIST yarl-1.24.2.tar.gz.provenance 9271 BLAKE2B 2cecf60ef6c52ab36fd04d243d854dcff16f7d37228b941d2ceda934a4a65ed94eb3d8e73f93df7e51cb84cd52a71c701b1f251667c6e17ea597bcef9430f86a SHA512 8bbdecb0632757b2e63428d2ba12dc600366583ec3e41bc7409a57c0ae939d09cfb6b0273a1d015e6bdcc480d82954a23571d2fde0c00b0f3b484fb83c8efd4c
DIST yarl-1.24.5.tar.gz 228679 BLAKE2B 81e0d83e7ebd56602fba4b9e8a0c4b98269d11fdc64d0e72ff7fe1c9f7872784cabbbe6ce10596f73939c08253c0d238dff303c2302911b589e6a7ac47015b90 SHA512 0805b94ab2d69bd906a8f4a6a65b65e0cc11e0eaec473d40e9d363664c48a25dbd5cb0a5d4ed14b5ec965c2e5a17c766788b3d08f82a836876e80e2c9a012cb3
DIST yarl-1.24.5.tar.gz.provenance 9424 BLAKE2B e0b509817c88266a0a6eebe00da6bec206b0c3c18e7d2d13e39b39b0d2dd2611d9a766380375e67b51ba4c0a046db07b59b6f182bccd8fb1748811110970b820 SHA512 f5d551cc2484ed7c27b4e40e118cb3f96755ff4b8d8cdda036c1fdf8c542fd71456183719f749f42a973069ed90d4543398eeba1707b2700e1a2bc5c08a92a08
+DIST yarl-1.25.1.tar.gz 246245 BLAKE2B b9cc73e56ac526f9e703c0c60808f25c557a1a1c285920b220966cc6a2627265f0f034d7ea72546a07b5775c2e282e11b0179f935407c3f0df95ba13f59bdd2b SHA512 d7a8ecaeaef036c622b97d610a607ad55481e427957e9291a3e2035f3df0552024f1d57cb97465d7bb62faf2a2ae13661912325f77af99c80830280658988f52
+DIST yarl-1.25.1.tar.gz.provenance 9512 BLAKE2B 1b7d8431fd2687c8b07dc938746c6901accb1a3be1b1c079df2fed08241b8dd0b1a83817b361549f71a033ecac8eb844ef05a6bf70607610ce3e22f7f0d560de SHA512 85c8f4a4651788a3f304fe83119e4c074ad6e5b9491217e583e2d3eb78a61eaf39403385c11ef05b643899e3dc466878d9bf9ae8a5cc27a85e434f1b9f1de807
diff --git a/dev-python/yarl/yarl-1.24.2.ebuild b/dev-python/yarl/yarl-1.25.1.ebuild
index 977ab5b19ce1..b378da5d9b45 100644
--- a/dev-python/yarl/yarl-1.24.2.ebuild
+++ b/dev-python/yarl/yarl-1.25.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="+native-extensions"
RDEPEND="