summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-01 03:04:43 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-01 03:04:43 -0500
commit8d04041d08ac162ab85e05cce67bc70c471bcb33 (patch)
tree6540635595d9bd09b8931883a6f7486f1a8356b3 /dev-python
parent8dd15182c470607a18f884956452d134ac91753a (diff)
downloadbaldeagleos-repo-8d04041d08ac162ab85e05cce67bc70c471bcb33.tar.gz
baldeagleos-repo-8d04041d08ac162ab85e05cce67bc70c471bcb33.tar.xz
baldeagleos-repo-8d04041d08ac162ab85e05cce67bc70c471bcb33.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/authlib/authlib-1.8.0.ebuild1
-rw-r--r--dev-python/blessed/Manifest3
-rw-r--r--dev-python/blessed/blessed-1.45.0.ebuild56
-rw-r--r--dev-python/blessed/blessed-1.49.0.ebuild (renamed from dev-python/blessed/blessed-1.46.0.ebuild)3
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.85.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.85.ebuild67
-rw-r--r--dev-python/cachetools/Manifest3
-rw-r--r--dev-python/cachetools/cachetools-7.1.4.ebuild27
-rw-r--r--dev-python/cachetools/cachetools-7.1.8.ebuild (renamed from dev-python/cachetools/cachetools-7.1.5.ebuild)0
-rw-r--r--dev-python/cfn-lint/Manifest4
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.0.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.52.1.ebuild)15
-rw-r--r--dev-python/cssselect2/Manifest2
-rw-r--r--dev-python/cssselect2/cssselect2-0.10.1.ebuild29
-rw-r--r--dev-python/filelock/Manifest2
-rw-r--r--dev-python/filelock/filelock-3.32.5.ebuild31
-rw-r--r--dev-python/fonttools/Manifest1
-rw-r--r--dev-python/fonttools/fonttools-4.64.0.ebuild (renamed from dev-python/fonttools/fonttools-4.63.0.ebuild)2
-rw-r--r--dev-python/google-api-python-client/Manifest2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild51
-rw-r--r--dev-python/joblib/Manifest2
-rw-r--r--dev-python/joblib/joblib-1.6.0.ebuild57
-rw-r--r--dev-python/libvirt-python/Manifest2
-rw-r--r--dev-python/libvirt-python/libvirt-python-11.10.0.ebuild4
-rw-r--r--dev-python/libvirt-python/libvirt-python-12.0.0.ebuild2
-rw-r--r--dev-python/libvirt-python/libvirt-python-12.1.0.ebuild2
-rw-r--r--dev-python/libvirt-python/libvirt-python-12.2.0.ebuild2
-rw-r--r--dev-python/libvirt-python/libvirt-python-12.6.0.ebuild64
-rw-r--r--dev-python/libvirt-python/libvirt-python-9999.ebuild5
-rw-r--r--dev-python/loky/Manifest1
-rw-r--r--dev-python/loky/loky-3.6.0.ebuild68
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.20.0.ebuild94
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-3.3.5.ebuild123
-rw-r--r--dev-python/pyproject-fmt/Manifest13
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.24.1.ebuild113
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild113
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild116
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.28.1.ebuild116
-rw-r--r--dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild2
-rw-r--r--dev-python/regex/Manifest1
-rw-r--r--dev-python/regex/regex-2026.9.3.ebuild37
-rw-r--r--dev-python/sqlalchemy/Manifest2
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.1.0_rc1.ebuild (renamed from dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild)20
-rw-r--r--dev-python/tavern/Manifest1
-rw-r--r--dev-python/tavern/tavern-3.6.3.ebuild73
-rw-r--r--dev-python/tox/Manifest4
-rw-r--r--dev-python/tox/tox-4.61.2.ebuild (renamed from dev-python/tox/tox-4.57.2.ebuild)6
-rw-r--r--dev-python/trimesh/Manifest2
-rw-r--r--dev-python/trimesh/trimesh-5.1.0.ebuild (renamed from dev-python/trimesh/trimesh-4.12.2.ebuild)5
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.12.8.ebuild100
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.12.8.ebuild151
-rw-r--r--dev-python/websocket-client/Manifest1
-rw-r--r--dev-python/websocket-client/websocket-client-1.9.2.ebuild37
58 files changed, 1102 insertions, 596 deletions
diff --git a/dev-python/authlib/authlib-1.8.0.ebuild b/dev-python/authlib/authlib-1.8.0.ebuild
index 6477016f5ed0..7a1391c8aee2 100644
--- a/dev-python/authlib/authlib-1.8.0.ebuild
+++ b/dev-python/authlib/authlib-1.8.0.ebuild
@@ -40,6 +40,7 @@ BDEPEND="
dev-python/django[${PYTHON_USEDEP}]
dev-python/flask[${PYTHON_USEDEP}]
dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/httpx2[${PYTHON_USEDEP}]
dev-python/joserfc[${PYTHON_USEDEP}]
>=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
diff --git a/dev-python/blessed/Manifest b/dev-python/blessed/Manifest
index 32b047f4e4c9..76a7046cb6cf 100644
--- a/dev-python/blessed/Manifest
+++ b/dev-python/blessed/Manifest
@@ -1,4 +1,3 @@
-DIST blessed-1.45.0.tar.gz 14032801 BLAKE2B 65575ba3075fddf46068b9c6c8c476592d3d3d2e28ce6f62ed50d15dc10e7aa9e7c1a000c826a70a0384efaafbfd56fb8dddae39ad72498a2708870ac70fc2b5 SHA512 cb0731d4713a729c53d7e3d79ee03fc4e4ffc96e74f13fcb9b36ce9e365baf8ea05e450798c126647b59ee132e8be6322061a69dd6cd987349ce7e339b4961be
-DIST blessed-1.46.0.tar.gz 14034378 BLAKE2B cd2dd5581b25da1e2566b36b1fe8f110887e7c2f6ed8ec9ca810918343a4b4b4f34256758bbd7df8d984539a4cc4f12ad2d7e2c742590747db5e2d4a0fa34435 SHA512 fe4e3a70c81fbc06e0184482748584829d14cad29029f698edbf638225a9ad03b2a7d3b91cb10ccca0e55008d688d003ee01dad134b57914e39df23841e23baa
DIST blessed-1.47.0.tar.gz 14035743 BLAKE2B b6aeab48f2f1188598507c1ec11ff16837e9f49bc097f659e2fbee285bbb1acda59c058fabab4a9a390655821c2a9e9478056a76e1536b6370dede0ed31cef54 SHA512 887aa6ea815ab49b56b876d252f2cec8c2ddc266a8801e8d7b53e0f94c49ecc6a70e1c9f69d91d0aba02acf686c922c290aaa29b3f6c5e89f092bfcb570863d6
DIST blessed-1.48.0.tar.gz 14036135 BLAKE2B e1a62915b81d77e4224db3fc1fb0b0a3d35877f09eaa4cfe0891787bd41ef6b5eb26c85dbfbd7fdbdc92e365c6674cbe45709e88bc0efc9591d41f10a34aca77 SHA512 24165346feb391cfbff335f32131b4475c4126f2538b257597970f9efbd04b9915aa9d9162e8e4e0f1c32923cd2a2e45c8705f27be21676e8c2e53e8a59e83cc
+DIST blessed-1.49.0.tar.gz 14055928 BLAKE2B ddc5793230d896f6851999c1f519178a026b38002e1149eae03d4ccabdcb56612e536f312d557896725cb88e8cd94bf16a743248d54351b5e324aa2e16a0915e SHA512 6a74f7b5ac374eb34f0d6558aec506e197dc9df809f4460f1d10ac5febf84e7f07afef62dc7423901a9cf3463a2872c87669c8e939d8bcc69213c64d093f00ce
diff --git a/dev-python/blessed/blessed-1.45.0.ebuild b/dev-python/blessed/blessed-1.45.0.ebuild
deleted file mode 100644
index d5a940ac6e30..000000000000
--- a/dev-python/blessed/blessed-1.45.0.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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
-
-DESCRIPTION="Library for making terminal apps using colors, keyboard input and positioning"
-HOMEPAGE="
- https://github.com/jquast/blessed/
- https://pypi.org/project/blessed/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-RDEPEND="
- >=dev-python/jinxed-2.0[${PYTHON_USEDEP}]
- >=dev-python/wcwidth-0.8.1[${PYTHON_USEDEP}]
-"
-
-distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
-
-EPYTEST_PLUGINS=()
-# tests are flaky with xdist
-distutils_enable_tests pytest
-
-# README.rst is a symlink to docs/
-DOCS=()
-
-python_prepare_all() {
- # Skip those extensions as they don't have a Gentoo package
- # Remove calls to scripts that generate rst files because they
- # are not present in the tarball
- sed -e '/sphinxcontrib.manpage/d' -e '/sphinx_paramlinks/d' \
- -e '/^for script in/,/runpy.run_path/d' \
- -i docs/conf.py || die
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # fragile to timing
- tests/test_sixel.py::test_sixel_height_and_width_fallback_to_xtwinops
- )
-
- # COLORTERM must not be truecolor
- # See https://github.com/jquast/blessed/issues/162
- local -x COLORTERM=
- # Ignore coverage options
- epytest --override-ini="addopts="
-}
diff --git a/dev-python/blessed/blessed-1.46.0.ebuild b/dev-python/blessed/blessed-1.49.0.ebuild
index eb807d644797..2d966eb57b93 100644
--- a/dev-python/blessed/blessed-1.46.0.ebuild
+++ b/dev-python/blessed/blessed-1.49.0.ebuild
@@ -20,7 +20,7 @@ KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
>=dev-python/jinxed-2.1[${PYTHON_USEDEP}]
- >=dev-python/wcwidth-0.8.1[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.8.3[${PYTHON_USEDEP}]
"
distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
@@ -46,6 +46,7 @@ python_test() {
local EPYTEST_DESELECT=(
# fragile to timing
tests/test_sixel.py::test_sixel_height_and_width_fallback_to_xtwinops
+ tests/test_sixel.py::test_fast_path_with_caches_populated
)
# COLORTERM must not be truecolor
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 616fe846b54c..d750f30cd3db 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -13,3 +13,4 @@ DIST boto3-1.43.80.gh.tar.gz 1215739 BLAKE2B 11ec7e0b915c4f9abe18425d5ffa539ee6b
DIST boto3-1.43.81.gh.tar.gz 1216141 BLAKE2B d9a59d8ea543bc52a4258ef9ac24c76d943a2a4e00ec4e67dafdeafb776f5f6bfca1f803a6eda6f59df411479de27c952510b88a15c7fc56aff05e05c6ae7b3e SHA512 2fd7d0e7cacd25a5bd6a34aa29533a0ca537e91478b5ec2e59e565b74d44c193e5028aa91c9cd4945f2253ac72011ca7e24d87caf9e218693c5b936c4c7bfd9d
DIST boto3-1.43.82.gh.tar.gz 1217312 BLAKE2B 0db0ca79b4107a3e2c31b9d93bb0e6c7b7638fde96d91eeca4aea93b5a44abef4dc8945580e645012878075a76facb79fec0af7f0cd6146599ff7ea823f4b957 SHA512 69faa2bb7044833adc64b7249ee48bd531c97f91a3ae034cdecd9cd847e6a65da9a29cdb8f71823f3478302a397e9189f7cad924c91ac384846b87abd767a232
DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46bee541110e51fdcd231c60cac0452f4cdfec58ea4041757835c195cd2b8becb3c4e9fd24ad7bc306d90b16af082f63 SHA512 ed110edd551138c5d63ab7ead46a4c9ddb410dea1b5e642045102936af22c4208f357f79fc994434fc6a7df7c16aba99052508103bad7599f8cc558ae1c5f842
+DIST boto3-1.43.85.gh.tar.gz 1219943 BLAKE2B 4fe0a155efcdd5dcc17c91047fab4c59edb71ac6574fc1e6472db83d9b5effb66d69d346767a159f6708d7e2f61f2f59f6bf84557df98eb6fab83b4438f7540e SHA512 3f8ca9eb5857d3376dbc204b4c3755704e6039ddc3363665e7c3a3d764808815b43c3ce0181e19113a51b5e3c8965d3030c875435cf9b872df6e02bb6136e09f
diff --git a/dev-python/boto3/boto3-1.43.85.ebuild b/dev-python/boto3/boto3-1.43.85.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.85.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index a0e5b6899ddc..e5d134fd8b9e 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -13,3 +13,4 @@ DIST botocore-1.43.80.gh.tar.gz 17027389 BLAKE2B 09089ab7e86f369d9160173188edbb2
DIST botocore-1.43.81.gh.tar.gz 17028673 BLAKE2B d2aa2b4106f30ded0a4abf2e703bcfd5e6ec8efa611e7135c36c8fd1dd1ef2605ad1981dc6c0dfd19899b9db14959278157d56493a70b8209ff3c378d6a3c8cc SHA512 11d9e5a86140a8db3020c205f4d6f3159f8b77dcbe162366e2925a7cfde92b25e8e75f12a13566810c15dd321fbe0d86bb260645503bf6b984cffd853174d2d4
DIST botocore-1.43.82.gh.tar.gz 17033461 BLAKE2B fded5d528a205512c30a447c110550d37bcd6da33b3923497c3a07d4959a89b2801bb1de483206771e6787c8b5fa7b4bc93fa7760cb39c959e76183164452def SHA512 041996da7c7d0d7108bd651668b1cbb3a92b78f3e9f00923055583222c122d987dbddb13795b0db053fc4b4eb1d81fada9b2ec8e36445027b7b2dd5476063623
DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b80cc279627174ac96f9b79d85418ecc0442fbd27d7e79ccdf12526ac02489fde4254e360f216103f3cd5ff050b3cf1a838 SHA512 618c0ef0fc89879ee6900606e3378b2876901c4a63ede52529de12898a65e34fc41a8f0ad8ab682b7788626176f9b86904e257b63d88be9d58c53116918b1d12
+DIST botocore-1.43.85.gh.tar.gz 17071353 BLAKE2B 84edcc7b58925e2674af6610760d683e74351dbf53c86d8fb5412739b4705677b2bd66a7f9b904ef917894cf0f1d818821fd3a61730c544d25f13e6ab54a3e1f SHA512 425d67488cfe19cd306792ab3a72e0afff0c269abb46fb26121c302f41bf683f905f480729b21929718e86ac74e390a70c07f52d0fabdc7961e063cfc87f49df
diff --git a/dev-python/botocore/botocore-1.43.85.ebuild b/dev-python/botocore/botocore-1.43.85.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.85.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cachetools/Manifest b/dev-python/cachetools/Manifest
index 07c8355f5998..cdc6742ff530 100644
--- a/dev-python/cachetools/Manifest
+++ b/dev-python/cachetools/Manifest
@@ -1,4 +1,3 @@
-DIST cachetools-7.1.4.tar.gz 40085 BLAKE2B 2cee13235209eb489ef3f2d7ebbea45ed979dfec9de3f949d2d807e45c2fded6f886e22b9eec8cac0ac8e7fc999d4a29426d7b2c094547db0b9b4faec9f9adb1 SHA512 b48cdb38ec88695f7763d104e7d57282a88239e2bbe21c47937c25c1edebc3feecaeff072c9f2a9abfc58155ba92e70fbff4ac5b733e01fe4729267adcc1c040
-DIST cachetools-7.1.5.tar.gz 40500 BLAKE2B 96119b370860f31ed0d7db4b16560aba9715ece56af2f8f1f4edfb2030d824410f64e626c41faf92cce3cb8236e0a712fc699c9cb62457cd4fe373e4f8a6da3a SHA512 45a030ce744e6bd40ffed29f6471970d4b0d7a6d5fcf9c3bbe2cfb2d338df2c01dca18414256480227081d2ce50cc9581fb9b59a8b477ae7244cfe64b46a3d6a
DIST cachetools-7.1.6.tar.gz 40572 BLAKE2B b11f757a9cd1e57e39484ac72518a26389f5cda85b08f461c7245e9b7b3a214a48cbe0b903538532a1fd15086215e7824bd49fd97c68066d712faeb28f238e1c SHA512 5628ee31363b6869250309ecf075289480165e4a6631105f73b4ab27892e05e55d7107e48cd339bc4e18e07f58fb07328309521d28f0e3640d83ea9a35b2ef65
DIST cachetools-7.1.7.tar.gz 40680 BLAKE2B 587de1ddfc5673655e76376d8b535a8f2fc759ae52e2be8c98921d4c1e98f1a5279bc6bb371b7410a4b3f8c01982686ef9b3d5494b282373e24458247f36ebf6 SHA512 b0ecf3cea4f94ea5297fc6ee5ab164b80154d9fc17f7cf7d8e292a8c7dfaa65b0d573c78276b41263006daae81a2e29702658d3c0a5688560fbe5058070a395a
+DIST cachetools-7.1.8.tar.gz 40909 BLAKE2B 7079716f3eaaa3d2f70dbc6806920f08c971ef107c4dcdee83cf922ad22bdfbda8d1fa09b0c32c139e89c2e9390a1c8980ddddff81c100ee28fecd51a8e29ba0 SHA512 702f07689e1f6a0fd7f2bd614d198f936df85408cc0ca8ef15b96cc4e35dfb0a511377f0a62f92e3b388162e9975e45fbadf0130679b175c2cea853ace531ecf
diff --git a/dev-python/cachetools/cachetools-7.1.4.ebuild b/dev-python/cachetools/cachetools-7.1.4.ebuild
deleted file mode 100644
index c3353be4b141..000000000000
--- a/dev-python/cachetools/cachetools-7.1.4.ebuild
+++ /dev/null
@@ -1,27 +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 pypi
-
-DESCRIPTION="Extensible memoizing collections and decorators"
-HOMEPAGE="
- https://github.com/tkem/cachetools/
- https://pypi.org/project/cachetools/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local -x THREADING_TESTS=1
- epytest
-}
diff --git a/dev-python/cachetools/cachetools-7.1.5.ebuild b/dev-python/cachetools/cachetools-7.1.8.ebuild
index ec602b06cbfd..ec602b06cbfd 100644
--- a/dev-python/cachetools/cachetools-7.1.5.ebuild
+++ b/dev-python/cachetools/cachetools-7.1.8.ebuild
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 83b98527b72d..a0f48c1096ff 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,8 +1,8 @@
-DIST cfn_lint-1.52.1.tar.gz 4487553 BLAKE2B 7424bb7e2f02d9c825db9c2dcbd0b7601baee7fd828b32458c8f18b12b97a1d0f2752ffbb16c7d4b779b488d2b86521864561cfa51122b489342463e277c7fe7 SHA512 3d10dd41165708b2c27d7aa75d2177e270ebd3da92543b17f164e12e3b07dd188cb781fcc73be272741cdb9f4dae95ec01bf699c62f6f62b800495c90d52dc44
-DIST cfn_lint-1.52.1.tar.gz.provenance 10005 BLAKE2B 9745d99328ace70220263a5298f41d95f49d192fbef8130a4052681af0a06e18d57e25ad7922e4f93a535fd9b2ead070eb3b7f652a870c74d8a60e84bad3aea7 SHA512 166ff9ec2ceef4fa4bcb8b9b152a8423e976d9192bb3c7cb1621c620bbfdda4949ef3780b802fae278078853776eef47ef0b53ed39f571962b9cb54b6d64a356
DIST cfn_lint-1.53.3.tar.gz 4614920 BLAKE2B 3243d3c1ce7a96cb8d19d2f648ebc933f54b4fbb821f69d4e3787c51427c3cd2dc4d7a1de93f60ff41b717a15d3e610351fa36fedb13d105d65ad3df901d7fa4 SHA512 2f9dd8c3472e954cb9fd2c44659bedb6ad7b490578cbf954d6624d50fa75adb375c549d1cbc0536acf546b8f285d9409885b01e50566be6ead3d21408963994f
DIST cfn_lint-1.53.3.tar.gz.provenance 9707 BLAKE2B e7589b6c5b808a0f752fa91e603b62b5042757307d0bc7383cc8d380bd5f945a7391b3a357fd494d466ed542017b358658b9f2fc18e07abb390ce5ae6ae77427 SHA512 d70c96e40039e6ae1adfe788e5cea1c4453b788b1ea9392ee289426419b1264a5da3fb0e4064ad029c599fe22ef69e97302f17b89adb8aec4ed3f05bc0934dc7
DIST cfn_lint-1.54.0.tar.gz 4584764 BLAKE2B e901d2eef452cd3b059e413c0cf095b3c846adf4a07f1b32f8e04f064d7fd0dd08a23b6630d546a70d49327423524e69dd04c5a413674c2d1770a0a906aaaeee SHA512 6d64cecf3ece86a1941d0e587ee5875ceaeb84dacaed9b34dd9fab8fcfdec3f419d519b54848d5c0deb29d7e3e87f1460fd302ed7e690a2d3e979086a9b8aacc
DIST cfn_lint-1.54.0.tar.gz.provenance 9942 BLAKE2B 33e3aab9c9812b942847e3c1e66501cb732a7c2d787e076eb0e54a1f762010a7470c679bd1b57e47f724c60b601bf29647907832cac56f23cfe2a46320e553f0 SHA512 c62230d36ceb34ecae3422d00ada9813480942db887c2ff53a5c817e07d5fc7e54b36023e334c4edfc3fee4bea1010393d81289426cf1d24acd53eb8ec5aadfa
DIST cfn_lint-1.55.1.tar.gz 4646651 BLAKE2B d3ca76fb15a3695019334345897423e26ac0341a7c352a9c4b5a0407b37f9398f1f9e37372603d0a541760eb5e1506dc4bec7a48fa3b480f17e28bf2c42bc0b9 SHA512 b3f9968911ee841322d482c83238dd157f28639dec1088141ac06be7c88d88d94e500f70b912ed72f50993bbb7236d33ed19fdd270f00cd28f16c0791d5efbca
DIST cfn_lint-1.55.1.tar.gz.provenance 10179 BLAKE2B bee20ea785698e115569fa307d03ca09f1d6e8fcacaf418dfe0fc91553f3a7be127c1bff39804930c7d900007efe4cb31f1fb943064e28fad760d38990e7c729 SHA512 c71b2a1463cd290bb0532868b7f7f0ce047a7acdf18304240a15d3b472d8926a09a58665a89cd5a70913604bf27f0d75d93a567f42c8ebf20e2dcb6e9c71337d
+DIST cfn_lint-1.56.0.tar.gz 4741346 BLAKE2B 610ed9da227212846ff36caf13e01031e0dfd2021fa9a0a5e619cca7196669ad833878707016a7870e53cb18abb0d57a407b2c62e8ab0f8ebe5506667eaf8659 SHA512 d6514d0c6e0b51d0c9a24d1ecb8965c78923027529fcf964c5146c70efca493eb76ead77c633c1f9e11cf2486decc2afd4f945e64f2aacd0275714303480c6dc
+DIST cfn_lint-1.56.0.tar.gz.provenance 10175 BLAKE2B f0086aa9fb5358d28982dc5920e5d2658fcef45383f7fc6d0daf5d8be5d40251767203f8af17c3fbbddf581917b824f6e87a5f1ce0542c0f3d56a6ef57f0bb84 SHA512 07d7e71bdd6d201ccf6bd5edba4b8aa10729acd84a1ab82ef0725039c44b6dd990037dbf79eb73b4abc1989e5573b7e904ed467d2e6b7886993f3756c858d6a8
diff --git a/dev-python/cfn-lint/cfn-lint-1.52.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.0.ebuild
index d74999fb71cd..60bfe8f96df0 100644
--- a/dev-python/cfn-lint/cfn-lint-1.52.1.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.56.0.ebuild
@@ -17,10 +17,9 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
- >=dev-python/aws-sam-translator-1.110.0[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
>=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
<dev-python/jsonschema-5[${PYTHON_USEDEP}]
@@ -48,17 +47,15 @@ python_test() {
test/unit/module/template/test_template.py::TestTemplate::test_build_graph
# requires git repo
test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
# crashes on 3.12+, probably pygraphviz
test/unit/module/test_api.py::TestLintByConfig::test_graph
+ # scripts missing from sdist
+ test/unit/module/maintenance/test_update_specs_from_pricing.py
+ # Internet
+ test/unit/module/schema/test_manager.py::TestUpdateResourceSchemas::test_update_force
)
# from tox.ini
local -x AWS_DEFAULT_REGION=us-east-1
- epytest
+ epytest test/unit
}
diff --git a/dev-python/cssselect2/Manifest b/dev-python/cssselect2/Manifest
index bfdf92c0c92e..594eda29c19c 100644
--- a/dev-python/cssselect2/Manifest
+++ b/dev-python/cssselect2/Manifest
@@ -1,2 +1,4 @@
+DIST cssselect2-0.10.1.tar.gz 35653 BLAKE2B 67d81963966913f12540445f24aaebcad9aebeabc92203b883dfbcd277b4a486eb412cdde243a62123f052f9242eb55ea9a0048596b88e29b3e2320855ef89d2 SHA512 8a95e1c069e392f460836f94cc41f3764db25303360e51d32d005b3763c2181cb60e05fa234b9cfe363f81b0f09068fd08c8552cdb21cb3f77ace2c800c01583
+DIST cssselect2-0.10.1.tar.gz.provenance 9696 BLAKE2B 4ab09c007d60cd3debdb8473ad3395597dd9a114c1571f85e7999803479997b1c026b0f7f4932f1381a85b42e0598a1e946aefed8a310696517d5fa59f13ce3b SHA512 18ddfd5c73eff89225612312b8ce412d8a3453a3cb5e7755b3b095b68951f35b901f5ad0283ae070ae44d67df20118d9e902217a3ee53cb06f78cf03d5b22111
DIST cssselect2-0.9.0.tar.gz 35595 BLAKE2B 983a9aa44b4f570f5987731054d872f43106a1f09b09fe122757accd127e176d8759f87a7efeb5a6dccf2fb53cc77e37d407c4ca0f8526a54ed52b6d061f8dea SHA512 2d0bc81e707fb753dddb0b726b53cf0f4e5294a70193df93fbdca6987a81d7af5d39600172a164653f6e3359c6e06f6cf23b6d5756c87137de0ace6bd7bd546d
DIST cssselect2-0.9.0.tar.gz.provenance 9413 BLAKE2B 8f715ac03ce29bb17f1f92ea7a94a4de7c5ee5861ed874e559f57ee931780485d4800c8bf50b60647e7ae665d6b96fa0a5a5a1cf343bb615531ce3447ed766ae SHA512 6e0442a97fe081d1dfa8b79907d381145e848f055d398774d1aa83c8986b940b2026c3378293264ba7020eb2be0148c7ac3e99f9c582721f346ce0c258062bba
diff --git a/dev-python/cssselect2/cssselect2-0.10.1.ebuild b/dev-python/cssselect2/cssselect2-0.10.1.ebuild
new file mode 100644
index 000000000000..ed61fa6ac4b9
--- /dev/null
+++ b/dev-python/cssselect2/cssselect2-0.10.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/Kozea/cssselect2
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Parses CSS3 Selectors and translates them to XPath 1.0"
+HOMEPAGE="
+ https://doc.courtbouillon.org/cssselect2/stable/
+ https://pypi.org/project/cssselect2/
+ https://github.com/Kozea/cssselect2/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/tinycss2[${PYTHON_USEDEP}]
+ dev-python/webencodings[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index d351908fc994..622b7b2f6dd0 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -4,3 +4,5 @@ DIST filelock-3.32.3.tar.gz 218135 BLAKE2B 5b4419e69a892ef0df4afac008fedf19025f1
DIST filelock-3.32.3.tar.gz.provenance 9622 BLAKE2B 67bc8f6e8909a9b1ce99cc53b627df63762019b1075f796f9027e70d196944b6ea2e3e63dc6e759077bda139912cdbb8c1c298f591fe1c1c90a12219404a02d3 SHA512 b2ac1f0f6a087605da3bbbffec6918661aa164991ae33e0f6098039eae6cbc1e6ed0f6bee2073d86f1c30fc84df1e3b1a0893882d697c5c494b76c51568770a9
DIST filelock-3.32.4.tar.gz 222126 BLAKE2B 8061bbb3d3e2e78c685764a4789caf1ba8196e179a6595caca754dc34c905a4543b24343077808aae8064d3875657c3bcb9000e311f6728ce8776c9e491f5fb9 SHA512 199cbe99519fa152dd1fefa208306fd4c0cc9c48daff0aded91fd56171901b0a1883f0ba4ed2c0107363e028a0266a4f0af9fde55170d94d7e569204b296a3cc
DIST filelock-3.32.4.tar.gz.provenance 9716 BLAKE2B 7e5776c9c7a32e7f67f61b344d3d83c540e6b6497a2e12a31623fc1c8e9e46bf140612b125a8c980f5659275cfa4f42b58663fc04725f284591f3ca85b4939ca SHA512 4239c3c48c4e23f5ad14dabb82f53bd150a1f4a85f9f46b2c88a4483b8a18425fd8d2ff1452df84bb2dfe9d256e7c24f6bfcc8753b0f6d6e3f20382fe1edbf8c
+DIST filelock-3.32.5.tar.gz 222838 BLAKE2B 61ea53f89ec434d8ab49cf468fed811486e4c5638b5c14df5d38e441ec1f45533dc406bba401ce871792eda20d4d0c9040553ea0e9a39d06db7a9892ce0323a3 SHA512 2ac9dd42e244cdf7c45527743c6f42b67e955b4001449237a2a016c5bc7bfc52094298f50e89aad1a41a940b986f16a42923f737b8044ba2d9398a9bb045d231
+DIST filelock-3.32.5.tar.gz.provenance 9622 BLAKE2B 076bfaf9260ac890f689d84bb0b85d8807536804e14c79c5843a29c10806cf4806b77862761daf9b01a053af73aa611abe0af839d8792d29b1063c657c83f121 SHA512 3df81c5cda929a05ed494b06359431d42c2522b7cb0a640ca3a13657486f23d270cc930b28cf6e5cc948462d1fcf6eb6268b9c82de820b3dcc2c11134d485c8a
diff --git a/dev-python/filelock/filelock-3.32.5.ebuild b/dev-python/filelock/filelock-3.32.5.ebuild
new file mode 100644
index 000000000000..1f38026c0588
--- /dev/null
+++ b/dev-python/filelock/filelock-3.32.5.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A platform independent file lock for Python"
+HOMEPAGE="
+ https://github.com/tox-dev/filelock/
+ https://pypi.org/project/filelock/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
index 638c9c3177da..1b87ea79407f 100644
--- a/dev-python/fonttools/Manifest
+++ b/dev-python/fonttools/Manifest
@@ -1 +1,2 @@
DIST fonttools-4.63.0.gh.tar.gz 4031830 BLAKE2B 8cdb1d9018a44898fd792ee538c88443ecda34d7c896d280578d96b80c2f80064ad057b1e4bcb4a865dd706eb3605e86768eb141317fdcf5947a99fc873a7421 SHA512 a2d8df4fd11f36c45e838953d6c8bf1e25999382422d5fc3fe3418c985c06f30b52073f738278cb2a7b19da6e227e5ae709f016661a17e7ae96023b7a762365e
+DIST fonttools-4.64.0.gh.tar.gz 4106541 BLAKE2B 5bdddac2b811e47567948a48bef0de7c74510b3334bf0710d08986c41f2c9b4d41a16fbc2266ed55923197602b2ecc8525ed0ebfd4636518eb64ee13db4fee9b SHA512 1cf3d8ab10931e6eca3f54e2d365a946413d90e2a8fe0405252db14a51e2908c109c6a65f7b0fb5fabaeb0e30eb27b5b737bf2d1b75a3137806bc88f140a0faa
diff --git a/dev-python/fonttools/fonttools-4.63.0.ebuild b/dev-python/fonttools/fonttools-4.64.0.ebuild
index 1d2fdb7145dd..fdf4877e363d 100644
--- a/dev-python/fonttools/fonttools-4.63.0.ebuild
+++ b/dev-python/fonttools/fonttools-4.64.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index f84fcd46da30..4faaf0bf0846 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -2,3 +2,5 @@ DIST google_api_python_client-2.198.0.tar.gz 15060142 BLAKE2B 07d58c36776971c6a6
DIST google_api_python_client-2.198.0.tar.gz.provenance 6072 BLAKE2B f7957dc0989d77820a9e2d148af898fb042db7fcc32683d9b502068756cb53f4339288246e55822cd5f3bd52c1e7fd227cd2692752899966b1942886079352ed SHA512 d382b0d170c115202e286befada8bbac7f53c4c99cb8705501f3d17ca15e928d7aba184259df70540d2266f0575817ee4dbd9ec462144ba33c14c22a00f891a5
DIST google_api_python_client-2.199.0.tar.gz 15394941 BLAKE2B 72906a036b511014ef0ef165717e6250ac796ebca0077c88340be6eb31cab4e0a0b336c7314e9b3183829d371fc20c36a7e5ef32913eea1a9941dbe1241a970d SHA512 1a143cf36999e91546dc091bc0aa9495be7c23d2384bf24f560dad24cd1268fef86b7305fd98ebb65e48eb6b06728c8a9caef37165c573518cc20bbec601c37d
DIST google_api_python_client-2.199.0.tar.gz.provenance 5937 BLAKE2B f0dec19e2309361a55bb6af142dcd19c807c66d6485f361621f5d8d494b1b06a2873dd88e713177fe3db233921744b23bd0590e3ff5fd97aefbee8b6ada8f945 SHA512 e240668ef1cba9ee8835be95fe183f4a330a526e83fe4c1604ef02dd6c4f390620d37d74c3ecfd4763a20d008239affa87ead00391bcb14e93d5b29940ca6077
+DIST google_api_python_client-2.200.0.tar.gz 15488849 BLAKE2B f38e01679acaf337fa8df836c94b1cb455120df6e3591214f9575b10b7e6c8fbe1b15e61ed6ae42723e1918f868d777d990d624a08c70ae6968ad1a44c6f1eee SHA512 f330c036ff112deb968d23c463bc581bd4905c1bb1fa4d62e13db9e1ea2a02c5a7a37e71881abd3cf62af85f7e2a476164a2258ff1a1eb1bbf5cbcb87e5cb555
+DIST google_api_python_client-2.200.0.tar.gz.provenance 6109 BLAKE2B 58e6f7e2f3e09fc743969af1449b8df365416dbbd5a086fddddc70b8c75b799f7e88ee12119464a1e6c91712a148e751c31638b53fa6742432fb524a6fc2d8a6 SHA512 7fbdf1a0dece6e49dc6da6b4445cb5e00eb929c61156a13487d8df4dde9d6a7a7524bc72951fd3ef47e89b127e27985f12f08701dd3cf28e7cbcb1b483a211bc
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild
new file mode 100644
index 000000000000..946b92264cbb
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="
+ https://github.com/googleapis/google-api-python-client/
+ https://pypi.org/project/google-api-python-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
+ <dev-python/httplib2-1[${PYTHON_USEDEP}]
+ >=dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/uritemplate-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # require Internet access (and credentials)
+ tests/test_discovery.py::DiscoveryErrors::test_credentials_and_credentials_file_mutually_exclusive
+ tests/test_discovery.py::DiscoveryFromDocument::test_api_endpoint_override_from_client_options_mapping_object
+ tests/test_discovery.py::Universe::test_client_options_universe_configured_with_mtls
+ tests/test_discovery.py::Universe::test_universe_env_var_configured_with_mtls
+ )
+
+ epytest tests
+}
diff --git a/dev-python/joblib/Manifest b/dev-python/joblib/Manifest
index e0f16906a0c3..c955edde0072 100644
--- a/dev-python/joblib/Manifest
+++ b/dev-python/joblib/Manifest
@@ -1,2 +1,4 @@
DIST joblib-1.5.3.tar.gz 331603 BLAKE2B 391b86c45bd98e85b485edab100ffd7704d1a9389c0db3d1f557bcf0d9dc161e95d297a54ce6069c505ea927a4dd1936273edb839534d676b939a5376d380323 SHA512 221fe426aa4c90d75080b63bf6bb0b9c61e4ae90bd2a734d2b658013e9a00125bc14574d475789b4d8d246a1a5b5c6f67754e639080de6ecb9a481d1d124c0ed
DIST joblib-1.5.3.tar.gz.provenance 9259 BLAKE2B 77e44ecd74aaa05838a8df6814ac70cad6a0e8887ea1864fdd3e759341760c65a4593ad192131570b0cb4e263b15acd8b10f770e65a0a10341bada2f2a573cc7 SHA512 82403c2d35fcdb83e8c961e587afa61ebff36a3b9a3d216549283cb5bbdd788a93e5a0b0107e0c8dd5dce18f23e5af0d5354f1c0f828ca50692a9fbf40545264
+DIST joblib-1.6.0.tar.gz 327903 BLAKE2B 238fbd005b683feca890ff026cafd038d0d5f1f8ffc2d12c1640e150c0044b9659ca15bd06e7343bc452c4da2ee5fdf17bca568523f7e938570e808be3cdbaf4 SHA512 9b5a92ed5403a586dea4b54d051cfd0f15af2e74acae6783301cf8c50762190b37e873b892c3514686d8f070d5b98048065f0b9ce37dcb521644915f952cee5f
+DIST joblib-1.6.0.tar.gz.provenance 9684 BLAKE2B 384e701e54a083622d080a65c064d0b4fb534df2bbb5d1ccc677bce525babc39949907b2948923ad69ec7e76a6d8884fa9e6f58cbcd899eaf707a32e902aa983 SHA512 2dbaf1faa05d2b5c3c3384768b60fed42b399e8aeb69d93a9dc447483f6245f8d2ed78f1d1141447a99f3f13e6168ec7daeed31c5923a8dc5bb6e89a5a9759c2
diff --git a/dev-python/joblib/joblib-1.6.0.ebuild b/dev-python/joblib/joblib-1.6.0.ebuild
new file mode 100644
index 000000000000..4fb305746e5e
--- /dev/null
+++ b/dev-python/joblib/joblib-1.6.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+PYPI_VERIFY_REPO=https://github.com/joblib/joblib
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Tools to provide lightweight pipelining in Python"
+HOMEPAGE="
+ https://joblib.readthedocs.io/en/latest/
+ https://github.com/joblib/joblib/
+ https://pypi.org/project/joblib/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/loky[${PYTHON_USEDEP}]
+"
+# joblib is imported by setup.py so we need ${RDEPEND}
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/threadpoolctl[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # https://github.com/joblib/joblib/issues/1362
+ joblib/test/test_memory.py::test_parallel_call_cached_function_defined_in_jupyter
+
+ # fails over warnings from numpy
+ joblib/test/test_numpy_pickle.py::test_joblib_pickle_across_python_versions
+ joblib/test/test_numpy_pickle.py::test_joblib_pickle_across_python_versions_with_mmap
+)
+
+python_prepare_all() {
+ # unbundle
+ rm -r joblib/externals || die
+ sed -e "/joblib.externals/d" -i pyproject.toml || die
+ find -name '*.py' -exec \
+ sed -e 's:\(joblib\)\?\.externals\.::' \
+ -e 's:from \.externals ::' \
+ -i {} + || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/libvirt-python/Manifest b/dev-python/libvirt-python/Manifest
index 8c6d6b9a0856..ce0ec5d02d4d 100644
--- a/dev-python/libvirt-python/Manifest
+++ b/dev-python/libvirt-python/Manifest
@@ -6,3 +6,5 @@ DIST libvirt_python-12.1.0.tar.gz 243658 BLAKE2B 828305549625449ccf0d3e48c5b3b7a
DIST libvirt_python-12.1.0.tar.gz.asc 833 BLAKE2B 3f5b0dcf325b43b99637eefeecff4c9a0bf96e1ecccc4c39d6f9ce050652f35f24e633b320afa8237ad29c569aa1a0b2fd5f40d42ce789db8a71b8c0e20efa20 SHA512 68c71bf84088ef5e20216312f3c196e519088d31e9952162bf16f5a7bb20210203f3f6bdfb8939bb595a46161f26ba05495bf749d4d25be58505cc8618d94c20
DIST libvirt_python-12.2.0.tar.gz 244689 BLAKE2B b8591860f6cefd160535f70b17afdf15f13895b898c544e187859b8763e75133f20aac5925dc1e44d2f084974a3f2ad28db0d6276d56c5f7a586f21d9982369b SHA512 6aaf5375113f182f39fe80729c8151e18ddd4a80ea50ed12f3d5c7dcb346596983d4236cd85744f66e54ebde51007f8645984fd698fc9727cf6f9e83731fdf97
DIST libvirt_python-12.2.0.tar.gz.asc 833 BLAKE2B 2a6365eab211414f15b55f4769fa3f7789522700266be4fc8fe852ba02c701a9f58c2b72cd3210447572c6c0e526b71405f4a19c2e5cd0f71e66445c32647776 SHA512 73edd0a887e1f5bc91f8d27c0e800d750a6005e01c726f9ff72b667a7bc6527607d98a18a5b66194d4bd35fc5b06481c34f6003c5c2c7cb882c6a9bd11765d4a
+DIST libvirt_python-12.6.0.tar.gz 252693 BLAKE2B 17d0760d5f56b17ec6bd738e6a4f25d57ce411edb4db2fe3f5e0ff2fae670583973d8ab6b0eb1fe7acbcb2d781e6a628ded62e08ea2ff85695204ce144f3058c SHA512 e43a3ee2c46fdcb82c65239639e38683067fb0492c0dc26e5435138435d612277f3ab08b7e73a933b07ad9e2f411feb82e84690e82f906cfcfc9f3aa7b5f3c42
+DIST libvirt_python-12.6.0.tar.gz.asc 833 BLAKE2B edf2e70a0af3ba13e2a31bad7036350ee5e0a411a87a02a15ff77e05c2d7bb451f90c343691cc3f56d2b555e83975476e1042455ffb96bae7f515c8db805ac25 SHA512 884cab9736a723b16232e6b7062cde573180c75616b080edad96ace1f0ae62a4fbca0e2dd09e3e460403f667cd0a7e942e2594b742c071a437546a7d79983a4f
diff --git a/dev-python/libvirt-python/libvirt-python-11.10.0.ebuild b/dev-python/libvirt-python/libvirt-python-11.10.0.ebuild
index caed9a4cad29..abaf49c3f064 100644
--- a/dev-python/libvirt-python/libvirt-python-11.10.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-11.10.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
@@ -41,7 +41,7 @@ BDEPEND="
test? (
dev-python/lxml[${PYTHON_USEDEP}]
)
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
+ verify-sig? ( <sec-keys/openpgp-keys-libvirt-20260831 )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
diff --git a/dev-python/libvirt-python/libvirt-python-12.0.0.ebuild b/dev-python/libvirt-python/libvirt-python-12.0.0.ebuild
index 43f4d608712b..abaf49c3f064 100644
--- a/dev-python/libvirt-python/libvirt-python-12.0.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-12.0.0.ebuild
@@ -41,7 +41,7 @@ BDEPEND="
test? (
dev-python/lxml[${PYTHON_USEDEP}]
)
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
+ verify-sig? ( <sec-keys/openpgp-keys-libvirt-20260831 )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
diff --git a/dev-python/libvirt-python/libvirt-python-12.1.0.ebuild b/dev-python/libvirt-python/libvirt-python-12.1.0.ebuild
index a6ce544f06a6..d38436112d50 100644
--- a/dev-python/libvirt-python/libvirt-python-12.1.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-12.1.0.ebuild
@@ -41,7 +41,7 @@ BDEPEND="
test? (
dev-python/lxml[${PYTHON_USEDEP}]
)
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
+ verify-sig? ( <sec-keys/openpgp-keys-libvirt-20260831 )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
diff --git a/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild b/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild
index a6ce544f06a6..d38436112d50 100644
--- a/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild
@@ -41,7 +41,7 @@ BDEPEND="
test? (
dev-python/lxml[${PYTHON_USEDEP}]
)
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
+ verify-sig? ( <sec-keys/openpgp-keys-libvirt-20260831 )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
diff --git a/dev-python/libvirt-python/libvirt-python-12.6.0.ebuild b/dev-python/libvirt-python/libvirt-python-12.6.0.ebuild
new file mode 100644
index 000000000000..e7c2af787d5a
--- /dev/null
+++ b/dev-python/libvirt-python/libvirt-python-12.6.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1 verify-sig
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt-python.git"
+ RDEPEND="app-emulation/libvirt:="
+else
+ MY_P="${P/-/_}"
+ SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
+ verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ RDEPEND="app-emulation/libvirt:0/${PV}"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="libvirt Python bindings"
+HOMEPAGE="https://www.libvirt.org"
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-libvirt-20260831 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.asc
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_compile() {
+ # setuptools is broken for C extensions, bug #907718
+ distutils-r1_python_compile -j1
+}
+
+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/libvirt-python/libvirt-python-9999.ebuild b/dev-python/libvirt-python/libvirt-python-9999.ebuild
index a6ce544f06a6..e7c2af787d5a 100644
--- a/dev-python/libvirt-python/libvirt-python-9999.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-9999.ebuild
@@ -41,11 +41,12 @@ BDEPEND="
test? (
dev-python/lxml[${PYTHON_USEDEP}]
)
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
+ verify-sig? ( >=sec-keys/openpgp-keys-libvirt-20260831 )
"
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.asc
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_compile() {
diff --git a/dev-python/loky/Manifest b/dev-python/loky/Manifest
index 57aaaac6d81a..59ad693f8d19 100644
--- a/dev-python/loky/Manifest
+++ b/dev-python/loky/Manifest
@@ -1 +1,2 @@
DIST loky-3.5.6.gh.tar.gz 146002 BLAKE2B 47ec7766d0ce77166af31d8ed8b58266e8184eb31f98eef9b6d13f0e3ef458aa940b70c1291addf9cfd73ebc0334c44762679acbcfa7186a4275354872146242 SHA512 8ad7e81c43cc2e15e0504709536995ba8b6c493cbf9a07530c93e63afb47af2a679ee7a82b79ad1e8e2f825d1502d21c1954beda4fe9e8d94b6607847a87bc52
+DIST loky-3.6.0.gh.tar.gz 160577 BLAKE2B 0f3c88bbd18da00d7735ad3b2ce8f712029f6b8b38bbe5d47a67d98c420e6ce64658bdb08d92338fd36dbc37030717dfc205f0041a433b9f082262cb2f37c786 SHA512 2ee00b545578a7c224d7cf1fea2b5b7d282d42dd2cb57fed96eb9f8df5b9478aff9b8f6b7d19ed62901f3e1baf7c0747991ed3f9347be1bea330ff5ae70be4b1
diff --git a/dev-python/loky/loky-3.6.0.ebuild b/dev-python/loky/loky-3.6.0.ebuild
new file mode 100644
index 000000000000..60592d1ce3ae
--- /dev/null
+++ b/dev-python/loky/loky-3.6.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Robust and reusable Executor for joblib"
+HOMEPAGE="
+ https://github.com/joblib/loky/
+ https://pypi.org/project/loky/
+"
+SRC_URI="
+ https://github.com/joblib/loky/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ EPYTEST_DESELECT=(
+ # docker, seriously?
+ tests/test_loky_module.py::test_cpu_count_cfs_limit
+ tests/test_loky_module.py::test_cpu_count_cgroup_limit
+ # hangs, and even pytest-timeout does not help
+ tests/test_reusable_executor.py::TestExecutorDeadLock::test_deadlock_kill
+ tests/test_reusable_executor.py::TestResizeExecutor::test_reusable_executor_resize
+ # Python 3.12 raises an additional warning due to the use of fork()
+ # in a multithreaded process, the additional warning breaks this test
+ # since the expected warning is no longer the first.
+ # This is harmless, skip test for now
+ tests/test_worker_timeout.py::TestTimeoutExecutor::test_worker_timeout_shutdown_no_deadlock
+ tests/test_reusable_executor.py::TestResizeExecutor::test_resize_after_timeout
+ )
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ # libffi gets loaded somehow
+ tests/test_loky_backend.py::TestLokyBackend::test_sync_object_handling
+ )
+ ;;
+ esac
+
+ # high memory test needs a lot of memory + is broken on 32-bit platforms
+ epytest --skip-high-memory
+}
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 689d018fa10c..92c12d94c6d8 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -2,3 +2,4 @@ DIST openstacksdk-4.17.0.tar.gz 1399124 BLAKE2B 0dc91a7afc378edf6e13e658832bba5c
DIST openstacksdk-4.18.0.tar.gz 1403478 BLAKE2B ae51d239ee397bff72bc28c567bcac2df89d44324f299f78bd8dfd6e1f56877ad1a87016fd330db74ddfe763b71f848a1f9d2669d2b1fc02e3343d94bf0d2871 SHA512 b88c786cb5e21e878b434f383d5b90d6268838c4649f7c9b2c5f23d9f5418fea03cc061283ba07dee9b9842a801434cf77a6db753a5e6abccf7f5c0eb7af43bf
DIST openstacksdk-4.19.0.tar.gz 1438393 BLAKE2B bc20db082de592a141fde96fc9c5ef046106fc6ebdab440f030680e420b832f155e7f0baebb63ef5cfffcfb449b7e529d641bb680ef2bd90fed8f9d37fbbd5a2 SHA512 5ae2189ffb635b7d94d52aa30260f14284ca0ee8a3505d853dff80d6a6f88a1a19edfb116c96353be6aea66ca724e50ac9200071ffd179bad76133471e360165
DIST openstacksdk-4.19.1.tar.gz 1437828 BLAKE2B 22e3b4e14547673562a1c1878a3e4d7484a57bc4b2ca01c9ffa0961b76af05ed94101b45a734f1443177d93c629cc8cc68d3162c1495c9cd44c314d9c72365f8 SHA512 9fafbdbcaf9f25240f93726cc6d7c864289473ec456aa6f85605e17ecbd41245f06782213157ad5ca775344ba2f4dda61c4dd55a70b7bc7c3ff70b74c7afcf83
+DIST openstacksdk-4.20.0.tar.gz 1440710 BLAKE2B 882599b63bf119aedef1eef1729e09dc775f66459bd924d1072dad30f468f81eebf6908e2661ad1a5d1f4acdd6d473925ce0aee5d129fcc2570c399ce156f032 SHA512 a22bc39707292c7d6d741d434fc79866ce46868bceb2c0ccb729cfd7768d535ff5afcfc4f432cfffd6a064fe3763a79e7dc4c67580108d7cf24bac2a59d4f5ea
diff --git a/dev-python/openstacksdk/openstacksdk-4.20.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.20.0.ebuild
new file mode 100644
index 000000000000..2d1a0bb65055
--- /dev/null
+++ b/dev-python/openstacksdk/openstacksdk-4.20.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A collection of libraries for building applications to work with OpenStack"
+HOMEPAGE="
+ https://opendev.org/openstack/openstacksdk/
+ https://github.com/openstack/openstacksdk/
+ https://pypi.org/project/openstacksdk/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
+ >=dev-python/decorator-4.4.1[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-1.21[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-5.16.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.8.1[${PYTHON_USEDEP}]
+ >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3[${PYTHON_USEDEP}]
+ >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus-client-0.4.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Internet?
+ sed -e 's:test_create_dynamic_large_object:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+
+ # TODO
+ sed -e 's:test_generate_form:_&:' \
+ -e 's:test_create_static_large_object:_&:' \
+ -e 's:test_object_segment_retries:_&:' \
+ -e 's:test_object_segment_retry_failure:_&:' \
+ -e 's:test_slo_manifest_retry:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+ sed -e 's:test_servers:_&:' \
+ -i openstack/tests/unit/test_stats.py || die
+
+ # unhappy about paths due to test runner
+ sed -e 's:test_method_not_supported:_&:' \
+ -i openstack/tests/unit/test_exceptions.py || die
+ sed -e 's:test_repr:_&:' \
+ -i openstack/tests/unit/test_resource.py || die
+
+ # requires hacking
+ rm openstack/tests/unit/test_hacking.py || die
+
+ # fragile warning-based tests
+ sed -e 's:test_unsupported_version_override:_&:' \
+ -i openstack/tests/unit/test_missing_version.py || die
+ sed -e 's:test_create_unknown_proxy:_&:' \
+ -i openstack/tests/unit/test_connection.py || die
+
+ # stupid test checking if they pin to the newest os-service-types,
+ # except they don't actually do
+ sed -e 's:test_ost_version:_&:' \
+ -i openstack/tests/unit/test_utils.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstack/tests/unit
+}
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index f455776795fd..b114acdfdc69 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -1,2 +1,3 @@
DIST psycopg-3.3.4.gh.tar.gz 611451 BLAKE2B 5c15f36c1fd291d1ef58c22fbb6af2c4da0a38e5c05cb40b50e06471b834924a7c55d322e335457f3a017cd31b3900ec5bd1694b6e293e5e3c740be68a9aa66c SHA512 4cfeeb118088d704c6ebd17f42916b77825e89827411116a5e9ad813e756b71969c800179aa7337a1fcb379efde937c8d33c828b87305d5bb63ef06e66185b83
+DIST psycopg-3.3.5.gh.tar.gz 759446 BLAKE2B f565b31d28dc555f28e508ab9046f83ac39a264a0ee135b147bb7949a8a505fca24492fdfec84dfd15d783e33b0d66dba696b77bebfcab0a86a1fa48f71e1c58 SHA512 bc47fdd05060ea56e068f424ff90d41df8fb1d4f052805d41c9f5ef4bf4e37f61776ff371119f46a7702af857d782c72645d234cf6f118355c191cc81450650a
DIST psycopg2-2.9.12.tar.gz 379683 BLAKE2B bb5e5cdee0fef649c46d414b916d6f49096c27571897cfe1ecbaa9416c8c4f8c79eeff94a3475421981e3659a123e8e8852442968539d084e7cc46c54829c946 SHA512 0d37b51408298baad8b2b095af24b1c0d0b67ba99a2532ed7344a931c6f4d431be9c21c94811eace1b4418899f070f80e80266bfe0386aac2e64289ab1b8862e
diff --git a/dev-python/psycopg/psycopg-3.3.5.ebuild b/dev-python/psycopg/psycopg-3.3.5.ebuild
new file mode 100644
index 000000000000..ee8c0e9246bc
--- /dev/null
+++ b/dev-python/psycopg/psycopg-3.3.5.ebuild
@@ -0,0 +1,123 @@
+# 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="PostgreSQL database adapter for Python"
+HOMEPAGE="
+ https://www.psycopg.org/psycopg3/
+ https://github.com/psycopg/psycopg/
+ https://pypi.org/project/psycopg/
+"
+SRC_URI="
+ https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+DEPEND="
+ native-extensions? (
+ >=dev-db/postgresql-8.1:=
+ )
+ !native-extensions? (
+ >=dev-db/postgresql-8.1:*
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
+ ' 3.11 3.12)
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-db/postgresql-8.1[server]
+ >=dev-python/dnspython-2.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio )
+distutils_enable_tests pytest
+
+python_compile() {
+ # Python code + ctypes backend
+ cd psycopg || die
+ distutils-r1_python_compile
+
+ # optional C backend
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ local DISTUTILS_USE_PEP517=standalone
+ cd ../psycopg_c || die
+ distutils-r1_python_compile
+ fi
+ cd .. || die
+}
+
+src_test() {
+ rm -r psycopg{,_c} || die
+
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" test || die
+
+ local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for the psycopg_pool package
+ tests/pool
+ # some broken mypy magic
+ tests/test_module.py::test_version
+ tests/test_module.py::test_version_c
+ tests/test_typing.py
+ tests/crdb/test_typing.py
+ # TODO, relying on undefined ordering in Python?
+ tests/test_dns_srv.py::test_srv
+ # requires pproxy?
+ tests/test_waiting.py::test_remote_closed
+ tests/test_waiting.py::test_wait_remote_closed
+ tests/test_waiting_async.py::test_remote_closed
+ tests/test_waiting_async.py::test_wait_remote_closed
+ )
+
+ case ${ARCH} in
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/types/test_numpy.py::test_classes_identities
+ )
+ ;;
+ esac
+
+ local impls=( python )
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ impls+=( c )
+ fi
+
+ local -x PSYCOPG_IMPL
+ for PSYCOPG_IMPL in "${impls[@]}"; do
+ einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
+ # leak and timing tests are fragile whereas slow tests are slow
+ epytest -k "not leak" \
+ -m "not timing and not slow and not flakey"
+ done
+}
diff --git a/dev-python/pyproject-fmt/Manifest b/dev-python/pyproject-fmt/Manifest
index 68e2ae8147c0..8621e9c917bd 100644
--- a/dev-python/pyproject-fmt/Manifest
+++ b/dev-python/pyproject-fmt/Manifest
@@ -1,29 +1,16 @@
DIST pyproject_fmt-2.21.2.tar.gz 155067 BLAKE2B e1d5ed9ad538c934d176d54c64030312f430746e3450d383c9bce7156bb953cefeb1976b81825e8dd108ccd5c5c4b5f0af2c6986a838b9b8c206132ed5b738a1 SHA512 6e13de792660c3dcb01f4857df08c12e099a3c6ce411886f0d63d66aff126980f283428dd1de322f0f1d5fc4dcde8d23b1490bedf6e580340542895d315bd39a
DIST pyproject_fmt-2.21.2.tar.gz.provenance 9899 BLAKE2B dd64f16733cdceab98a70dd4680d3ef603976ba1d2a7e088c2906cd0ec05f3081586dd4d09a56c772106ff3dd8d3d81ffda497e34bd205aec0eec5ec5f0b108b SHA512 2585c2ab36baa9a1fce11e11d1468c990a736c543ce4de6c7476dd7df6f754b107795c238762110555eec284aefaa53e6eddc5733fce5b5ee701344baae5d086
-DIST pyproject_fmt-2.24.1.tar.gz 280585 BLAKE2B 76dbf5443a7ff7215437b6b4d4a2cb9f6c752335d73dcec893fa1e222b3d459298e11265367ff2e76d63548b47e6c752266703d59329653d02113b2c410d178e SHA512 5b044182e27f881bc13d24406f5dabd68ab60e325ba748f460533640e87731cb30651e744ad0011e2ef4cddf5907f42e6f9d2aca6aa0a558dddfa5beaefbab9c
-DIST pyproject_fmt-2.24.1.tar.gz.provenance 10064 BLAKE2B ec74f53fae059829f6e44434666d196b5ea92b787d80fe04d6a001e93f1563be978c6771918a3fe7af19ef1a41cc8ce04d21ef0f15ce9e7af39b3cbfe2af00b2 SHA512 4220f4b3fd4372dc0593da35341255778f25c4386eca6007f6e49252cccc861df75980ab74fc437ca26105687198c8b0bfad81579ef4341fd0e97c4ee3a9e79a
-DIST pyproject_fmt-2.25.4.tar.gz 294939 BLAKE2B 49ff266da59749eacad648592675f468b53c1fc290507a03058ffed1f66d9be9a23425172def7af5773c8116143e3dfa7c9492f9b2f8a2afb0384b9b2b34e07a SHA512 0d468581dc3f1a739a552e7c191fafb9dd52871ea79217c920ea2b5cd8d9dfe49da8b94770e4be6b9d8b27163da203f6c8b564a9d07c413b480724833c0234b4
-DIST pyproject_fmt-2.25.4.tar.gz.provenance 10162 BLAKE2B 8b53e7f0e243e39222b5f78e6ff17f43f2d567771aeb42c2d2ba39a314816519c67bfd4785837cfb6936d31580477e88b22dfa2c83c134e3e239f163e8b3abc2 SHA512 3950ea8cec325f06225157f3da31616a1345e0a66b7a00446f958293fe80bb72f9bc40d65895be517e70a1ca3c9921a7a20dee2b1876db2a029f94c18d216b1f
DIST pyproject_fmt-2.26.0.tar.gz 296642 BLAKE2B 210375e5c5caaa7b6c43ede00a627f25e1cf81aef7c62200ce9be0c041b37cee3f1247077699361e64556d26436774f6b2ebcf4093b1a8db2ae72fcf2cb9b310 SHA512 18ed375973adddcfd36882f0e69cb13bb7c12d3e06a91dd4249de86959aaf320d0e6de364b8d9dd396e24e82aec3364c138ae2031777bed9ee05de0bd2440d7a
DIST pyproject_fmt-2.26.0.tar.gz.provenance 10017 BLAKE2B 032a743e5ba685bfb34bcf6d509162d0afd38b280a3d92b38ed4c630625bd8f287d0dd2fdf9f90782b31ad5040ccd3eded9375f57ba55f3c57632d196eaf3abb SHA512 aec802a25f29ca55593f5bf343c310d1b5ec7890be620e98efa4438fb2d11493158455d67a4f73daed363e1388bc299deeb590310e77ea810126dd0ff5ce852b
DIST pyproject_fmt-2.27.1.tar.gz 299527 BLAKE2B 2aab29267a4163c6250e3d86bc750b25ae7844fbef67b6812e71240757945d2f8bed5f01e41027703562b9b2c2b7dd13f054ca0f2a40d73725572ca93d6e4439 SHA512 18a4f7509936ed401aa492cc6aeaf59ab05feddd8d44606610b4fb98972ff4face8a9c93dd2546ca1dc82c616e000ec8d6916dce668e503a9c8572ba354f6974
DIST pyproject_fmt-2.27.1.tar.gz.provenance 9925 BLAKE2B 0612e6088bb5374a7bb823de6ad12d5c470125f65f8fd04b2b2b402f138a14ccdb8bb612a0479491f9ea80702dcc66ff6aa79feec3a1fa4bf87b675cc99c0b12 SHA512 2742ebcab02153802afa3e45411a1982baf3fb63d29463fc114cf592e471f222a878793791bfe9d506dd35034993ff9fb3a2065ef8d86706cb6a1cab2c40c37f
-DIST pyproject_fmt-2.28.0.tar.gz 301864 BLAKE2B c51300782c35ce76e522ebef1de1f3444c4c4dea5e47c2839892a5bee8da0eb2146cb8cf2eea6b427460e4e236e8deb333a146b4cf7f86637dc1b849007253ec SHA512 345d6958128fd1b0ebb516a2c2bf14eee64e171d26987e9453be0e282a1b993ef369443aac521937ca91ab5e2b42b4df04768a7121bf58705c7b5fb359bbee62
-DIST pyproject_fmt-2.28.0.tar.gz.provenance 9882 BLAKE2B 3096bd0bd1924dc31e0877fcec83ae15af5fdc492e8370b2a17fb3f47e8588c4834df7099b85d14210e217065203559e4018fe6d2e1b6537401a3deaf7928753 SHA512 46ca391db06c455808c9534b0f66d7ac4a62a8f34ada35a0d471321be5a27334a6e47d74983de040f127d33a869c2e5fe60d0d5017d2a63ed8a39afdb32d1287
-DIST pyproject_fmt-2.28.1.tar.gz 302216 BLAKE2B 519cf8d6898958e6a44ac74b729a166041e14f7f58e5d869c7e9efc1ed12640df1b80f08be69d09434825611b0534c30bd9134495c09e09fefbfd1a647f72c51 SHA512 4f7265cf50eb11f7f9284fdf84338f65625561ebd4815323ecbcc7b6e1ac1b69b707cba1d857265296e64f026c84d52567ac9634524321649631f135c446d535
-DIST pyproject_fmt-2.28.1.tar.gz.provenance 9737 BLAKE2B f296c24a23b132a7f8aba3a77aa1586c0af1fb2106f0b6de292391c8d9fefa833d8fb271c3af602a12cf0c51d33867ec010bcce0104e20489fc5f0231b940dca SHA512 08172932d1b2895f22f14a1dbac06457d0df65dc34f1373818142e2d0fc38d0cac3285170184c8696381811a493eb03d8385b5a3feb8190b28350d8b826245e1
DIST pyproject_fmt-2.28.2.tar.gz 303257 BLAKE2B cd927fa2860794efd31571ae70c9a1b16de3cbe780ec0e59643f70ad92709b27c709e4494879784d18592a40418c56f468ac510c7185e83d3499864e5d9e1b6b SHA512 e7261d1d6dedc4f798c4862ad55ea5cf9afaa02534461c51fc275f2aeb46cd983948a554007adb7053ae6d7875801af0fe5373cf20aeccc7bebed770d467e79b
DIST pyproject_fmt-2.28.2.tar.gz.provenance 10066 BLAKE2B 21846d92fa94ba184b707ec2ffb03849fab1f393c3fcaf004e74720bf3cab0079f091d89ae6ade1330c5da2e64ded9530c6becd99aca534feca5a574c38f004b SHA512 d46bdf675317d0108accad0181a4b40375ee48e4f83d9888b011d55d70980e4ba04a04806aacb8b5408ef6ca4142028696fa3298759a880ac7b02db455cb4ce8
DIST tombi-0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b.gh.tar.gz 10564681 BLAKE2B 1cc4e307d89ae978c8022aed63ad7a7c08e71f810e42743589a6bf44499051250102ca3a60aa2cea65292dfd187240da96f6fb963511b6d4c06559c20bbc67a3 SHA512 e398e14c9b092f2378dfa848c697ea5cb0af705bcb801f288d2ca98b8c0d4aa3abf7a71f2f5a10a4a6a77e1e8d1f7089a0359b2a3ec9b226a19bbb40f0aa0a14
DIST tombi-2c1f7bfc0b36f106eb50821fe41f25cc90e75427.gh.tar.gz 10689465 BLAKE2B 074bb5b9d631056fe7ee3e3b605eba2f2a8065eaa4f06f950df84b6045db8f157d9575044a5fb061ebfe41b7fbb5ff837f790b04f21341f2a0c99b119ff9ac78 SHA512 0daad5c26c8ba44d7dd98c0620dfeb6c821149fce7efb5b0fbfb30ffb543b7af06ba30d5b2c3a40df5e2e289ec5ee7eabf39d3fbbd4d965a13aa84be7874c573
DIST tombi-447bbe853ac15d1149976e9bbf85dd11fb55359e.gh.tar.gz 10635118 BLAKE2B 76bdc1d7e4704af8891309afbd5ceaba8e4d04ccc6bf4fcb4b021949e8774a613fd3530824407968066b046b455cb63ee754b1a5948a090a5e52b1f83c3d06e1 SHA512 d0aac41e3a7265d2eba5b64cc5815d2cbcc0ade1e055d57821afe4f399079f677c7b7964ffedfbffd8be8429a9ed01987c1446f7eabcedd6ba273fe7ae7d774c
DIST tombi-b46e34c8555e1b98d695ceec30cfa9c0227878ed.gh.tar.gz 10619752 BLAKE2B aef751b54ff252c35c216980d55561d409e76e71379a5d537835db1475bdaa277fd95b233f22af43644fb5a23a2621859706981a78ff7c79e768735f4b071ab4 SHA512 a4b7f71b5ca6f8bc9b64eda3f0048fb372ec44b8b4ab77e3d50bd4ef938de632e3a3837891baa98b4f44a311a743373e5ac92a0c7167ac32cdcbf1e180c7315c
-DIST tombi-e9213370947e9d7ab6dd98c1cf17533bbbcc797f.gh.tar.gz 10608653 BLAKE2B 7fd8a27bec2e0c5ab357f2c56ca50c848d71e02da3faca9b0650541b35b177ce7b669d294c20add3dac2ba70e5ced46046d5c2de14df81fcee418fccaaa47344 SHA512 a84ca3f676b95d11c121df08382e3bc6ca2e31c0c867ff3027c5564219f637abda34bcc00d563d777280e1b4522354e83b6bb4b0412b067e9ce57272a4e34d15
DIST toml-fmt-pyproject-fmt-2.21.2-crates.tar.xz 18776904 BLAKE2B ae748ae98a2769a78b34a2051e3237c40bc6714d88c58a22aec5af85caa86e4690e9749ddd1f87d2ebe0908a1a3f24a01a48e4abcf107fcdbd5d8322a0738c6a SHA512 474d707babc9a3f98a933ae645ffb951062491158c6863ff9dea7fee065b19f440501e092fbc28e62e4e67dce435689096a27b96c6acde3b8128b76b5890ca3e
-DIST toml-fmt-pyproject-fmt-2.24.1-crates.tar.xz 18725980 BLAKE2B 75f6c4a07b14fc60cd3b7a00e902c2b37fe79ea3d03172e7271300d5ea5bd0bf9b7727c4af7e47e82d28424f677235a6e9c1d22ad3314210be93170d9f36ff76 SHA512 88da1827c097f712489276c48fbf10e4c61ef92b877cd8eb7f34eeb1e289ce0362661d3b01bf34c23c1f4cc67e23b05462773407eba7d17814c96d7885f23bd9
-DIST toml-fmt-pyproject-fmt-2.25.4-crates.tar.xz 16547296 BLAKE2B 90d85bfcb1652e61911bed8b89b787569fb45b00b6202335e6106ea427ecca78e24c508f030259b67388a4ea149cbc1bcdc87ad2083eb9c63613dfd0d684bb1a SHA512 e89213e82e7cfef3a61e38f027c85571044c6c7f3acc218722d056756b09221b0425d021ae6ae9392c123768dcd0e05fa5eff1b281f0f15fed15e69416b23d00
DIST toml-fmt-pyproject-fmt-2.26.0-crates.tar.xz 16547296 BLAKE2B 90d85bfcb1652e61911bed8b89b787569fb45b00b6202335e6106ea427ecca78e24c508f030259b67388a4ea149cbc1bcdc87ad2083eb9c63613dfd0d684bb1a SHA512 e89213e82e7cfef3a61e38f027c85571044c6c7f3acc218722d056756b09221b0425d021ae6ae9392c123768dcd0e05fa5eff1b281f0f15fed15e69416b23d00
DIST toml-fmt-pyproject-fmt-2.27.1-crates.tar.xz 16632708 BLAKE2B 510359aae2b351b8a1e5a73e77bb39b68732453ff4624a9424721f3c1de5aa00ef1e8c06a1858f38ee5ee9ae07fe76304dbe14722611b3b564b51d1b26038c55 SHA512 b41bd7a614426126d6b82b72af12d3b1750ad037145430d0f5f1be5bf097101470f9757ba448ea539b14f155bd31f4800a95172db8616d3214df28f6115d0e9d
-DIST toml-fmt-pyproject-fmt-2.28.0-crates.tar.xz 16369840 BLAKE2B d47722d8d60399653d5ade9b4af37f5b932c41aee14b587201e0c2f17e12cf9e7285dbf395c577fa503508840c2f79add423494cb3363b5eedbb7b06395ef905 SHA512 e7a0a67adc943462f3299b8d459231642905a86ad70b8fadc4e37c01d2a569948f2546f0dc481136ff3a9750c5a128a4189e24707e0cc43a70cc25352b41967a
-DIST toml-fmt-pyproject-fmt-2.28.1-crates.tar.xz 16369840 BLAKE2B d47722d8d60399653d5ade9b4af37f5b932c41aee14b587201e0c2f17e12cf9e7285dbf395c577fa503508840c2f79add423494cb3363b5eedbb7b06395ef905 SHA512 e7a0a67adc943462f3299b8d459231642905a86ad70b8fadc4e37c01d2a569948f2546f0dc481136ff3a9750c5a128a4189e24707e0cc43a70cc25352b41967a
DIST toml-fmt-pyproject-fmt-2.28.2-crates.tar.xz 16369840 BLAKE2B d47722d8d60399653d5ade9b4af37f5b932c41aee14b587201e0c2f17e12cf9e7285dbf395c577fa503508840c2f79add423494cb3363b5eedbb7b06395ef905 SHA512 e7a0a67adc943462f3299b8d459231642905a86ad70b8fadc4e37c01d2a569948f2546f0dc481136ff3a9750c5a128a4189e24707e0cc43a70cc25352b41967a
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.24.1.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.24.1.ebuild
deleted file mode 100644
index 92174319d608..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.24.1.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-schema-store'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;e9213370947e9d7ab6dd98c1cf17533bbbcc797f;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc ppc64 ~riscv ~s390 x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
- pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild
deleted file mode 100644
index f1ec3c161d50..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-schema-store'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
- pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild
deleted file mode 100644
index df0cc494ccf3..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.88.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-schema-store'
- [tombi-schema-type]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-schema-type'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- 'pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]'
- 'pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]'
- # broken CLI test, expects exit status, gets an exception directly
- pyproject-fmt/tests/test_main.py::test_invalid_project_version
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.28.1.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.28.1.ebuild
deleted file mode 100644
index df0cc494ccf3..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.28.1.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.88.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-schema-store'
- [tombi-schema-type]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-schema-type'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- 'pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]'
- 'pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]'
- # broken CLI test, expects exit status, gets an exception directly
- pyproject-fmt/tests/test_main.py::test_invalid_project_version
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild b/dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild
index f72132f9366d..81e4ba28375b 100644
--- a/dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild
+++ b/dev-python/pytest-qt/pytest-qt-4.5.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/regex/Manifest b/dev-python/regex/Manifest
index d0778b55c86d..72a92b682279 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,2 +1,3 @@
DIST regex-2026.7.19.tar.gz 416440 BLAKE2B c7e922fca496731dba5130bd7f572df56adfd5c31db6812f935ede24060b3fb6abca57836f3d0a0ad7bcee6433e1520b14611657495e6e844fc2d5d99d6dba32 SHA512 807b987dd5fa12f5fdb95c79955823f263f03f23059c8ec1783958bab5dadb1c38dab022a3e519ebb6810b6e03692c14b4d354506ff7a00a7323ee79d61f4e34
DIST regex-2026.8.31.tar.gz 416646 BLAKE2B b151ab7f142878e3e84bf32d42451fe47aa70802f252ac55902eebe07d413a117c68d889a561d2255adf1cf4565347e1cbbe4953682b87ef5a23b910e78744c3 SHA512 1f0191caa4e9c2e5e9b848ba2f85d2e48a678d6ba4ec9bf3c530b201c9edf54059e517946839df86bb00cfdf64111f8d8943abb2bc9df68d1ddf4489e110ba87
+DIST regex-2026.9.3.tar.gz 416720 BLAKE2B c9a5bf8a95e03708e4b0bfd789d565aea8a5b36a33d3d5754351d5d14ec2e29dc77aeb6331e1cc88b44a9ab95d3a5f134ed2f0cacf0253c152d924a0cd72aede SHA512 e0608fcd9bfa1b61a8bbdd1299ffac7ab310a2e88ad3f11297780efe300e1bbd62904e5234b8692e3e7fda9063502b6d7c0faf11df3c378af34d8751bf8a9130
diff --git a/dev-python/regex/regex-2026.9.3.ebuild b/dev-python/regex/regex-2026.9.3.ebuild
new file mode 100644
index 000000000000..f45afd466843
--- /dev/null
+++ b/dev-python/regex/regex-2026.9.3.ebuild
@@ -0,0 +1,37 @@
+# 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
+# pypy isn't supported upstream because of its UTF8 representation for strings
+# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="
+ https://github.com/mrabarnett/mrab-regex/
+ https://pypi.org/project/regex/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc"
+
+distutils_enable_tests unittest
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/Features.html )
+ local DOCS=( README.rst docs/*.rst )
+
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
+ eunittest
+}
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index dfcee7eb4847..e5065e5a98e1 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,4 +1,4 @@
-DIST sqlalchemy-2.0.50.tar.gz 9907424 BLAKE2B bea56c629fb1e98f031149191e3ba5d74bd167a3213cbd400dbc61c38457b9b3c1ec8e3f712f452f62791889829500272d740d40059ef374e50d41aeb96d2d71 SHA512 3cb9872cb9adc7ca52d5a28c581e2be21f6e6853405a8fc15ef34c2e2b8a52cad066b46dbac264193b323d85ab9f5a06a7f98867c66f048e5ee836ec5ef6b4df
DIST sqlalchemy-2.0.51.tar.gz 9912201 BLAKE2B d3cc81bc5d10db4a2d9670020d64831d7f5b5f56419a8ad6ab4e201dbb575be28300ac6b57724e1c1b515436339ff51d84b0ff0de9073ef9da2d37bf2c46e43c SHA512 af3965c5c43921b8e4330348b7d1a46357fa5d6a9a0acde66b4c3e65aedbd27afabc257cde113d38f3be3f3a91d524230fb17efc5515b826442d4fb4d6b7bc1d
DIST sqlalchemy-2.0.52.tar.gz 9945637 BLAKE2B 4af6f1485d26c94569babc99ba6cb3314f0bbc4267bc17ebefbb786390214110283b0a43a81cc38d275fcd852bbb74e77ed2167dce6a5ec9b144119eb0593206 SHA512 9341389b75b684b37f2f1bba8fde882c95c77a68e5ff15b8ab16b163db9c31088a884352999b750fbabadbd723cff093e971035159e77562d5cd843305258fdd
DIST sqlalchemy-2.1.0b2.tar.gz 10225731 BLAKE2B ec2a69fe0f636f6a9366874e071b43b3f7314de57483e8c6948042b232a0b336273f9ab1f89ad43969db1ec111b037b705b2b41dcaa0e140eb2fe66a1d6e29e8 SHA512 ad1087cc6a8a2d6646ddc74a5ef10e0218275c32a2f8b90ca41138800fd2bc9a9ca8afb60de3a0a424f6111226e55ff21d16f14de3b57ddd26bccd9d883c7c01
+DIST sqlalchemy-2.1.0rc1.tar.gz 10436777 BLAKE2B 3840f114f930dc1d18e8837cd51ebc66a193f386139eda7b825a0efcc280488a4d1f78c0997c4c81d5c8c2b6b92b2cb789beec32dbae43fa05bd638d3afe493b SHA512 66435f258067621f649ae8f28ed409772319cf9939b21cb8a7b2de1ddcdb482f536402350767ff618dbec2be5254b243f903f8c7a7261c49bc66269235bce2eb
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.1.0_rc1.ebuild
index 4425965f67ea..d9cf5b3c5b56 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.1.0_rc1.ebuild
@@ -20,7 +20,9 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
+if [[ ${PV} != *_beta* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+fi
IUSE="examples +sqlite test"
RDEPEND="
@@ -38,11 +40,6 @@ EPYTEST_RERUNS=5
EPYTEST_XDIST=1
distutils_enable_tests pytest
-src_prepare() {
- sed -i -e '/greenlet/d' setup.cfg || die
- distutils-r1_src_prepare
-}
-
python_test() {
local EPYTEST_IGNORE=(
test/ext/mypy/test_mypy_plugin_py3k.py
@@ -58,9 +55,14 @@ python_test() {
)
local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
case ${EPYTHON} in
- pypy3.11)
- # pypy is broken beyond repair now
- return
+ python3.15)
+ EPYTEST_DESELECT+=(
+ # repr() changes
+ test/orm/declarative/test_dc_transforms.py::DCTransformsTest::test_basic_constructor_repr_base_cls
+ test/orm/declarative/test_dc_transforms_future_anno_sync.py::DCTransformsTest::test_basic_constructor_repr_base_cls
+ # exception message changes
+ test/engine/test_processors.py::PyDateProcessorTest::test_no_string
+ )
;;
esac
if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
diff --git a/dev-python/tavern/Manifest b/dev-python/tavern/Manifest
index 0349bd37fc0a..5ebe3d3f45f1 100644
--- a/dev-python/tavern/Manifest
+++ b/dev-python/tavern/Manifest
@@ -1,2 +1,3 @@
DIST tavern-3.6.1.gh.tar.gz 734344 BLAKE2B bb3ed80c9c290e7c050d1a0590804cbf499fc9584567fab6cce0beeba8ba798319c0c4edaf614cb3cd6fe9a02313e1ff4c47042ece755ff8b408e4125f0f4805 SHA512 1178df1ec0079022dd3cd5afe214e27d0455b7e0f2cd315798f8291d671ae85a51d3e480743d19f5a340ede8a4989700f74d96683ddb99ff7c2212298e2bccf5
DIST tavern-3.6.2.gh.tar.gz 768394 BLAKE2B db97acfc7395eaa481bbcbb08d7e09978a395c202c88536803c0fd9659258dec717c0f08e866a3bef8283658a82342fecc2c63c7c0ec1ab857811a1d1c62e8d2 SHA512 f73991f996ed979e227886a8867ddc4a5837ce1292eb4c4c0f696971366b0c7695adbe2f242f64535ebcd61ac081efa1fafdaf8f10f3f767a3d490abc37a6ff0
+DIST tavern-3.6.3.gh.tar.gz 769747 BLAKE2B 7f81d9bce49f212c8855775ad98b9a5d1e9d958170bef6769057472d2a3198d45251e0a873d2efdefc61871e48d7d060066da7cecb3a7597fb46f6f50581b34d SHA512 e93454fe8e15a18baa8dae8cb727dc6da03e1125a2e8968045cd8cb44e96b2f2bf8e1e9ce04f26c6770f5cc4ed41aded7aa49c9dc5c798f0bd02a1f69f90e36d
diff --git a/dev-python/tavern/tavern-3.6.3.ebuild b/dev-python/tavern/tavern-3.6.3.ebuild
new file mode 100644
index 000000000000..0cbe819120c0
--- /dev/null
+++ b/dev-python/tavern/tavern-3.6.3.ebuild
@@ -0,0 +1,73 @@
+# 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="A tool, library, and Pytest plugin for testing RESTful APIs"
+HOMEPAGE="
+ https://github.com/taverntesting/tavern/
+ https://pypi.org/project/tavern/
+"
+SRC_URI="
+ https://github.com/taverntesting/tavern/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-1[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4[${PYTHON_USEDEP}]
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ >=dev-python/python-box-6[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
+ >=dev-python/simpleeval-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/faker[${PYTHON_USEDEP}]
+ dev-python/paho-mqtt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # requires grpc
+ tests/unit/test_extensions.py::TestGrpcCodes
+ # broken with paho-mqtt-2
+ tests/unit/test_mqtt.py::TestClient::test_context_connection_success
+ # TODO
+ tests/unit/response/test_mqtt_response.py::TestResponse::test_same_topic
+)
+EPYTEST_IGNORE=(
+ # require grpc*
+ tavern/_plugins/grpc
+ tests/unit/tavern_grpc
+ # require gql
+ tavern/_plugins/graphql
+ tests/unit/plugins/graphql
+ # require allure
+ tests/unit/test_allure.py
+)
+
+src_prepare() {
+ # strip unnecessary pins, upstream doesn't update them a lot
+ sed -i -E -e 's:,?<=?[0-9.]+::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index bb122e16ab48..146b3d2e91bc 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -1,8 +1,8 @@
-DIST tox-4.57.2.tar.gz 296928 BLAKE2B 31adcccbab438196c8627de3a8db9be985216c612c29be6bd67e04e140e4cfad6ff0c35b0a8a3d2b48d8d30db7058ab2b8093688eaaf5d96b2fb4858f61c5374 SHA512 a21bb6c2f7f133e3bc74cfcd18516114453ded75d156f930804acdfcfc65c6d3d2816c838efad01187df730544c19ede99e3c4fef24a68213c6a461396174e55
-DIST tox-4.57.2.tar.gz.provenance 9593 BLAKE2B f78ff9e827973ac587dd1c310ea4541101ae947e49d9ae5e729911f500533f78f6169ef51e6a89a1c1f3690ec9341fbc079ab6d762cf1a8ff59767f5cb227e0a SHA512 8638ce3c3ddc7e1bc74955917d2345deb3305fd9dde3eb014a56996dd6abe3806c37830b8214de0150b829eecc70cebd56c082b33d336cb02993444b268f225a
DIST tox-4.58.0.tar.gz 296926 BLAKE2B 755820109ce9f90b5039d79bf368df09fb8e1f7b972951c0fdd47f0c661c0207e9d181a701e48cfe1308b9c2621d84a67ce28c9b2359644c71ba1fb17328e146 SHA512 11d45089ff69fea827979909e3946a366699f58e6d25ba1b54224c5cd283372d515f4bbdb002585ee1d6bcfc4a1561785e83c555718ba983c5b608773618a0df
DIST tox-4.58.0.tar.gz.provenance 9487 BLAKE2B 9e7e230add9749ec7b942c0a9df58932a626970980d6cd51f845b38e56129a24b3e6b8910e940ccbece5a5721809b98f02709c3d27d19911ef5045d757e49acb SHA512 59ad986a6b929450a45a1d5d59ffed766aa7d14800324a23edf65d5b1da1bf53a6ca53407d2b9ba9274af3a28a5338866d97ccd868d837c9a360440558f0fcb5
DIST tox-4.60.1.tar.gz 303833 BLAKE2B 2033e33d1fbff8ae3ad77417d240b737c00e85fb8a6f0cc658b14c6af747173f5cd3b6ef4e9c19f6b82bed0570ad14312f75bc0ee97b3f8f3e045364f8ff913f SHA512 0b6c11e6863606de2650b891bac01c0fcad558c86ba3b561e78d870b389bd649cde6a1ab0f2159adf3ddef808a8659dc2d557d83320d0df6bbd186b50f4be4b1
DIST tox-4.60.1.tar.gz.provenance 9485 BLAKE2B 862ac660042f34f3aefae4d95b7a85d0ef1fe4a6bbba4ed06f0dbd374cc76c4075ae141d99db7a5081057ad432472c74af012422458994e32fef8ee33ebde3fe SHA512 f873c588dc83adee5fdc2b1f655cf96c2401955f882a866f616c83fa845b926288484f62ad9f9212e0fe10ca9736b75f9bb588cf5099c94e03542ef69f403042
DIST tox-4.61.1.tar.gz 306574 BLAKE2B ab2f4b6d155a02dc7f235811fa358895d982807b40019737692c60998be70e9c55a0b8d859791c53f7ad02f75a2d2c3c4f92f377a61715c49b9c46e1df3483ca SHA512 5c9353f617122062f7e3cdb3998b09f6dbe777b1924e8abf593459461488ec46baf7850896855bb0545141d67755061a4092c9113680feaa98d4294a36cf0ede
DIST tox-4.61.1.tar.gz.provenance 9313 BLAKE2B 7cc5c6b23f3b482df6da69287af28b6d0be743fb5368f2c9d8575330d2117c2e14b0c2015d70642bc34648f0b989fcfd905acf2caf8193cd1b6bb437166ff954 SHA512 18b6fa4555123ab881b4e12d4fe6ce85e2c69009836be8655dfc8bc0519154f1ad0cdfe7b9ccd4251375a3c251c3aea500bab0efb7607a3ee0413eade2a6016b
+DIST tox-4.61.2.tar.gz 306825 BLAKE2B 71159dd79aef91c04aed340bc56cbb7cb1bc9b0e11655b7d8663ba3fc483a559f730bbb2082b8eceaa7ed845ddaa18dbf78f4c72498a55f47c6d57e5f58fb352 SHA512 8ba3dfd3f1595077b756204b159721f7b28279425b1cbc7f04e46282c9f08b81496827fcf4738fa056ea6da2a82ce85d69e826b89fa7163b7fc57f2fc60e378e
+DIST tox-4.61.2.tar.gz.provenance 9818 BLAKE2B b6f6d6d2ac83a7c5598df9ba0942a87a7830ea1b2ba5936fd2653db6febde47187a4f9e705504d4a42d7c898b2b850bc005709d9ffc24f787f4ce0dd62977a78 SHA512 c452837d29391310bdba4fc82ea7d0d6464efa394ed5a6629bb997db9578c9f97bf9322174aafb66212f88c69349f85cf73c587029aa501f7d475a4ecc90227b
diff --git a/dev-python/tox/tox-4.57.2.ebuild b/dev-python/tox/tox-4.61.2.ebuild
index acd2c44ce0ab..8eb35c40185e 100644
--- a/dev-python/tox/tox-4.57.2.ebuild
+++ b/dev-python/tox/tox-4.61.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
RDEPEND="
dev-python/cachetools[${PYTHON_USEDEP}]
@@ -31,6 +31,9 @@ RDEPEND="
dev-python/python-discovery[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.15[${PYTHON_USEDEP}]
+ ' 3.12)
"
BDEPEND="
dev-python/docutils[${PYTHON_USEDEP}]
@@ -45,6 +48,7 @@ BDEPEND="
"
EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} time-machine )
+EPYTEST_RERUNS=3
# upstream timeouts are quite short
: ${EPYTEST_TIMEOUT:=180}
# xdist seems to mess up state between successive implementation runs
diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest
index f2ddc66f70dd..749702af190a 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1,2 +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
+DIST trimesh-5.1.0.gh.tar.gz 13754708 BLAKE2B dcd59854e287b9859e6d7f4d17dddda2661992aec10d340f89a3c978f83bdcd20a497fa7edbd4cb16b8111d18b137eaf55fea10d8eae2304b1cc9c7188198ac3 SHA512 38e8e1902b027d93c6fb25197a0d746a8d437dc3374708611a90f75dc9294c5cb96d7d938d8e449e52a870dc4225216d3cd10a6f9e623863419f9450dae02930
diff --git a/dev-python/trimesh/trimesh-4.12.2.ebuild b/dev-python/trimesh/trimesh-5.1.0.ebuild
index 370ed3e1a359..6715afbbe9e4 100644
--- a/dev-python/trimesh/trimesh-4.12.2.ebuild
+++ b/dev-python/trimesh/trimesh-5.1.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
dev-python/charset-normalizer[${PYTHON_USEDEP}]
@@ -30,7 +30,7 @@ RDEPEND="
dev-python/jsonschema[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/networkx[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21[${PYTHON_USEDEP}]
dev-python/pillow[${PYTHON_USEDEP}]
dev-python/pycollada[${PYTHON_USEDEP}]
dev-python/pyglet[${PYTHON_USEDEP}]
@@ -81,7 +81,6 @@ python_test() {
pkg_postinst() {
optfeature_header "${PN} functionality can be extended by installing the following packages:"
- optfeature "making GUI applications with 3D stuff" dev-python/glooey
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
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index e42fe9e58ae0..e85b0d3781d1 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -5,3 +5,4 @@ DIST uv_build-0.12.1.tar.gz 412371 BLAKE2B b5eb43ce1af6d78dbb68b2445329b90520ac6
DIST uv_build-0.12.3.tar.gz 414444 BLAKE2B f226c1c2bf0b2af538f66095e20c02ad1933afdee62a07eff5f1135692bab47e286f67e7a8f5882e98c61fbb6bf831a85dd56a2d5af2bee6d62d8857a59e56bc SHA512 90d9af3e1a1ff1d7dda21fa38c0ac2d94536e73697ddabb408fb38e2d381498b2401007af0ab31c39cbf3b632aeca2991b3a66d7108e1c5eb7294b3fba8fe107
DIST uv_build-0.12.6.tar.gz 419593 BLAKE2B f6de34befe98b15e30e4a067993fa1763cb9769612e8ed518080fcb91a994cc0d86a0a08b9e784fa5ddf9ab343e4889e2615548b94003835512b2e9ac8495259 SHA512 c609f89b8c0f1decdf64c056084354ae04d6337e27dbd22297b5d462fcba0f0ce29f5a0a40b8f274ac5668f4805d9971b1da5509d10071ee2354f6fe78cc65ee
DIST uv_build-0.12.7.tar.gz 418759 BLAKE2B 94aa33b2644f849a686d80d7f7d365ca8433615d93f27209fca5b21747363cd349d11e887d090420102f06a49977ce963b8f19c24a4280bf82a09943ba08885b SHA512 135f845b3ee6d1925f740917f83f94ec1a7e95aab5ed2db0aa70516c712ab0a143a0e427d3c172fac0bb1fabaa9103718bb2a26c31c9a287e3af65ac0175a245
+DIST uv_build-0.12.8.tar.gz 423420 BLAKE2B 35f99b89540d3fdab189d9d0df9367f98cf427e893748bbd06bf55c4eb515a17211d517ac06977d08e87863e3ba6f5691e5ca5d9863d01b94cf2127ed113ca65 SHA512 e391cc931ff27730eed9dab0cbfc16de8958e744cd172eedc3f0e11f2a2593967b47a71cf183f0d6b94e9ba64e365e61511a5d9d0bd157f21322d3cc6e7debfa
diff --git a/dev-python/uv-build/uv-build-0.12.8.ebuild b/dev-python/uv-build/uv-build-0.12.8.ebuild
new file mode 100644
index 000000000000..65d94f2051ae
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.12.8.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 d2d94375f318..b65547904815 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -12,3 +12,5 @@ DIST uv-0.12.6-crates.tar.xz 44170700 BLAKE2B 915b68dc4355b944c10c497cd500fce7ce
DIST uv-0.12.6.gh.tar.gz 8667534 BLAKE2B 0987a8ed390e98dadbe854805503b30b3193e88662d311e5d20c849cd1ea7f5c5d37fc87c10c86a8ecbf963808af6586a5d0c044c0ed1e6f220b2dfa75ce880d SHA512 afe6f5788468168f9380122073a8e96b88c14def80df8cd253cd64e4cc28f16da76137d90a73b8bd1e6cd93c0858701002161e53235f55749ac11eaa14b14000
DIST uv-0.12.7-crates.tar.xz 44143088 BLAKE2B 075113e8cbafd99a1c70c4ce53678f2ceb13ce31dc7cafb5773e32ae9dfa14144390380e0149219912a0c4b92e6d3b9d0a0a0016cdd4c69097bf75adf1b8a716 SHA512 f9dbdad7cbddd3238c7cc9fbcbec4e92fc8c8c66bc7247ccc8159bb186223c199e3bd411ad9148750ec1fa258775dcec1e2bb6bc3287fca7aeb6ffa7ba4d6b44
DIST uv-0.12.7.gh.tar.gz 8659716 BLAKE2B ab7d74e16821dbbefeb247cf80926ae23f75b5f309a8864070b3a01344044a966f772685cb864470b4c30877f8e03715ec675b658862bd04906e740866ebffd1 SHA512 7f9bd1aef6c285aedd3fe588a5f70e0458f85f6db14f0368ea24c5524fd66990510e0d5624a7faf48091a3dc73ff66ac52ab9a6ed571a10cca272b9588fb1aff
+DIST uv-0.12.8-crates.tar.xz 44173544 BLAKE2B acdbb473c57cebddedc908d0e4e2e4b69ce233ffe7afe5dde2ef01bf0025a089e4be2a2c95e48e57176f08d3f970b82d0fc7f14c1dc23228d846a26c33bed410 SHA512 9974e7f5fa53b5848986f20147560b096a8812c4e5f4af619bcfe3f29f50e3edde6d05a959f906064e81316f81e4d4a4b8b4f0de315774d7f5f05bdf97003a2b
+DIST uv-0.12.8.gh.tar.gz 8678426 BLAKE2B 71c97c50ca10bba766e0cb0877792a1e9aee1821f3de0eca7964522eacc870b62df50e6a5820e75e9daef559cbc24905c9dd01596e98488bbba348cb12e467be SHA512 ecac878e03791c00875b7d1f0a1849ed165435e94d1ce999b4158be2bd305111ee69c418f4e75bb15541089a29a15a86e4201a56b024cdcf522554b925829e49
diff --git a/dev-python/uv/uv-0.12.8.ebuild b/dev-python/uv/uv-0.12.8.ebuild
new file mode 100644
index 000000000000..9826f9045941
--- /dev/null
+++ b/dev-python/uv/uv-0.12.8.ebuild
@@ -0,0 +1,151 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+RUST_MIN_VER="1.96.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=${PV}
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
+ CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
+ Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ dev-lang/python:3.13
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # force thin lto, makes build much faster and less memory hungry
+ # (i.e. makes it possible to actually build uv on 32-bit PPC)
+ sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
+}
+
+src_configure() {
+ local myfeatures=(
+ test-git
+ test-pypi
+ test-python
+ )
+
+ cargo_src_configure --no-default-features
+ # otherwise, rustc/llvm runs out of address space
+ use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ dobin "$(cargo_target_dir)"/{uv,uvx}
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/websocket-client/Manifest b/dev-python/websocket-client/Manifest
index 29083bfd71dc..d5121b5da1de 100644
--- a/dev-python/websocket-client/Manifest
+++ b/dev-python/websocket-client/Manifest
@@ -1,2 +1,3 @@
DIST websocket_client-1.9.0.tar.gz 70576 BLAKE2B 29f16feb16496fec19c0d0bc1af25ff4675c162763c6d933d1a12b6a8222c6fbf587871a2da3adccfcac212d3fddcafe9d23777600c10c2b88ba661cf248b04f SHA512 63385845aaaf792167d681c4b3089b09ea4dedbf931fa1f4ebc55648b6d864c2a479ac61f758d6a7967ce84e59e197613c976069f64381599c274f89c3edd0b4
DIST websocket_client-1.9.1.tar.gz 82936 BLAKE2B aeb9f952aa97aca04de73d0981c601e9c8862c36722a5badc566f89d8e8c2382847d1884ed816d9e95fc80eab38c31789aaebe89076dde11d435bab9c2b55daa SHA512 158ad8bd65e52790de18e65ede165a02223eecc015e67d834caf59878c6e16863bae9c1d581df6cd0df82086bd2364ec003c2ab0fe0544f0b037a1f2328ca7a8
+DIST websocket_client-1.9.2.tar.gz 84110 BLAKE2B 455eb6c2d092cf2d977430629f5ecd34fcd5c34354a7f4b6602d0c0d1840e5a1c2db4a9456ca5febc0726f8305035d3a0adbac8296860226e2992900bd0ccb25 SHA512 42da82b95f05fc8f4bbe85027d1ff1e95fc409282de4b1eb732ca871c32530f34e3fe7deeb150a1244777357e42bbc7d040c4875ad6247efacccc79b79829a66
diff --git a/dev-python/websocket-client/websocket-client-1.9.2.ebuild b/dev-python/websocket-client/websocket-client-1.9.2.ebuild
new file mode 100644
index 000000000000..e81f7230cf77
--- /dev/null
+++ b/dev-python/websocket-client/websocket-client-1.9.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="WebSocket client for python with hybi13 support"
+HOMEPAGE="
+ https://github.com/websocket-client/websocket-client/
+ https://pypi.org/project/websocket-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/python-socks[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+ distutils-r1_python_install_all
+}