summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-02-21 19:15:18 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-02-21 19:15:18 +0000
commitcd495875e147dea4ad09ca786109d35e80c724d1 (patch)
tree681dd27a9bee25f493b1f33d27fb625dca4f4d19 /dev-python
parent41acd1fc9170cb5dbb6216621dc06e6a4b498809 (diff)
downloadbaldeagleos-repo-cd495875e147dea4ad09ca786109d35e80c724d1.tar.gz
baldeagleos-repo-cd495875e147dea4ad09ca786109d35e80c724d1.tar.xz
baldeagleos-repo-cd495875e147dea4ad09ca786109d35e80c724d1.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/async-lru/Manifest2
-rw-r--r--dev-python/async-lru/async-lru-2.2.0.ebuild27
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.42.54.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.42.54.ebuild67
-rw-r--r--dev-python/django-polymorphic/Manifest2
-rw-r--r--dev-python/django-polymorphic/django-polymorphic-4.11.1.ebuild (renamed from dev-python/django-polymorphic/django-polymorphic-4.10.5.ebuild)2
-rw-r--r--dev-python/environs/Manifest3
-rw-r--r--dev-python/environs/environs-14.6.0.ebuild (renamed from dev-python/environs/environs-14.4.0.ebuild)11
-rw-r--r--dev-python/fixtures/Manifest2
-rw-r--r--dev-python/fixtures/fixtures-4.3.0.ebuild (renamed from dev-python/fixtures/fixtures-4.2.6.ebuild)4
-rw-r--r--dev-python/greenlet/Manifest1
-rw-r--r--dev-python/greenlet/greenlet-3.3.2.ebuild47
-rw-r--r--dev-python/grpcio/Manifest1
-rw-r--r--dev-python/grpcio/grpcio-1.78.1.ebuild56
-rw-r--r--dev-python/jsonschema-path/Manifest3
-rw-r--r--dev-python/jsonschema-path/jsonschema-path-0.4.0_beta2.ebuild47
-rw-r--r--dev-python/jsonschema-path/jsonschema-path-0.4.1.ebuild (renamed from dev-python/jsonschema-path/jsonschema-path-0.4.0_beta6.ebuild)5
-rw-r--r--dev-python/keystoneauth1/Manifest1
-rw-r--r--dev-python/keystoneauth1/keystoneauth1-5.13.1.ebuild61
-rw-r--r--dev-python/mkdocs-static-i18n/Manifest1
-rw-r--r--dev-python/mkdocs-static-i18n/mkdocs-static-i18n-1.3.1.ebuild33
-rw-r--r--dev-python/mkdocstrings-python/Manifest2
-rw-r--r--dev-python/mkdocstrings-python/mkdocstrings-python-2.0.3.ebuild (renamed from dev-python/mkdocstrings-python/mkdocstrings-python-2.0.1.ebuild)7
-rw-r--r--dev-python/oslo-concurrency/Manifest1
-rw-r--r--dev-python/oslo-concurrency/oslo-concurrency-7.4.0.ebuild49
-rw-r--r--dev-python/oslo-utils/Manifest1
-rw-r--r--dev-python/oslo-utils/oslo-utils-10.0.0.ebuild65
-rw-r--r--dev-python/pathable/Manifest2
-rw-r--r--dev-python/pathable/pathable-0.5.0.ebuild (renamed from dev-python/pathable/pathable-0.5.0_beta4.ebuild)3
-rw-r--r--dev-python/peewee/Manifest1
-rw-r--r--dev-python/peewee/peewee-4.0.0.ebuild83
-rw-r--r--dev-python/pipdeptree/Manifest2
-rw-r--r--dev-python/pipdeptree/pipdeptree-2.31.0.ebuild58
-rw-r--r--dev-python/puremagic/Manifest1
-rw-r--r--dev-python/puremagic/puremagic-2.0.0.ebuild28
-rw-r--r--dev-python/pylint/Manifest2
-rw-r--r--dev-python/pylint/pylint-4.0.5.ebuild82
-rw-r--r--dev-python/pyscard/Manifest1
-rw-r--r--dev-python/pyscard/pyscard-2.3.1.ebuild7
-rw-r--r--dev-python/selenium/Manifest2
-rw-r--r--dev-python/selenium/selenium-4.41.0.ebuild161
-rw-r--r--dev-python/sphinxcontrib-programoutput/Manifest1
-rw-r--r--dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.19.ebuild37
-rw-r--r--dev-python/stestr/Manifest2
-rw-r--r--dev-python/stestr/stestr-4.2.1.ebuild46
-rw-r--r--dev-python/stevedore/Manifest2
-rw-r--r--dev-python/stevedore/stevedore-5.7.0.ebuild (renamed from dev-python/stevedore/stevedore-5.5.0.ebuild)4
-rw-r--r--dev-python/tifffile/Manifest3
-rw-r--r--dev-python/tifffile/tifffile-2026.2.15.ebuild56
-rw-r--r--dev-python/tifffile/tifffile-2026.2.20.ebuild (renamed from dev-python/tifffile/tifffile-2026.1.28.ebuild)0
-rw-r--r--dev-python/tox/Manifest2
-rw-r--r--dev-python/tox/tox-4.44.0.ebuild92
-rw-r--r--dev-python/xvfbwrapper/Manifest2
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.20.ebuild (renamed from dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild)4
56 files changed, 1107 insertions, 133 deletions
diff --git a/dev-python/async-lru/Manifest b/dev-python/async-lru/Manifest
index 675a272d469e..ae876d8201ea 100644
--- a/dev-python/async-lru/Manifest
+++ b/dev-python/async-lru/Manifest
@@ -1,2 +1,4 @@
DIST async-lru-2.0.5.gh.tar.gz 13537 BLAKE2B 22adf45b8014d2a2ebd0983805b2478f75d3e22ff5498e79b76f45bee868aae159afc57b119051ad24661a300ade943dfbe2f1ad0e2db3949a091755e28e2131 SHA512 25d4684c0101c51b92a1173984bc6da3f4baaa2f5ac7bd6fb6ede64dc1ede5635f0f1ff3837e17e38c37f3d8a5e3268ffe2e92b6e9cf51d0f9470887dffe93c4
DIST async-lru-2.1.0.gh.tar.gz 17092 BLAKE2B 17f1123eaef2f6eee2ac67f7a8e38d4521cea09a9e01c0f815cfebeda242649ded3d75137278a9fbcae236c7f902cf48ac733f0ee240734cf6b4a9f1ee44302b SHA512 92b740c7c3c179ed86b0457c962aa75a32b587688efb264f43c90341f390996ca2c99243a1079c961f5f7867e216f33b5a35a5fb20674b89db8c971df43e22a0
+DIST async_lru-2.2.0.tar.gz 14654 BLAKE2B c3e8f4849dc352038f848f5b1a2a62f72ff6b2945771870ff84f798b861c31ab069e85973163a069439844d64f74a9ea4a77f3e14dd86666fded17c259f16f52 SHA512 f0fa279457918881768076379c276283983be20a18437a0d5b570c14e55f37f2a18f102e072e74f8a5c39cf2380bd81e9daa14b358ff257f875e2fee2aee6e57
+DIST async_lru-2.2.0.tar.gz.provenance 9352 BLAKE2B 5010a7a0c934d355f66e54e970850d889caa985d0fb0d93bfa66ca873f846f7d5287b1a540111c649b9bbae150458759ad41bacf9034e91810d4d59789715e68 SHA512 4211a6836709e4e509cf4044d9ba2e7067fbc6cffa7c60da10859dca3881c7fede349a17bb288c6f69b5b04c21e5072566a4f29155dbee9a6497a7f361223b01
diff --git a/dev-python/async-lru/async-lru-2.2.0.ebuild b/dev-python/async-lru/async-lru-2.2.0.ebuild
new file mode 100644
index 000000000000..acc779ed4f60
--- /dev/null
+++ b/dev-python/async-lru/async-lru-2.2.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2021-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/aio-libs/async-lru
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple lru_cache for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/async-lru/
+ https://pypi.org/project/async-lru/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 53b4d04dbd9f..549e19245c84 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -10,3 +10,4 @@ DIST boto3-1.42.50.gh.tar.gz 1086325 BLAKE2B d81f65b37af6cbec127dcc3e188880b31c6
DIST boto3-1.42.51.gh.tar.gz 1086626 BLAKE2B 2e08abbef723638076c39fd515659bde8fb485868e6951525a1930a5e5cdff5ac0a5683302e295d64bb737a333d7da36d950431c78baafc5e29fb1783c5097ca SHA512 8f51f5dc3b37ffaad6c4c2a87408b54dc7d8dce6c08009876c3475c3e95a247e78baf83144715c6b485a66abbc725948e248c6f032467f5bdeb4029f4a9fdf2a
DIST boto3-1.42.52.gh.tar.gz 1086491 BLAKE2B 45f71cdaa4b4b73c9c502cec09772d25328a9140517bc5941d3b3125c3417f20f60ba7269035725f991a5ed2ded6755db89cff6232e9d50c67e2993844a674e0 SHA512 69d139ec9f68f6d8e3794e6fa2e63fd17f9953e1a06df74ef7f7b4eae31f4c1a4876c33f694aac37448d6b82ac6788fe59916b3a82b76c65d6064b7929aa8308
DIST boto3-1.42.53.gh.tar.gz 1087318 BLAKE2B af74c567314eaaa3a225632317d63c1df76019863012177857c44436fe9c979e4e102e81ad3b92197187307f30728c7af1f0ed69e121fff15515d608f4f72aed SHA512 11c1f1bfb6645dee88da3fb08c05ce40b1c4593a4ea33ea6a322b8eb004a4317dde5acc47434bd978d7be858929cdd686516f171384f98f127fe82352713f19c
+DIST boto3-1.42.54.gh.tar.gz 1088047 BLAKE2B 882bb5e1c8b5b3b5539b8536e286e9df4fe71c50f501c3d71d53dfd7826e31648ded9fa805a0a1b04c1292f84a68fe93e438b2f2efc33cf1b64dc76e48445ebe SHA512 69aeadc259fd03326827ec9cc30a27a5b98649a2f6ba4dff5210282d5f5ec6ce4fcad8b1b77001a5275fa31f43b5c4cd9d6c9512093ad93986eb55f14486f937
diff --git a/dev-python/boto3/boto3-1.42.54.ebuild b/dev-python/boto3/boto3-1.42.54.ebuild
new file mode 100644
index 000000000000..6e5f06a012ad
--- /dev/null
+++ b/dev-python/boto3/boto3-1.42.54.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_{10..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.16.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 8f5d017561d7..61e33666fad6 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -10,3 +10,4 @@ DIST botocore-1.42.50.gh.tar.gz 15844813 BLAKE2B 17738a393aee02ecf689acbb95daa9e
DIST botocore-1.42.51.gh.tar.gz 15803682 BLAKE2B 9b986c8171c3e4d8770d9996b995c2a440bd18f2e66c4bead3dbeee2f83b234576aebd3ce0d26e15a2a383cb1951111c06ebb1e614d29b6e1a818deb3199fa90 SHA512 13779007ca629d687fdc631dcd3e3f72f91f53496010f94d489c84132180cb71ff1209b933ac6de5a26adaa63670d12cb0229b8d3be35bd673cd9f0d0417ed09
DIST botocore-1.42.52.gh.tar.gz 15803656 BLAKE2B 429a6dafb158f11504d9ce888373af52d5916e76349101aec3ed83d3feb92e319692f6c8cdcb6d7dbf34cff4525bcc19dbea0346d95cf81c7516d56a83917818 SHA512 e88701a7f6091f8967586476b5dbe4216dc7a9b244e6a3f6d4c78612c8c47a14dd37e8cbff4e13d20cbf283e8eda858cba4f41498a6cade0c946b18c943a5ea7
DIST botocore-1.42.53.gh.tar.gz 15805189 BLAKE2B 41192b9714c72f7841c6ad1dc11014c0714ce1b89f6020cbe806f91fde811762028d02b71499e3c14703f0b46f0f450f4662bc6901fe4787ff5b6e5703a3ea60 SHA512 812ac85114b50b038e97f25b4ac4467949c1919d3b49d029f15bc66e8aa6a170d8c0b927fa2f6ab75872c064b36113fa0758aca44766006e32c5ebffd9e1d1e1
+DIST botocore-1.42.54.gh.tar.gz 15809562 BLAKE2B 555e6c10bb65e5f14fbae4366084ddb5839674feb8ed77586e95b6c2bce76de7422ed92f260640d2dbfddf25b070909f1b2d69c386a2265289c12c19d7e49b8a SHA512 a49078027612182c1cbc9fcbfb5fcf4d99b02ef4278b3d6fde341f3c33d92a00bfd99c4cdf0fa2e359ca8c05789d007815a39e3ee07e9f630880f2bda66ce9fc
diff --git a/dev-python/botocore/botocore-1.42.54.ebuild b/dev-python/botocore/botocore-1.42.54.ebuild
new file mode 100644
index 000000000000..f6ce0d9ed8d5
--- /dev/null
+++ b/dev-python/botocore/botocore-1.42.54.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_{10..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/django-polymorphic/Manifest b/dev-python/django-polymorphic/Manifest
index 058a8479576d..ae4dfac35648 100644
--- a/dev-python/django-polymorphic/Manifest
+++ b/dev-python/django-polymorphic/Manifest
@@ -1,2 +1,2 @@
-DIST django-polymorphic-4.10.5.gh.tar.gz 342175 BLAKE2B 2ef7df67582b7879dcf8ca1ecda1d78317bb2db406f175b0287506a64387aed6f326ab5ceb9d0a254908bef0f755425cfb2a4465e9c6614cbf9325b7d3d2cd24 SHA512 370ab066c722147956e1cf05d307d07ff0b9e821501d21960ebdf723954bf2e7dc35402518b45212cbe5ea03c2756b9619dd7ae6b8c1471453aed8ef762f5c2e
DIST django-polymorphic-4.11.0.gh.tar.gz 352174 BLAKE2B 80e33fdd279b99a02a163e34768d7a396ca5aa1e988c11b259c0a051d0237ae8127ca246ee3e0f5c35395ed5da1e0caf2b2106ed19340207b8d82d66567f24ab SHA512 ecfeb9054d94f699c8fa9050118dc1ec33ae921a3e788117a8ce3d6edf0dbbadb320049e24218fa8041f30b82ff9f32604f345e6ee4b178c0c815160fcd5b1b9
+DIST django-polymorphic-4.11.1.gh.tar.gz 355460 BLAKE2B e846464df9dd5ba0569047322fab9bba97b39ef2dfbaf4d66f16b8769a075c1e8d93b2264ddeb91b72a3e0d8d5d9cbfa84be793dc0d08a28eb6213760f9b3846 SHA512 fece52a96323cc504d4f40b7f2914911178bbd215e74128a026dd968164891302eca140d88f4b0e1a48c1df3ab27523e8e015a9e20c08297324b56e4d6132750
diff --git a/dev-python/django-polymorphic/django-polymorphic-4.10.5.ebuild b/dev-python/django-polymorphic/django-polymorphic-4.11.1.ebuild
index 0dded430ddf4..1c0149ed2fb4 100644
--- a/dev-python/django-polymorphic/django-polymorphic-4.10.5.ebuild
+++ b/dev-python/django-polymorphic/django-polymorphic-4.11.1.ebuild
@@ -24,12 +24,14 @@ KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
>=dev-python/django-4.2[$PYTHON_USEDEP]
+ >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
$(python_gen_impl_dep sqlite)
${RDEPEND}
dev-python/dj-database-url[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/environs/Manifest b/dev-python/environs/Manifest
index d6c30c159440..14d733df08b9 100644
--- a/dev-python/environs/Manifest
+++ b/dev-python/environs/Manifest
@@ -1,2 +1,3 @@
-DIST environs-14.4.0.gh.tar.gz 48220 BLAKE2B 7dd89016a30b6194c666d1b5d4931c1223d52a609ec369c435a8b066daea52622c42932598a07ca43976bec5a186879309d079248809d116e1b110f7a39adcf0 SHA512 e49ec88ed6eaf09465505378db5b74b01637e04b16b53ae0a7245ca4bd26c9ee0ec795c7b7c9b6791bb0d1b0ac7a6cb33c16a0bad7cd30805779b1791e151b69
DIST environs-14.5.0.gh.tar.gz 48055 BLAKE2B efb67a9f947169020ab2337ffd065a095f49bd8bbefe51ba45f00f78f105f276b2a8775d1c778c8f5929b667933189752a99fbe814760cacf8fc340650d6eb7f SHA512 421328d2b3bb563cfb3b4ce8eeb7d3032f01f637cdbd481a0c2fc3c05e5768e1b94169386a7ec39c7f7a4a36116dacba7f2ced25c3dc31e43de5dcadcb941f14
+DIST environs-14.6.0.tar.gz 35563 BLAKE2B 8a8d3777cbb8e8c160f9b5b87387be8a3f20f7a49ead34555b5e1b1bb2545d2c2ee14bf5671013ca6708f4f27ddc17fdd15f6ce5ca51fa1e551ef7a462a0dca3 SHA512 740b8182d7c8807ea3f50db05b71d19b2b06486909c80fa2269bf2beefe8d1624d8994ad0137bd33118825376d65d2fd94d2cf8c3c7d8cdea307e1c43880b928
+DIST environs-14.6.0.tar.gz.provenance 9487 BLAKE2B 10d482292d3f5b9bc27d4613d6aad880633b16c6e3f99e7f88d0d36a5ee2a03710acf19c52e4c77658e7731d055354b166058f1451792cf78aa8cf587aeb4bf5 SHA512 8496f565d3cf7a6f3261444a00b0e142bac1b532de4715d097377d5bd210b0bd8c69e7b5c3dcc3d250baf13130436acddfdabb2ee665c1d8ad86613d53f06f3c
diff --git a/dev-python/environs/environs-14.4.0.ebuild b/dev-python/environs/environs-14.6.0.ebuild
index 7e140f03e826..c8f1e295a0fa 100644
--- a/dev-python/environs/environs-14.4.0.ebuild
+++ b/dev-python/environs/environs-14.6.0.ebuild
@@ -1,22 +1,19 @@
-# Copyright 2021-2025 Gentoo Authors
+# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/sloria/environs
PYTHON_COMPAT=( python3_{10..14} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="Python library for simplified environment variable parsing"
HOMEPAGE="
https://github.com/sloria/environs/
https://pypi.org/project/environs/
"
-SRC_URI="
- https://github.com/sloria/environs/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
LICENSE="MIT"
SLOT="0"
@@ -24,7 +21,7 @@ KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/python-dotenv[${PYTHON_USEDEP}]
- >=dev-python/marshmallow-3.18.0[${PYTHON_USEDEP}]
+ >=dev-python/marshmallow-3.26.2[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
diff --git a/dev-python/fixtures/Manifest b/dev-python/fixtures/Manifest
index 7991f8f0061e..85af2000d52c 100644
--- a/dev-python/fixtures/Manifest
+++ b/dev-python/fixtures/Manifest
@@ -1,2 +1,2 @@
-DIST fixtures-4.2.6.tar.gz 46938 BLAKE2B 12ac91812b4831f84ee71f80b9e8ee955b4375f3107330e2d1b679731afc3c6b764a51fb52f50fdf458568a44f1eb06002aaf3ff8faf2625d8ab5ab6960744fb SHA512 58c0dec249071f7ff6dc8063ad52a54b43a518d01758b3979b62393f2d58ff39fc58e20b1324eb1f8518cb4b155859777c6d7570c09551ef2baee4167cd7ac6d
DIST fixtures-4.2.8.tar.gz 46738 BLAKE2B 22f8265e7da782acbc867256392599fd92992bdd86df273eeda1816cd97b50e674858fca8ffc813afe1e38ba48ed7e28f1881dea13d80d325ae175a6b76b89d2 SHA512 c2844764ba493301c5d14e7f31a65cca371a7d3134277eb6aad49ad3c6e42848f6dbdad31837652ef27dfcbe19a03890f8fa6dcfc8e877460eae6083de278227
+DIST fixtures-4.3.0.tar.gz 46637 BLAKE2B cba4cd915cdad5d97ae7327afa932a3625abde1f18504f19c65db313a83334caf92a4d712629a95273f2ebd15291514aa87e88e5a8e202330143ff52537230e6 SHA512 e22aef9c86c90d0d0e0bc96fa241faf8b7673251a31aacd14cbfc66a4e410e6f9b260f408eaa11280af3b8e8e19e80a373f6bede57347f46614fee66385f11f3
diff --git a/dev-python/fixtures/fixtures-4.2.6.ebuild b/dev-python/fixtures/fixtures-4.3.0.ebuild
index 9ab0f7db1377..a32c5fdb6104 100644
--- a/dev-python/fixtures/fixtures-4.2.6.ebuild
+++ b/dev-python/fixtures/fixtures-4.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 BSD )"
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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/greenlet/Manifest b/dev-python/greenlet/Manifest
index 12a58e128e20..f69f5028b398 100644
--- a/dev-python/greenlet/Manifest
+++ b/dev-python/greenlet/Manifest
@@ -1,2 +1,3 @@
DIST greenlet-3.3.0.tar.gz 190651 BLAKE2B 32405286c0b8a7b1170936c419a4c40856b7e4605eac95ff733c0603ba54031fe2510cc47cdecfe33ce97e5e6de0995a9c174fb52dfd637bd351c0782d787929 SHA512 633d207f9fe749074760e31302ca6b2f2a6c72f0161d9676c8c1047928a4108106653f3914430cee62b125d99d449f80566282d089a09f9bb6eb3589b43e9817
DIST greenlet-3.3.1.tar.gz 184690 BLAKE2B 719057006c8f54a25e29b21e80fadfbab46274055aa65644f0cf69b97ac8d1ca14078a1e5f410e7df21451678a1f00ca3d0a93a1c95df3b95c8a3a9d47e22af3 SHA512 890e9a56f15c39101b45aabb006545640777a987d8f962c63859c2b4e26adfb5ae33310905982475809d3fcfb3b0ee5a9b11817c380708bba2d3c25cd5ad1822
+DIST greenlet-3.3.2.tar.gz 188267 BLAKE2B 528c8202d574cbf65ae9ebb1810553a0c2caf68dc83d8a7c9a0c3dea9740966ceb91f21fc5712d10eb30a617e283da2c542d8193374ded1fdf425e34cae9cf96 SHA512 94b12fb43157d0e989e256db8550e835a15b9894734e46a662b37e07d9863d4fef9dd7d7c87cde0d2cc18c19b7431d509977a2bf01f55a3eff79a83036dd9477
diff --git a/dev-python/greenlet/greenlet-3.3.2.ebuild b/dev-python/greenlet/greenlet-3.3.2.ebuild
new file mode 100644
index 000000000000..c3b11e14304c
--- /dev/null
+++ b/dev-python/greenlet/greenlet-3.3.2.ebuild
@@ -0,0 +1,47 @@
+# 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
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="
+ https://greenlet.readthedocs.io/en/latest/
+ https://github.com/python-greenlet/greenlet/
+ https://pypi.org/project/greenlet/
+"
+
+LICENSE="MIT PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 -hppa ~m68k ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/objgraph[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/furo
+distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # patch cflag manipulations out
+ sed -i -e 's:global_compile_args[.]append.*:pass:' setup.py || die
+}
+
+python_test() {
+ local -x GREENLET_SKIP_LEAKCHECKS=1
+ eunittest greenlet.tests
+}
diff --git a/dev-python/grpcio/Manifest b/dev-python/grpcio/Manifest
index f102378ffacc..740494028d71 100644
--- a/dev-python/grpcio/Manifest
+++ b/dev-python/grpcio/Manifest
@@ -2,3 +2,4 @@ DIST grpcio-1.74.0.tar.gz 12756048 BLAKE2B 943f9b438985193e13d72cd3e270f8b0bb311
DIST grpcio-1.75.1.tar.gz 12731327 BLAKE2B 1cca575fefd42584fa1ce1d20ae875b2f894a1cc4f3c7eefbd64e51014bd8709f70d8ac8750cd06d9572a7867fb0ac514af098bb7b88c574f006957df4d7c082 SHA512 025554fc885859e0e484ec0c205ba19abe21d4fc7b6632eac7d4aa1fb7513b57235e38444a01b417c2f70549c79696b08fb4f2a673689cbca2810b21363d3fa5
DIST grpcio-1.76.0.tar.gz 12785182 BLAKE2B dbd3bf849ac2a721a114087e484d8f759bc4799e2e8a4ea58236a6bcf926ccf1ee183bc61f616f7acbbff59418b9e39de921e50aa6b890e6a642f2969f9513cf SHA512 f6cd5bb70d839c7f0a17da9635c3363d1073f590fb53518a2c603a1a93f03742e135f86105494852ae343c699a9de8a3286fd150ef9074d8a51727c61c5a55c5
DIST grpcio-1.78.0.tar.gz 12852416 BLAKE2B bfa0f02333ebb856c3218cce4b0648b8bbc43a6288d54bee56c192092cc109d74f552915f35716ec9bf8c4fcdea87ecf62251c69af129974a28c8e170697418a SHA512 2d6b7a5969db17c250c460085bfb6307818ad1c4e0876b3de957a75124ca8466e613446e1590121c983cca6975d97057a2978eebe1c0780cedca74c572593960
+DIST grpcio-1.78.1.tar.gz 12835760 BLAKE2B 45c2c811d5970731e88539ab60d8f99f4477a6cd6f9e64a85dee618a56709c8bd8c7476849dff9bf4d5af75e5dd845bd9a7e1259cb345394a9e8add7ededc6db SHA512 5e123927cf9dd6cbee6c623f88007c6b89e3c0cd67ad911f9fc594546597a3a98542f04ee54b431660eaf6be5248fef67af256400209af1df61e01b1b2222829
diff --git a/dev-python/grpcio/grpcio-1.78.1.ebuild b/dev-python/grpcio/grpcio-1.78.1.ebuild
new file mode 100644
index 000000000000..ca6a7b797851
--- /dev/null
+++ b/dev-python/grpcio/grpcio-1.78.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2022-2026 LiGurOs Authors
+# Distributed under the terms of the GNU General Public License v2
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 multiprocessing prefix pypi
+
+DESCRIPTION="High-performance RPC framework (python libraries)"
+HOMEPAGE="https://grpc.io https://pypi.org/project/grpcio/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+IUSE="libressl"
+
+RDEPEND="
+ !libressl? ( >=dev-libs/openssl-1.1.1:0=[-bindist(-)] )
+ >=dev-libs/re2-0.2021.11.01:=
+ dev-python/cython[${PYTHON_USEDEP}]
+ >=dev-libs/protobuf-25.0
+ dev-python/protobuf[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ net-dns/c-ares:=
+ sys-libs/zlib:=
+"
+
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+}
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ hprefixify setup.py
+}
+
+python_configure_all() {
+ if use libressl; then
+ export GRPC_BUILD_WITH_BORING_SSL_ASM=1
+ export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=0
+ else
+ export GRPC_BUILD_WITH_BORING_SSL_ASM=9
+ export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
+ fi
+
+ export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY=1
+ export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
+ export GRPC_PYTHON_BUILD_WITH_SYSTEM_RE2=1
+ export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
+ export GRPC_PYTHON_BUILD_WITH_CYTHON=1
+ export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$(makeopts_jobs)"
+}
diff --git a/dev-python/jsonschema-path/Manifest b/dev-python/jsonschema-path/Manifest
index 958188ec58f4..9389386986bd 100644
--- a/dev-python/jsonschema-path/Manifest
+++ b/dev-python/jsonschema-path/Manifest
@@ -1,4 +1,3 @@
DIST jsonschema-path-0.3.4.gh.tar.gz 40126 BLAKE2B cc7884ab41a0cdcfbd292831f9ed2a03f82af30f4482499c7940633741560228df59c4157457e8c44c57fb73f0f6142f10ad23d36f444fea71a84cf6309d953d SHA512 85b791a374d61bedf66a0ca44b6906ec74f02ffe991c1cb220267c85c0e7b493375d712d7ca0828681c9c15f170bc29d4b808b00778895fb13f1f7ff3cdf2a9c
-DIST jsonschema-path-0.4.0b2.gh.tar.gz 58162 BLAKE2B 4044b9efbbaece7fddf8c7c00bef56fcee55c65c247bab3637add2a139d7643e5429d20001bf80bbe4de9cc6fe7c8420473bd4cd371c64158a9d2ed8ecb5d8f7 SHA512 756779154d337db3663cf05b54c2650c1b59603ee9961984a0fd41f048043bcb2337a605409538a495da6d4e970ae80a2b11cce2a8867a47f807021ad59b3c0e
-DIST jsonschema-path-0.4.0b6.gh.tar.gz 58399 BLAKE2B f43ebc15ec3af93f6887812195dabd5c5405856fe39bfda4a7444bf14da8f8b38016fbf4e10a396b26357a9eaa8d0c01913155e0ed086447a42cc157201311cb SHA512 1c1a050aa76e6028ffafcdd8a95e35245479c1c4621be6be1f9f412a68cd50ed3e53daaa04691774f1d09259f656635c19baba16a2c7b561f26bb42621d38da9
DIST jsonschema-path-0.4.0b8.gh.tar.gz 59277 BLAKE2B 7b3fb5cc410f26b5e4960b300851194a887e27e50c05ca5818e7cd1e118f6657a55841092f2cdac130f166eddeca81e48d06fb25c60a5380859581531d9c05bb SHA512 719b57f6581e540d152863365ab85f7c9aafb0ab79880e6ccfca462f2d64892636276d741acc09662cdba242ce1e54833a42bd38048ce6c7299d9609715f9bac
+DIST jsonschema-path-0.4.1.gh.tar.gz 59800 BLAKE2B 8e049c88d73772216f76975048f66b55bacf1be680a4ea79926db6f3a76012ca263bf348bff46065a1e9eac8bcd82c159d7230592a8b754bb9fd2d5e64dea04c SHA512 92f5c6a8102e19b0df4b24118db8270f7de68f62804a59c55a0bed21697187c5f3ee4ae18c77ca9ffaf5de8f3611eecfc789b96d906735ed0d0c4552642fe3cd
diff --git a/dev-python/jsonschema-path/jsonschema-path-0.4.0_beta2.ebuild b/dev-python/jsonschema-path/jsonschema-path-0.4.0_beta2.ebuild
deleted file mode 100644
index 3f67822abd2c..000000000000
--- a/dev-python/jsonschema-path/jsonschema-path-0.4.0_beta2.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2023-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=poetry
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-MY_P=${P/_beta/b}
-DESCRIPTION="JSONSchema Spec with object-oriented paths"
-HOMEPAGE="
- https://pypi.org/project/jsonschema-path/
- https://github.com/p1c2u/jsonschema-path/
-"
-SRC_URI="
- https://github.com/p1c2u/jsonschema-path/archive/${PV/_beta/b}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-
-RDEPEND="
- >=dev-python/pathable-0.5.0_beta4[${PYTHON_USEDEP}]
- >=dev-python/pyrsistent-0.20.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- >=dev-python/referencing-0.28.1[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- test? (
- dev-python/responses[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/--cov/d' pyproject.toml || die
- # remove random pins
- sed -i -e 's:\^:>=:' -e 's:<[0-9.]\+:*:' pyproject.toml || die
- distutils-r1_src_prepare
-}
diff --git a/dev-python/jsonschema-path/jsonschema-path-0.4.0_beta6.ebuild b/dev-python/jsonschema-path/jsonschema-path-0.4.1.ebuild
index 3bb6d58b600f..53a954549088 100644
--- a/dev-python/jsonschema-path/jsonschema-path-0.4.0_beta6.ebuild
+++ b/dev-python/jsonschema-path/jsonschema-path-0.4.1.ebuild
@@ -22,9 +22,12 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
+if [[ ${PV} != *_beta* ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
RDEPEND="
- >=dev-python/pathable-0.5.0_beta6[${PYTHON_USEDEP}]
+ >=dev-python/pathable-0.5.0[${PYTHON_USEDEP}]
>=dev-python/pyrsistent-0.20.0[${PYTHON_USEDEP}]
>=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
>=dev-python/referencing-0.28.1[${PYTHON_USEDEP}]
diff --git a/dev-python/keystoneauth1/Manifest b/dev-python/keystoneauth1/Manifest
index 32fea0b6ddd9..dc365456ccd6 100644
--- a/dev-python/keystoneauth1/Manifest
+++ b/dev-python/keystoneauth1/Manifest
@@ -1,2 +1,3 @@
DIST keystoneauth1-5.12.0.tar.gz 288504 BLAKE2B 72c01bbd7002d1dc35a8a1c071531654b60c37f31ba30f8b796dc7ae529e4ec7d41b406ed6185bb2c835dc8fbed3ce35dc85eade3da305174b24490c7c3d287a SHA512 2cfbbd166e1b28c31e92aef312e866d7c23c9a38dc1ffcaf6e25f8e88fdedc832e24cf112611342856d12195306e0458629295bd616c00e2df9dc934120400a1
DIST keystoneauth1-5.13.0.tar.gz 288721 BLAKE2B 0fc3626a5613577b7eb8c61f6ff0a8edf6cc1b88b2cdd3efb88e40ba97cba52ca3a254439bef08434355c39d888e2bbd444599b27bae79dbc58ee7d4040fcda3 SHA512 246ababa0b6dcee16a4852e1236d7e672f8cf14a987f12c2f8a252c73cf04c4db91f24301d123e8c80307fb8d223a26fd958c1e698c97bee0aceb13b3f1ede7c
+DIST keystoneauth1-5.13.1.tar.gz 288548 BLAKE2B e07c9a7b47ca0c01594ad344fbdf473b6a46b11ffffb968e93e94421485ef6fb15287675d46037317441a13bb4202ae581e099cea0c519c7420344ea45cfdc41 SHA512 10a5277feb08bf7926c2ede4a92be30d540c6be58334f664075ba94ff6cca10cce668d75f23e6354c1927aaaa0b7e057d1b7b1018b815dd4ee6c87c69dbd075f
diff --git a/dev-python/keystoneauth1/keystoneauth1-5.13.1.ebuild b/dev-python/keystoneauth1/keystoneauth1-5.13.1.ebuild
new file mode 100644
index 000000000000..47dd31575965
--- /dev/null
+++ b/dev-python/keystoneauth1/keystoneauth1-5.13.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=pbr
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="This package contains tools for authenticating to an OpenStack-based cloud"
+HOMEPAGE="
+ https://opendev.org/openstack/keystoneauth/
+ https://github.com/openstack/keystoneauth/
+ https://pypi.org/project/keystoneauth1/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/betamax-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+ >=dev-python/requests-kerberos-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fragile to test runner name
+ keystoneauth1/tests/unit/test_session.py::SessionTests::test_user_agent
+ # broken betamax
+ keystoneauth1/tests/unit/test_betamax_fixture.py::TestBetamaxFixture::test_keystoneauth_betamax_fixture
+)
+
+EPYTEST_IGNORE=(
+ # require hacking
+ keystoneauth1/tests/unit/test_hacking_checks.py
+)
diff --git a/dev-python/mkdocs-static-i18n/Manifest b/dev-python/mkdocs-static-i18n/Manifest
index b925f5cc47b1..f7da13af57da 100644
--- a/dev-python/mkdocs-static-i18n/Manifest
+++ b/dev-python/mkdocs-static-i18n/Manifest
@@ -1 +1,2 @@
DIST mkdocs_static_i18n-1.3.0.tar.gz 1370450 BLAKE2B 9773d0916e0e423a52bf11cc75226a023a293a4b864ecaf42e6bbba4fd97a1181197a7e76969af825114631a761e2b4392b584a67cddd868c3ca02b0a8af1837 SHA512 acce96a18078ec4a2984c65a077ffa020edf9707352f5b9f76a63cd89293baa33dffdc032bbdee4aa9ad7d4128b98f2ae881cb86f3f80a4652d052b3314143d5
+DIST mkdocs_static_i18n-1.3.1.tar.gz 1371325 BLAKE2B 52d05638cd00ae85d1b8cd53ab63eae6d60d7fe311387e727fea059b10b834f3553a8c97fe515e3a7a6b41cb78b2795f18192a5f4f89bf59c4b17c98c1b92856 SHA512 11719f0c8f19c3ab268f1076e809431cccb18f963043c799ec81cb85f46b1084be7c41db0bcc4bb1270a281b706fc318b6fa99e01ec394eb0051d289efdbf38e
diff --git a/dev-python/mkdocs-static-i18n/mkdocs-static-i18n-1.3.1.ebuild b/dev-python/mkdocs-static-i18n/mkdocs-static-i18n-1.3.1.ebuild
new file mode 100644
index 000000000000..2d7dd276ac75
--- /dev/null
+++ b/dev-python/mkdocs-static-i18n/mkdocs-static-i18n-1.3.1.ebuild
@@ -0,0 +1,33 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="MkDocs i18n plugin using static translation markdown files"
+HOMEPAGE="
+ https://github.com/ultrabug/mkdocs-static-i18n
+ https://pypi.org/project/mkdocs-static-i18n/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/mkdocs-1.5.2[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/mkdocs-material[${PYTHON_USEDEP}]
+ !!dev-python/mkdocs-i18n
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/mkdocstrings-python/Manifest b/dev-python/mkdocstrings-python/Manifest
index bacc706cb31d..22a3e4c12f26 100644
--- a/dev-python/mkdocstrings-python/Manifest
+++ b/dev-python/mkdocstrings-python/Manifest
@@ -1,2 +1,2 @@
-DIST mkdocstrings_python-2.0.1.tar.gz 199345 BLAKE2B 62386822b86462b38e587954e3a8566530f3021d243e2ab13d5f3a948d74f6e4eca9dbd62fdb50dc266ecdeed51c013725ea305d5bcfb81c0bb59dc3c8a3f912 SHA512 b3e3c9b48a451b630ec88c79d254a9095f9a2a1d5d43a0aab9ac2554d0cef681a5ebc2452f44466bc0ea47e27f68f66b0e3fa14534ea97ddb5994ae37c1b4327
DIST mkdocstrings_python-2.0.2.tar.gz 199124 BLAKE2B e6698c44702e87f84a97db1815924f69f0d3daf0bee5fb6e02a5fb1392ba4ad89b54f6dd3932f137281b2e3f17e56d40ba1cb5ff1e4e1f40aa3a329e6b294b07 SHA512 04613ff0de8b1caa0f39f5f807a5ea3a1bd66f25d1caf5b46822e88e68cc4a66654cf31dba6d0901d5770d2388e97334324b4703517b59fd83c1dd912fcb269a
+DIST mkdocstrings_python-2.0.3.tar.gz 199083 BLAKE2B 9d6f561409e3c248d84c2a81014f6f984353479ec1f43adf9d997ae5e4632d0540f08dec0a1b6e461d1bca36d4541c680cce2fd740b13266496e78383e1f7c10 SHA512 632593e79d763cde41f38def63773baa291c34e5165b2684ebfa2f0bb2f58b80cf33a8ae3ca41427f66fca6073affb90a80daaaf182afde09d35acbb0987554e
diff --git a/dev-python/mkdocstrings-python/mkdocstrings-python-2.0.1.ebuild b/dev-python/mkdocstrings-python/mkdocstrings-python-2.0.3.ebuild
index e1aa0186694c..21a1f4bb3b70 100644
--- a/dev-python/mkdocstrings-python/mkdocstrings-python-2.0.1.ebuild
+++ b/dev-python/mkdocstrings-python/mkdocstrings-python-2.0.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,10 +17,11 @@ HOMEPAGE="
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
+KEYWORDS="~amd64 ~arm64"
+# TODO: replace with griffelib once we split it
RDEPEND="
- >=dev-python/griffe-1.13[${PYTHON_USEDEP}]
+ >=dev-python/griffe-2.0.0[${PYTHON_USEDEP}]
>=dev-python/mkdocstrings-0.30[${PYTHON_USEDEP}]
>=dev-python/mkdocs-autorefs-1.4[${PYTHON_USEDEP}]
"
diff --git a/dev-python/oslo-concurrency/Manifest b/dev-python/oslo-concurrency/Manifest
index abe082c3f4f8..dcf842ea6eb3 100644
--- a/dev-python/oslo-concurrency/Manifest
+++ b/dev-python/oslo-concurrency/Manifest
@@ -1,2 +1,3 @@
DIST oslo_concurrency-7.2.0.tar.gz 60285 BLAKE2B 5910c9ebd0f5b95b72448353b2d76cad4f76fa85afb3a1771e103692e42865e59f9a85566ea69c8738ae2decc7569f4a302c15cdd295231426b78b66fd5207d3 SHA512 61383fb73812ed1f5cb4bd3957a22e05923ed611d425b156b209f6fd70789c97223b405e17740223c6428002e172538f141a8698c716f7c3a16a4419733479b0
DIST oslo_concurrency-7.3.0.tar.gz 62247 BLAKE2B aafbea73d5ba5ec4814012bbd413ad60ea962cd4638712a5713ef690706f5be5d4375ec993e0d6e52ba280482d74644bfb1436fabd3c5bbc2c3a6f5ac0a56ab4 SHA512 7c709d1100483eba5b230c34f1d906cf10b572a4da69c04979e97284315e00446140a0f22bf75f361f5bf051b8fa0e4f4c0ef9f97a971915c038fb7ba24a6709
+DIST oslo_concurrency-7.4.0.tar.gz 62256 BLAKE2B 17726948ccd2dfa0376b1d9edf645719a3b8ade02df4b5ee0c1da3a1c8b328f603b0c0624a9df0626a7194bad7ccf1465fb0f2496a7fb0d9a2db83eb0b4f1806 SHA512 e42e22e5d88e1f7b1e7331dea72c006389e9b2c2dc767f1373f5105d2f80aff6b1c9130eef185adb42aee6588ec65235313618212d7bdac84b1d5d76d48f4ba3
diff --git a/dev-python/oslo-concurrency/oslo-concurrency-7.4.0.ebuild b/dev-python/oslo-concurrency/oslo-concurrency-7.4.0.ebuild
new file mode 100644
index 000000000000..748d4617d640
--- /dev/null
+++ b/dev-python/oslo-concurrency/oslo-concurrency-7.4.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Oslo Concurrency library"
+HOMEPAGE="
+ https://opendev.org/openstack/oslo.concurrency/
+ https://github.com/openstack/oslo.concurrency/
+ https://pypi.org/project/oslo.concurrency/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/debtcollector-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/fasteners-0.7.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # fails, then hangs
+ rm oslo_concurrency/tests/unit/test_lockutils_eventlet.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ eunittest
+}
diff --git a/dev-python/oslo-utils/Manifest b/dev-python/oslo-utils/Manifest
index 4806a62a9d38..65bccbc5737d 100644
--- a/dev-python/oslo-utils/Manifest
+++ b/dev-python/oslo-utils/Manifest
@@ -1 +1,2 @@
+DIST oslo_utils-10.0.0.tar.gz 141716 BLAKE2B cf7322afb98936f9c8261e244ff629340e6c23e2cb34d1cbff9475a7eae18796da922e8dec051f24335eaf8a19276e5c5b9e0305d7371858a4e6bf4febf3a99f SHA512 1e511b872a916256a006bc915d3f01663f6b702024423141955033490d8e48a814cfda7eca8834f0d5546624d06b02cca766ba55b5cb3808d76471234a08e608
DIST oslo_utils-9.2.0.tar.gz 142524 BLAKE2B 6eab7fadbbb69c99e1c64b9442d28c6ced17f867d31bee72dda11fbdb180a19c1e648427b8d7560b600bcb834c1850cb3963548903ff19e3fcf8a11b3aa6a954 SHA512 ed6def990d94026637bc3143c881537b5a04d38e1e13f798a2e32d106a3056f110f147fd547a18d64bdd22f44a8de5f31a38e2f5d75dfb1fbe18ec33f5258533
diff --git a/dev-python/oslo-utils/oslo-utils-10.0.0.ebuild b/dev-python/oslo-utils/oslo-utils-10.0.0.ebuild
new file mode 100644
index 000000000000..96283e882e83
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-10.0.0.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=pbr
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit check-reqs distutils-r1 pypi
+
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="
+ https://opendev.org/openstack/oslo.utils/
+ https://github.com/openstack/oslo.utils/
+ https://pypi.org/project/oslo.utils/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.10.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.4[${PYTHON_USEDEP}]
+ >=dev-python/pbr-6.1.0[${PYTHON_USEDEP}]
+ >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+"
+# qemu needed for qemu-img
+BDEPEND="
+ test? (
+ app-cdr/cdrtools
+ app-emulation/qemu
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+# note this only applies to USE=test
+CHECKREQS_DISK_BUILD=8G
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use test && check-reqs_pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # require eventlet
+ rm oslo_utils/tests/test_eventletutils.py || die
+}
diff --git a/dev-python/pathable/Manifest b/dev-python/pathable/Manifest
index 8d2b2878a1c2..d4d7fae7eec1 100644
--- a/dev-python/pathable/Manifest
+++ b/dev-python/pathable/Manifest
@@ -1,3 +1,3 @@
DIST pathable-0.4.4.gh.tar.gz 21381 BLAKE2B f0ba3579204a636948f96259bc67b3a6e923af1de7b6fcf4021152c9482f82fc362d5d50cb1bcd6b5393c49d2914c6d36e941647754ef7bc2554722ad02f38ad SHA512 4b1ec32f7e952749ec0384036e7becf5343e92cbec9160627c2a678e314d7387bd4ad56a3953171038a38102c715469e973218cb3995df414bd9dd750986e046
-DIST pathable-0.5.0b4.gh.tar.gz 54659 BLAKE2B 6cec02acc10591cdc08c37dd9642a0cd9fa4003ef5ca0b1fbaf1821bbbdcfedc45d9addfb9a43946bd8d76d844b8ce2479d6651e06e86bf05c19a7d529fedd8a SHA512 d7eccfc948fcabe5313fee1f3fd21401146b0f1e61861c660a14c8ad6d30471ad7b99ff5a50bd25ed61670537c6826d1d66278dd739dafcf0b59411c8a55e8f2
+DIST pathable-0.5.0.gh.tar.gz 58424 BLAKE2B 638caa4f7c143e27b671aedcb1ed32b79eb3b48723f367f771882922b380c843e7982c9c821cac5b082cc7af875a668f8bdcc0373ee8c269bfd3566716ca3b20 SHA512 ccd94c910205cc4950bdcee4b06f2c7be59f0ee4688f8ec342b071d1e79e1595dff309cb5c69b50090d33a67af5ea9e8dc26f5b68cb0b9c698554339eaee5cb9
DIST pathable-0.5.0b6.gh.tar.gz 54728 BLAKE2B 022c06bc20e9daf2b54a7742beaca5823482078a6b291156d68eb5675907f765612537d15dad5fab82c15afc1c147a65771976b518498a6180b4684df228d4f0 SHA512 6a900d2bba01a4cae26775516f3928d478f0bd36603a0159cc72f59c6831fb0fe8c279c413aa8fb70c87410483ea2a450e5eeae6931b4b9ed1522bbaf0a12648
diff --git a/dev-python/pathable/pathable-0.5.0_beta4.ebuild b/dev-python/pathable/pathable-0.5.0.ebuild
index 6a7eb1a19ad0..47502cfcbd82 100644
--- a/dev-python/pathable/pathable-0.5.0_beta4.ebuild
+++ b/dev-python/pathable/pathable-0.5.0.ebuild
@@ -22,6 +22,9 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
+if [[ ${PV} != *_beta* ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
RDEPEND="
=dev-python/pyrsistent-0.20*[${PYTHON_USEDEP}]
diff --git a/dev-python/peewee/Manifest b/dev-python/peewee/Manifest
index 98228f45bd78..a48ed318245a 100644
--- a/dev-python/peewee/Manifest
+++ b/dev-python/peewee/Manifest
@@ -1,2 +1,3 @@
DIST peewee-3.18.3.gh.tar.gz 931933 BLAKE2B e8bc92af4089eda5645ee725c9f6343f8b99622e58a8be5ebf1b8be805b45bbcc46f0260f444000b47dd5425609174d05173d8d81c518f75a6b9c272a0cf5668 SHA512 f3665284dc0da1a710f38561d337fbea3e85f6266515bf97be2ff218c0a7614aada9ae25ac9c4a971b72aff8be708647c2d5425635a20bf58b424d99877235fc
DIST peewee-3.19.0.gh.tar.gz 931867 BLAKE2B 94456fee11b8e1dc52e30b7d21fe42fecfaacf02e604b3199dc01b42d0fc29ca6027236cc08e584f180cf0b620891e886c00e1afce21548e23c99461c7f41fd0 SHA512 2924cbb8009f7523bf78aab2f7cc17ce5abfb5f45fbc25ce074e597934e2bd269e1806672b95c570fb199169fefc8e23551254934d964deb69596b8f3c27e6d3
+DIST peewee-4.0.0.gh.tar.gz 902288 BLAKE2B 84da3be85bd3514c817fc4ace518729af47e470eb6ef1d025ab972e2b34e88ea6ce276236f3ec921cce101b5dcbcf7c400aa8cd5504fe2d859ede671ce460f0b SHA512 73921d0363447f99739370b73392f52234ffb5e487faa08fe9f2322c8387456c4d5fa03613c79432b3310a5a95a8b02f5a26786d74ca5470c2089fd798edd87b
diff --git a/dev-python/peewee/peewee-4.0.0.ebuild b/dev-python/peewee/peewee-4.0.0.ebuild
new file mode 100644
index 000000000000..eb74eea6a486
--- /dev/null
+++ b/dev-python/peewee/peewee-4.0.0.ebuild
@@ -0,0 +1,83 @@
+# 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
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+DESCRIPTION="Small Python ORM"
+HOMEPAGE="
+ https://github.com/coleifer/peewee/
+ https://pypi.org/project/peewee/
+"
+SRC_URI="
+ https://github.com/coleifer/peewee/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ native-extensions? ( dev-db/sqlite:3= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-db/postgresql
+ dev-python/psycopg:0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+src_prepare() {
+ default
+
+ # disable test failing on postgres 16
+ sed -e 's/test_timeout/_&/' -i tests/sqliteq.py || die
+}
+
+src_compile() {
+ if ! use native-extensions; then
+ local -x NO_SQLITE=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+src_test() {
+ initdb -D "${T}"/pgsql || die
+ pg_ctl -w -D "${T}"/pgsql start -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" peewee_test || die
+ psql -h "${T}" peewee_test -c 'create extension hstore;' || die
+
+ local -x PEEWEE_PSQL_HOST="${T}"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ "${EPYTHON}" runtests.py -v 2 || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && DOCS=( examples/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pipdeptree/Manifest b/dev-python/pipdeptree/Manifest
index a40e4a93502f..fde67864fa0a 100644
--- a/dev-python/pipdeptree/Manifest
+++ b/dev-python/pipdeptree/Manifest
@@ -2,3 +2,5 @@ DIST pipdeptree-2.23.4.tar.gz 39945 BLAKE2B 6f1aaf4652b872a28712cf23fb06c26c9e36
DIST pipdeptree-2.29.0.tar.gz 42077 BLAKE2B 0e151c593a6737d877a7cc43e47367374febb22af654fa6e04617eda16cf34ad435a3fd24e4aa076bf81afcb665a7050c8a4d2a046d3ba6b26fb0cbb968a946f SHA512 de3f7a2aa24e7bd795c9a19d940ad941a036830df5c6ef99bd008bae0cad789d525b9e39a1704926ad88749a038bf7d6abd8a854737c2f6417764be0ab2f1825
DIST pipdeptree-2.30.0.tar.gz 42737 BLAKE2B 6bedfd23510e514e0e7a3319162524b68e47709dae9af9216c7cf91c69caf1428a5bdbf313722fd8c242b16f6018b94bab139997f22f433267ec7afcdd57a4ad SHA512 f21dd155e7e1de396b030b19231d145419005bd407c92d23f69efaaf822b0bce03366f439c551e1064c777327d5079c408f0c6213ecbe97cc013d5bc98e890ac
DIST pipdeptree-2.30.0.tar.gz.provenance 9221 BLAKE2B c7c710a13da3a83bb5723ebe5452193e05b30485619aababe5acd8db7836ee75f8bc6b073274754d4cf9dcf19d929b12cc21c251dbbfcb651aad6b754bd22ca4 SHA512 e7671e0973d89d495ebb869173b2a80721e1f4706ed9d370ac7db17ccb922f1c259479e34bba07b7cb171ff7bb12e4c7eeea0859ec8d0a72d8cab530fb0b5609
+DIST pipdeptree-2.31.0.tar.gz 43790 BLAKE2B 58a9f6e3496ac4c38e5e58df919bf0985ba0a626ccebb2da4c2075083f2b41119b6d237c5f95fedf893860d4f03eddc895b3ab76edfaf5532a8af0db331b3187 SHA512 21220f03307d91809d3ab45a660dcb64d5b460a0feb2c888a505e30b2571c33c5752069a26635f2ee0f71e531cc583e1e5c5b6de77e4cd244b38710a469e0987
+DIST pipdeptree-2.31.0.tar.gz.provenance 9505 BLAKE2B 16bc71530bd6d477c16d4ba3e7a2672ea880e5459fb79c396b514c71bb845faa8df7fbd5f70d95df792ab998a28a39dd1398bd686b3bb3abd1a24500fad08b93 SHA512 8cadfcce0fa0bcbc7c2c68fd84d532db229f1620ec1d56fc88541eb0fe16199e91684966f3f0fdee81bc47ce03597a590201a3b51321c983d289364a0ea7a01a
diff --git a/dev-python/pipdeptree/pipdeptree-2.31.0.ebuild b/dev-python/pipdeptree/pipdeptree-2.31.0.ebuild
new file mode 100644
index 000000000000..ff3abe763b61
--- /dev/null
+++ b/dev-python/pipdeptree/pipdeptree-2.31.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 2022-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/pipdeptree
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi optfeature
+
+DESCRIPTION="Utility for displaying installed packages in a dependency tree"
+HOMEPAGE="
+ https://github.com/tox-dev/pipdeptree/
+ https://pypi.org/project/pipdeptree/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/packaging-23.1[${PYTHON_USEDEP}]
+ >=dev-python/pip-23.1.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/graphviz[${PYTHON_USEDEP}]
+ <dev-python/virtualenv-21[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.31.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*,\?::' pyproject.toml || die
+
+ find -name '*.py' -exec \
+ sed -i -e 's:pip[.]_vendor[.]::' {} + || die
+}
+
+python_test() {
+ # tests can fail if other packages are being merged simultaneously
+ epytest --reruns=5
+}
+
+pkg_postinst() {
+ optfeature \
+ "visualising the dependency graph with --graph-output" \
+ dev-python/graphviz
+}
diff --git a/dev-python/puremagic/Manifest b/dev-python/puremagic/Manifest
index 3ed40f26c098..b33122694f98 100644
--- a/dev-python/puremagic/Manifest
+++ b/dev-python/puremagic/Manifest
@@ -1 +1,2 @@
DIST puremagic-1.30.gh.tar.gz 315120 BLAKE2B a5329ffcd25f2f8024eb05a80f8c0a5f328087ffe30b9b744894b0b3261a9b08da3f3b68ed0a5cf2f51008f472626bee3afd26b5f97fee015094e96dd5cd8b06 SHA512 3937e0aa3f8222c7ce558e71da4d4b6dcb0c81ca61b432d39db70031b7fd9d8c273befc47f6e9d0d3d3667dd9c7fcf893d0fd45475a0dfa8be01f54110ac444e
+DIST puremagic-2.0.0.tar.gz 1119578 BLAKE2B 4b0fc7462002e53382ab57aee3a97669e05fa6acc515a36891fb1d317f04c4e300a1df5c41b812c4db99fecdbb1951cf94749cdf2889dd5ef837e7a9af78855e SHA512 d7815612896eb2d40d2ff603078621e117091bd2af1763ec8098c577b76d5dc2057901433dc74553ba6cbf5aa4e5e47d35413bad04994b7bbb59a23499954c2c
diff --git a/dev-python/puremagic/puremagic-2.0.0.ebuild b/dev-python/puremagic/puremagic-2.0.0.ebuild
new file mode 100644
index 000000000000..6070ac118b86
--- /dev/null
+++ b/dev-python/puremagic/puremagic-2.0.0.ebuild
@@ -0,0 +1,28 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure python implementation of magic file detection"
+HOMEPAGE="
+ https://github.com/cdgriffith/puremagic/
+ https://pypi.org/project/puremagic/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+DOCS=( CHANGELOG.md README.rst )
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pylint/Manifest b/dev-python/pylint/Manifest
index 91937d537fc6..f062286c33a4 100644
--- a/dev-python/pylint/Manifest
+++ b/dev-python/pylint/Manifest
@@ -1 +1,3 @@
DIST pylint-4.0.4.gh.tar.gz 1509805 BLAKE2B ded555fa6a1c5109fce113613c2ac73377a57418a70034121199ef0b77207b3447ccfdf66324f774bf02d6153efec3c39b1cc6e9a515c44e96fc05327f4c52aa SHA512 1ef16eda98c95edd4932d5a09f9e7fcc4cfcf5989838367b43d54a9b58b1edd96eaec2d13a87a5c7ca75e48b5f408d12742b19660a55954b7067ec66783f1048
+DIST pylint-4.0.5.tar.gz 1572474 BLAKE2B fdc5b999151fdb88bef549bd2e2c93561242b1ac4cf137a95fb14f6f96cfe4dec113ce743366ea586ca4556cc9c403f1bae5136f6613184c012d620e60b6ec0f SHA512 96959f57f7730e8b6fd281afa5429a0a1ebe4815db9ffb175498e18b3132f7e52e04dbc9da3818d460a565567d27072f06cf79b21ea4be82ad7618ae6ff1be40
+DIST pylint-4.0.5.tar.gz.provenance 9456 BLAKE2B b2ba66073acdd3c9c9fadf21b0743c67c186e301e1ced8c4ada6e0f8a9d5b90854cabdc37e3000ea2417db360d20113e944bf59b9523601d42f1d786a29aab51 SHA512 24e5ab2e6f8f590627106b3e999fab48d9c46ec21fbaac92c553a53b469f9ef26082112e3059aaa43579f068e26166fc6878a78a784035d8bfe3b09520435b2f
diff --git a/dev-python/pylint/pylint-4.0.5.ebuild b/dev-python/pylint/pylint-4.0.5.ebuild
new file mode 100644
index 000000000000..545e62ce1b76
--- /dev/null
+++ b/dev-python/pylint/pylint-4.0.5.ebuild
@@ -0,0 +1,82 @@
+# 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/pylint-dev/pylint
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="
+ https://pypi.org/project/pylint/
+ https://github.com/pylint-dev/pylint/
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ <dev-python/astroid-4.1[${PYTHON_USEDEP}]
+ >=dev-python/astroid-4.0.2[${PYTHON_USEDEP}]
+ >=dev-python/dill-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/isort-5.14[${PYTHON_USEDEP}]
+ <dev-python/isort-9[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.6[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.8[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.10.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/gitpython-3[${PYTHON_USEDEP}]
+ ' 'python*' )
+ >=dev-python/pytest-8.3[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ 'tests/test_functional.py::test_functional[dataclass_with_field]'
+ 'tests/test_functional.py::test_functional[no_name_in_module]'
+ 'tests/test_functional.py::test_functional[shadowed_import]'
+ 'tests/test_functional.py::test_functional[use_yield_from]'
+ )
+ local EPYTEST_IGNORE=(
+ # No need to run the benchmarks
+ tests/benchmark/test_baseline_benchmarks.py
+ # Internal stuff, missing data in sdist
+ tests/testutils/_primer/test_primer.py
+ )
+
+ if ! has_version "dev-python/gitpython[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/profile/test_profile_against_externals.py
+ tests/testutils/_primer/test_package_to_lint.py
+ tests/testutils/_primer/test_primer.py
+ )
+ fi
+
+ epytest
+}
+
+python_install_all() {
+ if use examples ; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyscard/Manifest b/dev-python/pyscard/Manifest
index 5eac3b5bfef1..17e363178530 100644
--- a/dev-python/pyscard/Manifest
+++ b/dev-python/pyscard/Manifest
@@ -1,2 +1,3 @@
DIST pyscard-2.3.0.tar.gz 159897 BLAKE2B c707b9d1e3c07e676872f240402162a203cd0d81404f546aad145bed52c3da8ef6a948b52e841a8c35ef94f4186b67d113da621c5326bd27a21f3b7b2a1bb6a2 SHA512 92e1819df1fa6d0447bba5bbedf5b4db98f93c30f71eb33009e2bedac62f34f3c3fa530de5bd62eb00e02ab13f5ea2616bc5a47d3b7a562124bb397efa927329
DIST pyscard-2.3.1.tar.gz 160650 BLAKE2B dd367b4d459eb413a6ef6c22440f07e191548a4b9f2c7d60a5fa1dfedc76f6f86b5b7937f4a1b733e748d3e9312997eeb8fc56fca589993992a299b44a74959f SHA512 8871e676ecd7fb1c5bbdc95d7fe6a431c977e4753c2ca7512f39ff38f4a92f0b88c1e990f1b36848c0005b20097c2dd7a823bb418c7c8fea0e368e24316e95e6
+DIST pyscard-2.3.1.tar.gz.asc 833 BLAKE2B e34c450afb2e11be8dc413ad5a0644147066152f70bfaef616c6631c2c55c718b944f8635e89628ba6ea3e8e79e86db8d5a76c6ef9f53cdcf94cad34f84ecb73 SHA512 d9367c2519d43df7cd27a577040bb8ae6c238a3ebd8af2ced24b56bfd9adba98f7fd712278bc678063c6626779a9d0de825129aa7fb6eb134fb83044340ba9ad
diff --git a/dev-python/pyscard/pyscard-2.3.1.ebuild b/dev-python/pyscard/pyscard-2.3.1.ebuild
index fe20eeed66d6..29b35f24a1c9 100644
--- a/dev-python/pyscard/pyscard-2.3.1.ebuild
+++ b/dev-python/pyscard/pyscard-2.3.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,8 +6,9 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..14} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ludovicrousseau.asc
-inherit distutils-r1 optfeature
+inherit distutils-r1 optfeature verify-sig
DESCRIPTION="Smart card support in python"
HOMEPAGE="
@@ -17,6 +18,7 @@ HOMEPAGE="
"
SRC_URI="
https://downloads.sourceforge.net/project/pyscard/pyscard/pyscard%20${PV}/${P}.tar.gz
+ verify-sig? ( https://downloads.sourceforge.net/project/pyscard/pyscard/pyscard%20${PV}/${P}.tar.gz.asc )
"
LICENSE="LGPL-2.1"
@@ -31,6 +33,7 @@ RDEPEND="
"
BDEPEND="
dev-lang/swig
+ verify-sig? ( sec-keys/openpgp-keys-ludovicrousseau )
"
EPYTEST_PLUGINS=()
diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest
index 678337b1947a..a91730f3e188 100644
--- a/dev-python/selenium/Manifest
+++ b/dev-python/selenium/Manifest
@@ -6,6 +6,7 @@ DIST selenium-4.37.0.tar.gz 918689 BLAKE2B 2ca4067e3e1729345b078515fc362571c73e8
DIST selenium-4.38.0.tar.gz 924101 BLAKE2B e0bb400e646a36abdaf11c2916257af63984c44bc748b3a9764905d860fa2ece8ec75ee5b7a5618e5b0cff5c95aae01e07d39005efb3c48a4ca8e8ce282c9ed5 SHA512 85e8b5a9a201838a82afc68e7eb0255aa67a50c51f62b705e4d064a27a5b80535960d980816266876054eb29917da1cf63d9d4c4924fe6cd2632822a1518817b
DIST selenium-4.39.0.tar.gz 928575 BLAKE2B 8a95a0ee4293156ddaccf9334e24df26de552b96f86827471027b011269f35f141174b486084731be4fb01d8a302c5c4d02ff04642adc089bcea5307b9e8aa05 SHA512 2950a52f452a652fd89f38f9c0d03abe9827be646827121f78c39f27995edeeb12177822215704b7e3f06e4e901e21ac87dadd68015c7a240bed09a914508dc3
DIST selenium-4.40.0.tar.gz 930444 BLAKE2B 0118f8135d0cd81809655763b8b40c12ffe5e93c7a39f4de9b857e1f2601ed122894d7f2d1b850327e7c147881893ac8a43f0cfee9afdc2ac6874e68c5662f2c SHA512 9f501a8c2e95e57e47cbc7b11462100d6ad950123c989a750840ba5a764b4ebb3486adaca3eca7bb385b836abecfbb79a14255de9613ec916b87c36389f1fc1d
+DIST selenium-4.41.0.tar.gz 937872 BLAKE2B fd176e710970da5435b2d2daad90ad1f6a567dd77d9cfe0cb6980612155a5194c6c80ba7be444e8baade758a91dc2f9cdc6d3ce8fffcd8c31a03271e5f7dbc2c SHA512 517e38b38266e92b66bf072640777e037d1af4321a0399d665a0f2acdb76c574abf65f8e6412e7c606a4937010ffd6bff9c9f323b51c88e80d883b5c909c2de6
DIST selenium-selenium-4.26.1-python.gh.tar.gz 77109265 BLAKE2B c0c5693c64fa65a627e5edf0cbbc051410fcddf59e4fd80c362b9a382c586fc3ad3d574674e5523ab284b40b6639e95e85fd1c8195f2f1a6f35ad6532ed667ce SHA512 7ace69332f17c6f7e28b81223f4c8c62cde1832b5acaf2fd1c777a08a5a9cfebb5d9c83daa10462eeb3acb9c7cb5038711f5acee51f5dad3910d7e29e4387d3f
DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef SHA512 5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba
DIST selenium-selenium-4.35.0.gh.tar.gz 52550104 BLAKE2B b7ed0fb513cfb2ed24aa8393497b349f930739c3d24a330e5942fbaa5505f31d7086396a430776a3a28a5f65927b92bf27c0a32e8c36d893b5d62ef73151d5ef SHA512 dc73829e3b0fcb7fb7ee1cc04574b95b63d23f67974575dbd66338e14a5cb2b06f983145ce874be0d7124e8828b0a41b99c75d3befb19e04cbf8d027d0bb983a
@@ -14,3 +15,4 @@ DIST selenium-selenium-4.37.0.gh.tar.gz 52580241 BLAKE2B 360f0c435cd79c37d65e03a
DIST selenium-selenium-4.38.0.gh.tar.gz 52583428 BLAKE2B 539234726775fd23357bf18881242b8b9c27ca62a9a3dd27d5625ba571d9e83df5639fedcd062474358ab821c6c7609668481db1a5311a2388d52e922c4e9f5a SHA512 68b6e819ecfd9bdd02701ebe96e9d28aa98893a738c5684162e6bfd263652f13d49567b4e2365286fcd08501b00024646e65e7e6b54ee713af42ed0ae99a4985
DIST selenium-selenium-4.39.0.gh.tar.gz 52628198 BLAKE2B 91745d908c8ce1c2a898daacf7e5b3c1d309e3f63e450f4d5e7d343ecf67a587b57b5c573630adcf736b4bcf28abd9b2cda101a632f48bec8eddd6fc7a67e510 SHA512 e780848fce92ce99977a7c24983e075bc7338450196e8511a11bdace9c7d6e7de0b64e471a02d7403c10031100dfff674b302f24133e49d11ed5af4ca1cc20ce
DIST selenium-selenium-4.40.0.gh.tar.gz 43521447 BLAKE2B 42a71e2b00f96621f453e7c72c8c13f9876a82edb66a1c0d85ef5dda58c5831023b8924ab77e38a46d6810d617ee8760a409b7112ae92b1daa9d840956ca5c6e SHA512 0e2360f80463142dde933b8c92c4800f9b5a4e89b5301068a5d3a568e393730c84534fc6379a041f7c39ad5e8f45729e5a140f72e3eeddeb1293ebe2fc9db7fa
+DIST selenium-selenium-4.41.0.gh.tar.gz 43597635 BLAKE2B fb24f27bf3b64d4da4a117bbb62566b6c1dd6fa85357b9db4a81f17fb5167ca1f2265a0ad8b54efeb14568477390521f5b5774e3278091fd1a0110e5e0d9ce30 SHA512 68cf0ead725d09dcaa8bfe9f239e0f8c0ca7b9dde9d11b8c22dbe53c51611534136f910bc91c9ab237e2b9c106ae06efbe0e0fa9277ef668c4a4935f74613a6c
diff --git a/dev-python/selenium/selenium-4.41.0.ebuild b/dev-python/selenium/selenium-4.41.0.ebuild
new file mode 100644
index 000000000000..97180d7f826b
--- /dev/null
+++ b/dev-python/selenium/selenium-4.41.0.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{11..14} pypy3_11 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+# base releases are usually ${P}, followups ${P}-python
+TEST_TAG=${P}
+[[ ${PV} != *.0 ]] && TEST_TAG+=-python
+TEST_P=selenium-${TEST_TAG}
+
+DESCRIPTION="Python language binding for Selenium Remote Control"
+HOMEPAGE="
+ https://seleniumhq.org/
+ https://github.com/SeleniumHQ/selenium/tree/trunk/py/
+ https://pypi.org/project/selenium/
+"
+SRC_URI+="
+ test? (
+ https://github.com/SeleniumHQ/selenium/archive/${TEST_TAG}.tar.gz
+ -> ${TEST_P}.gh.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/certifi-2026.1.4[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.31.0[${PYTHON_USEDEP}]
+ >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep "
+ dev-python/filetype[\${PYTHON_USEDEP}]
+ dev-python/pytest-mock[\${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}]
+ >=dev-util/selenium-manager-${PV}
+ net-misc/geckodriver
+ || (
+ www-client/firefox
+ www-client/firefox-bin
+ )
+ )
+ " "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not build selenium-manager implicitly
+ sed -e 's:\[tool\.setuptools-rust:[tool.ignore-me:' \
+ -i pyproject.toml || die
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+ # remove nonsense typing deps
+ sed -i -e '/types/d' -e '/typing/d' pyproject.toml || die
+}
+
+python_test() {
+ # NB: xdist is causing random pytest crashes with high job numbers
+
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ local EPYTEST_IGNORE=()
+ local EPYTEST_DESELECT=(
+ # expects vanilla certifi
+ test/unit/selenium/webdriver/remote/remote_connection_tests.py::test_get_connection_manager_for_certs_and_timeout
+ )
+ local pytest_args=(
+ # https://github.com/SeleniumHQ/selenium/blob/selenium-4.8.2-python/py/test/runner/run_pytest.py#L20-L24
+ # seriously?
+ -o "python_files=*_tests.py test_*.py"
+ )
+ if use test-rust; then
+ local -x PATH=${T}/bin:${PATH}
+ local -x SE_MANAGER_PATH="$(type -P selenium-manager)"
+
+ local EPYTEST_RERUNS=5
+ pytest_args+=(
+ --driver=firefox
+ --browser-binary="$(type -P firefox || type -P firefox-bin)"
+ --driver-binary="$(type -P geckodriver)"
+ --headless
+ )
+
+ local EPYTEST_IGNORE+=(
+ # requires some "python.runfiles", also bidi tests generally fail
+ test/selenium/webdriver/common/bidi_webextension_tests.py
+ # throws some error that pytest doesn't even show
+ test/selenium/webdriver/firefox/ff_installs_addons_tests.py
+ )
+ EPYTEST_DESELECT+=(
+ # expects prebuilt executables for various systems
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_windows
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_linux
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_mac
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_errors_if_invalid_os
+
+ # TODO: these don't respect --*-binary and try to fetch versions
+ test/selenium/webdriver/firefox
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestIntegration::test_we_can_pass_options
+ test/selenium/webdriver/marionette/mn_set_context_tests.py::test_we_can_switch_context_to_chrome
+
+ # TODO
+ 'test/selenium/webdriver/common/devtools_tests.py::test_check_console_messages[firefox]'
+
+ # TODO
+ test/selenium/webdriver/common/bidi_browser_tests.py
+ test/selenium/webdriver/common/bidi_browsing_context_tests.py
+ test/selenium/webdriver/common/bidi_emulation_tests.py
+ test/selenium/webdriver/common/bidi_input_tests.py
+ test/selenium/webdriver/common/bidi_network_tests.py
+ test/selenium/webdriver/common/bidi_permissions_tests.py
+ test/selenium/webdriver/common/bidi_script_tests.py
+ test/selenium/webdriver/common/bidi_session_tests.py
+ test/selenium/webdriver/common/bidi_storage_tests.py
+ test/selenium/webdriver/common/bidi_tests.py
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_binary
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_ctor
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_prefs
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_to_capabilities
+ test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_element_with_custom_locator
+ test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_elements_with_custom_locator
+
+ # Internet
+ test/selenium/webdriver/remote/remote_server_tests.py::test_download_latest_server
+ test/selenium/webdriver/remote/remote_hub_connection_tests.py::test_command_executor_ssl_certificate_is_verified
+ )
+ else
+ EPYTEST_IGNORE+=(
+ test/selenium
+ )
+ fi
+
+ cd "${WORKDIR}/${TEST_P}/py" || die
+ rm -rf selenium || die
+ epytest "${pytest_args[@]}"
+}
diff --git a/dev-python/sphinxcontrib-programoutput/Manifest b/dev-python/sphinxcontrib-programoutput/Manifest
index 2309253a5558..963c14ef02a7 100644
--- a/dev-python/sphinxcontrib-programoutput/Manifest
+++ b/dev-python/sphinxcontrib-programoutput/Manifest
@@ -1 +1,2 @@
DIST sphinxcontrib_programoutput-0.18.tar.gz 26333 BLAKE2B d1f1da158296869efb9dfb98979069a7692f1742053ba29de611d2df2e239200ecbed2009aec6e9264af30a2056a02d23f257d8b66367110304bc7a3a7f1812f SHA512 2ead065812bfe85147a025e4e541880b25d5876a584406130fa3423009496b6c7cf482f86af92d22363d0893ce767d2957112e7c41bd8005fa41e043399e4d0e
+DIST sphinxcontrib_programoutput-0.19.tar.gz 27534 BLAKE2B 8a76c7c5026faac12bea50b5ba95e3e866069fb3f775c098af4523fa41cf2ae15458fa33a08c6dbef1fef7bed130bc20f281705acefa2a200e1d8c41d004a185 SHA512 817553a2ac53f08125725bdc16268af804c484ba99f27e5584719f3fc53e15d44ca0874e3af45cfeb5074b20cb464ee3c3444973f51b4495d6a2c3d735524738
diff --git a/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.19.ebuild b/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.19.ebuild
new file mode 100644
index 000000000000..1ef1c178b744
--- /dev/null
+++ b/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.19.ebuild
@@ -0,0 +1,37 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extension to sphinx to include program output"
+HOMEPAGE="
+ https://github.com/OpenNTI/sphinxcontrib-programoutput/
+ https://pypi.org/project/sphinxcontrib-programoutput/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/sphinx[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/furo
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires 'erbsland'
+ test_directive.py::TestDirective::test_use_ansi_enabled_extension
+ )
+
+ epytest --pyargs sphinxcontrib.programoutput.tests
+}
diff --git a/dev-python/stestr/Manifest b/dev-python/stestr/Manifest
index 13f650f73891..de8c85fbf0b9 100644
--- a/dev-python/stestr/Manifest
+++ b/dev-python/stestr/Manifest
@@ -1,2 +1,4 @@
DIST stestr-4.2.0.tar.gz 79824 BLAKE2B 85ec7ad7a029ba4ebe75c71863ea0962d5d8d3add6fe8f4903013d4c72620b98fd4baf6a1690ccc2084b299930fb8c7f00f9108211742cf850040f4ed2219c86 SHA512 2d870604f671b720bfa7ac21d58b5beb56aab2fe4e70e99c8f332ed0081c0c86e791eeb92d4477b6dafaed50ffa17a0ac8e776bd35713fa5a1b0785803a27ba8
DIST stestr-4.2.0.tar.gz.provenance 9190 BLAKE2B eb8b9e5306a16fd22a5a5f51d2943c7f3ac230a70f6d71c7110989850e887ced935ab0da8e6dd90004605010730a1d0f05e06c4bb857bec8f744fe2959c47cda SHA512 386292e86cd77785b3ce062fcdd3db936f127351b8abd8822ac1b9c8b4a68c33ad99ecebb41d5cb3d448d375c72cd466ff70db54ff25337a9d1a1b64290ddcd3
+DIST stestr-4.2.1.tar.gz 79815 BLAKE2B 1334994cd4bc3b0f984fad6a6fedfc760bfb37153cea087bd7e7b51fb07d4560afa50e4f2d3dafb7247cdd4e23ff903f84231819f733327a552b245fa25373e4 SHA512 bba00836b3235f9ac220c2675d365954b1d48aaa238acc6192d294000cb34dc2417568186424708a05c7e3c07a5b7ddf8a8cf4741d568f7e8fc3765de23229c2
+DIST stestr-4.2.1.tar.gz.provenance 9379 BLAKE2B 199ce915de796840471778b6e064c6293b474ddce5e3b02d8e1539bee4634bd2f6221e140d7411fda2ca552d996368dcece90d0bbe8c63ab4f29635bfcf88266 SHA512 8a89765f85dc41e0ebd390fe245c7f053265000d927142112487a4ea20e6e902e13193ae653b23611ec1823d21663c53bf4ffeddf489fba2094842f3e35ce927
diff --git a/dev-python/stestr/stestr-4.2.1.ebuild b/dev-python/stestr/stestr-4.2.1.ebuild
new file mode 100644
index 000000000000..bfef35c5f7ba
--- /dev/null
+++ b/dev-python/stestr/stestr-4.2.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/mtreinish/stestr
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="A parallel Python test runner built around subunit"
+HOMEPAGE="
+ https://github.com/mtreinish/stestr/
+ https://pypi.org/project/stestr/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/cliff-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10.0[${PYTHON_USEDEP}]
+ >=dev-python/python-subunit-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.6[${PYTHON_USEDEP}]
+ >=dev-python/voluptuous-0.8.9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ # no clue why we need to set it
+ local -x PYTHONPATH=${PWD}
+ "${EPYTHON}" -m stestr init || die
+ "${EPYTHON}" -m stestr run --test-path stestr/tests \
+ --concurrency "${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/stevedore/Manifest b/dev-python/stevedore/Manifest
index 019e3d70bbc5..d7fc9c99c5d8 100644
--- a/dev-python/stevedore/Manifest
+++ b/dev-python/stevedore/Manifest
@@ -1,2 +1,2 @@
-DIST stevedore-5.5.0.tar.gz 513878 BLAKE2B 4a062394f3c2bb1044a5510fa15d8124696bfb6a7a8f39470158b51293709bd6aca31f74f44db150ccc5bcb7102a413a063e34693a48f80bd3f85f7c7fe3c204 SHA512 4fa4806ddb98430893f44f97e4e43b6eab244bd47c72cec196418edf1f55647c29e47c4f6b4c6c42069001415471d9cecdc149e9d5a504422143a7f143813381
DIST stevedore-5.6.0.tar.gz 516074 BLAKE2B a6fe95df46bf0b0da44564f21a4a8fc5f9df1ddee882ed001d01bc916202f50645ef914219959d1ba1b463936733815f20faf5f10ea6be9a76c0d69c1196f149 SHA512 253cae8ab14e4dcc33bf656112da7329957ca4acda8b92fec7d590b499092c762b07b4f0fa2e63aa99a29b9edb7efba4655f4f14b8e65ace1e20f1a9b2dc441c
+DIST stevedore-5.7.0.tar.gz 516200 BLAKE2B b08b135c1c2dd400cb286814638ebcaabffafd3b7fd6bcc27688d329f57fbdd5c9cf03b1101e8eb448fd88ff2a74526f1e39a03f396edcc1081d8cc3ab836ee8 SHA512 1abb448332e1a790acacc5e71fff2fcc1203ec52504ce03d103980f134b73cca41de1675873741bab6725bd8510867dff15b473dce3966bb9f3504780235dc40
diff --git a/dev-python/stevedore/stevedore-5.5.0.ebuild b/dev-python/stevedore/stevedore-5.7.0.ebuild
index 4ae15268931f..0438a0702306 100644
--- a/dev-python/stevedore/stevedore-5.5.0.ebuild
+++ b/dev-python/stevedore/stevedore-5.7.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
test? (
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index 52b06dd7308a..35b164a4fec6 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,3 +1,2 @@
-DIST tifffile-2026.1.28.gh.tar.gz 365400 BLAKE2B 9538a67252981e99aab5f09320948a8d64d159f70c91204e3954606229a8a2a763dc48f321c9ecc3caf609ae60e5d6ed31241fc662c1e8191461e08be65883c2 SHA512 e75af703440a628c5a3487d165ef0a2e4d068d0eb2f2ce4910446599de682ebd89d1eebe236ddd4fc7214d86849daef5f61b781a76562624a35efd7a82f2679f
-DIST tifffile-2026.2.15.gh.tar.gz 366055 BLAKE2B 25a5fae471fb90fb54a69c8acf173ff364ffe3e179b8158796a767a514475069a5c9c99cf80916a4b8742f27108f513e34e6d3ff92b05b2efc33daa429b037f3 SHA512 1d9ea9641c07c0e735a1324f36100b6d884a0fc57015830a9d1be21558314c2ec4b179c332a52323c6cffff1bf78f7aaa90844d81e391d7a14298b4581b704e5
DIST tifffile-2026.2.16.gh.tar.gz 366381 BLAKE2B 5c6777fbd25e79a76ccb19874f4e5ec48e44bfd74401d19cf96d9a75b3c574035e8ea31b984552c5263b2a15f2b0ad7d176676d3a720b90407ef1464ea988fe6 SHA512 3c17572ae4c03149c873e5e9acfec9e2b4e087a2b4b45c5146d99f1a2f50ba91c191d152eef6d91f7018419a24a8e73687710b629f82daafed11750786430372
+DIST tifffile-2026.2.20.gh.tar.gz 367678 BLAKE2B 61cdadbdc0cdd9a274c49d6db56ab04e033f6fc6c7ead77bcdbcbeacee10dd13e68723a8d1b8fb5831e38c712a94cce3f0c3100690b87fa102edb18fc9e8944e SHA512 e2b8b303d834ea87243cca3ba7f0052710b4393d5a81e6aa38cad5eaacce5a87af0992a1a07e808dbda732cf5f8be310511222a850a6ec472131ada48f54b8d3
diff --git a/dev-python/tifffile/tifffile-2026.2.15.ebuild b/dev-python/tifffile/tifffile-2026.2.15.ebuild
deleted file mode 100644
index de56c12ef129..000000000000
--- a/dev-python/tifffile/tifffile-2026.2.15.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 2021-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Read and write TIFF files"
-HOMEPAGE="
- https://pypi.org/project/tifffile/
- https://github.com/cgohlke/tifffile/
- https://www.cgohlke.com/
-"
-SRC_URI="
- https://github.com/cgohlke/tifffile/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/numpy-1.19.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- >=dev-python/fsspec-2021.5.0[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
- dev-python/xarray[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # not marked properly
- # https://github.com/cgohlke/tifffile/pull/308
- tests/test_tifffile.py::test_issue_dcp
- # meaningless and broken on py<3.13
- # https://github.com/cgohlke/tifffile/pull/309
- tests/test_tifffile.py::test_gil_enabled
- )
-
- local -x SKIP_LARGE=1
- local -x SKIP_HTTP=1
-
- epytest
-}
diff --git a/dev-python/tifffile/tifffile-2026.1.28.ebuild b/dev-python/tifffile/tifffile-2026.2.20.ebuild
index de56c12ef129..de56c12ef129 100644
--- a/dev-python/tifffile/tifffile-2026.1.28.ebuild
+++ b/dev-python/tifffile/tifffile-2026.2.20.ebuild
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 135179c1b95d..a3ca79c4d92c 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -18,3 +18,5 @@ DIST tox-4.39.0.tar.gz 221354 BLAKE2B e1a648abbf8b3ac10915fad3f89542b99d31401570
DIST tox-4.39.0.tar.gz.provenance 9240 BLAKE2B e12c7db4f636960052c52ae8590635838c22905aaec6cd163c4a951d201b5d509028973d4247954d5ee33ff70a8cd577b41bd4864c75b3388aee56e1bc9186b1 SHA512 0a91eb44d63f071a997853891ca2edceae719d8002308dd733780350abb501465777aff1e44a027a44cd8ae09ccf25eac57ab74d99c57adf4427121e53c255ad
DIST tox-4.41.0.tar.gz 228941 BLAKE2B f295d6b6b547cf350fa7ddc6e9215b0ac8713d912382651a64f4e9289d3b7790cefc57465c105afd09abbe32a30de5a1f37721532413210dae6b3be3b697cb2c SHA512 5803952a1912445791e1ce49e304b501ec0d519067e6946134531381097a50b5e3f4fde08bd8abd34cfc385a548fc1349a0874bf07b3d6a47839fb96cb866df7
DIST tox-4.41.0.tar.gz.provenance 9142 BLAKE2B dad45f1f36c296d64a13a56c77b3edde9377c013a81ab34fb170d6200e2054a6ab62532a076306519645dec82e1755a0ecac99a0f27cb668867205f08758eabd SHA512 93cd8cf47cc2cf4e5fb8267dfed311ad9257a8608878a88d1b9891dcba294a60982ffbf88a980844bba0f4ae01b1d11686ac97d5e71631f1685576bb42a4ec71
+DIST tox-4.44.0.tar.gz 243605 BLAKE2B f3f3ef2c684bd34594217260e9fbf08f570168e86837096478f6b5ca8fe0183ff1cd64643a4b6657f2b167f2d186e042c066b3cae512a392620a1e58904775a4 SHA512 0ad609830eb04d8a706a4bdff73d11d4ee5047e45668dbea471d8089993cbdd7af9f2647e80d6324f881795c133372eee339016e1f9963966b164e2cd526ced6
+DIST tox-4.44.0.tar.gz.provenance 9338 BLAKE2B c3fc90c8aa23b2572313772a82a8359b68ff7865143663856bb2457462620b00f1ee7c12535ae510ce4182e09b3fb36ab67926b8940ae54502606043cae18393 SHA512 ced0661c129082981d6e4397349b6c14023f5ac35e2fead9eb988e68fdc78ad18dae4c93f162b53ea239b6b24da3a8207fb47c84d63b4acdbeba0fa5b96da713
diff --git a/dev-python/tox/tox-4.44.0.ebuild b/dev-python/tox/tox-4.44.0.ebuild
new file mode 100644
index 000000000000..42367ebe26f8
--- /dev/null
+++ b/dev-python/tox/tox-4.44.0.ebuild
@@ -0,0 +1,92 @@
+# 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_{10..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 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} )
+# 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
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ case ${EPYTHON} in
+ python*)
+ local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine )
+ ;;
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+ ;;
+ esac
+
+ epytest -o addopts=
+}
diff --git a/dev-python/xvfbwrapper/Manifest b/dev-python/xvfbwrapper/Manifest
index 8908798bf9cb..7f30c57a3c01 100644
--- a/dev-python/xvfbwrapper/Manifest
+++ b/dev-python/xvfbwrapper/Manifest
@@ -1,4 +1,4 @@
-DIST xvfbwrapper-0.2.15.tar.gz 9027 BLAKE2B d3a28e17889b9ef8bbdfc1c6af3f6be143b7b27f8737e382d2f78a243f0fbde64ef4dc00c3703882e248ae4505d97cea8583658a367291b77fbe6a4f66ea056a SHA512 7706a68159a388e62539a835e202c94c9bc74bb60e8f9b2ec40bb6d0ed5c009829eb429ae63b39c08a23cc4c1fee859a6c7a314f173060904aa90f219455099f
DIST xvfbwrapper-0.2.16.tar.gz 9284 BLAKE2B d2d09b8a0a1576f7708ee40e3ea30bb0b42096ea64bdebf1d9a485fb3790ca11fb43e4dbed7a9ca8617639d0f639a21d444941f7578daac9ec4285261584579b SHA512 98c741e35d3ad9da0889578aceeb5607be60c5c9375e706e508d10af16c8ae4b2d40e5296dbffceb41ea4b42857185fb065c76bb9df67ee0e7b7e21a67043162
DIST xvfbwrapper-0.2.17.tar.gz 9292 BLAKE2B 7e0b5bea1ab92ffd005d81c8eaf0eab9c72b521b41f44a3f0ca8738a6849f2a4f3d7e1dab828e37edfe84eb8c2cd6c35fac5cf3b86da77c5dd69732acee734af SHA512 ce13180b392aae5df283cc0db9477320fc1df5cd32f45e81c32494e9575cfdbcc81f83ec6e6893d350b57a94d92e5d84d464666dfeacaf0546096d35fa7f1f2a
DIST xvfbwrapper-0.2.18.tar.gz 11745 BLAKE2B 497b5ed94e3a93c1d798f1f934fa42b33fc94b6cdf2bcdfc37fa9bf6350bd9b3959dd17f8850077b2b2a0e605a9d20e6635eb0c3d2d8582110ece52cf0e4eda0 SHA512 9af11d1e5e5be13bc9c3e130d0f9ebd5f3b0ada056d15a3a9097c620287f2bc115ac2b4c4f39c7225758ebf01f7c7664203abfc981828a0777e8f39f213964cd
+DIST xvfbwrapper-0.2.20.tar.gz 12527 BLAKE2B 3f66c1d35d77fa2a42809794a2acce795bb4808968742a8c683193ab19a276b4de50b9216491ed85aad9c7a63040f6d482cec98dd5780f0797d78f185a1cd3ae SHA512 b913296b7ba6e3bbe7cd40e588718e730ecd1042b2b5859bff6c1cf38b2e11c5519f00657c02a610de2d22df850e96e8be07c152ac2d7fae568b2045ef8b4417
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.20.ebuild
index daaf806069ee..6b95aacc1ea4 100644
--- a/dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.20.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="~amd64 ~x86"
RDEPEND="
x11-base/xorg-server[xvfb]