summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-08-01 03:04:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-08-01 03:04:37 -0500
commit6344ec0d45ab5c6dc7f52b9c7ba2a4fdfa37fb17 (patch)
tree782b1dfa8abee9f15c2fff2aca667b4abd32e5f8 /dev-python
parent3f283d6a71e35a9c6d89dc73d76f01aec1c1a6b3 (diff)
downloadbaldeagleos-repo-6344ec0d45ab5c6dc7f52b9c7ba2a4fdfa37fb17.tar.gz
baldeagleos-repo-6344ec0d45ab5c6dc7f52b9c7ba2a4fdfa37fb17.tar.xz
baldeagleos-repo-6344ec0d45ab5c6dc7f52b9c7ba2a4fdfa37fb17.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/asyncssh/asyncssh-2.24.0.ebuild8
-rw-r--r--dev-python/bitarray/Manifest1
-rw-r--r--dev-python/bitarray/bitarray-3.10.0.ebuild24
-rw-r--r--dev-python/boto3/Manifest14
-rw-r--r--dev-python/boto3/boto3-1.43.49.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.50.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.52.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.53.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.54.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.55.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.57.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.58.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.59.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.60.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.61.ebuild (renamed from dev-python/boto3/boto3-1.43.47.ebuild)0
-rw-r--r--dev-python/boto3/boto3-1.43.62.ebuild (renamed from dev-python/boto3/boto3-1.43.48.ebuild)0
-rw-r--r--dev-python/botocore/Manifest14
-rw-r--r--dev-python/botocore/botocore-1.43.49.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.50.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.52.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.53.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.54.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.55.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.57.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.58.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.59.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.60.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.61.ebuild (renamed from dev-python/botocore/botocore-1.43.47.ebuild)0
-rw-r--r--dev-python/botocore/botocore-1.43.62.ebuild (renamed from dev-python/botocore/botocore-1.43.48.ebuild)0
-rw-r--r--dev-python/cryptography/Manifest14
-rw-r--r--dev-python/cryptography/cryptography-50.0.0.ebuild142
-rw-r--r--dev-python/docstring-to-markdown/docstring-to-markdown-0.17.ebuild2
-rw-r--r--dev-python/environs/Manifest2
-rw-r--r--dev-python/environs/environs-15.1.0.ebuild42
-rw-r--r--dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild2
-rw-r--r--dev-python/feedparser/Manifest2
-rw-r--r--dev-python/feedparser/feedparser-6.0.14.ebuild11
-rw-r--r--dev-python/guessit/Manifest1
-rw-r--r--dev-python/guessit/guessit-4.4.0.ebuild38
-rw-r--r--dev-python/hishel/hishel-1.3.0.ebuild2
-rw-r--r--dev-python/inflect/inflect-7.5.0.ebuild3
-rw-r--r--dev-python/ipython/Manifest4
-rw-r--r--dev-python/ipython/ipython-9.16.0.ebuild (renamed from dev-python/ipython/ipython-9.14.1.ebuild)3
-rw-r--r--dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild3
-rw-r--r--dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild2
-rw-r--r--dev-python/jupyter-builder/Manifest1
-rw-r--r--dev-python/jupyter-builder/jupyter-builder-1.2.1.ebuild40
-rw-r--r--dev-python/pebble/files/pebble-5.2.1-clear-lock.patch31
-rw-r--r--dev-python/pebble/pebble-5.2.1-r1.ebuild (renamed from dev-python/pebble/pebble-5.2.1.ebuild)5
-rw-r--r--dev-python/peewee/Manifest1
-rw-r--r--dev-python/peewee/peewee-4.3.0.ebuild83
-rw-r--r--dev-python/pikepdf/Manifest2
-rw-r--r--dev-python/pikepdf/pikepdf-10.11.0.ebuild61
-rw-r--r--dev-python/portalocker/portalocker-3.2.0.ebuild2
-rw-r--r--dev-python/pygal/pygal-3.1.0.ebuild2
-rw-r--r--dev-python/pygal/pygal-3.1.3.ebuild2
-rw-r--r--dev-python/pyglet/Manifest1
-rw-r--r--dev-python/pyglet/pyglet-2.1.16.ebuild80
-rw-r--r--dev-python/pysnmp/Manifest1
-rw-r--r--dev-python/pysnmp/pysnmp-7.1.28.ebuild49
-rw-r--r--dev-python/python-discovery/Manifest2
-rw-r--r--dev-python/python-discovery/python-discovery-1.5.1.ebuild55
-rw-r--r--dev-python/python-engineio/Manifest1
-rw-r--r--dev-python/python-engineio/python-engineio-4.13.4.ebuild55
-rw-r--r--dev-python/shtab/Manifest2
-rw-r--r--dev-python/shtab/shtab-1.9.2.ebuild31
-rw-r--r--dev-python/snakeoil/Manifest2
-rw-r--r--dev-python/snakeoil/snakeoil-0.11.3.ebuild32
-rw-r--r--dev-python/snapshottest/snapshottest-0.6.0.ebuild3
-rw-r--r--dev-python/spyder/Manifest1
-rw-r--r--dev-python/spyder/spyder-6.1.6.ebuild209
-rw-r--r--dev-python/tifffile/Manifest1
-rw-r--r--dev-python/tifffile/tifffile-2026.7.31.ebuild56
-rw-r--r--dev-python/time-machine/Manifest1
-rw-r--r--dev-python/time-machine/files/time-machine-3.2.0-py3.15.patch237
-rw-r--r--dev-python/time-machine/time-machine-3.2.0-r1.ebuild40
-rw-r--r--dev-python/time-machine/time-machine-3.3.0.ebuild36
-rw-r--r--dev-python/toolz/files/toolz-1.1.0-py3.15.patch20
-rw-r--r--dev-python/toolz/toolz-1.1.0-r1.ebuild37
-rw-r--r--dev-python/traitlets/Manifest1
-rw-r--r--dev-python/traitlets/traitlets-5.16.0.ebuild36
-rw-r--r--dev-python/trakit/Manifest1
-rw-r--r--dev-python/trakit/trakit-0.3.0.ebuild38
-rw-r--r--dev-python/translate-toolkit/Manifest1
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild123
-rw-r--r--dev-python/trimesh/Manifest1
-rw-r--r--dev-python/trimesh/trimesh-5.0.0.ebuild88
-rw-r--r--dev-python/txrequests/txrequests-0.9.6-r1.ebuild2
-rw-r--r--dev-python/ubelt/Manifest1
-rw-r--r--dev-python/ubelt/ubelt-1.4.3.ebuild47
-rw-r--r--dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch30
-rw-r--r--dev-python/unearth/unearth-0.18.2.ebuild6
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.12.1.ebuild100
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.12.1.ebuild149
-rw-r--r--dev-python/virtualenv-clone/files/virtualenv-clone-0.5.7-fix-test-virtualenv-20.38.patch68
-rw-r--r--dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild8
-rw-r--r--dev-python/websockets/Manifest1
-rw-r--r--dev-python/websockets/websockets-17.0.1.ebuild61
-rw-r--r--dev-python/websockify/files/websockify-0.13.0-fix-test-with-jwcrypto-1.5.7.patch23
-rw-r--r--dev-python/websockify/websockify-0.13.0.ebuild7
-rw-r--r--dev-python/wxpython/wxpython-4.2.5.ebuild2
103 files changed, 2260 insertions, 1253 deletions
diff --git a/dev-python/asyncssh/asyncssh-2.24.0.ebuild b/dev-python/asyncssh/asyncssh-2.24.0.ebuild
index 0469d9751b3e..ecaa77586264 100644
--- a/dev-python/asyncssh/asyncssh-2.24.0.ebuild
+++ b/dev-python/asyncssh/asyncssh-2.24.0.ebuild
@@ -36,6 +36,14 @@ BDEPEND="
)
"
+EPYTEST_DESELECT=(
+ # Network sandbox
+ tests/test_connection.py::_TestCanonicalizeHost::test_canonicalize_failure
+ tests/test_x11.py::_TestX11::test_consecutive_different_servers
+ tests/test_x11.py::_TestX11::test_from_connect
+ tests/test_x11.py::_TestX11::test_wildcard_address
+)
+
EPYTEST_PLUGINS=()
# xdist: fails on serializing 'type'
distutils_enable_tests pytest
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
index ccd46e6ef0a0..2216bd99c112 100644
--- a/dev-python/bitarray/Manifest
+++ b/dev-python/bitarray/Manifest
@@ -1,3 +1,4 @@
+DIST bitarray-3.10.0.tar.gz 168648 BLAKE2B 15cc29c64c29e6f71a90f3d7388808f267787c4e0a5cd46ea35a739785ca0bd30b8f7aa7d2b9d21a279f31e9cc1edf86548d4642e7c03b026eaf2e6f9ae4ec42 SHA512 ea26323636db4571cb57bf64a3bb274f27cb412e8e8c92c095b9541a418906a69efd77e229385c919cf80485895b4a62cf20e8dda4a2bf45c108919366c2fcf0
DIST bitarray-3.8.2.tar.gz 153516 BLAKE2B c643c2152bf8533a97b6f93116446958927a8ec0f73f191e7e48ed262beda701050231a33e23f96cd3e1f915c2b8e1f807e3105456dd370e7c3c0383d8b41a89 SHA512 fed909f53005b747c0df2cb2a3bbe64a76fc29f8cfe11ee93d441d694378dd42993ade28acb14b9d12efec73339536294806e1a8e8a9390a5c868557b7a7c344
DIST bitarray-3.9.1.tar.gz 159256 BLAKE2B 6fcacd0f068f56c8959c93ddfba1e539dce2cfcabd879689e623db702de631b30570656f52eec33a8090edd3f78546fe6ca1f292acd1289ca8f2fa5faa1b63d8 SHA512 1a2be73874572acf17dc82437e4c0953d5c099dd0321bc832638e79f6db4b0a9e6ceb7600125688c5cdcb60e4376f35ff7be0337ad64fbb89e3b49a170356e57
DIST bitarray-3.9.2.tar.gz 160932 BLAKE2B 41bd8f964644df43aaa53d3f247d56d7eb313d65b7cc2f0b90215e58c9adc1d6d39254c24d4002da03d433958039818f29e952c6c95f5a971154300975792a75 SHA512 6d7c7dab22a7fdc3d4e6db3e0c582565470063de9e05baa572d5a059d0ea01bd5dc07e72a7c5ba29b37bfde5f78f2eafa7074752f67ad87d624dddfd3bff1a95
diff --git a/dev-python/bitarray/bitarray-3.10.0.ebuild b/dev-python/bitarray/bitarray-3.10.0.ebuild
new file mode 100644
index 000000000000..93b1ff66517e
--- /dev/null
+++ b/dev-python/bitarray/bitarray-3.10.0.ebuild
@@ -0,0 +1,24 @@
+# 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Efficient arrays of booleans -- C extension"
+HOMEPAGE="
+ https://github.com/ilanschnell/bitarray/
+ https://pypi.org/project/bitarray/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+python_test() {
+ "${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index f577ea24fee7..046373dbc80f 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,17 +2,7 @@ DIST boto3-1.43.29.gh.tar.gz 1161648 BLAKE2B 3f0a040019fd8ea2a42a82c75bf31e563ef
DIST boto3-1.43.36.gh.tar.gz 1169288 BLAKE2B c316bf8bc804c7c7a70eed0b01a66d7cf8ffdd0662e3bdb54864a9c78d3baa1d092c99fd43dd2df93314fc4795738a6ad432cad6a333f0a5535e13b9c6765fca SHA512 bd9f623a67508741cd45b239a4e575bf5688146d38bdb4f3af0b294f17898205e23b57d04bf6ed9584b92088515be1fd6f11922fdba5cd19bcf3ea4340d16f55
DIST boto3-1.43.40.gh.tar.gz 1175361 BLAKE2B cb24a2dd76debf1b3b2d759d020b2cf17248db20044b06e0c191821170644f4762997a527b8e5c401305f5b0c725d1269d610c9cb1aa2bb776d894f70b09f3ac SHA512 eb7d0218051abddd74e544d8eaa4e83cdd2e9ef305d059c165c926ade12a795ae196eefbaa2b64176fe26a1bf20419d775670fccc4fda485c93197d10efcbcf1
DIST boto3-1.43.46.gh.tar.gz 1180600 BLAKE2B b27ffe984aade7d1f1b0a4c66204acecd5216cf5ccd66c40ed18015c48103c1a9a8c68ea39e5ddc971f6fdeaa0bcf4c39cdd9c252494f1650ea0f431644f4148 SHA512 447256677ce2943450877d7e08dc3c9bc2dc6da284d68c7a43ef25c6445acf135b5b26bf5ede80bd4d6fde48181bf6e5898aadda84e3190caad176280c313a31
-DIST boto3-1.43.47.gh.tar.gz 1181255 BLAKE2B 9ecbe5f8f8720df1b5f9359aded4d708c25078703ca38763720068ba1135ade97f12bb288bc83850a72a14a56fbb5b58cbbd41c7160ba04c9e35ea6f47963f9f SHA512 d33f8e155195169727996dfbbe84a7d51ec1c65730853d61e21a952a0acbc7b5cb2c02ac61530a3da83dfd952ee423ffda62544723fe04ccd367a97ceed2e36c
-DIST boto3-1.43.48.gh.tar.gz 1182113 BLAKE2B 8485ed17dc4abb15648962d35264738d274e808f63cfe86c33e69462601f591f12ad3409e0e640c0ba394211b50a058154f628a3e2bd7c7bfe4223fd89a6921c SHA512 2b35c4b13cf36d93f1d74936e03acf38dc7939a9e509330c6af3e866c755d90b3c1eb95c4fbd153120eb8fce5d6a88eac0ff7a121812bad411b452fa74d3c300
-DIST boto3-1.43.49.gh.tar.gz 1182698 BLAKE2B 09ac6916c3fbe2ebc41406e833adc8b13f67f69dfc61f0e278f232b0a4112132eb165d8e0f0776a115c3a7b2b08d4ac1685fed661ba991c1f8d13ca3626a5f69 SHA512 6d73dec98849899c5892c8b8e545e38e433ee35c1af98ddf3f9250d4a607daf5d917f97ee7ed3cc54b831e569a46476adad4ac4cbaf68a89971fb2a4408be202
-DIST boto3-1.43.50.gh.tar.gz 1183546 BLAKE2B 72bcdda319a094b12642abc9b3dc98887043d295b0d4ff1ad7dce3442336ee2bf8a0528a0fe311d66cbb3f6712e33cbcca787b9510cde120c54424fe838533c6 SHA512 40e3b787563d5f9226a62bd0a2aef6802f084401319744b0e9b27a69b039aaabfb6a9bcc3ec53bf56b3e0e8449a7332b9da9fcf9da48b033fa20d0db3565fd5a
DIST boto3-1.43.51.gh.tar.gz 1184372 BLAKE2B d89d6ee90f2e758dd88b2aa9ea70d836c2e26669fda3246ddaf55c9c01d74848d76ac5d555f345103e371f90c2ad6f904cd369c9c546608ff26decc4a2f9dd7e SHA512 08a300db1e3bf4725cb95aa7e5fa451998e8467ef76bd1fed059c05c7ef7c6005321481460a6e3e5154117e876ef7a579cda5a2ebc12ba3dfc33bcae998e127f
-DIST boto3-1.43.52.gh.tar.gz 1187251 BLAKE2B 5ee087e5cddac442b2008b564c1d2d1b07986a85db461303d9044a93243169aab9e195885be8065d76c41888d3c5b766ca5304177a3960cae46633f02645cdcb SHA512 66e4e0f07636a3148a8ec28e83bcd82e5328b7e0664c3b4153eac375bbc90ae528c026c8d187b4551b35ea04bbeafaf923bcacae44b99760767153729ce6c279
-DIST boto3-1.43.53.gh.tar.gz 1188342 BLAKE2B bc20d159bdf02ea3ed01cc463e4e54a56d9efa752a284e501146093de5642b862b341545544eac1af134a4a644dc90100cb4445033ccc0da5a3eb17c454f560b SHA512 7ce46ee901ee93532fbaeb6df91bb762740835ec23df324ba0147e4a6ff4b5e4d2d0036dc38581e4227119058cb9154afddd6b05ef7c061496c301b1adb30934
-DIST boto3-1.43.54.gh.tar.gz 1189579 BLAKE2B c9e15145e1b831e18282622aaf41e4531ef34b504710be95a46ec3ff0865be8f8025c7c7b94fc19159354aa4430b19c888a7ba2dce92950a70f0cf5629dd6e99 SHA512 1d3ad0baa4d31d0e11a85cdf45ebc7bd0421560a16f3744c37bfdea6d496243d84a07d60df8768d4782f6c2356589eaaf949e2dcc60bcf1118816671f9be27d1
-DIST boto3-1.43.55.gh.tar.gz 1190676 BLAKE2B d6e7310829ebc5d7e839a5d826dce95e092107c2f03550f44511ea396006e14fd95e537cfd529da2cb7eecfe3900f3ba9c58684346bf684757cac93fefcc9198 SHA512 303d8dcea109de2e13ddcafc783d5c960f4c3b4880bfc029b9beee71976a474361612f870193e9ffa89a530358d0b2348667f5429908f3c6d279522922b900e4
DIST boto3-1.43.56.gh.tar.gz 1191375 BLAKE2B 3e98c6b40c4386ba8f4653af181625376509880f40b36c6ab8101a6d20cd8db4a57f2ab3b31e8934479a7191964455c08e728ebc1f4c291d987fb9991d32cdc9 SHA512 f3990078f144109317a11904b01c8bbbdc74e6caaf0be41f612c0b75076fa8092476aad840a33eb986a587040bbdb3618eb4f7d6ba6ec56d83b5cc97ea561fbd
-DIST boto3-1.43.57.gh.tar.gz 1192652 BLAKE2B 1fe7c1bb69e4d234f69554518f07151a9f6ea1a24dac5fb91ca49a867fb4bff1064e96d9bcf0f653e91be8707ff651f5b397500a104ee175702b583d06412bdf SHA512 838301792c71c52de1b293b28771aa5d7a3baa10d56c11da423dd8971ca2d76f64cb3b4f45a9cec6d1ab1de2ef90d0c68800880c7357749da2608aa6c388f602
-DIST boto3-1.43.58.gh.tar.gz 1193531 BLAKE2B ac792780b99f2fad11db5a04b5b1784269ca08ee0dcf977990b91ca9a781f5b3d9c0753d092ec4eaead5c6bd44a53431cff35dfbcca3080809e3c351d30b174f SHA512 f19614bf5b8a07d245c2dfb44b66faf5944ba8c5ea0515e12d4d9d5e9e96b5e662c8d93d40211ce14856421037894cd58b12c348d4e3e1bd389abf1b03aa20fd
-DIST boto3-1.43.59.gh.tar.gz 1194595 BLAKE2B 170ddbac49d627ed6032bd71914c53392461aa48be8507ea1517bf3af9ecb345b0d89e93c4fede1c73654f9603061858ad036afcabf9697366e3667898b73caa SHA512 33a9d4b7ebfaa0c42a3e08c12c574c950c184827a3687085f510815152e6c51e9232bdc2a2a6a81a5b3851adbc91f155d274c3e19665e02147bd8e980fe0363f
-DIST boto3-1.43.60.gh.tar.gz 1195559 BLAKE2B ea1b56bcda79258020d63cfdbff37c4ac90e7f1d1f85eaf258afba1f46ded202bb6dd7a13aebd5d6df3020a339d49665ca1427d870f6397df5ef60cd4dbc2365 SHA512 0f8c4261e40cee4cc2484493213c94acb7181c5f2bda6306c349348e4be9b4c1bdbf0dba4aa2355b2f9426bf9cd5aacb01a633d77347f9b04c598f0f6deb983c
+DIST boto3-1.43.61.gh.tar.gz 1195670 BLAKE2B ed15e087960531920503f9d929a974b3b339cc870d88bb1a5b10ae5b804e35b99217cea7012a9e00306e84a25e74c7367979a0df5b96dcb67ea0b500fa03305e SHA512 eca58444c4458c9f28511dce75f6b7f593134840fb8e1a205ec6aa979729f92142c9e9241fc6c37668e850a31a295689875469179d9a7f870213314cf768fc69
+DIST boto3-1.43.62.gh.tar.gz 1197144 BLAKE2B 574fe26ea4042f0a7bb0d1c408f7de26a3f8968bd7b70fe3cd744d1499c00cfd8683bc49033916bd5380298c3612746d3c84cc663838f5bbc7a341a73b9e70e0 SHA512 f9c8f4aaddcf27683d132163ec7a2d617abcd1a2aaaf46122408ab9015ec09afa898c2dbee361c57c1f2031fb50653ef001f9eccf5cb510e5cb24c1761aa4021
diff --git a/dev-python/boto3/boto3-1.43.49.ebuild b/dev-python/boto3/boto3-1.43.49.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.49.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.50.ebuild b/dev-python/boto3/boto3-1.43.50.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.50.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.52.ebuild b/dev-python/boto3/boto3-1.43.52.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.52.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.53.ebuild b/dev-python/boto3/boto3-1.43.53.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.53.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.54.ebuild b/dev-python/boto3/boto3-1.43.54.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.54.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.55.ebuild b/dev-python/boto3/boto3-1.43.55.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.55.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.57.ebuild b/dev-python/boto3/boto3-1.43.57.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.57.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.58.ebuild b/dev-python/boto3/boto3-1.43.58.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.58.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.59.ebuild b/dev-python/boto3/boto3-1.43.59.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.59.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.60.ebuild b/dev-python/boto3/boto3-1.43.60.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.60.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.43.47.ebuild b/dev-python/boto3/boto3-1.43.61.ebuild
index 93fbbe6dd59b..93fbbe6dd59b 100644
--- a/dev-python/boto3/boto3-1.43.47.ebuild
+++ b/dev-python/boto3/boto3-1.43.61.ebuild
diff --git a/dev-python/boto3/boto3-1.43.48.ebuild b/dev-python/boto3/boto3-1.43.62.ebuild
index 93fbbe6dd59b..93fbbe6dd59b 100644
--- a/dev-python/boto3/boto3-1.43.48.ebuild
+++ b/dev-python/boto3/boto3-1.43.62.ebuild
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 4dc9eba6b0ab..f826223c02c7 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,17 +2,7 @@ DIST botocore-1.43.29.gh.tar.gz 16476072 BLAKE2B 2525545c2425568e8765100bad446e2
DIST botocore-1.43.36.gh.tar.gz 16601718 BLAKE2B b4643995a2c173c9df865923d6912e2c804da45b3bcfaf2e73e941366df02c23f4cb05408550992e9747aaacf1acaaced06dc497625e5e3dd5d8dc1eafc881b9 SHA512 02754b7766b91b569fa9aa3f83797c4b01834914415b535d690308e373583cafadf0b35846309aabbc0c66413d7adec05db0132e441eae273c4b9b78327570a8
DIST botocore-1.43.40.gh.tar.gz 16621912 BLAKE2B 87339ac693df7e8753b8a7463a93aea57f24005c48c6d5b0276307928704893f315e1b7c671d9a91340899bd8bff8846f7afa23eca4dbfaa03f54a3f07b2fa43 SHA512 49257c431950a63d34c137b2b3ed1bb642cfbdc98351dab2cb2dfdaae6f6e88ecb11c74d89d9ec52ad6b558e9d94fa6bc5da13c5a0e67ad441decf1df516e888
DIST botocore-1.43.46.gh.tar.gz 16680698 BLAKE2B cbb2a15145d8fd7d4021538774b21bdb3adfc95c0e9f91a5970b1cb1fc03f5453ab0b6315d27c70b846ea12a2fc8442eccebd04e357d22589cddf5e39fa251dd SHA512 a37e10b54383ad6a7fc1a764c8f565c127eac81e989197335b5bc3ca57b736cbcb36635c070d6d2cc48a06fafdb7c88319630d2c22b3b4349efb406438ba2a50
-DIST botocore-1.43.47.gh.tar.gz 16683434 BLAKE2B ff7b769b782fd8c94e3faeaffa095f0a659b31afbe271619a698d18b2804c2d38e91f94f8d561fbedae08bf6461d4b48cee09a25e96f8d532a48a408499c14b3 SHA512 12f33f16dcc43b60904b1ec7f1307a7a45072f4cdafe3b9a6b4c4859009c7cd1b434a76a6c661e7b1d79c67a82743440ff57d07ee3fe5b3bf0ef8a980ad943e8
-DIST botocore-1.43.48.gh.tar.gz 16688909 BLAKE2B 18765fa54b970c5792bed052d910faa1179b8813000da14da41c72735c1a91f86286222b1614fd6b70d6793216e4f35017d42007b9c3a18c92ae03803c5854ed SHA512 560bcbb47f8de85de29bbcd359a01f314eaea8a38298e31f6efdc43b17fb307c10aabe7dfd19866a9fb37b4df42aff1e77f173c105d1c3a46e0117d1b40b5d40
-DIST botocore-1.43.49.gh.tar.gz 16696979 BLAKE2B 2a3257c70719fa6f8b6e55f55a0adedb2f3af261a7faae2a7469eacdaba62f3361984be172e611d445f2dfc13ad392142532a879775fb670ee46d187891acb59 SHA512 bf9e9d1141fa83f7153fd9bec3a05d4d7f295a9947080c19358c29b86868687dc4cd1371e34149a9af13236c9043efe1fea356dc3266bb1cc34603e5e41165e4
-DIST botocore-1.43.50.gh.tar.gz 16700459 BLAKE2B bb521f40fce6272e1bba2330e07c4524bb811b9c4abc2b1d5c30f179061a9d97f1821c05963e5f12457765229a0de1b1c6441deab811078c23f0786a2cde42d3 SHA512 605a52e05bba219faa6a54ab3aa20e511ebddaf572c98d8be1ff899dfd9cc15c72bb9e6a23c6d634b5f6c994ff6e3215133f43b215be4664c968c8e005944748
DIST botocore-1.43.51.gh.tar.gz 16704426 BLAKE2B 0c293805968a448b093654c57df15d83f400ecfabc965c7449194fd8fa62f6d547da5baa705eb52d4fa26e00943db81af7908a366d210bb6dbd56bccbc79a868 SHA512 709fee1bed2e3e25ad6da78d42974683c5d03507beadff4e4ea4f554f8fdbaf9ef665ef6d99defd170eba003a6750379a299a64187a31d23cc0dc5a18c904349
-DIST botocore-1.43.52.gh.tar.gz 16708936 BLAKE2B 044e3646265d68818480bd5fd1403c25d9a7d999bc48c47c604c0a0f8d2fc97d55a1161815a810a629e9b70436973927fbb654afabd628a18aa54c86f54fb1a5 SHA512 3b06728a591664fb3f1497a62ecadc45ac027fe873fa7dbe80f5760c16bd24dde35c656e1ac20b5282275dfd57758f77208cf5f27599cc3f1c1d6efce1ca95ce
-DIST botocore-1.43.53.gh.tar.gz 16712165 BLAKE2B ffe9eb057a1e2c7df7159081fddd610d970778fe121afa9258aa84e263408b98ebd7f72b690a4932c0d015b5861f773ce6ac6ed8d8795c992b1a21690d2e7fab SHA512 bfb73b5238026e63b9b36f2094f6539073fc50b7a4efa1662f4cc9729b545b3897f6d37ce303789a11fc3a5bdd1c60ec2f50b6b14f24f2aef554fc1594ab4324
-DIST botocore-1.43.54.gh.tar.gz 16719638 BLAKE2B dd52801b1be555fa76a80627944dfd6458660e603b3c51a100e0df451d58bbea57dc988d3586c76dce848c1c305c62ef73123ef46bdc519a54ebfce7955bfdac SHA512 66b8dd78f926d9366f3786cb4cadbcbba7b8198a7a954e41ba4fa6edac63fee5733166b9620d3ce191beb61afcd3167e2c1836cf9eab2b58e97577add8a82f85
-DIST botocore-1.43.55.gh.tar.gz 16729593 BLAKE2B 50322fd925316103af05e7d656a72810a2e67ee896f725ef147e1651787bde60e7f915ec9be01675511a7c2496f4952efda50e3a8a09c542e376c889753b37c0 SHA512 3d79656d3a14d071093b9fcdafdbb287edf96de2acb5d139a05eda33b229ccd1530649da00c3521f5133e65f335d4f43a621c2059b454c929394de28b18dafc0
DIST botocore-1.43.56.gh.tar.gz 16732272 BLAKE2B 4a399f5febf5ff58a49b09f1e1a064630c832102783cd29c9d67165ff61f1538bfde3649bde61a018f0d1bbedcfd0a83ebdfa34eab0bbddb7892fec6d2e8f2a7 SHA512 2e086555d6a32802c929b21f9481b258cc9d9d724dd6b73e0159b642e688e0d2c419a3707f2fe4cdb60ec343ab960477b0424a5f9431e4060b49b8a7167ca0f2
-DIST botocore-1.43.57.gh.tar.gz 16738874 BLAKE2B cdb542e910966ad785337eadbfad829a179256d56b1b803b96838ce60ff01ddc0a787ba77d1ce2a56d354008b360e333e14bcd8ff61bab156e1ac37101d5b6e9 SHA512 0ecd214c1d33ec33aa66bf8eb082d379c47481efc59bf96d052e6bfa34183f000fd20c05cb0765490c6ce9cafba8d994ac7bc68c952da02ff3b8ed31d43a0658
-DIST botocore-1.43.58.gh.tar.gz 16740851 BLAKE2B 19be86a3b7d0f3a9d62862c0a6bfa53d275fe149b879333cc49be9af4f43e9d1af919c966087d7de2da01f6b9f48c524457209dd7ab1ffe4e8291a185a89fa04 SHA512 3acdd10cbba121f9c32cc3931847c5778e2e273409869dd79e9150d9c5d787da010b9df4df642ce16a97d2b0d351eaa5d8a22e37c9d042f54341e65389fd162d
-DIST botocore-1.43.59.gh.tar.gz 16787137 BLAKE2B 6f2f018b252e7b1ddbb0cd77d0b5b5fa9ce2b9c0e3387ecff69ba8942301697f7fb037df232c8759fccb57fdab2a47293f7d7c86b3252d7a2025afe285884321 SHA512 8162143bcbde8e4552d2ea3b3e5c2819e12e09477e4b5e68b48e48abb3cc8c596fa382843a08af3c1967c2c9a0234647c1733f8b503ed4cfacf61d5306ade698
-DIST botocore-1.43.60.gh.tar.gz 16803466 BLAKE2B 0153288f3787913baaf2905d74d4f42399e2a19ba741bf669b231f02d468f95b0ad810b4d5397dc3f5c3e3b6d01e5fb1e2fd2895eeb008ab3546eb50bc9efdde SHA512 84e6e6447bae7436ddd666e1df89c99a98c468ab7a243b5f7b8338854f0e0da3c701afa261997b8301668d36140845a5b7497f711912f2c8e4117e4169022c2e
+DIST botocore-1.43.61.gh.tar.gz 16803304 BLAKE2B 9a94cc40be6143a578b4bfe2760992818a30f1d1b7464be307d338837a82e0de1b21b4cad6a32bb7284ee5a4231f3fc1f2473298947f75ea45359b76f8b38e99 SHA512 dee14f883824cbb3c9af9be959afb5691260fde17e90997ea7c936fb0d5a793b00ddabf216eb8058c9291abbaafe6390044ee837837f9b00d8ae6e3e7ddafd7b
+DIST botocore-1.43.62.gh.tar.gz 16820420 BLAKE2B f25361a48491104b819ab09b799e7e12428a8636941625eb515e8447d24a5cd747db07f14367a19376c5ab93c3521a0b63ee0db19c6f605f9d901c4e90fa0427 SHA512 6a9f7843146f09cd1ed07181028f3a2f14b26722d2618cb6916fbecd609f7daafb7cce931da09350af2e69afd42f22048cb51bbb8a1a60cbf8e502085f2a69af
diff --git a/dev-python/botocore/botocore-1.43.49.ebuild b/dev-python/botocore/botocore-1.43.49.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.49.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.50.ebuild b/dev-python/botocore/botocore-1.43.50.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.50.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.52.ebuild b/dev-python/botocore/botocore-1.43.52.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.52.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.53.ebuild b/dev-python/botocore/botocore-1.43.53.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.53.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.54.ebuild b/dev-python/botocore/botocore-1.43.54.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.54.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.55.ebuild b/dev-python/botocore/botocore-1.43.55.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.55.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.57.ebuild b/dev-python/botocore/botocore-1.43.57.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.57.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.58.ebuild b/dev-python/botocore/botocore-1.43.58.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.58.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.59.ebuild b/dev-python/botocore/botocore-1.43.59.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.59.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.60.ebuild b/dev-python/botocore/botocore-1.43.60.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.60.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.47.ebuild b/dev-python/botocore/botocore-1.43.61.ebuild
index a3a161f78545..a3a161f78545 100644
--- a/dev-python/botocore/botocore-1.43.47.ebuild
+++ b/dev-python/botocore/botocore-1.43.61.ebuild
diff --git a/dev-python/botocore/botocore-1.43.48.ebuild b/dev-python/botocore/botocore-1.43.62.ebuild
index a3a161f78545..a3a161f78545 100644
--- a/dev-python/botocore/botocore-1.43.48.ebuild
+++ b/dev-python/botocore/botocore-1.43.62.ebuild
diff --git a/dev-python/cryptography/Manifest b/dev-python/cryptography/Manifest
index ff87ad4db682..80459107a076 100644
--- a/dev-python/cryptography/Manifest
+++ b/dev-python/cryptography/Manifest
@@ -1,36 +1,50 @@
DIST asn1-0.24.1.crate 50502 BLAKE2B ebb6ec767929765aa37a34f25c9ace8cebabc4b01268245c71691a247317d920e3f5dc6ff4026711e1ba99701f55d84eb1b8b66d79e9b88ad50d25606070a746 SHA512 72ab6700bc365456f6038f9d6d5ccb29a3baf378596f538b68e0e11d3668e57cebaabf72145d8fa86b6441d66eafe38aaadab41eb7b61731fd356a75ff5c45ee
DIST asn1_derive-0.24.1.crate 9534 BLAKE2B e498f5af8fef329668554673a2c583b1d0049a235ed70f2a7a26ab724304240b277c44b33995749437600568e084aaf018430b96c7011d8483bb6965ba0e9bfa SHA512 00990444fb13a033ea831f0688611ecbe33f8cdb63717382cdbccaa0834f953302383f05ae425525d8c336908780d7b80be0db430e1f233bded0544f32c9c199
DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
+DIST base64-0.23.0.crate 93578 BLAKE2B d452a45a154d73096a495c78b033890aa57028b4ec649073459e3b0dd0b5297729937f4effb94a8a26f6284e7d94c10ff41fd68eb6cbec7b18cd1aacc8a1111a SHA512 3bf0978c2d12028dd965f7520ebabad3b6dd04ebee0e5ef976327042f792db85e1ffcd6af26c94e6187db309e1cc2d751a52ee0a09c44e673a6b39ef7071f731
DIST bitflags-2.13.0.crate 51280 BLAKE2B 2926a828107adbf689705662a77e6f4f8d12c4d48ba8207d03e6220fe58082a0ebb48252f1652b760f4427e0b951276f31a08dc0467612d5b35b484a9f6fb74e SHA512 5a93a30662effe056132d33cd0b25670feedfe69e927b7e77ea1a417f68104988459f1c3a73eec1752eac08f44ae5333496526e1a96dfb3e7144deca1a94d19f
+DIST bitflags-2.13.1.crate 51395 BLAKE2B fdc2047bd877bbff24d9cb98c4fcc96b256f6161f7a2c10e437ea3c05485a1950ff8f1d9bb16a28e92b1755b37244bc3cbf3544688e6b7de147981d641c04319 SHA512 f1f2ac77fe2dcd6bb489a254d0f2e757b188829a7efaeb032acf7bf98a77521cc01f582961c79587ce7e72de706767785eda9bb191bc8b6bfdf294953ab819a8
DIST cc-1.2.64.crate 97697 BLAKE2B e13b32095a684f456627aba1f48c369f9b374001660e02aca695577b058aaacfa9a74edf6fe6a5979b031ba430c123fd3f484f895312db01bcd6730d104a36c3 SHA512 be9d702a2573d3977b9fbb79c09c163b297fa9efce7b490941e40fa77ad5d965949fd42e02ce0fa89de52f579f4400d26041576fc188542637f8fd27752b6b63
+DIST cc-1.4.0.crate 97878 BLAKE2B 40d5ce221dbe4a877e36a9dab0d1eaa02276a9eee7d919dc509ca3d17e39b7cb3a3c9640434bd91c6ffdc69a2534fdbf44b6b87728134d01bca67ead6fee60bc SHA512 9ad31bcdadbce84e0eac56ee1faf140e8146f43a7f1bf99288ffacd278e3b6d3307fe4b761c744c0ea823c378ec5c18dd02b46b2dcb69f6344c7d3f9df045684
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
DIST cryptography-49.0.0.tar.gz 854345 BLAKE2B 735d303659d101bacf967bb2388190052caf5f3f02d02487a0b49c21eb594b8d133be58411d98b73ee35fd50597ee872f716f2a4f9de391fcdd66d6b7292a205 SHA512 047ffa4073ed124bc6fe3459663853b50c55c6ed9e5604bd1709b7f17e72788f0e4eb5c533a174afbead40fc16a1a798600d29f4963b190867d9d9e50dea6af8
DIST cryptography-49.0.0.tar.gz.provenance 9824 BLAKE2B b2b08f93894aa7bc9de98185a37e2b90a1e041d7473674752e52724baa8b90759354763eaf5b4403172a2dfe48596653abae79a604d1dbebe7664c2fd71dd6f2 SHA512 4228eaaab0ae7b34763ae3d60cf2d24d5b803efea85718c7eac34073e7fc48aefb7ba2c699c25f82a34f05a050d04f634956f4e717c201608e2f02451ec5a318
+DIST cryptography-50.0.0.tar.gz 880201 BLAKE2B b498408edfc15581a8cc7dabb4050edc4d7a214431f28141a65c6c7876cdf2df11fec298de0b5bb3ed71b19f27fd7385822d16efa50632e5921844de82d2005c SHA512 b473d5625aa0367825fdbe771377056b660dbe0e9d155a769098bfa03d77e0e3d9d11c4c0761c66f45ed93857c1410239c0e8e5f558d1d9d603b4b7502a626a4
+DIST cryptography-50.0.0.tar.gz.provenance 9836 BLAKE2B ccd8a9ae3d4754f1cad8e59e1bc8c62853d370034d3c9f928e83b1966be11c4b0d7feba9997eaed51f2e88d0a325f036805793de7cb58d188a4b48c0e6710d47 SHA512 f98c9cbe8adbe56ef93fb2a3a033ede5fec2c87561ffc808c09155a12e6ecb22735a7e6a2beb8a186f41f3a5b8e58fdd1e66bdee4ab57caf3ac19f0bc051aaa7
DIST cryptography_vectors-49.0.0.tar.gz 54876507 BLAKE2B 58c4e75c33ee0926a7a0d348356be18884145f0f7bd04c771fdb7fdbc8c779b503cdf6e659e167cc64d20b5d5c2c46fec615e968a9cd49b2e9207945f079ebbb SHA512 dbec0a8198ea7a6ee56d1b5b8079752487cb8c2916c9239d26c664c08402c1ab8832585889ec79313e37f64151a3664b98c6a5e1eb69adceb4caeff32b56f838
DIST cryptography_vectors-49.0.0.tar.gz.provenance 9789 BLAKE2B 66f3e0881b4715dc8304e832b7e976cbc1570cb08b573304935c8625c0fe673602777d6e90fbcd455e97ca32a586350a52e58c8c96a086038fe2aa935db8ed93 SHA512 c8915a33aa32ffd32602f645138cfd3dcb95dcf9bfcebae96ac9ffb9c8c27c7b1df727f44e8fa8f2f21f7b516cd8a142cc58fbc6dccb509afdb697f7e51e5955
+DIST cryptography_vectors-50.0.0.tar.gz 54914883 BLAKE2B 9b1b740d9dfdf2a80bf072189768a4e823a4f706f6517e7745c4ab609fb2109aab757937d61eb6b7a2f5db9af78c998537411f2068eceac94e989e4a678ad4a4 SHA512 e0969245a61bb84b992ebc8f53b45191f6d78e2cea228b7d7ee35a6658722028956e6c54414811e0c03cbd6232075904edfcaeaefc7d8e61a4981149ac1e28ef
+DIST cryptography_vectors-50.0.0.tar.gz.provenance 9801 BLAKE2B e2ba1e2d8eabdd2dd680d78c6d01926a8ecc429008ce180b210330ba0c354d113f5edb05fc7d09b049d490ab4e04c94c5e5532c7114bbd19cd6b1268de37b727 SHA512 a8c69da79a910d65b14917fd6a143959620edb974b8c7de63200130bb0884c393850a7a914a9c19dad5bbfccaa422029ef9ec8c98b4eb1730e4d1ed7cc55ce6a
DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST itoa-1.0.18.crate 15935 BLAKE2B 8e41446056ccd94979f6f5a8fe8c48d6c47abaab99a41715cca31816f859b56e0cbacb998f300b62be8b719a6470f8a087f1439b72f2f6662d1cdd3d552ede5b SHA512 8dbad156e2863c28e2b380901a92414ef00e39f1fcdb06d91a0f3fb73108c2f7f36b699ccd93287808c24c29cca7f1783d48d5ca95f2173502963c0abcb2d09c
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
+DIST libc-0.2.189.crate 851502 BLAKE2B 05155a249c6880ca96a19bbb7569d4ca7530f544504e4ccb48db1ebca0b70d84e99c6b9532adb9dfbb3d4d1187eca22698a6b2ba6ae40bebf5d6eafdae86c71d SHA512 0cf621171ed4e6bbfeb71fb582ebf037d62ab481bc406ca2fb766bd4a8416f220a189325a0d3cb3e3cb39d80e09312516ca6335fad71b329c5fccddabedf4110
DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST openssl-0.10.81.crate 311187 BLAKE2B a66963c92f34d6efaa80363681664eafdf21af640727132155b2aa1f8c167a9af081091addb675e901ffa352145d1a155b2917df90c4a7917b01c722a592d559 SHA512 533c23b4f1e9b942ff30eb3d22232298135c370fc31c97940f4ac18c73291acca6be4e03284efecbd01096999a6529d1a33a63db332efb4aee478cbcb3f37eba
DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c
DIST openssl-sys-0.9.117.crate 76045 BLAKE2B 074b44386a0a0833db961f8f8a249abdbacbc43a5428f8957e2284263206f4c2513c3eb7b38c96975f11ae75654656eb5d6d7d438c31bb5336835d9ed067e9b6 SHA512 89eeb0bfaa2c1ac3e0a8d268a46f8bfaa9942b0f840b0403faa15474961066559b3a1d24f672b445e1029301e6a99c7e2d84dec27528183523a409e9fb57b242
DIST pem-3.0.6.crate 18362 BLAKE2B 0cdd4855872e51d70bf6f3031a28ed9580c0fbad3ec7680938f121753e637f925a57ccb67ed5b85f3c0dff8b4c1fe936aa3ab4b4067ab9a3a3dd17dec02680cd SHA512 4d485bc3a14d7480b6fd0627869d4093124f173a3aeaeaff4ed69a37ba50a8327e6e9325a92d1a5c8ef337b7ca812de2e74ac786eaa94a644de8daf15619de15
+DIST pem-4.0.0.crate 18770 BLAKE2B 26b0ccccc7cb2015b2660a7b1fa77b9b107307d4a4d263a670b3b0fca6bb7624dc14666ffbb10d6d12a40d07595f3f53bf016a7add81487cee5ae6e3b421f49d SHA512 64b479d9e40f3322e1ffd4f3192f64885753261e1d4eea17b9ee412dba57c1187098283916c1b9452d57876006e508b3dea614b3bcb114f321015397d01de471
DIST pkg-config-0.3.33.crate 21590 BLAKE2B 576349a975cd4b9ff08c7f797f300cb2774425c72ed7baced19e0ba6231246f4479939c61bcc9efeb9174a2d6917bf009f02e93c26800c65e798b9e51ccf4d8b SHA512 af931d889e72f51e0ae41c880a1f5aa6215b93148cf7041378664e4ba013d0c83d654e560a73c9d7b301b5a008c221e48ac81b413d1123786e003c97f7fff63a
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
+DIST portable-atomic-1.14.0.crate 200703 BLAKE2B 2aafdf454dd417cf7a3ff7ff72cca1bb1274918b8b15a0b1ebd4feadc4bafd87544938c26e001e1bb417aafa641521dba40a36ec50db59d03bbdc04d855635f0 SHA512 4c306fb2767b1689be65e57552260c2367f37808d0a32affafa21fddacd330c7735b0c3c8fe456fac10c4088ca5e8ede980b6d6da2171fadb682b925ff9a2c63
DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
+DIST proc-macro2-1.0.107.crate 59588 BLAKE2B 91df0c573e3e1f09c1aeedcad0381cf18186d72c3d50b077b1d232fbb67d1c87ed09f3c6dc515140041c2dab5ce7706042c8235b93099df7d1c962d4a3a99160 SHA512 c109d5509624a57156e0eae22a3aec89a1a163623e8b4e376a13d872a46e4bf6855ee3cd4428c07cdf5c22f2284b6ce755f9cc7e075480e4587ce4f2d40fa903
DIST pyo3-0.29.0.crate 1241253 BLAKE2B 29deb7fa70010bf3d7e9e93bbcd87c0b56c4ee7ef0c2e5956181d2fb5f06f4c9b3f28bd1ad280126c26c048808b91b847e1fb69ddd617ef9e9e5e004cf4e48ae SHA512 e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
DIST pyo3-build-config-0.29.0.crate 39616 BLAKE2B 7b62a5976b890db84e5256f3136185c2a9c3b7110782b5b0cdc314a5231fde30a853ddcd17af63b53488b3e8d5e310b01002b6f3c32cfeb1e5c3e168cd6460d7 SHA512 df77e8d7d5fe173749437ff6b90fa1703083377d515ab8a85dc77d9cac9c3fc331ede4b040f7e3694311ddb5adff577cf90c181a27c196ab93a4569e918fdea8
DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a5ac46df3217d004f5c3a368f18331733c6723bd49e522c6f7105455df13e2be0f07695ed5ce6ae71c15dec438 SHA512 baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
DIST pyo3-macros-0.29.0.crate 8915 BLAKE2B c12d23753d5aba7333183d4b41f16c8da1d4297a3ff86b3b150e9185c1978fc184ac198e566a41833292a8a78ab59446eafd5ef7169e5cb41493e7cbeaa68280 SHA512 fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
+DIST quote-1.0.47.crate 31622 BLAKE2B d912f17bdb5f2db29f5349e976e12da52db9d2197dd9900cb00e907d1e9b06ab177e9b020c1d53f6a6cd087e3a973aed5af63eac282da77792b2a6d6e1b35b07 SHA512 544f4324d425ae011905e0d1b52e367d4660bc34457b2f802af94e1def1e6c4e39ffba3beeb40d75753967d15b6dccce18fea273e7f3d46b63d5c89898d19441
DIST self_cell-1.2.2.crate 23264 BLAKE2B dd4208f060b09e673178d0c66ba98670187d613fd903254d17e711ed2538c4ce6cdca7c0d65482a163ed2c91c8aa9b19d7f29df025b9964d69ba0fab3a6c7d6d SHA512 b47fb19bc623b5d670c21a2b1c32dd298934e295cc5b965b2b244ff4a076a7de4c652e4d820db32e68301b4124334ebd25837b55c610b75dc60bdd95a6ef9420
+DIST self_cell-1.3.0.crate 23869 BLAKE2B ab5a81d1ceac0f7221390fc346376ea764839893baf4af0372b47cb8852b4fcd986fc04c1386068c4f796d6180f70f8def48d7bff4ef057202ded6e2d9adbbfb SHA512 b7a629dafc90702468a9b4d97bab7f222e6f7263b3755709fe8da3311ee50245c304006ee3f12401f0226807ab1f0a44d25759caf2b84a33757fc76f9867036d
DIST shlex-2.0.1.crate 19332 BLAKE2B db2b6c5f7f30ad2f968d2dd386d39b362b8d19d7e17fffbb7407d6f35a4e165432b6607f3897c66cf8d32bf6e795ba7297080608c855b796fcf19842f4c509fa SHA512 d1bf35e2c5a93c718d3cc395fc4b06cc0c42d4891c0f37247de7e179492478020f0c57ae74c461d5bb1f833b071fd5c036d8d6d6ab8b61be6140cb64ae525921
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
+DIST syn-2.0.119.crate 307407 BLAKE2B 0be3bce1250db4818af7246a03352ab50faeca02b81126fd623bd473d7223693f43914e88e07baa0d7fa5473192e390406165f83e00dbff048c1ea373085eced SHA512 4f2493e334b71c2b0c467e19915d385942c10dc4c0142dd989dcfab9809dea552c45ac3da0b0039956a961f7aca2973c0845c6978e9dfe25c03fdc52dfb1dec0
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
diff --git a/dev-python/cryptography/cryptography-50.0.0.ebuild b/dev-python/cryptography/cryptography-50.0.0.ebuild
new file mode 100644
index 000000000000..e0dd6cd79c25
--- /dev/null
+++ b/dev-python/cryptography/cryptography-50.0.0.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYPI_VERIFY_REPO=https://github.com/pyca/cryptography
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+CARGO_OPTIONAL=yes
+RUST_MIN_VER="1.83.0"
+CRATES="
+ asn1@0.24.1
+ asn1_derive@0.24.1
+ base64@0.23.0
+ bitflags@2.13.1
+ cc@1.4.0
+ cfg-if@1.0.4
+ find-msvc-tools@0.1.9
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ heck@0.5.0
+ itoa@1.0.18
+ libc@0.2.189
+ once_cell@1.21.4
+ openssl-macros@0.1.1
+ openssl-sys@0.9.117
+ openssl@0.10.81
+ pem@4.0.0
+ pkg-config@0.3.33
+ portable-atomic@1.14.0
+ proc-macro2@1.0.107
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
+ quote@1.0.47
+ self_cell@1.3.0
+ shlex@2.0.1
+ syn@2.0.119
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+ vcpkg@0.2.15
+"
+
+inherit cargo distutils-r1 flag-o-matic pypi
+
+VEC_P=cryptography_vectors-$(ver_cut 1-3)
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="
+ https://github.com/pyca/cryptography/
+ https://pypi.org/project/cryptography/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+ test? (
+ $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)")
+ $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)")
+ -> ${VEC_P}.tar.gz.provenance
+ )
+"
+
+LICENSE="|| ( Apache-2.0 BSD ) PSF-2"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-libs/openssl-1.0.2o-r6:0=
+ >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+BDEPEND="
+ ${RUST_DEPEND}
+ >=dev-util/maturin-1.9.4[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+# Files built without CFLAGS/LDFLAGS, acceptable for rust
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so"
+
+EPYTEST_PLUGINS=( hypothesis )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ if use verify-provenance; then
+ pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance}
+ use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance}
+ fi
+
+ cargo_src_unpack
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:--benchmark-disable::' pyproject.toml || die
+
+ # work around availability macros not supported in GCC (yet)
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local darwinok=0
+ if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
+ darwinok=1
+ fi
+ sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
+ src/_cffi_src/openssl/src/osrandom_engine.c || die
+ fi
+}
+
+python_configure_all() {
+ filter-lto # bug #903908
+}
+
+python_test() {
+ local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}"
+ local EPYTEST_IGNORE=(
+ tests/bench
+ )
+ local EPYTEST_DESELECT=(
+ # OOMs depending on overcommit setting and available memory
+ tests/hazmat/primitives/test_argon2.py::TestArgon2::test_argon2_malloc_failure
+ )
+
+ epytest
+}
diff --git a/dev-python/docstring-to-markdown/docstring-to-markdown-0.17.ebuild b/dev-python/docstring-to-markdown/docstring-to-markdown-0.17.ebuild
index 63d3d32fc89d..c01f6ae4e15c 100644
--- a/dev-python/docstring-to-markdown/docstring-to-markdown-0.17.ebuild
+++ b/dev-python/docstring-to-markdown/docstring-to-markdown-0.17.ebuild
@@ -27,9 +27,9 @@ RDEPEND="
>=dev-python/typing-extensions-4.6[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest -o addopts=
}
diff --git a/dev-python/environs/Manifest b/dev-python/environs/Manifest
index 779eb05da2f0..00436710c185 100644
--- a/dev-python/environs/Manifest
+++ b/dev-python/environs/Manifest
@@ -1,2 +1,4 @@
DIST environs-15.0.1.tar.gz 36385 BLAKE2B 14d5e3a7f75027d275008af5bf8a3fae146b50ee249f98f105d5117acf230ad532cead7cfaa7ba922306da7fc8d3d5231126b4f140e56f20b7c0b529c68a9a93 SHA512 510ff5de019a9656b3d84a674e2096c8e62149671c6e93ada6b61165681a3ed31641dedd9910fe48007352ee43db7c9e6cd01ec52df4259a2f2e95b07d4c9918
DIST environs-15.0.1.tar.gz.provenance 9338 BLAKE2B 591cea55878c76c4dac4d8aa8b8f9d72f2cd0f67b9fa06198440632936f5d39a7fd235fd50717cd4a3616ac8b37595d082330bf17c6138a9a6e406e14912e8e0 SHA512 11bf77d764b789bc630747868444f055f9b97cda350ce2666e31c7b08bd065ad0f6388bf40e5da28a71607a9a0419aa9db84306b3af408c9b9178fbef26b917c
+DIST environs-15.1.0.tar.gz 36593 BLAKE2B 2e5ab532cf813923ca623efa365bb79b6f9459dd3ba6379140d2454cc123f217788ba4228796cf0c9227e228cd2773a5fea14a8b775ee703e9330f9ce4c4e136 SHA512 727d49b0da511d789e17176253b35def9e0af8ffd2b7023252eeff6513f36b9e37a6e7b0314937cc56263ab91689727ebec52c8aa9d7f9dbd450bf8f2585c306
+DIST environs-15.1.0.tar.gz.provenance 9605 BLAKE2B fd45b5be370471c0290ab45f3f49fce7a9e11e699e4a82c34504a7f95fd7265aed5450ccc7a1a290589fd5b7af22a881424634b5b00135a1222096cc8dfa8ece SHA512 e4e5ec84b2beed267d4d3ebdbcacb2e61ac837e2ba54228628eb541e0b9822db3ff537424d1fad63a8206e917d6b1079f31df1161eba6e945bd3ba49690adcb7
diff --git a/dev-python/environs/environs-15.1.0.ebuild b/dev-python/environs/environs-15.1.0.ebuild
new file mode 100644
index 000000000000..92e0a4494350
--- /dev/null
+++ b/dev-python/environs/environs-15.1.0.ebuild
@@ -0,0 +1,42 @@
+# 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/sloria/environs
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library for simplified environment variable parsing"
+HOMEPAGE="
+ https://github.com/sloria/environs/
+ https://pypi.org/project/environs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+ >=dev-python/marshmallow-4.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/django-cache-url[${PYTHON_USEDEP}]
+ dev-python/dj-database-url[${PYTHON_USEDEP}]
+ dev-python/dj-email-url[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( CHANGELOG.md CONTRIBUTING.md README.md )
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ unset A
+ epytest
+}
diff --git a/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild b/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild
index b622b8b03349..0548d13d261d 100644
--- a/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild
+++ b/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/feedparser/Manifest b/dev-python/feedparser/Manifest
index 4dc2f5a6250b..7117ae441a68 100644
--- a/dev-python/feedparser/Manifest
+++ b/dev-python/feedparser/Manifest
@@ -1,2 +1,2 @@
DIST feedparser-6.0.12.gh.tar.gz 253342 BLAKE2B b3147c07c3319d644930face3818d93eb8ba786e0500d7e101c2b54b332488811c76340f033d13cfff39fbdd8126482f31baa27ff4f2b8f0ed1cab7dca9414ac SHA512 147b92f3be728726efb6c0f981c8b8fc0715ffb5e8f07f22ce40c3f9f7b1022f4a02452e2211ca472a27dad3ce5e1460412c7a341518a46becc7d5a3bf13c37f
-DIST feedparser-6.0.14.gh.tar.gz 252830 BLAKE2B 831421d9e9c012cbeb25a8e34e1f1ae6cc6e69dc2ce3b866a731d3aedd4bb8c3360374fe83158a1ff6440e7a2aeedfee869839fbf5ae8f4b2899c4b5aa16f2fc SHA512 1480317e09835e1aba82b83b11f6622568950852754fb830c7b3d7be1192bc8ca6c1a6dad23e8340c2cff3add4c8baa8e479b9aa4f162bcd9c05330bc0a49caf
+DIST feedparser-6.0.14.tar.gz 286108 BLAKE2B eca2ad662bbc4ef124a05f8961ff79f0d3ee1d9686d0d5f4949afe3e5b9426ec91dc7e07ea012d9fda266f5c372203a99d48451f13e60415fb30dac4f3493d5e SHA512 2c19ce5aaae41090f452f6edadae9beac1b627b8ac47080f014f7efd6fa02b3fa944ff7a5ee999f1da76bab59ace742b0d2343036a44ce8f0b6eaa2ded2961b2
diff --git a/dev-python/feedparser/feedparser-6.0.14.ebuild b/dev-python/feedparser/feedparser-6.0.14.ebuild
index 28cbb5b145b6..cf9757b3acc9 100644
--- a/dev-python/feedparser/feedparser-6.0.14.ebuild
+++ b/dev-python/feedparser/feedparser-6.0.14.ebuild
@@ -6,24 +6,17 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1
+inherit distutils-r1 pypi
-MY_PV=${PV/_beta/b}
-MY_P=${PN}-${MY_PV}
DESCRIPTION="Parse RSS and Atom feeds in Python"
HOMEPAGE="
https://github.com/kurtmckee/feedparser/
https://pypi.org/project/feedparser/
"
-SRC_URI="
- https://github.com/kurtmckee/feedparser/archive/v${MY_PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
RDEPEND="
=dev-python/feedparser-sgmllib-2*[${PYTHON_USEDEP}]
diff --git a/dev-python/guessit/Manifest b/dev-python/guessit/Manifest
index c7305630c24b..e5c4d916bd7e 100644
--- a/dev-python/guessit/Manifest
+++ b/dev-python/guessit/Manifest
@@ -1,3 +1,4 @@
DIST guessit-4.0.2.tar.gz 394394 BLAKE2B a5f9b85e2a9323db982c484aa19e6e56e8e3b138abce226dcefcef0bc9e8a105ad3fb9ab57aac4d1b65d6cc663781949934d96e3f2d9e5984fd6b1bfec34e223 SHA512 1687ace42d4c95d401949bef905a4962be3b04f7c8151da83a8803ef8e0e5b407d35159ad744a9b478607a50f4c15456f508852e638156896d1d92720cc987ac
DIST guessit-4.1.0.tar.gz 464269 BLAKE2B 79cb2018233b1c1e603e6e50faff267769fbc91aaf7a5c011c1dd7c5ba162bcbf0beb507162ffecc8290cff63e8c441d2ed1ba150960d89a39f2d70d69a0344c SHA512 1a770f67a2950cfd62a1e26cd439dd770631efb992512dfce5b0f1efee219c15bec75ad9e5b81d15a69ff21e8e9780708af1bf58e4306e9fead5c9e694155e32
DIST guessit-4.3.0.tar.gz 478988 BLAKE2B b9373976f3a5f9c0b633334167bb04ca68406af4d32478d2eb7f4a4055824498b0a9cee61bcc49df3b239fd13e3ff2f2ee829b2592c8932a44d1b31523b0e09a SHA512 ea512c73e3e60e6b318393dd7844f921d22878db1aed69418686db82fa11dbd395e04248c615ae5c8619b9aa864fdab9fa4c065471eb34108e53f4f3c1381dd8
+DIST guessit-4.4.0.tar.gz 481149 BLAKE2B 4c73c7801376c330603d3df346be659d26f6f448df29457981148a365ef4012b109cf3489bf9a71bf2182240bc71f92126b62950bdb3417f9c6c644137d315de SHA512 3237718f661d2ae93d9a8c03f8337a12646a739f94b626ec3c6866ebe041e151ad64a555dbc919e42db182cfecf1c86620424875b34184db9aa421623d40a156
diff --git a/dev-python/guessit/guessit-4.4.0.ebuild b/dev-python/guessit/guessit-4.4.0.ebuild
new file mode 100644
index 000000000000..7291194841ef
--- /dev/null
+++ b/dev-python/guessit/guessit-4.4.0.ebuild
@@ -0,0 +1,38 @@
+# 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="Python library for guessing information from video filenames"
+HOMEPAGE="
+ https://github.com/guessit-io/guessit/
+ https://pypi.org/project/guessit/
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/babelfish-0.6.1[${PYTHON_USEDEP}]
+ <dev-python/rebulk-7[${PYTHON_USEDEP}]
+ >=dev-python/rebulk-6.0.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.0[${PYTHON_USEDEP}]
+"
+# pyyaml is optional, keep it because we historically had it by default
+RDEPEND+="
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # Disable benchmarks as they require unavailable pytest-benchmark.
+ guessit/test/test_benchmark.py
+)
diff --git a/dev-python/hishel/hishel-1.3.0.ebuild b/dev-python/hishel/hishel-1.3.0.ebuild
index 9a0e19f97648..f4a9d95ca708 100644
--- a/dev-python/hishel/hishel-1.3.0.ebuild
+++ b/dev-python/hishel/hishel-1.3.0.ebuild
@@ -35,7 +35,9 @@ BDEPEND="
dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
test? (
dev-db/redis
+ >=dev-python/anysqlite-0.0.5[${PYTHON_USEDEP}]
>=dev-python/boto3-1.15.3[${PYTHON_USEDEP}]
+ >=dev-python/fakeredis-2.0[${PYTHON_USEDEP}]
>=dev-python/inline-snapshot-0.28.0[${PYTHON_USEDEP}]
>=dev-python/redis-6.2.0[${PYTHON_USEDEP}]
>=dev-python/time-machine-2.19.0[${PYTHON_USEDEP}]
diff --git a/dev-python/inflect/inflect-7.5.0.ebuild b/dev-python/inflect/inflect-7.5.0.ebuild
index f6f484f5aa38..37a0cb6eb7a0 100644
--- a/dev-python/inflect/inflect-7.5.0.ebuild
+++ b/dev-python/inflect/inflect-7.5.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
@@ -26,4 +26,5 @@ BDEPEND="
>=dev-python/setuptools-scm-3.4.1[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
index 3bdae4fa872a..5545d5a70bb8 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1,4 +1,4 @@
-DIST ipython-9.14.1.tar.gz 4433457 BLAKE2B ea140038e628767dc44fb1cbbab393ae14a3b06f13908957cd8f1790aee82225a31c3f5cc390d87697c00921d995045da6692af4c1beb4d505f9c2e75fc7d4b0 SHA512 1ffdd0ae5640e8f9c50a9f6f490394dfaf0aeb2ccfa0206923773057d45f57f8091ebbd7d33eec1a2a44ed0d7fe5946635556995de88ee19c1caa47e98235c91
-DIST ipython-9.14.1.tar.gz.provenance 9787 BLAKE2B 6b6ede8bfb37cee2d9af4d290439a89c40952b6a5a3d49efe6245f5ac01454d377c00823796661fdf248095561f3da81658c069bb3c6e8893954639713356840 SHA512 7d76ae2f9e7a680414d84c76f76e05589d0df5fbbf05f92b6d9d7428d4e377a2972e2ded9a2e23b0c3b25eaf5a829b2cafcec1e8c1bde215edeb4802d7e08258
DIST ipython-9.15.0.tar.gz 4442580 BLAKE2B b00d3c5f982cee6520c58b8fa134d210844c63067083390fd5c462523154e274575d850664ef196192e511edfd9cbd66fedc878bbd08f588134784ecd888163f SHA512 120f1f42d58e6844bb48073e6f91520c46d3c08a8d5345e310493e29bd7a1abf9ce654beaf2c8abc9f6feb7d9b1d8b5a9538f1e13e3c3d49068e5743163f2d32
DIST ipython-9.15.0.tar.gz.provenance 9767 BLAKE2B 099f94a81f4237125d58fccded24a97f7bd62094b8eb3f4ee6f8fedaf5a9414740fcbb3f6be1d75ab45d5fbefe40159dcccdf03ec32bacbad18f79629c59d738 SHA512 bafe3c12ca0ebd02dbebdb2f14ad49ef49f33075f889fcb899f68bcccb8f4adf6cf7df8e6949562d7ce9632b2a2305ce0d5bbed4d8f428ae479ada2cd60c3711
+DIST ipython-9.16.0.tar.gz 4515375 BLAKE2B 0a050f5a5f15bdb8cc1ef90264a3119d32964b44988290e1760d2b6eae59ca0238ab160024012aab0f85dd673e0ad5017b22dc18cfb64a4c9adb4b358c2e279d SHA512 752b7c4e82360550afb49acda44e4903832abad2faaf166a1106856acad4f1e81623554f951812ebdb950c7ff2343c556e3b2f56bec9e1d214659df1c12a2102
+DIST ipython-9.16.0.tar.gz.provenance 9552 BLAKE2B 1a42375e6f7f2c96a17bb44e7c10a5696dc854ad88182ae40e2eb06004d3887b7d15b07d2f0fa0c5868e827a8bdebea3e9e5974ddcf0a502e62ec64269362579 SHA512 b770718c729c6c23f32c3a30040d601e9452eaed277c4957a4b03e2b35f8be57dfc1f2cd4523bd8917e40e074df2844a9057db9fb1087bb99fda56246a1806d0
diff --git a/dev-python/ipython/ipython-9.14.1.ebuild b/dev-python/ipython/ipython-9.16.0.ebuild
index 3b2f3a485fdf..c5a9237046d7 100644
--- a/dev-python/ipython/ipython-9.14.1.ebuild
+++ b/dev-python/ipython/ipython-9.16.0.ebuild
@@ -19,12 +19,11 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="examples gui notebook nbconvert +smp test"
RESTRICT="!test? ( test )"
RDEPEND="
- >=dev-python/decorator-5.1.0[${PYTHON_USEDEP}]
>=dev-python/ipython-pygments-lexers-1.0.0[${PYTHON_USEDEP}]
>=dev-python/jedi-0.18.2[${PYTHON_USEDEP}]
>=dev-python/matplotlib-inline-0.1.6[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild b/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild
index bf998dd20102..b2b55c8f30d3 100644
--- a/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild
+++ b/dev-python/jaraco-itertools/jaraco-itertools-6.4.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
@@ -27,4 +27,5 @@ BDEPEND="
>=dev-python/setuptools-scm-1.15.0[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild b/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild
index 49c96c687d90..ddb909a0f637 100644
--- a/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild
+++ b/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.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
diff --git a/dev-python/jupyter-builder/Manifest b/dev-python/jupyter-builder/Manifest
index 26f466b45998..4f7d74bbbd1d 100644
--- a/dev-python/jupyter-builder/Manifest
+++ b/dev-python/jupyter-builder/Manifest
@@ -1,2 +1,3 @@
DIST jupyter_builder-1.1.1.tar.gz 971667 BLAKE2B 188d02c6aa1b414ff5a7b183bc67c762c9b7f02fa9ab633feb303e41f9c14247b2bc26a0c215461d8612f07776ca191f970218a3d00c05691b96340a8804482a SHA512 1a68ab521a748a1cf88da0bab8a68a3b07993b0b58bc828b5bdc82c558815179101d80797e14e27b72a15fbe4fc0e5f58e2d59e018a6f4c01b851bf96e14d8f6
DIST jupyter_builder-1.2.0.tar.gz 976342 BLAKE2B 858f02b0eb14b3ffd8c170840130474442391f09196305732c40693b8711ade7f92cb31a6950b98b2743c7732c2426337b7c8ac11ab4c87f9f79a4c8a129747f SHA512 dff7817798a8a54c79cb791426679fbe7c40cc9924ca00441140f75cfd56e1eb79ddaea75af36b09e20486e1831047cb58b1b7ea0a997d9145dfb59f6d1f9bb1
+DIST jupyter_builder-1.2.1.tar.gz 977454 BLAKE2B 1632a2ea0c17009a92152807069e68bc66aa978a65fcc4eeac6feb34c87f6041cd88cc5d80a6216dca48c0d5b200c92eda1eb2d6784eb4e19c09f5df3df16bfe SHA512 d1a19b66052cc0b8dc326515c7723a20d03bf9d921ae9350558596d4fb217d9d2bf55fb9695a648fd15bbf7dd002ae54f37bb9f1ad72b36bc3a86c060739e152
diff --git a/dev-python/jupyter-builder/jupyter-builder-1.2.1.ebuild b/dev-python/jupyter-builder/jupyter-builder-1.2.1.ebuild
new file mode 100644
index 000000000000..02718c0e34a9
--- /dev/null
+++ b/dev-python/jupyter-builder/jupyter-builder-1.2.1.ebuild
@@ -0,0 +1,40 @@
+# 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 xdg
+
+DESCRIPTION="JupyterLab build tools"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyterlab/jupyter-builder
+ https://pypi.org/project/jupyter-builder/
+"
+
+LICENSE="BSD MIT ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64"
+
+RDEPEND="
+ !<dev-python/jupyterlab-4.6.0
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/jinja2-time[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # TODO: package copier
+ tests/test_tpl.py
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pebble/files/pebble-5.2.1-clear-lock.patch b/dev-python/pebble/files/pebble-5.2.1-clear-lock.patch
new file mode 100644
index 000000000000..5c488dd62150
--- /dev/null
+++ b/dev-python/pebble/files/pebble-5.2.1-clear-lock.patch
@@ -0,0 +1,31 @@
+From 711c98f4193f4006f699e3d245d6855385eb267e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 31 Jul 2026 20:25:35 +0200
+Subject: [PATCH] fix(channel): fix clearing `writer_mutex`
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fix a typo that resulted in `reader_mutex` being cleared twice, leaving
+`writer_mutex` assigned to a deleted mutex.
+
+Fixes #164
+
+Signed-off-by: Michał Górny <mgorny@gentoo.org>
+---
+ pebble/pool/channel.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pebble/pool/channel.py b/pebble/pool/channel.py
+index edd5c1f..76a2359 100644
+--- a/pebble/pool/channel.py
++++ b/pebble/pool/channel.py
+@@ -196,7 +196,7 @@ class ChannelMutex:
+ """Ensure named semaphores are cleaned up on Posix OSes using spawn."""
+ del self.reader_mutex
+ del self.writer_mutex
+- self.reader_mutex = self.reader_mutex = None
++ self.reader_mutex = self.writer_mutex = None
+
+ @property
+ @contextmanager
diff --git a/dev-python/pebble/pebble-5.2.1.ebuild b/dev-python/pebble/pebble-5.2.1-r1.ebuild
index 7a1466cd90da..ccd7fd95675e 100644
--- a/dev-python/pebble/pebble-5.2.1.ebuild
+++ b/dev-python/pebble/pebble-5.2.1-r1.ebuild
@@ -23,3 +23,8 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv
EPYTEST_PLUGINS=()
EPYTEST_RERUNS=5
distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/noxdafox/pebble/pull/165
+ "${FILESDIR}/${P}-clear-lock.patch"
+)
diff --git a/dev-python/peewee/Manifest b/dev-python/peewee/Manifest
index 934aad6bc19c..72f57057900b 100644
--- a/dev-python/peewee/Manifest
+++ b/dev-python/peewee/Manifest
@@ -4,3 +4,4 @@ DIST peewee-4.0.9.gh.tar.gz 1002262 BLAKE2B 456af69c3d57d2e8344080cf40845163c9d0
DIST peewee-4.1.2.gh.tar.gz 1046776 BLAKE2B 8a66ea828ad669db4d20cce089e485f75b9f792bc94fea8a1a1d46f9391e062f89c33cb2e7a34aae84645580967c586d4efff067d1aa4d7cfd6cc1da01fe90e9 SHA512 4a384817a8b3a146ac818b7327cc1ef4a02c0322409353ac29f64d9c66e1e6eeebb226db67fa6e4754662e82307b0abaa57b7526faa4dc7d90d911b8cc3094e9
DIST peewee-4.2.4.gh.tar.gz 1065177 BLAKE2B ffc87a100a8ae1e4562d9c05094a1fc3aa0f16cccbcd729339ab98291aac0d0aecd5a4a654296f358e15a3eb06cad3e4890d94386474e73373bbc25380cc8a7d SHA512 e39840f37de39d11cb018adcd188b23aa794dfc93de07d78e0b99a9eae0e69216c13afd07a4d135785b7269180e7ae3b1628cd0c8b3cbedc3a9b851534b41bdf
DIST peewee-4.2.6.gh.tar.gz 1068419 BLAKE2B b3ca315cc1bd2a1a11a1ef241b01326d5b9cbb944b1a810cc1f79206ceb6a1c44e0baf13c3b83eea185369d5a303f95363c4934d57574d54b648b7add97830de SHA512 2c67659f67158317849671871e10a01d54ed5113e7e9cd82f1b3144d3f5fcc2be18211bf94a3a30c98740c091522a6ebe4d573f7fbf45cf3e24432341cc9c088
+DIST peewee-4.3.0.gh.tar.gz 1091937 BLAKE2B a4af95bc80dce47c2e2abc74afd01d2e25736067ffbbd6f60dd6f62974c9a9a62be4fbfb963646ba3e99c91953839c7612c796381768e35e28ec53bb2114ecf2 SHA512 1745b92e9edd0a34a15aeccdedfc1f7a30f95457f09b1c257b2e6b4ebd377fd515150270de2e0f2d564646302317368a78ad73fcce99398a752e14d1643d40da
diff --git a/dev-python/peewee/peewee-4.3.0.ebuild b/dev-python/peewee/peewee-4.3.0.ebuild
new file mode 100644
index 000000000000..354b1a91f483
--- /dev/null
+++ b/dev-python/peewee/peewee-4.3.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_{13..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/pikepdf/Manifest b/dev-python/pikepdf/Manifest
index d731d54606ef..e6deab2a3c2d 100644
--- a/dev-python/pikepdf/Manifest
+++ b/dev-python/pikepdf/Manifest
@@ -1,5 +1,7 @@
DIST pikepdf-10.10.0.tar.gz 23886210 BLAKE2B 18fac77beb87d3aaf8da909592f43cce4b9b60c44b395cb66859e20eeb8d8be1772834365a95e9fe45a36aa0dcc05e844aa73c0c5161785b91724ecaf64fe4e4 SHA512 31238d870dfefab798a2aa7cbc1d7b364050625840e6297b73cfece3035f37093264e25f7ce0adaa5891d137339f6e97b622bfd39ed4d021b60b1a64fbc8c64f
DIST pikepdf-10.10.0.tar.gz.provenance 9681 BLAKE2B bcfed6a9c5b5bf3086ae83d23534573ae0d5046c5cfe3a94dfe54638386219089ceee88aed50a6651d578617b9554377872226726bff1538de9e2e1ff465f10d SHA512 353caa6e3e82fd1f2d646d962f31c22a99867747baafddec284d16c1997819a0eea197ce001c345046fd8aacd0e7f90c95bafb2b02863b517808911382942130
+DIST pikepdf-10.11.0.tar.gz 23905547 BLAKE2B fbe321e1b4abcdd9dc6efcd26dac449181951032ed97583943bf760577628075d0d8e906aa52e08f042471f890a0b0ac8006bdcf7b6d23462f2cbbad28902121 SHA512 23f07807cbe74d5adac5802a14c462b9d3b6c3e78cfe7eae8a066003834dd36cb3c8a233c5ea2a957eaa764cbdc554b4891a24eed496fc9ad639e702c58d6a38
+DIST pikepdf-10.11.0.tar.gz.provenance 9454 BLAKE2B 265e8c1ef0fb441d50bfe17203e247134ce0a28d019bf9fdd541287c7ba754046779731d42017ddc4a90690599fb599dde2002f93e029e73c39644674b77f971 SHA512 d635db5c13a1d0743db7b2e45b865a7ccb6989079317001a71123952ae20b8a9ff3101b79744d0dc1059b01aa100bd6ec4bfe5a29076f19ec1242fbd0f39e96b
DIST pikepdf-10.5.1.tar.gz 4582470 BLAKE2B 9a92e465f0972b289016786bba91fc322ed17cfba20c81f4f31aa9cdda65eab91f0203f668a713050d2d7551625f0d94cf6d4f16077e3cc44df3bc27d6c24da7 SHA512 a99abea6f54fe9f813e1fe6c0052d9e40537c7605c6e7f3a930cfb2dd59cd3eeb2c40afc5f0ad98aac7a76e692c842f0577e8188a6319a07e9461a3ac9c2cb73
DIST pikepdf-10.5.1.tar.gz.provenance 9398 BLAKE2B a760b31f221da8c04c350adf36a52a8664cfcd5ca74fdcaed26fa38f6a9b7ed57fb1e58eff525c8f03e3d8aa3924b6e82bfb759d7746db841cf0747e4428c482 SHA512 06357efef746dc2b316cf603e7c435ae4b9a1b354f895afc835877e7d7e95887a22e69261b1c6c345ebaee86f14a11f075991e714c4b6861547482719d71f906
DIST pikepdf-10.7.3.tar.gz 23669571 BLAKE2B 837ba311d77a1da30e83afad86c6911500766b5c006ebbdd346a15efbceba0107083e572d79ff836534d071912000907d61a60e95dccb9a45d6e205aa65d228b SHA512 7b9c1e15a792e6c01bde0d9bee342f1be9023081b2b43e44e6d7ab37485db5b3542d9813344e9b24e3f8ceea17a5cb75e25af1943ab738a54f362f52e05cc6f7
diff --git a/dev-python/pikepdf/pikepdf-10.11.0.ebuild b/dev-python/pikepdf/pikepdf-10.11.0.ebuild
new file mode 100644
index 000000000000..634c4f07cb5a
--- /dev/null
+++ b/dev-python/pikepdf/pikepdf-10.11.0.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=scikit-build-core
+PYPI_VERIFY_REPO=https://github.com/pikepdf/pikepdf
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library to work with pdf files based on qpdf"
+HOMEPAGE="
+ https://github.com/pikepdf/pikepdf/
+ https://pypi.org/project/pikepdf/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="big-endian"
+
+# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
+# https://qpdf.readthedocs.io/en/stable/release-notes.html.
+DEPEND="
+ >=app-text/qpdf-12.2.0:0=
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/lxml-4.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.0.1[lcms,${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/nanobind-2.0[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-20.2.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-5.0.0[${PYTHON_USEDEP},jpeg,lcms,tiff]
+ >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
+ !big-endian? (
+ >=dev-python/python-xmp-toolkit-2.0.1[${PYTHON_USEDEP}]
+ )
+ media-libs/tiff[zlib]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-timeout )
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -e '/-n auto/d' -i pyproject.toml || die
+ # remove bundled qpdf
+ rm -rf qpdf || die
+}
diff --git a/dev-python/portalocker/portalocker-3.2.0.ebuild b/dev-python/portalocker/portalocker-3.2.0.ebuild
index b63c00d5c052..7a7bb59bfb79 100644
--- a/dev-python/portalocker/portalocker-3.2.0.ebuild
+++ b/dev-python/portalocker/portalocker-3.2.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
diff --git a/dev-python/pygal/pygal-3.1.0.ebuild b/dev-python/pygal/pygal-3.1.0.ebuild
index ee8934fea59d..937df251d9d3 100644
--- a/dev-python/pygal/pygal-3.1.0.ebuild
+++ b/dev-python/pygal/pygal-3.1.0.ebuild
@@ -52,5 +52,5 @@ python_prepare_all() {
pkg_postinst() {
optfeature "improving rendering speed" "dev-python/lxml"
- optfeature "png rendering" "dev-python/cairosvg"
+ optfeature "png rendering" "media-gfx/cairosvg"
}
diff --git a/dev-python/pygal/pygal-3.1.3.ebuild b/dev-python/pygal/pygal-3.1.3.ebuild
index ee8934fea59d..937df251d9d3 100644
--- a/dev-python/pygal/pygal-3.1.3.ebuild
+++ b/dev-python/pygal/pygal-3.1.3.ebuild
@@ -52,5 +52,5 @@ python_prepare_all() {
pkg_postinst() {
optfeature "improving rendering speed" "dev-python/lxml"
- optfeature "png rendering" "dev-python/cairosvg"
+ optfeature "png rendering" "media-gfx/cairosvg"
}
diff --git a/dev-python/pyglet/Manifest b/dev-python/pyglet/Manifest
index 0f8c01768681..85b7c5e9fc49 100644
--- a/dev-python/pyglet/Manifest
+++ b/dev-python/pyglet/Manifest
@@ -1,2 +1,3 @@
DIST pyglet-2.1.14.tar.gz 6595146 BLAKE2B 1a2b59b61183eab83362af9f2eedf9267c64b287d8b1601557abe18660ce078181169e7d4c7378367d87f653a0f6721b8ece71eb818742753a5823f481af9ea3 SHA512 f9a219d9e49268bfd7f8979e037e779f243f2576ea57553d1ef1ccce72f1d9d5b1c791fc29d3faad7abc59855e366e2e51d3a0e0e646fcd8804def5a2d3fd519
DIST pyglet-2.1.15.tar.gz 6597005 BLAKE2B ef975a397aecc3e432a05bb448d9f498b026914b4c3bc987859f094bb955685b6c29cfc3de303ef8dbc167537b18efa86812300b3cf7458ed3346f66e19760ab SHA512 37187e7383ed69e8e95884a18c09cd292501f9fe8dce1782f9a99915a2d8fdbe810682362c209720c13b01b578633a548d54a3c93167e68d1cf6b6421b14b1fc
+DIST pyglet-2.1.16.tar.gz 6598246 BLAKE2B a6613e1d2c69d6be44ea4f8e301be8b9366eb7fbe4c3097b52c2ab868ad799bd1c0e862325edf8c180f69237da80de74f965d82b69d3d12abe8e8a0de25f020d SHA512 2e3e216d06ffd8eb2c5a12c9b0c5d78fac50ced7cd58fc84e73f0cd65d148125fd990c0a71d9a890657e9554660b5c960d7a3e25252bf44f7d395334d9e7d8e1
diff --git a/dev-python/pyglet/pyglet-2.1.16.ebuild b/dev-python/pyglet/pyglet-2.1.16.ebuild
new file mode 100644
index 000000000000..b63a87ceabab
--- /dev/null
+++ b/dev-python/pyglet/pyglet-2.1.16.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=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi virtualx xdg-utils
+
+MY_P=${P/_/.}
+DESCRIPTION="Cross-platform windowing and multimedia library for Python"
+HOMEPAGE="
+ https://pyglet.org/
+ https://github.com/pyglet/pyglet/
+ https://pypi.org/project/pyglet/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE="examples image +sound"
+
+RDEPEND="
+ virtual/glu
+ virtual/opengl
+ image? (
+ || (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ x11-libs/gtk+:2
+ )
+ )
+ sound? (
+ || (
+ media-libs/libpulse
+ media-libs/openal
+ )
+ )
+"
+# ffmpeg? ( media-libs/avbin-bin )
+BDEPEND="
+ test? (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ media-libs/fontconfig
+ x11-base/xorg-server[-minimal]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ xdg_environment_reset
+
+ local EPYTEST_DESELECT=(
+ # lacking device/server permissions
+ tests/unit/media/test_listener.py::test_openal_listener
+ tests/unit/media/test_listener.py::test_pulse_listener
+ # fragile to system load
+ tests/unit/media/test_player.py::PlayerTestCase::test_pause_resume
+ tests/unit/test_clock_freq.py::test_elapsed_time_between_tick
+ )
+
+ # Specify path to avoid running interactive tests
+ # We could add in integration tests, but they're slow
+ nonfatal epytest tests/unit || die "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pysnmp/Manifest b/dev-python/pysnmp/Manifest
index b71c6d61e196..64efad4985cc 100644
--- a/dev-python/pysnmp/Manifest
+++ b/dev-python/pysnmp/Manifest
@@ -1 +1,2 @@
DIST pysnmp-7.1.27.gh.tar.gz 476101 BLAKE2B 37c7e51ad115b0c166cc2f84ddcbaab965ecf2db16dd464be56e3acf214ef3089a3586d49e6765528a8ff8298a08adb495898cfa8fff2e4922e5d1d6b219c0ba SHA512 0e9f720e5c097692466f03e3c28aea1a8686c8061a46e08014bedca1de1a505c1fb74b8876241386e93cbc5aeefae5668fef7d64e201e76961d0ff90f4c84e1a
+DIST pysnmp-7.1.28.gh.tar.gz 497049 BLAKE2B 70305ce46753e5b619412d80fc24d558e6a291c89141a5ad6075fafa3cc204e2f657bdef98ea77ff5b3c52026b6450b4371c382681fa87fb2bcba8f7400d4d6c SHA512 612489b07cecd1ccd707633c8b4d695712e4fb0ed7d4b3ebf63663c463fb273752f987ae4fff9c69c6501b68f47216abb8126d57e1a27a9823952edf59377144
diff --git a/dev-python/pysnmp/pysnmp-7.1.28.ebuild b/dev-python/pysnmp/pysnmp-7.1.28.ebuild
new file mode 100644
index 000000000000..08e74caf05df
--- /dev/null
+++ b/dev-python/pysnmp/pysnmp-7.1.28.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=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python SNMP library"
+HOMEPAGE="
+ https://pypi.org/project/pysnmp/
+ https://github.com/lextudio/pysnmp/
+"
+SRC_URI="
+ https://github.com/lextudio/pysnmp/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~sparc ~x86"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-python/cryptography-43.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.6.3[${PYTHON_USEDEP}]
+ >=dev-python/pysmi-2.0.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,rerunfailures} )
+# flaky because of timeouts
+EPYTEST_RERUNFAILURES=5
+distutils_enable_tests pytest
+# TODO
+# distutils_enable_sphinx docs/source dev-python/furo dev-python/sphinx-copybutton dev-python/sphinx-sitemap
+
+python_test() {
+ # see .github/workflows/build-test.yml
+ mibdump --generate-mib-texts NET-SNMP-EXAMPLES-MIB || die
+ mibdump --generate-mib-texts IF-MIB || die
+ mibdump --generate-mib-texts LEXTUDIO-TEST-MIB || die
+ mibdump --generate-mib-texts CISCO-ENHANCED-IPSEC-FLOW-MIB.py || die
+ mibdump --generate-mib-texts TCP-MIB || die
+
+ epytest
+}
diff --git a/dev-python/python-discovery/Manifest b/dev-python/python-discovery/Manifest
index 534aa798ea52..64d40e6d9b87 100644
--- a/dev-python/python-discovery/Manifest
+++ b/dev-python/python-discovery/Manifest
@@ -6,3 +6,5 @@ DIST python_discovery-1.4.4.tar.gz 72212 BLAKE2B e272217c9b5975aceb21d368b0b5486
DIST python_discovery-1.4.4.tar.gz.provenance 9887 BLAKE2B e52e59f1064d2e9763d2db64c501950a42625db2bd77f225843a71ce0eb676aa33a9727503bc1e95c73e79d37ddfceb30ff3a0e7db0c342d0f4623efa4253f33 SHA512 c02e940e81bfcde654cbf2aa273d91c1d50ef312c25c35a13c979025156ad9963b969f09bbe0854953f3bd326ae51ddc6ad6a3dbcdbaf781db1241e2010ab89f
DIST python_discovery-1.5.0.tar.gz 72483 BLAKE2B 399f0bfe7309c494454ad0fe350e303c414171db02da93937a329dd2f014279675552336ddbe83ca6a6ba211b452db6e228d3a797d9501303d38e9bf47ba5fcc SHA512 c7030e7078705c8a02097d8014052f4655908f8a4e5762465312bafe0d02137e51b12a5e28a517625ff12ca1e874f9d921d29e1820225690136992873c559beb
DIST python_discovery-1.5.0.tar.gz.provenance 9981 BLAKE2B 2e3f54965057359cfc0b5be8eae074de9946d50de4c0de882e86c647a81b60380842c063989c90bc3dc9cb81b235794e72d852dcef53097eebb43777a794cef5 SHA512 072632cbf0713f019f5794f94b980d01fa9ee3994b8f930623b6fc44b9515e8391d322923727ea333bdbb9d59809a69c78f1d855c91736b0826becfe58ba8840
+DIST python_discovery-1.5.1.tar.gz 77200 BLAKE2B aa9d33adf86a4c17ee0159672886e63a1932fa75339e00c402e011236879bcf13566b1a66a9043a5b5be0879ca6c314409090217ba6fed2c15425bbba52edb89 SHA512 256d6ddef34daca99049c83d3b9344067da347b3169b8f7147f88cca3d079bf0af954aec4dccc2b186e70c070a30afa637bd2586dd1a37bad23465d111e5c015
+DIST python_discovery-1.5.1.tar.gz.provenance 9797 BLAKE2B c4ac51be4b7d54ab6d9ff2edc9c6fed685c73a25617accf1d98e2186f372a2dd7c0986a379fd383375d34c3c08e724ea266d18ef8c232298eab2d9be185d90ca SHA512 20cbc11b7b5b17c0bb324978f72b1928897eaccc07d70af9ab04fb188d96a6cee6a610b9cddec406a048c26c4536deaadcd86123e4c0dc0ba2b9a8da78621a47
diff --git a/dev-python/python-discovery/python-discovery-1.5.1.ebuild b/dev-python/python-discovery/python-discovery-1.5.1.ebuild
new file mode 100644
index 000000000000..76ec71b6a7fb
--- /dev/null
+++ b/dev-python/python-discovery/python-discovery-1.5.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 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/python-discovery
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python interpreter discovery"
+HOMEPAGE="
+ https://github.com/tox-dev/python-discovery/
+ https://pypi.org/project/python-discovery/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/filelock-3.15.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/setuptools-75.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ python3.*t)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_py_info_extra.py::test_satisfies_path_not_abs_basename_match
+ )
+ ;;
+ python3.15)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_discovery.py::test_predicate_with_fallback_specs
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/python-engineio/Manifest b/dev-python/python-engineio/Manifest
index 3dd116bdaa72..4149307dea00 100644
--- a/dev-python/python-engineio/Manifest
+++ b/dev-python/python-engineio/Manifest
@@ -1 +1,2 @@
DIST python-engineio-4.13.3.gh.tar.gz 324530 BLAKE2B 333f97faee3fe186cd38a52ea6a43ca534e3aa8d48cd27979889c445c34bb72038963c6e9a4dd4acc38d5e415859085b8054abe0687e58eb8f83db7bb7306dd6 SHA512 0a8b286974ba2b6be8964963d178b1b211f9b4b04a94fa226408da679d478cdf08a4306023f82611a9b006e029d36fa6fa33a44158557d2663320e986a4b0d37
+DIST python-engineio-4.13.4.gh.tar.gz 324778 BLAKE2B d0054f5a8f082de6bd8eda8f00eab6090698cb7f86718cc6dff1d6a0c791b15621f2affc46ec065915bef01cc3b1f7a87d2bfe1c1fb40832563d610ee5bec085 SHA512 9831f90bd2b4af56a1e24574e624e8c7c7b8e5f260ce60cd1dd505c5221149ae8e0defedc5453adafca34ffadc26f0ec40fde6e35062c16c7de804bf66b8fd21
diff --git a/dev-python/python-engineio/python-engineio-4.13.4.ebuild b/dev-python/python-engineio/python-engineio-4.13.4.ebuild
new file mode 100644
index 000000000000..96a2e58b62f7
--- /dev/null
+++ b/dev-python/python-engineio/python-engineio-4.13.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_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of the Engine.IO realtime server"
+HOMEPAGE="
+ https://python-engineio.readthedocs.io/
+ https://github.com/miguelgrinberg/python-engineio/
+ https://pypi.org/project/python-engineio/"
+SRC_URI="
+ https://github.com/miguelgrinberg/python-engineio/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/aiohttp-3.11[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ >=dev-python/simple-websocket-0.10.0[${PYTHON_USEDEP}]
+ dev-python/websocket-client[${PYTHON_USEDEP}]
+"
+# Can use eventlet, werkzeug, or gevent, but no tests for werkzeug
+BDEPEND="
+ test? (
+ dev-python/tornado[${PYTHON_USEDEP}]
+ dev-python/websockets[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/furo
+
+EPYTEST_IGNORE=(
+ # eventlet is masked for removal
+ tests/common/test_async_eventlet.py
+)
+
+EPYTEST_DESELECT=(
+ # also eventlet
+ tests/common/test_server.py::TestServer::test_async_mode_eventlet
+ tests/common/test_server.py::TestServer::test_connect
+ tests/common/test_server.py::TestServer::test_service_task_started
+ tests/common/test_server.py::TestServer::test_upgrades
+)
diff --git a/dev-python/shtab/Manifest b/dev-python/shtab/Manifest
index 383e6a4c3e34..f28ab0f52919 100644
--- a/dev-python/shtab/Manifest
+++ b/dev-python/shtab/Manifest
@@ -4,3 +4,5 @@ DIST shtab-1.8.1.tar.gz 46449 BLAKE2B eb71eff85121ccb37bcd4ac00e33aed89ed770c693
DIST shtab-1.8.1.tar.gz.provenance 9531 BLAKE2B 1a422235d4a1387c139e01d50079b9456939242628e097f291053a939d18bdb2aeb6a33358630ebe212b8d6873e73417f0fa3ab093244825807eeb3ae5a9f0d9 SHA512 e85a719310143fec6df4f87aaa312009f39c24b98185f812b66ec2a5a3776943f00ac49501709bd742ba95b524edcc05c3fbad44f7f25092038cf4e0a2571635
DIST shtab-1.8.2.tar.gz 46701 BLAKE2B 6b943b26f29984d3d736ab43ece3e8fff4ba513edbaab282b8485db219451d77cfab5d08172cde7949dd5229289c3424f356011741265ff0616a9b3eb3a8e906 SHA512 9b4e88e648daa6c5709ad83b9781d787752d8eeb71dfe6bc6392fd530211f36d710ffb96aaa67730a4f29ff48d2b7c8e7195e9fb8169a20fccad1fc1ec608081
DIST shtab-1.8.2.tar.gz.provenance 9249 BLAKE2B e4d849b6172ccd282c744263b58063ee87298f096d6612eb0e2a0cd0c716e01493d38a540316103bffd221ec29852b3df5afdaab46bfa64bcd1d3c86efdfea82 SHA512 c7bc34b4feba05ee44300a463bf6dca53bb5ca1f887cdc21bd2517476285d0129e3295be0603f3104d01034cd47a9a14d6e7b66c13dba8aff1893ae074749670
+DIST shtab-1.9.2.tar.gz 49510 BLAKE2B 2c7965aa975e3b3f27a3dfe792aace989d25ba31a06f13896c5072e0b72d85fc09bc40b0d334e22af881bb87ff2cbf91a705dd356ce7a2e4bf3e626cbb503626 SHA512 504b0de4193a2857dcb47cdba2a3376f46212d43cffd34289b2de02a0b4a0d2ddce655e806111f90ca972ff7576a4f5ce7d68a7775ccc49f3c1edf360eb6ad1e
+DIST shtab-1.9.2.tar.gz.provenance 9433 BLAKE2B 0b3c378b23381cd6bfc90c6a81830577976b09ce3aab02686258bae284b558d5784de85af0178f406cc7b26331ed94cd6aa5c855116ea03bc8146b647615e39e SHA512 ba8b727610e70790ea286a273df01c7c9ae608e6cb95493ca70af9d569eb5c1138305565774d1fce205beeb281d9a5431f7ef553a2ec2a963edf708a40c83204
diff --git a/dev-python/shtab/shtab-1.9.2.ebuild b/dev-python/shtab/shtab-1.9.2.ebuild
new file mode 100644
index 000000000000..c8b0e161b0e5
--- /dev/null
+++ b/dev-python/shtab/shtab-1.9.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2024-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/tqdm/shtab
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Automagic shell tab completion for Python CLI applications"
+HOMEPAGE="
+ https://github.com/tqdm/shtab/
+ https://pypi.org/project/shtab/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/snakeoil/Manifest b/dev-python/snakeoil/Manifest
index 90b07109a7da..d2f121cff654 100644
--- a/dev-python/snakeoil/Manifest
+++ b/dev-python/snakeoil/Manifest
@@ -4,3 +4,5 @@ DIST snakeoil-0.11.1.tar.gz 205402 BLAKE2B 5adce8d484b4bfe9936a91368f4aaf618b763
DIST snakeoil-0.11.1.tar.gz.provenance 9560 BLAKE2B 7323544a63f67e1208f01288a09a8254eba31688d57599284b568586109260383ffcf71555963c8998e31cc1974b81de5483e592151bab07efd88f7d1a7cad1b SHA512 1508b466ba8921895279e8b3e8951e338fe240fddae709563d45e47cd948ae2ab51d37664bf3e8780913c45368410ad1704d8b17b2887fffb9bf038f015b4a6e
DIST snakeoil-0.11.2.tar.gz 205822 BLAKE2B 4f7f5a17868562a6216743f3a7bab2c9e0110ce4930ab72b253c52bee2a51279292f6538e774ce9126fee5c8b78c44a02e315c22cf65803c5e82124623768590 SHA512 cad0d03c001366a0d5c80562b5c63b252e202668d8155dad7ae431d254a1d89827032711f224d06e041754e87880b5030e122bc36e1136c825f4c8ef31054a52
DIST snakeoil-0.11.2.tar.gz.provenance 9842 BLAKE2B 72fe1b24af0cd346d8e2b2d0e12135a14fdec32fc7d29f90dee467d7f98bd60970adad691c588bca96082d75bc3d191828ffbcbd2315f824554e3c7ee4cef39f SHA512 c3f604bf69c4c4fe18c24c7e729ec256ab5831cb44732a22bac2b9204f7393b4e86bcb87fff879f6431b50d9c8d31f2f841751e2a55d8476c08295bcb303c7a8
+DIST snakeoil-0.11.3.tar.gz 206577 BLAKE2B 7418f0d419e7a2f774f043734600d1a66f1e3c3a3943d45ccb1bc15c17fad0e4ec2ad02459a42ed2f0db6545ce913c46dc359d02caeed156e20547c7e8b15b89 SHA512 367d37f01d58cbeabc31fa6ed0a747c8e5910688328cf0276c762ea4cfcf2abec187384b291dc3ac14187bc0528944c0972229208f6c3a2a48169fd6d26c0fc0
+DIST snakeoil-0.11.3.tar.gz.provenance 9748 BLAKE2B cdf6b9e4a9a932894f43604c3a5ba008c97f5972cecd2a40aab9d89b6e56ee3496495157b107b12032f6e38eeaa82965fa988dea8ee2c1ec43ed3b2140e089f3 SHA512 b8fd5dc236329e610cee1f2c1ebd6c39e045c79ae53113b2496862b5a6b23a5d692fbcc590c40509dd147ae759bb32283eba73303ebd31de0aa2b602411956f3
diff --git a/dev-python/snakeoil/snakeoil-0.11.3.ebuild b/dev-python/snakeoil/snakeoil-0.11.3.ebuild
new file mode 100644
index 000000000000..c5ca9f45078f
--- /dev/null
+++ b/dev-python/snakeoil/snakeoil-0.11.3.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=flit
+PYPI_VERIFY_REPO=https://github.com/pkgcore/snakeoil
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git
+ https://github.com/pkgcore/snakeoil.git"
+ inherit git-r3
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+ inherit pypi
+fi
+
+DESCRIPTION="misc common functionality and useful optimizations"
+HOMEPAGE="
+ https://github.com/pkgcore/snakeoil/
+ https://pypi.org/project/snakeoil/
+"
+
+LICENSE="BSD BSD-2 MIT"
+SLOT="0"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/snapshottest/snapshottest-0.6.0.ebuild b/dev-python/snapshottest/snapshottest-0.6.0.ebuild
index d6b02cdbca8b..5684b8e4e62e 100644
--- a/dev-python/snapshottest/snapshottest-0.6.0.ebuild
+++ b/dev-python/snapshottest/snapshottest-0.6.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2025 Gentoo Authors
+# Copyright 2020-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -27,6 +27,7 @@ RDEPEND="
dev-python/termcolor[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=( ${PN} )
distutils_enable_tests pytest
PATCHES=(
diff --git a/dev-python/spyder/Manifest b/dev-python/spyder/Manifest
index b2ba37a4da9c..9d125ac9cd72 100644
--- a/dev-python/spyder/Manifest
+++ b/dev-python/spyder/Manifest
@@ -1,3 +1,4 @@
DIST spyder-6.1.4.gh.tar.gz 16109517 BLAKE2B 16eaa64d044c00104fa21c2a76544ba19001312fc1f30838ba26e1bdd2c0f55ad988e72a53211c71988e281898768a40416410126b7fd3d816d62e574f3965b5 SHA512 19f5ec0c5c365d5c7b9ce64e41e4dbc8eaaae3a42e8b939fcf4765aba1a0d74bd9284977ca141b230654d16fea09512a5ae7e381306ba86d97365a7c109c72fd
DIST spyder-6.1.5.gh.tar.gz 16196914 BLAKE2B af2e9c5f12cb3c284fdb9affad01fcf4c6ed7d3d3d00b3485b45420abf4a7008e4cb9bee3c7800700baebf78201d0c3313954025052a823942a5d46e4fc6b17e SHA512 801b0d39778a023ebded5f13943f3bbad6b78650598ca90410e09ee14806f64719f0c3c49b6fcf7fb83c7c73c43b7affcd5a8b0bfea44c1a9d4ec5edef708f9e
+DIST spyder-6.1.6.gh.tar.gz 16204529 BLAKE2B 6d1948db87f392a5578755b942baf2414da4c15a3197e75dd0fa3293fd9590d7bb8e86970b6240628522f1237a6e3453eaca422877c6dc15d437514f4c214b44 SHA512 0159bcd0b7ea1f4b9bbc428cd5d154d199a8ec9c71d15f431e10a5000418343fea4ece9fd65c8ba19800bde7a9861f2fef0dfa391397bca6b420a1ee2d8ac7f7
DIST spyder-docs-98004cb46d97fa9fa1cfc3f469919928761e7054.gh.tar.gz 93375891 BLAKE2B c98d391bb33b1ba70bf9c8e8072073e87437541aacd4be42140711b786e8ae07bf5a7ca53dffdb826922b5523150fa2950b04117c335dc57f7c2c22eb693c23f SHA512 55e13f9a55075aed007be32581af954d406703dd9586352084162e01865f943c5aff3aa11b50bdc9813dd8a3a52f8fa8f961c73cfc3f96d95930f2a7b823a1d1
diff --git a/dev-python/spyder/spyder-6.1.6.ebuild b/dev-python/spyder/spyder-6.1.6.ebuild
new file mode 100644
index 000000000000..7086355b6fae
--- /dev/null
+++ b/dev-python/spyder/spyder-6.1.6.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 optfeature xdg #virtualx
+
+# Commit of documentation to fetch
+DOCS_PV="98004cb46d97fa9fa1cfc3f469919928761e7054"
+
+DESCRIPTION="The Scientific Python Development Environment"
+HOMEPAGE="
+ https://www.spyder-ide.org/
+ https://github.com/spyder-ide/spyder/
+ https://pypi.org/project/spyder/
+"
+SRC_URI="
+ https://github.com/spyder-ide/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/spyder-ide/${PN}-docs/archive/${DOCS_PV}.tar.gz -> ${PN}-docs-${DOCS_PV}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+# Missing deps and broken
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-python/aiohttp-3.11.2[${PYTHON_USEDEP}]
+ >=dev-python/asyncssh-2.14.0[${PYTHON_USEDEP}]
+ <dev-python/asyncssh-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-4.3.0[${PYTHON_USEDEP}]
+ >=dev-python/chardet-5.2.0[${PYTHON_USEDEP}]
+ <dev-python/chardet-8.0.0[${PYTHON_USEDEP}]
+ >=dev-util/cookiecutter-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/diff-match-patch-20181111[${PYTHON_USEDEP}]
+ >=dev-python/intervaltree-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/ipython-pygments-lexers-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jellyfish-0.7[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/keyring-17.0.0[${PYTHON_USEDEP}]
+ >=dev-python/markdown-it-py-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-4.0[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pickleshare-0.4[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.3[${PYTHON_USEDEP}]
+ >=dev-python/pygithub-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.0[${PYTHON_USEDEP}]
+ >=dev-python/pylint-venv-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/python-lsp-black-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/python-lsp-black-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/python-lsp-ruff-2.3.0[${PYTHON_USEDEP}]
+ <dev-python/python-lsp-ruff-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyls-spyder-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pyuca-1.2[${PYTHON_USEDEP}]
+ >=dev-python/pyxdg-0.26[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24.0.0[${PYTHON_USEDEP}]
+ >=dev-python/qdarkstyle-3.2.0[${PYTHON_USEDEP}]
+ <dev-python/qdarkstyle-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/qstylizer-0.2.2[${PYTHON_USEDEP}]
+ >=dev-python/qtawesome-1.4.1[${PYTHON_USEDEP}]
+ <dev-python/qtawesome-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/qtconsole-5.7.2[${PYTHON_USEDEP}]
+ <dev-python/qtconsole-5.8.0[${PYTHON_USEDEP}]
+ >=dev-python/qtpy-2.4.0[${PYTHON_USEDEP},pyqt6,quick,svg,webengine]
+ >=dev-python/rtree-0.9.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-7.2.0[${PYTHON_USEDEP}]
+ >=dev-python/spyder-kernels-3.1.5[${PYTHON_USEDEP}]
+ <dev-python/spyder-kernels-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/superqt-0.6.2[${PYTHON_USEDEP}]
+ <dev-python/superqt-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/textdistance-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/three-merge-0.1.1[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-0.10.3[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.9.4[${PYTHON_USEDEP}]
+"
+
+# BDEPEND="
+# test? (
+# dev-python/cython[${PYTHON_USEDEP}]
+# dev-python/flaky[${PYTHON_USEDEP}]
+# dev-python/matplotlib[tk,${PYTHON_USEDEP}]
+# dev-python/pandas[${PYTHON_USEDEP}]
+# dev-python/pillow[${PYTHON_USEDEP}]
+# dev-python/pytest-lazy-fixture[${PYTHON_USEDEP}]
+# dev-python/pytest-mock[${PYTHON_USEDEP}]
+# dev-python/pytest-order[${PYTHON_USEDEP}]
+# dev-python/pytest-qt[${PYTHON_USEDEP}]
+# dev-python/pytest-timeout[${PYTHON_USEDEP}]
+# dev-python/pyyaml[${PYTHON_USEDEP}]
+# dev-python/qtpy[${PYTHON_USEDEP}]
+# dev-python/scipy[${PYTHON_USEDEP}]
+# dev-python/sympy[${PYTHON_USEDEP}]
+# )"
+
+# Based on the courtesy of Arfrever
+# This patch removes a call to update-desktop-database during build
+# This fails because access is denied to this command during build
+PATCHES=(
+ "${FILESDIR}/${PN}-5.0.0-build.patch"
+ "${FILESDIR}/${PN}-6.0.3-no-dep-on-importlib.patch"
+)
+
+DOCS=(
+ "AUTHORS.txt"
+ "Announcements.md"
+ "CHANGELOG.md"
+ "CODE_OF_CONDUCT.md"
+ "CONTRIBUTING.md"
+ "NOTICE.txt"
+ "README.md"
+ "RELEASE.md"
+)
+
+distutils_enable_tests pytest
+# TODO: Package sphinx-design
+# distutils_enable_sphinx docs/doc \
+# dev-python/sphinx-panels \
+# dev-python/pydata-sphinx-theme \
+# dev-python/sphinx-multiversion
+
+python_prepare_all() {
+ # move docs into workdir
+ mv ../spyder-docs-${DOCS_PV}* docs || die
+
+ # these dependencies are packaged separately:
+ # dev-python/spyder-kernels,
+ # dev-python/python-lsp-server,
+ # dev-python/qdarkstyle
+ rm -r external-deps/* || die
+ # runs against things packaged in external-deps dir
+ rm conftest.py || die
+
+ # Do not depend on pyqt5<5.16, this dependency is carried by QtPy[pyqt5]
+ # Do not depend on pyqtwebengine<5.16, this dependency is carried by QtPy[webengine]
+ # Do not depend on parso and jedi, this is dependency is carried in python-lsp-server
+ # Do not depend on python-lsp-server, this dependency is carried in pyls-spyder
+ # Do not depend on ipython, this dependency is carried in spyder-kernels
+ # The explicit version requirements only make things more complicated, if e.g.
+ # pyls-spyder gains compatibility with a newer version of python-lsp-server
+ # in a new release it will take time for this information to propagate into
+ # the next spyder release. So just remove the dependency and let the other
+ # ebuilds handle the version requirements to speed things up and prevent
+ # issues such as Bug 803269.
+ sed -i \
+ -e "/'pyqt5[ 0-9<=>.,]*',/d" \
+ -e "/'pyqtwebengine[ 0-9<=>.,]*',/d" \
+ -e "/'python-lsp-server\[all\][ 0-9<=>.,]*',/d" \
+ -e "/'parso[ 0-9<=>.,]*',/d" \
+ -e "/'jedi[ 0-9<=>.,]*',/d" \
+ -e "/'pylint[ 0-9<=>.,]*',/d" \
+ setup.py || die
+ # -e "/'ipython[ 0-9<=>.,]*',/d" \
+ sed -i \
+ -e "/^PYLS_REQVER/c\PYLS_REQVER = '>=0.0.1'" \
+ -e "/^PYLSP_REQVER/c\PYLSP_REQVER = '>=0.0.1'" \
+ -e "/^PARSO_REQVER/c\PARSO_REQVER = '>=0.0.1'" \
+ -e "/^JEDI_REQVER/c\JEDI_REQVER = '>=0.0.1'" \
+ -e "/^PYLINT_REQVER/c\PYLINT_REQVER = '>=0.0.1'" \
+ spyder/dependencies.py || die
+ # -e "/^IPYTHON_REQVER/c\IPYTHON_REQVER = '>=0.0.1'" \
+
+ # do not check deps, fails because we removed dependencies above
+ sed -i -e 's:test_dependencies_for_spyder_setup_install_requires_in_sync:_&:' \
+ spyder/tests/test_dependencies_in_sync.py || die
+
+ # skip online test
+ rm spyder/widgets/github/tests/test_github_backend.py || die
+
+ export SPYDER_QT_BINDING=pyqt6
+
+ distutils-r1_python_prepare_all
+}
+
+# Calling pytest directly somehow passes the pytest arguments to spyder
+# causing an invalid argument error
+# python_test() {
+# virtx "${EPYTHON}" runtests.py
+# }
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "2D/3D plotting in the Python and IPython consoles" dev-python/matplotlib
+ optfeature "View and edit DataFrames and Series in the Variable Explorer" dev-python/pandas
+ optfeature "View and edit two or three dimensional arrays in the Variable Explorer" dev-python/numpy
+ optfeature "Symbolic mathematics in the IPython console" dev-python/sympy
+ optfeature "Import Matlab workspace files in the Variable Explorer" dev-python/scipy
+ optfeature "Run Cython files in the IPython console" dev-python/cython
+ optfeature "The hdf5/h5py plugin" dev-python/h5py
+ optfeature "The line profiler plugin" dev-python/spyder-line-profiler
+ optfeature "Vim key bindings" dev-python/spyder-vim
+ optfeature "Unittest support" dev-python/spyder-unittest
+ optfeature "System terminal inside spyder" dev-python/spyder-terminal
+ optfeature "Jupyter notebook support" dev-python/spyder-notebook
+ # spyder-memory-profiler is not compatible with spyder-5.2+ yet
+ # optfeature "The memory profiler plugin" dev-python/spyder-memory-profiler
+ # spyder-reports not yet updated to >=spyder-4.0.0
+ # optfeature "Markdown reports using Pweave" dev-python/spyder-reports
+ # Plugins with no release yet:
+ # optfeature "Manage virtual environments and packages" dev-python/spyder-env-manager
+ # optfeature "VCS (e.g. git) integration" dev-python/spyder-vcs
+}
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index e0c503806217..42ae8bfa0bd0 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,3 @@
DIST tifffile-2026.6.1.gh.tar.gz 418247 BLAKE2B 2c20840bbf901fda3b001638d93887e1821d8aa4325f903f44bfdc65e1e48eef80ea087dec7443a415f8d767859ddb588e7292dd85805e27ae86894e6463ffb1 SHA512 4296d605ce212b065acb288b8a60515f9fcd4135474523eb68261736c1861606969c54f33a75116b6908c4218a6392a0f9cba008c2409e7744ee5a19d2bb767a
DIST tifffile-2026.7.14.gh.tar.gz 423471 BLAKE2B 14670ce0fc117ef1cc95e6bd161ae5dc68a0a85594aa2b49b77b6d6fe0460fb914536117bcaae61a95d4c2646032359b2be358865273d6119032fcca03ea1950 SHA512 9cb973d885c931afbec1754f50bd121580d1ba9bce8e49b95c122b0fc960f4c76b7664a669aa8a46251d4a82647a41420be85c1ca9400155d7c05042b92208b5
+DIST tifffile-2026.7.31.gh.tar.gz 424793 BLAKE2B 78c38e4b0d73f5afa2643644e0480a910f1d8497b5146196e852a0911e3e5bc56c628f9b5ed0561c6296910bcd03d629b7aa526e2ff45461987ab621eaca733b SHA512 d716ba26450d0fc05382bc0a1280bc9b67c7f2a909e59e838b0bdd5d49c45c822f89c2d3f897bc751057dd499e6d4c8fa8a04c9b96327d408ad56b7ccdfc3fdf
diff --git a/dev-python/tifffile/tifffile-2026.7.31.ebuild b/dev-python/tifffile/tifffile-2026.7.31.ebuild
new file mode 100644
index 000000000000..49630e1bd1b8
--- /dev/null
+++ b/dev-python/tifffile/tifffile-2026.7.31.ebuild
@@ -0,0 +1,56 @@
+# 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_{13..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-2.1[${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/time-machine/Manifest b/dev-python/time-machine/Manifest
index 45a538265faf..7c9a57613faf 100644
--- a/dev-python/time-machine/Manifest
+++ b/dev-python/time-machine/Manifest
@@ -1 +1,2 @@
DIST time-machine-3.2.0.gh.tar.gz 85884 BLAKE2B dc771f17c8089a6f121cf99ad8dcf5f0e9aaec345dbdfb0be4ccfc9123b10561cebc116dd9db6d1b4c939cf49fa80e16d8be75e9adfe394ad5392dc1dfe2c12c SHA512 84ff8d2e9c9bdde90efe3548bc151f38f812a4ba624cc9556dd2a89f72d664d73dca8be64a65ca2a5019393e5a8f91e130804313685b23dccc4932a9e05f973b
+DIST time-machine-3.3.0.gh.tar.gz 97144 BLAKE2B e1bc1dd87196a060ff55ab92f720e47bb4d66a4475863cfd6e53d7e18bc3d8c80c9df1fb7be70f93d5282287a95676b66a9542d6662a3c43729c8619adf60102 SHA512 593910cb9690c413724babd1d86547515bbcd4291683dd06a2181b6900c67893b8d97f7345f7e1f76349ea7fdd4840a093245131cf2462a1780db345acc5c182
diff --git a/dev-python/time-machine/files/time-machine-3.2.0-py3.15.patch b/dev-python/time-machine/files/time-machine-3.2.0-py3.15.patch
new file mode 100644
index 000000000000..3c45ec3aff0b
--- /dev/null
+++ b/dev-python/time-machine/files/time-machine-3.2.0-py3.15.patch
@@ -0,0 +1,237 @@
+https://github.com/adamchainz/time-machine/issues/610
+https://github.com/adamchainz/time-machine/pull/618
+https://github.com/adamchainz/time-machine/commit/83c385186424c920228cd38d819f2488de617be2
+
+From 83c385186424c920228cd38d819f2488de617be2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Lum=C3=ADr=20=27Frenzy=27=20Balhar?=
+ <frenzy.madness@gmail.com>
+Date: Wed, 29 Jul 2026 23:52:51 +0200
+Subject: [PATCH] Mock `datetime.date.today()` directly (#618)
+
+Co-authored-by: Adam Johnson <me@adamj.eu>
+--- a/docs/usage.rst
++++ b/docs/usage.rst
+@@ -89,7 +89,9 @@ Main API
+
+ All datetime functions in the standard library are mocked to move to the destination current datetime:
+
++ * ``datetime.date.today()``
+ * ``datetime.datetime.now()``
++ * ``datetime.datetime.today()``
+ * ``datetime.datetime.utcnow()``
+ * ``time.clock_gettime()`` (only for ``CLOCK_REALTIME``)
+ * ``time.clock_gettime_ns()`` (only for ``CLOCK_REALTIME``)
+@@ -355,6 +357,8 @@ Main API
+ with time_machine.travel(...):
+ ...
+
++.. _escape-hatch:
++
+ Escape hatch API
+ ================
+
+@@ -373,10 +377,18 @@ The functions are:
+
+ Returns ``True`` if ``time_machine.travel()`` is active, ``False`` otherwise.
+
++* ``escape_hatch.datetime.date.today()``
++
++ Wraps the real ``datetime.date.today()``.
++
+ * ``escape_hatch.datetime.datetime.now()``
+
+ Wraps the real ``datetime.datetime.now()``.
+
++* ``escape_hatch.datetime.datetime.today()``
++
++ Wraps the real ``datetime.datetime.today()``.
++
+ * ``escape_hatch.datetime.datetime.utcnow()``
+
+ Wraps the real ``datetime.datetime.utcnow()``.
+--- a/src/_time_machine.c
++++ b/src/_time_machine.c
+@@ -10,6 +10,7 @@ typedef struct {
+ PyObject *datetime_class;
+ PyCFunctionObject *datetime_datetime_now;
+ PyCFunctionObject *datetime_datetime_utcnow;
++ PyCFunctionObject *date_today;
+ PyCFunctionObject *time_clock_gettime;
+ PyCFunctionObject *time_clock_gettime_ns;
+ PyCFunctionObject *time_gmtime;
+@@ -24,6 +25,7 @@ typedef struct {
+ _PyCFunctionFastWithKeywords original_now;
+ #endif
+ PyCFunction original_utcnow;
++ PyCFunction original_date_today;
+ PyCFunction original_clock_gettime;
+ PyCFunction original_clock_gettime_ns;
+ PyCFunction original_gmtime;
+@@ -130,6 +132,33 @@ PyDoc_STRVAR(original_utcnow_doc,
+ \n\
+ Call datetime.datetime.utcnow() after patching.");
+
++/* datetime.date.today() and datetime.datetime.today()
++ * Note: datetime.datetime doesn't define its own today(), it inherits from date.
++ * So we patch date.today() with a wrapper that calls cls.fromtimestamp(), which
++ * returns the right type for date, datetime, and subclasses of either.
++ */
++
++static PyObject *
++_time_machine_today(PyObject *cls, PyObject *args)
++{
++ PyObject *time_machine_module = PyImport_ImportModule("time_machine");
++ if (time_machine_module == NULL) {
++ return NULL; // Propagate ImportError
++ }
++
++ PyObject *timestamp = PyObject_CallMethod(time_machine_module, "time", NULL);
++ Py_DECREF(time_machine_module);
++ if (timestamp == NULL) {
++ return NULL;
++ }
++
++ PyObject *result = PyObject_CallMethod(cls, "fromtimestamp", "O", timestamp);
++
++ Py_DECREF(timestamp);
++
++ return result;
++}
++
+ /* time.clock_gettime() */
+
+ static PyObject *
+@@ -446,6 +475,9 @@ _time_machine_patch(PyObject *module, PyObject *unused)
+ if (state->original_time)
+ Py_RETURN_NONE;
+
++ state->original_date_today = state->date_today->m_ml->ml_meth;
++ state->date_today->m_ml->ml_meth = _time_machine_today;
++
+ #if PY_VERSION_HEX >= 0x030d00a4
+ state->original_now =
+ (PyCFunctionFastWithKeywords)state->datetime_datetime_now->m_ml->ml_meth;
+@@ -517,6 +549,9 @@ _time_machine_unpatch(PyObject *module, PyObject *unused)
+ state->datetime_datetime_utcnow->m_ml->ml_meth = state->original_utcnow;
+ state->original_utcnow = NULL;
+
++ state->date_today->m_ml->ml_meth = state->original_date_today;
++ state->original_date_today = NULL;
++
+ /*
+ time.clock_gettime(), only available on Unix platforms.
+ */
+@@ -637,6 +672,17 @@ _time_machine_exec(PyObject *module)
+ goto error;
+ }
+
++ PyObject *date_class = PyObject_GetAttrString(state->datetime_module, "date");
++ if (date_class == NULL) {
++ goto error;
++ }
++
++ state->date_today = (PyCFunctionObject *)PyObject_GetAttrString(date_class, "today");
++ Py_DECREF(date_class);
++ if (state->date_today == NULL) {
++ goto error;
++ }
++
+ state->time_module = PyImport_ImportModule("time");
+ if (state->time_module == NULL) {
+ goto error;
+@@ -702,6 +748,7 @@ _time_machine_exec(PyObject *module)
+ Py_CLEAR(state->datetime_class);
+ Py_CLEAR(state->datetime_datetime_now);
+ Py_CLEAR(state->datetime_datetime_utcnow);
++ Py_CLEAR(state->date_today);
+ Py_CLEAR(state->time_module);
+ Py_CLEAR(state->time_clock_gettime);
+ Py_CLEAR(state->time_clock_gettime_ns);
+@@ -721,6 +768,7 @@ _time_machine_traverse(PyObject *module, visitproc visit, void *arg)
+ Py_VISIT(state->datetime_class);
+ Py_VISIT(state->datetime_datetime_now);
+ Py_VISIT(state->datetime_datetime_utcnow);
++ Py_VISIT(state->date_today);
+ Py_VISIT(state->time_module);
+ Py_VISIT(state->time_clock_gettime);
+ Py_VISIT(state->time_clock_gettime_ns);
+@@ -740,6 +788,7 @@ _time_machine_clear(PyObject *module)
+ Py_CLEAR(state->datetime_class);
+ Py_CLEAR(state->datetime_datetime_now);
+ Py_CLEAR(state->datetime_datetime_utcnow);
++ Py_CLEAR(state->date_today);
+ Py_CLEAR(state->time_module);
+ Py_CLEAR(state->time_clock_gettime);
+ Py_CLEAR(state->time_clock_gettime_ns);
+--- a/src/time_machine/__init__.py
++++ b/src/time_machine/__init__.py
+@@ -535,11 +535,23 @@ def time_machine_fixture(
+ # escape hatch
+
+
++class _EscapeHatchDatetimeDate:
++ def today(self) -> dt.date:
++ # date.today() is equivalent to datetime.now().date().
++ result: dt.datetime = _time_machine.original_now(None)
++ return result.date()
++
++
+ class _EscapeHatchDatetimeDatetime:
+ def now(self, tz: dt.tzinfo | None = None) -> dt.datetime:
+ result: dt.datetime = _time_machine.original_now(tz)
+ return result
+
++ def today(self) -> dt.datetime:
++ # datetime.today() is equivalent to datetime.now() without a timezone.
++ result: dt.datetime = _time_machine.original_now(None)
++ return result
++
+ def utcnow(self) -> dt.datetime:
+ result: dt.datetime = _time_machine.original_utcnow()
+ return result
+@@ -547,6 +559,7 @@ def utcnow(self) -> dt.datetime:
+
+ class _EscapeHatchDatetime:
+ def __init__(self) -> None:
++ self.date = _EscapeHatchDatetimeDate()
+ self.datetime = _EscapeHatchDatetimeDatetime()
+
+
+--- a/tests/test_time_machine.py
++++ b/tests/test_time_machine.py
+@@ -1317,6 +1317,17 @@ def test_is_travelling_true(self):
+ with time_machine.travel(EPOCH):
+ assert time_machine.escape_hatch.is_travelling() is True
+
++ def test_date_today(self):
++ real_today = dt.date.today()
++
++ with time_machine.travel(EPOCH):
++ eh_today = time_machine.escape_hatch.datetime.date.today()
++ assert eh_today >= real_today
++
++ with pytest.raises(ValueError) as excinfo:
++ time_machine.escape_hatch.datetime.date.today()
++ assert excinfo.value.args == ("Not currently time-travelling.",)
++
+ def test_datetime_now(self):
+ real_now = dt.datetime.now()
+
+@@ -1335,6 +1346,17 @@ def test_datetime_now_tz(self):
+ eh_now = time_machine.escape_hatch.datetime.datetime.now(tz=dt.timezone.utc)
+ assert eh_now >= real_now
+
++ def test_datetime_today(self):
++ real_today = dt.datetime.today()
++
++ with time_machine.travel(EPOCH):
++ eh_today = time_machine.escape_hatch.datetime.datetime.today()
++ assert eh_today >= real_today
++
++ with pytest.raises(ValueError) as excinfo:
++ time_machine.escape_hatch.datetime.datetime.today()
++ assert excinfo.value.args == ("Not currently time-travelling.",)
++
+ def test_datetime_utcnow(self):
+ real_now = dt.datetime.utcnow()
+
diff --git a/dev-python/time-machine/time-machine-3.2.0-r1.ebuild b/dev-python/time-machine/time-machine-3.2.0-r1.ebuild
new file mode 100644
index 000000000000..ee1d7ac32bf5
--- /dev/null
+++ b/dev-python/time-machine/time-machine-3.2.0-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Travel through time in your tests"
+HOMEPAGE="
+ https://github.com/adamchainz/time-machine/
+ https://pypi.org/project/time-machine/
+"
+SRC_URI="
+ https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tokenize-rt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/time-machine-3.2.0-py3.15.patch
+)
diff --git a/dev-python/time-machine/time-machine-3.3.0.ebuild b/dev-python/time-machine/time-machine-3.3.0.ebuild
new file mode 100644
index 000000000000..289ffff60406
--- /dev/null
+++ b/dev-python/time-machine/time-machine-3.3.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Travel through time in your tests"
+HOMEPAGE="
+ https://github.com/adamchainz/time-machine/
+ https://pypi.org/project/time-machine/
+"
+SRC_URI="
+ https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tokenize-rt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
diff --git a/dev-python/toolz/files/toolz-1.1.0-py3.15.patch b/dev-python/toolz/files/toolz-1.1.0-py3.15.patch
new file mode 100644
index 000000000000..9f0f56bf2345
--- /dev/null
+++ b/dev-python/toolz/files/toolz-1.1.0-py3.15.patch
@@ -0,0 +1,20 @@
+https://github.com/pytoolz/toolz/issues/623
+https://github.com/pytoolz/toolz/pull/624
+
+From 8f23a9a2d5f07ff0c790ee1e2bdef023ff252cc1 Mon Sep 17 00:00:00 2001
+From: Karolina Surma <ksurma@redhat.com>
+Date: Thu, 21 May 2026 23:30:41 +0200
+Subject: [PATCH] Add frozendict signature (Python 3.15 compatibility)
+
+--- a/toolz/_signatures.py
++++ b/toolz/_signatures.py
+@@ -109,6 +109,9 @@
+ format=[
+ lambda value: None,
+ lambda value, format_spec: None],
++ frozendict=[
++ lambda **kwargs: None,
++ lambda mapping, **kwargs: None],
+ frozenset=[
+ lambda: None,
+ lambda iterable: None],
diff --git a/dev-python/toolz/toolz-1.1.0-r1.ebuild b/dev-python/toolz/toolz-1.1.0-r1.ebuild
new file mode 100644
index 000000000000..bf4d7725f452
--- /dev/null
+++ b/dev-python/toolz/toolz-1.1.0-r1.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
+PYPI_VERIFY_REPO=https://github.com/pytoolz/toolz
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="List processing tools and functional utilities"
+HOMEPAGE="
+ https://github.com/pytoolz/toolz/
+ https://pypi.org/project/toolz/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/toolz-1.1.0-py3.15.patch
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # workaround setuptools-git-versioning
+ cat >> setup.cfg <<-EOF
+ [metadata]
+ version = ${PV}
+ EOF
+}
diff --git a/dev-python/traitlets/Manifest b/dev-python/traitlets/Manifest
index cc46ea8c1353..12cb878cc196 100644
--- a/dev-python/traitlets/Manifest
+++ b/dev-python/traitlets/Manifest
@@ -1 +1,2 @@
DIST traitlets-5.15.1.tar.gz 163344 BLAKE2B efd33a32d3003c88c0bee8aa8195a4d6773b522a27feb3aa5eb4e907aabb7a48e2c1d9f75ee901093d69f712c8f5f096d13f7fca5afeed5115d023912384552d SHA512 b46fae256eb86094fa0bd30342deb7bd2b120ebd19dc27b6d1cce1c6c58c8a522afc5c131dbccfb0f08de033f2f287a5ebd02e305ccb0dc6b2c6c7ae0499edc6
+DIST traitlets-5.16.0.tar.gz 165946 BLAKE2B ea7997f7fdb19ac8b45592cbc066f8464d6433d1319029af30f07178f662823fc7f5de17e03243cd22cfff70d5e77fb22f9f0b1132a7c1367f0a116ceb04993d SHA512 d0ffef982337485accd75d3fb22a45027241a0afc4c0ef13032344c4a0b8b9a35ba61ad9955170d0e77e5fdb5b07729d768ec10e0bd4a6ef31a4b1d21007a64a
diff --git a/dev-python/traitlets/traitlets-5.16.0.ebuild b/dev-python/traitlets/traitlets-5.16.0.ebuild
new file mode 100644
index 000000000000..c5b297a7f9f9
--- /dev/null
+++ b/dev-python/traitlets/traitlets-5.16.0.ebuild
@@ -0,0 +1,36 @@
+# 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="A configuration system for Python applications"
+HOMEPAGE="
+ https://github.com/ipython/traitlets/
+ https://pypi.org/project/traitlets/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ test? (
+ >=dev-python/argcomplete-3.5.2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/source \
+ dev-python/myst-parser \
+ dev-python/pydata-sphinx-theme
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ tests/test_typing.py
+)
diff --git a/dev-python/trakit/Manifest b/dev-python/trakit/Manifest
index e2bcb274fab0..ace11e1ac489 100644
--- a/dev-python/trakit/Manifest
+++ b/dev-python/trakit/Manifest
@@ -1 +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
diff --git a/dev-python/trakit/trakit-0.3.0.ebuild b/dev-python/trakit/trakit-0.3.0.ebuild
new file mode 100644
index 000000000000..3644ec182c4a
--- /dev/null
+++ b/dev-python/trakit/trakit-0.3.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Guess additional information from titles in media tracks"
+HOMEPAGE="
+ https://github.com/ratoaq2/trakit/
+ https://pypi.org/project/trakit/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/babelfish-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.2[${PYTHON_USEDEP}]
+ >=dev-python/rebulk-3.1.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/unidecode-1.3.6[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # Network
+ tests/test_generate.py::test_generate_config
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest
index 100f3c518316..b9c49f544ade 100644
--- a/dev-python/translate-toolkit/Manifest
+++ b/dev-python/translate-toolkit/Manifest
@@ -2,3 +2,4 @@ DIST translate-3.19.13.gh.tar.gz 1365289 BLAKE2B 533cbe8be6e5585157bf63518b9f53f
DIST translate-3.19.14.gh.tar.gz 1375782 BLAKE2B 37f1dfb46592e1f70b5f437ff016e529f4f4432747e7c592cfe065ecd286a6dd0ef30e4babca7007fd3eb536b86d2832d81b744aee4a009f6ca23ea88ddf4715 SHA512 27f71881a498054e367e77f1a19df46e2a58c37325f55e764b2022754b0ac11fc2b574874da473f30e0ffb586ee5f16d4b625e49dd843cae1a920b89a185a6a4
DIST translate-3.19.15.gh.tar.gz 1406521 BLAKE2B a47cd9202ef318b518a7c268fd3eb8b9f3aca526c4735d1c71d4dccf150da7793b6fd468cf473c25006a4f32fe3a8677b8544f7407a90a9c4f5e3a95a32efcaa SHA512 cdc353b7730eb18a177fdc32a0c0018d636be37cba4392eb6f28d74fcc33c8abf34caa8f54cb0e7351a9fcfddf0bb78ced065a2309995b82a24338766b9c917a
DIST translate-3.19.16.gh.tar.gz 1414743 BLAKE2B 8bd639d9c47841a242a2f6c5b0b24d224d6aee2e5489b71a74cdf4eda29e85860cb865975604f39ef42d9362d39ee1c991e98350cb86b31a963af11751e6e6bf SHA512 2fe361987416cd454f8e2c68d8420396c3f9f673ef0c9322adeadadabcaa70463126f429d2852dd43f3895a25c9c6e99a521631c4c543547a77434fabdc18144
+DIST translate-3.19.17.gh.tar.gz 1419163 BLAKE2B 6dbfd25d4a8ca2e22be4da2c6f4e1e081ac2902d5911498d0e4d13fd182dff3f338cfe36a5ef93e4ad9c276b443f84bac6b44b12cdae1ac07a46830dec36aecc SHA512 8f28c6d312e6a6a9aef3b177981222ee8f80751b1ea0075f0ad7ec7774840822a50d806d9fbbcb21ed95d4dfdf491a8added8ef7bba1166665160613d5e08444
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild
new file mode 100644
index 000000000000..87c171eea069
--- /dev/null
+++ b/dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild
@@ -0,0 +1,123 @@
+# 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} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+MY_P=translate-${PV}
+DESCRIPTION="Toolkit to convert between many translation formats"
+HOMEPAGE="
+ https://github.com/translate/translate/
+ https://pypi.org/project/translate-toolkit/
+"
+SRC_URI="
+ https://github.com/translate/translate/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+html +ical +ini +subtitles +yaml"
+
+RDEPEND="
+ app-text/iso-codes
+ >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}]
+ dev-python/cheroot[${PYTHON_USEDEP}]
+ >=dev-python/levenshtein-0.12.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mistletoe-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ dev-python/tomlkit[${PYTHON_USEDEP}]
+ >=dev-python/unicode-segmentation-rs-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.2.14[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ html? ( dev-python/utidylib[${PYTHON_USEDEP}] )
+ ical? ( dev-python/vobject[${PYTHON_USEDEP}] )
+ ini? ( >=dev-python/iniparse-0.5[${PYTHON_USEDEP}] )
+ subtitles? ( media-video/gaupol[${PYTHON_USEDEP}] )
+ yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ dev-python/phply[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( syrupy )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip unnecessary pins
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+}
+
+src_test() {
+ # unfortunately, this bad quality package doesn't support XDG_DATA_DIRS
+ # correctly, so we need to reassemble all data files in a single directory
+ local -x XDG_DATA_HOME=${T}/share
+ cp -r translate/share "${T}/" || die
+ cp -r "${ESYSROOT}"/usr/share/gaupol "${XDG_DATA_HOME}"/ || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Fails with network-sandbox (and even with it off but w/ softer fail)
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff'
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff'
+ )
+ local EPYTEST_IGNORE=(
+ # unpackaged fluent.*
+ tests/translate/storage/test_fluent.py
+ tests/translate/convert/test_fluent2po.py
+ # changes directory and does not change it back, sigh
+ tests/odf_xliff/test_odf_xliff.py
+ )
+
+ if ! has_version "dev-python/iniparse[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ translate/convert/test_ini2po.py
+ translate/convert/test_po2ini.py
+ )
+ fi
+
+ if ! has_version "media-video/gaupol[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ translate/storage/test_subtitles.py
+ )
+ fi
+
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr
+ doins -r translate/share
+
+ if ! use html; then
+ rm "${ED}"/usr/bin/{html2po,po2html} || die
+ fi
+ if ! use ical; then
+ rm "${ED}"/usr/bin/{ical2po,po2ical} || die
+ fi
+ if ! use ini; then
+ rm "${ED}"/usr/bin/{ini2po,po2ini} || die
+ fi
+ if ! use subtitles; then
+ rm "${ED}"/usr/bin/{sub2po,po2sub} || die
+ fi
+}
diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest
index 7efc8ba3dfb9..f2ddc66f70dd 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1 +1,2 @@
DIST trimesh-4.12.2.gh.tar.gz 13717637 BLAKE2B a0f04335d7f7335b2044bda841b06a5dcfcb1f26c569f84c57049c4f2f444595e4ab27021c0c6d3013f100248897a3df75a53cee806975fa6d5ec7914f77315c SHA512 4f8cfee0435c16b932740f4900f1ef75046c06bb64a20fe49c2a858aba7392009d6dcdeab80a08392e185e2f2890198078213e984563bfebd059b339852fb18d
+DIST trimesh-5.0.0.gh.tar.gz 13747514 BLAKE2B a7728a5d846018e37ec1e7b2cf3f8896096a962b5c8c7134d2a56d263b688ac7bbaef6eeefa4d6a9c0d8a57e2670c616f29029a8fc814e447e9aa4474bc34afe SHA512 8201f6fe444a141b4b7990c40644e8cff095abc6373b37c6116a5805dc886fcce365b1c7438ccfef0b800a09f7c50bffea838c8baece3c6ffdef56c01550429b
diff --git a/dev-python/trimesh/trimesh-5.0.0.ebuild b/dev-python/trimesh/trimesh-5.0.0.ebuild
new file mode 100644
index 000000000000..6715afbbe9e4
--- /dev/null
+++ b/dev-python/trimesh/trimesh-5.0.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for loading and using triangular meshes"
+HOMEPAGE="
+ https://trimesh.org/
+ https://github.com/mikedh/trimesh/
+ https://pypi.org/project/trimesh/
+"
+SRC_URI="
+ https://github.com/mikedh/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pycollada[${PYTHON_USEDEP}]
+ dev-python/pyglet[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
+ dev-python/svg-path[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/xxhash[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+: ${EPYTEST_TIMEOUT:=300}
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # requires manifold3d
+ tests/test_boolean.py::test_multiple_difference
+ tests/test_ray.py::test_contains_cavity
+ # timing nonsense
+ tests/test_bounds.py::BoundsTest::test_obb_mesh_large
+)
+EPYTEST_IGNORE=(
+ # require pyinstrument
+ tests/test_sweep.py
+)
+
+python_test() {
+ # We run tests in parallel, so avoid having n^2 threads in lapack
+ # tests.
+ local -x BLIS_NUM_THREADS=1
+ local -x MKL_NUM_THREADS=1
+ local -x OMP_NUM_THREADS=1
+ local -x OPENBLAS_NUM_THREADS=1
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature_header "${PN} functionality can be extended by installing the following packages:"
+ optfeature "2D triangulations of polygons" dev-python/mapbox-earcut
+ optfeature "loading a number of additional mesh formats" dev-python/meshio
+ optfeature "figuring out how much memory we have" dev-python/psutil
+ optfeature "marching cubes and other nice stuff" dev-python/scikit-image
+}
diff --git a/dev-python/txrequests/txrequests-0.9.6-r1.ebuild b/dev-python/txrequests/txrequests-0.9.6-r1.ebuild
index f0fe41cf76dc..2836931ed6c0 100644
--- a/dev-python/txrequests/txrequests-0.9.6-r1.ebuild
+++ b/dev-python/txrequests/txrequests-0.9.6-r1.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
diff --git a/dev-python/ubelt/Manifest b/dev-python/ubelt/Manifest
index 5a6e01815448..4013d92a7cc6 100644
--- a/dev-python/ubelt/Manifest
+++ b/dev-python/ubelt/Manifest
@@ -1 +1,2 @@
DIST ubelt-1.4.2.gh.tar.gz 406280 BLAKE2B 3265c74e74736ce5c46c74b0e6ac12a6f470b7bb2cc9d620dad497131a4265c8a37d1f5f1ad18242175a5c62f88f482c8bf891d2c53f0c2f689539e52b160cde SHA512 dec75a65976a21ab32336d11d23090173298f7c73ea87acaf4c3460a437de51ae5a4bb80fed5450e58f44b4f282e528aa2d1cff027ca4c1be86379df29faa697
+DIST ubelt-1.4.3.gh.tar.gz 410182 BLAKE2B 2a555fc382b4b505aa408acc7b4368482398c33f855ad8b03574686f39fd56c32073e74c66463981c0fd39c03a7f0aaaa86fc8cf8e2d71610b112c02eecc9fb3 SHA512 135637edd315eaadc811e23833a4c432cf385bfb423b41ec41c7228969048502ba39a2572d62f6484ca1e718b45ccfe02463cfbf16717d842a2264e86382479a
diff --git a/dev-python/ubelt/ubelt-1.4.3.ebuild b/dev-python/ubelt/ubelt-1.4.3.ebuild
new file mode 100644
index 000000000000..c0d0af963747
--- /dev/null
+++ b/dev-python/ubelt/ubelt-1.4.3.ebuild
@@ -0,0 +1,47 @@
+# 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="A stdlib like feel, and extra batteries. Hashing, Caching, Timing, Progress"
+HOMEPAGE="
+ https://github.com/Erotemic/ubelt/
+ https://pypi.org/project/ubelt/
+"
+SRC_URI="
+ https://github.com/Erotemic/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ test? (
+ >=dev-python/numpy-1.19.2[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.25.1[${PYTHON_USEDEP}]
+ >=dev-python/xxhash-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( xdoctest )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ tests/test_editable_modules.py::test_import_of_editable_install
+ # relies on passwd home being equal to ${HOME}
+ ubelt/util_path.py::userhome:0
+)
+
+EPYTEST_IGNORE=(
+ # asserts for running on win32 in global scope
+ ubelt/_win32_jaraco.py
+)
diff --git a/dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch b/dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch
new file mode 100644
index 000000000000..2475beb88ee4
--- /dev/null
+++ b/dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/978396
+https://github.com/frostming/unearth/pull/176
+https://github.com/frostming/unearth/commit/69ece0800edeefb1daf035bb0ee348e17a4393fd
+
+From 69ece0800edeefb1daf035bb0ee348e17a4393fd Mon Sep 17 00:00:00 2001
+From: Steve Kowalik <steven@wedontsleep.org>
+Date: Mon, 9 Feb 2026 18:05:48 +1100
+Subject: [PATCH] fix: support packaging 26.0 changes (#176)
+
+packaging 26.0 changed how Specifier.contains() behaves with
+prereleases=None[0], so call it with False explicitly in the two
+tests that fail without it.
+
+0: https://github.com/pypa/packaging/issues/895
+
+Signed-off-by: Steve Kowalik <steven@wedontsleep.org>
+--- a/tests/test_evaluator.py
++++ b/tests/test_evaluator.py
+@@ -251,9 +251,9 @@ def test_evaluate_compatibility_tags(link, expected, ignore_compatibility):
+ ("8.1.3", ">=8.0", None, True),
+ ("7.1", ">=8.0", None, False),
+ ("8.0.0a0", ">=8.0.0dev0", None, True),
+- ("8.0.0dev0", ">=7", None, False),
++ ("8.0.0dev0", ">=7", False, False),
+ ("8.0.0dev0", ">=7", True, True),
+- ("8.0.0a0", "", None, False),
++ ("8.0.0a0", "", False, False),
+ ("8.0.0a0", ">=8.0.0dev0", False, False),
+ ],
+ )
diff --git a/dev-python/unearth/unearth-0.18.2.ebuild b/dev-python/unearth/unearth-0.18.2.ebuild
index 0cadc27d0112..5daeb1efa019 100644
--- a/dev-python/unearth/unearth-0.18.2.ebuild
+++ b/dev-python/unearth/unearth-0.18.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2025 Gentoo Authors
+# Copyright 2023-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -35,3 +35,7 @@ BDEPEND="
EPYTEST_PLUGINS=( pytest-{httpserver,mock} )
distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/unearth-0.18.2-fix-tests-packaging-26.patch
+)
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 560a85ef53b4..c84f8ce4eb41 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -5,3 +5,4 @@ DIST uv_build-0.11.29.tar.gz 411484 BLAKE2B 4a9250bd8ecb4967c222f5ed0842c6415963
DIST uv_build-0.11.32.tar.gz 413653 BLAKE2B 8951cd4ddc44655a177c6cccbf81fe871306f1096161ea46cec8bf52b56de713b4d91c469e44913c140229ae61595cbdcbd5b2e0cbb7c791f7937c9fc9db898c SHA512 3732f141b2ffeaed8f08dadadb2b5e72c2d60e0cb9a13c7d6b7360471606afbaae88d841db655b79ca2753ef4e2e18dbb51464e6669c57aed98ee19219fa5b56
DIST uv_build-0.11.33.tar.gz 413871 BLAKE2B 8a662d0a80fc32cc22b4fa4df5bf38338e715eaddc6316348ac56cb5411b2433e5b36fad545f90719d4a83e989bc29e55be2cfc40ecd60c4fc94d91fb7b0bc4b SHA512 30001c3c49959ae09243a947d9c02bc46e391bd2e055476ce89c489b15cde789091f2461fffea8ac298805fd944c98c60aabbb804b6e13875569e659c0d8c28b
DIST uv_build-0.12.0.tar.gz 411983 BLAKE2B 3c6f6f32fa096d03426c63e001c86eed2d17b5a130fbc02a96271ca9073432393c4f9d14baa1c6d7993adadda88f0d45fd32e7c54d50669b3d54ef79c95314ff SHA512 719a2f6ae6c257a72d09e8f850cd217458e57162329adcbe7efcf59a0a62f83a6310e9da27d80ec9caf6bdf280eaee652b3267bd01955b9d22b7308f194c16d2
+DIST uv_build-0.12.1.tar.gz 412371 BLAKE2B b5eb43ce1af6d78dbb68b2445329b90520ac6e9269ff6711270763d43d09cdd3a66ac9cbeab4f52964feea3b0d08559c133cd2510f65403dbf678d7bae3e5588 SHA512 5dda5acdf4a665cbc59a24c657921c81a6a5622fef463da255df2372d48186aed56806311824ede70337f64e8dde797b82386fa4aa2ed11b82fb11047ec2ec67
diff --git a/dev-python/uv-build/uv-build-0.12.1.ebuild b/dev-python/uv-build/uv-build-0.12.1.ebuild
new file mode 100644
index 000000000000..65d94f2051ae
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.12.1.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 6a85ff7acd75..521ca3db8773 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -12,3 +12,5 @@ DIST uv-0.11.33-crates.tar.xz 43219524 BLAKE2B 0bcf077c48985bc4a790757b024299497
DIST uv-0.11.33.gh.tar.gz 7168539 BLAKE2B be74751529dcdb824c70ef06b02bbc5c47be8e40039ba4c0a2c78980160df1c144054214f8809c41b5eaa59668f1b3555d666915e891e002db8a4e0fd770c5b0 SHA512 eebc671598b627b9c152da0bad7b3a723788d517b919b0be6db7bea15f89188df613ec04e0b5f1ce189d333faaabbda6649c0ef2f031bd6159cb36aac1c409b6
DIST uv-0.12.0-crates.tar.xz 42286476 BLAKE2B 031c88dec26d9c9fb84180b985c622d5c0a0e702efbebd3b40085837b8b90365df4d471b34b37217b16158f04a2565951f423805ab683eea78aba6eb958f38bc SHA512 8d76ab7404177ccdc965e0dc3cf562d330506f113bda6fbb3af94e97a52caf6f8568f78ae72e51ca989752d83c973cc2d199c649a7aa5d1f149a6a13722f9c2e
DIST uv-0.12.0.gh.tar.gz 7201759 BLAKE2B 0653d93487280965d45f81a7d1ecb1c4e735eddbab790bb25c29d29fc1482809d9f133f54e31c48a2d8e8b1afdeb140880d878d2f440c9f656ad6dba5b68489e SHA512 9dfcb42b4d74c9f26dbb4e6b5ed1a424aafd3c4c2920766682f9d0fa5e54f52a6e9c76fd8d78bc10f6bc0054daed7e339bb01cc79d5114fd51cfc67a27186558
+DIST uv-0.12.1-crates.tar.xz 42260544 BLAKE2B decb42423e6d5804ff4b12c956e678b14e067263e3711acf8ab7577ba87226a35501c463fbbf9ff0fa149d6a76bffb9c5a46a355dfc4a26f7e7c49f1d4e4accb SHA512 277a830b7de031f27d11973c8503d6311a6521b7a7b7df310b9445e690ce672ac5b880a506c8ace998ea28e1721dc0cf7fc17d43538a63318159634dbd9773c5
+DIST uv-0.12.1.gh.tar.gz 7231201 BLAKE2B d83bab24879f3b92ef842150f3af3d8c08850155f8b7d120c1c4a16f463911b55fe2b2ab6c3e928d654ab1c2db56062094f9ae994bf7f67252ee7ec9d3dc74a4 SHA512 15c84d4b719295c1d9fca178025317d1b808f4c34a572609b78e35382bb12abdc4ba7a3b2bd1bc5576763b655b34b222be15f99c3481419f92a5f74e460ef96f
diff --git a/dev-python/uv/uv-0.12.1.ebuild b/dev-python/uv/uv-0.12.1.ebuild
new file mode 100644
index 000000000000..f53df25bf195
--- /dev/null
+++ b/dev-python/uv/uv-0.12.1.ebuild
@@ -0,0 +1,149 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+RUST_MIN_VER="1.95.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
+}
+
+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-clone/files/virtualenv-clone-0.5.7-fix-test-virtualenv-20.38.patch b/dev-python/virtualenv-clone/files/virtualenv-clone-0.5.7-fix-test-virtualenv-20.38.patch
new file mode 100644
index 000000000000..fdbe3ecb7227
--- /dev/null
+++ b/dev-python/virtualenv-clone/files/virtualenv-clone-0.5.7-fix-test-virtualenv-20.38.patch
@@ -0,0 +1,68 @@
+https://github.com/edwardgeorge/virtualenv-clone/issues/83
+https://github.com/edwardgeorge/virtualenv-clone/pull/84
+
+From d5f6e1fead9bff210a1a1c4f92c80d48db807165 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Fri, 6 Mar 2026 16:24:20 +0100
+Subject: [PATCH] Amend the virtualenv path in pyvenv.cfg command
+
+https://github.com/pypa/virtualenv/commit/44b7bd6d103bdc19860b0ca05c238171c6283008
+
+Without this, test_clone_contents fails with virtualenv 20.38.0+:
+
+ with open(file_in_clone, 'rb') as f:
+ lines = f.read().decode('utf-8')
+ > assert venv_path not in lines,\
+ 'Found source path in cloned file %s' % file_in_clone
+ E AssertionError: Found source path in cloned file /tmp/tmp_lsp66c7/clone_venv/pyvenv.cfg
+ E assert '/tmp/tmp_lsp66c7/srs_venv' not in 'home = /usr/bin\nimplementation = CPython\nversion_info = 3.14.3.final.0\nversion = 3.14.3\nexecutable = /usr/bin/python3.14\ncommand = /.../virtualenv-clone/.tox/py314/bin/python3 -m virtualenv /tmp/tmp_lsp66c7/srs_venv\nvirtualenv = 21.1.0\ninclude-system-site-packages = false\nbase-prefix = /usr\nbase-exec-prefix = /usr\nbase-executable = /usr/bin/python3.14\n'
+ E
+ E '/tmp/tmp_lsp66c7/srs_venv' is contained here:
+ E home = /usr/bin
+ E implementation = CPython
+ E version_info = 3.14.3.final.0
+ E version = 3.14.3
+ E executable = /usr/bin/python3.14
+ E command = /.../virtualenv-clone/.tox/py314/bin/python3 -m virtualenv /tmp/tmp_lsp66c7/srs_venv
+ E ? +++++++++++++++++++++++++
+ E virtualenv = 21.1.0
+ E include-system-site-packages = false
+ E base-prefix = /usr
+ E base-exec-prefix = /usr
+ E base-executable = /usr/bin/python3.14
+
+Fixes https://github.com/edwardgeorge/virtualenv-clone/issues/83
+--- a/clonevirtualenv.py
++++ b/clonevirtualenv.py
+@@ -77,6 +77,7 @@ def clone_virtualenv(src_dir, dst_dir):
+ version, sys_path = _virtualenv_sys(dst_dir)
+ logger.info('fixing scripts in bin...')
+ fixup_scripts(src_dir, dst_dir, version)
++ fixup_pyvenv_cfg(src_dir, dst_dir)
+
+ has_old = lambda s: any(i for i in s if _dirmatch(i, src_dir))
+
+@@ -132,6 +133,23 @@ def fixup_scripts(old_dir, new_dir, version, rewrite_env_python=False):
+ rewrite_env_python=rewrite_env_python)
+
+
++def fixup_pyvenv_cfg(old_dir, new_dir):
++ filename = os.path.join(new_dir, 'pyvenv.cfg')
++ if not os.path.exists(filename):
++ return
++ with open(filename, 'rb') as f:
++ original = f.read()
++ replaced = original.replace(
++ old_dir.encode('utf-8'),
++ new_dir.encode('utf-8')
++ )
++ if original == replaced:
++ return
++ logger.info('fixing pyvenv.cfg...')
++ with open(filename, 'wb') as f:
++ f.write(replaced)
++
++
+ def fixup_script_(root, file_, old_dir, new_dir, version,
+ rewrite_env_python=False):
+ old_shebang = '#!%s/bin/python' % os.path.normcase(os.path.abspath(old_dir))
diff --git a/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild b/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild
index e3a89e5f77fc..f30a6a5b06a1 100644
--- a/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild
+++ b/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.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
@@ -28,6 +28,10 @@ BDEPEND="
)
"
-PATCHES=( "${FILESDIR}/${PN}-0.5.7-backport-pr79.patch" )
+PATCHES=(
+ "${FILESDIR}/${PN}-0.5.7-backport-pr79.patch"
+ "${FILESDIR}/${PN}-0.5.7-fix-test-virtualenv-20.38.patch"
+)
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/websockets/Manifest b/dev-python/websockets/Manifest
index e143f2b819f5..d2247a8b5db0 100644
--- a/dev-python/websockets/Manifest
+++ b/dev-python/websockets/Manifest
@@ -1,4 +1,5 @@
DIST websockets-16.0.gh.tar.gz 458014 BLAKE2B 409323f84f919064f758ad06bccf526d1aafac7aee791b9fd35908081ad13cbd252ca49cefbfdc870e5526da82e641750ee46f0103e53c10f0e9b35f9483982f SHA512 ed0bfe6e6402c1504680e9afcb7478e06a5f1af6c0761e35a9a6192569b59c5cce5d0a9f0aaea35922e499a3968dba409cb8d398829e9dff6466db5cb5b98b98
DIST websockets-16.1.1.gh.tar.gz 461500 BLAKE2B 65cf3cb3d755ce131d9f342ef57c3db4fdc7434479eb2e6a86728976ef4245c18245380a7ffad2f135f9b459fe0f54c9682299caa13e3286535f6766985a0438 SHA512 7eeff69ebf0b92c93149ce030fd92440787c3d3b9007b5b0669f0f37cc4c297bb2a207a7742e0450e3ecf1b973fe0306ac9e5dcb96c0d2d907956279c41b6cbd
DIST websockets-16.1.gh.tar.gz 461790 BLAKE2B 961b0d16b8310f0fccd62ed00abf8922cb9a1713389a83c93094c1aa5104a42c88c5fa1ca03b06cfb46f51e4650af9b2c8215f1527e7523e126b54e0940ad7ea SHA512 9c45fee3eb7bf9e027289a97154bfed0f99ad5e8be29c77fd68a65f6de0de557421fafeda937b10ef1aa9359f9d5b77383dc3cf5b6ba7527de1bc25b674cf30b
+DIST websockets-17.0.1.gh.tar.gz 519834 BLAKE2B 1a1c9a94a4ee0c57e148c4b35019b7435db6a45a910364e5d3eede5642e1e15e1572563e70928f7e13599ba39af067c1b57d93aef3ef5d6eaf3dcaa0ecffe4d7 SHA512 f550107733eceb2aa63874591bf1585f6454a2cec45a0efdbb54b0fee719e5600326a1379e386c7540a20465ff6549ae5a5071262c7b8b3b2652ca9cb3ab6b7d
DIST websockets-17.0.gh.tar.gz 518980 BLAKE2B 20a9c63a46e0a6dac6659b1e6b62ffef94a8a9b0c54bb5873a03084312338ae65e5b0798031ea7f043725c2766d97c5a053c38f5fd2ca5a195aca6c05137200a SHA512 1dc5bd2e932a937056a8702c84925d99e98a73009f06fe39e633c60e3e39f07c3f4d7803b50e58107832e5a566120db311286c8534e6bd70379fe413ec3587ec
diff --git a/dev-python/websockets/websockets-17.0.1.ebuild b/dev-python/websockets/websockets-17.0.1.ebuild
new file mode 100644
index 000000000000..fa4f27c47d22
--- /dev/null
+++ b/dev-python/websockets/websockets-17.0.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_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Library for building WebSocket servers and clients in Python"
+HOMEPAGE="
+ https://websockets.readthedocs.io/
+ https://github.com/python-websockets/websockets/
+ https://pypi.org/project/websockets/
+"
+# tests are missing pypi sdist, as of 16.0
+SRC_URI="
+ https://github.com/python-websockets/websockets/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ test? (
+ dev-python/trio[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=10
+distutils_enable_tests pytest
+
+python_compile() {
+ if use native-extensions && [[ ${EPYTHON} != pypy3 ]] ; then
+ local -x BUILD_EXTENSION=yes
+ else
+ local -x BUILD_EXTENSION=no
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires DNS access
+ # https://bugs.gentoo.org/909567
+ tests/legacy/test_client_server.py::ClientServerTests::test_explicit_host_port
+ tests/legacy/test_client_server.py::SecureClientServerTests::test_explicit_host_port
+ # TODO
+ tests/asyncio/test_server.py::ServerTests::test_close_server_keeps_handlers_running
+ )
+
+ epytest tests --reruns-delay=2
+}
diff --git a/dev-python/websockify/files/websockify-0.13.0-fix-test-with-jwcrypto-1.5.7.patch b/dev-python/websockify/files/websockify-0.13.0-fix-test-with-jwcrypto-1.5.7.patch
new file mode 100644
index 000000000000..d24724637173
--- /dev/null
+++ b/dev-python/websockify/files/websockify-0.13.0-fix-test-with-jwcrypto-1.5.7.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/978400
+https://github.com/novnc/websockify/issues/637
+https://github.com/novnc/websockify/pull/638
+https://github.com/novnc/websockify/commit/f1e281d2c446380a0a8af7575a92b23ad65c6d4d
+
+From f1e281d2c446380a0a8af7575a92b23ad65c6d4d Mon Sep 17 00:00:00 2001
+From: Takashi Kajinami <kajinamit@oss.nttdata.com>
+Date: Mon, 18 May 2026 08:40:09 +0900
+Subject: [PATCH] Replace test symmetric key
+
+jwcrypto 1.5.7 introduced the validation to enforce key length, which
+is not met by the existing test key.
+
+Replace it by the new one which has 256 bits length.
+
+Closes #637
+--- a/tests/fixtures/symmetric.key
++++ b/tests/fixtures/symmetric.key
+@@ -1 +1 @@
+-secret_sauce
+\ No newline at end of file
++mesGV8j0k2hJf5sl83NMrQeMsA3FOmkEOgqvVe1HBgw
+\ No newline at end of file
diff --git a/dev-python/websockify/websockify-0.13.0.ebuild b/dev-python/websockify/websockify-0.13.0.ebuild
index 72e3fba9dab4..4d1e1e170f45 100644
--- a/dev-python/websockify/websockify-0.13.0.ebuild
+++ b/dev-python/websockify/websockify-0.13.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
@@ -29,8 +29,13 @@ RDEPEND="
dev-python/redis[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
+PATCHES=(
+ "${FILESDIR}"/websockify-0.13.0-fix-test-with-jwcrypto-1.5.7.patch
+)
+
python_install_all() {
doman docs/${PN}.1
distutils-r1_python_install_all
diff --git a/dev-python/wxpython/wxpython-4.2.5.ebuild b/dev-python/wxpython/wxpython-4.2.5.ebuild
index 7c9af36db7a5..647db0fbafef 100644
--- a/dev-python/wxpython/wxpython-4.2.5.ebuild
+++ b/dev-python/wxpython/wxpython-4.2.5.ebuild
@@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_COMPAT=( python3_{12..15} )
PYPI_PN="wxPython"
PYPI_VERIFY_REPO=https://github.com/wxWidgets/Phoenix
WX_GTK_VER="3.2-gtk3"