summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorBaldEagleOS Migration <dev@baldeagleos.com>2026-06-04 02:18:54 -0500
committerBaldEagleOS Migration <dev@baldeagleos.com>2026-06-04 02:18:54 -0500
commit3f9cf298e89cd5037b982abba06091224ee76daf (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-python
parentdf30352066a4373a912bc395b250b0b1fa2cf696 (diff)
downloadbaldeagleos-repo-3f9cf298e89cd5037b982abba06091224ee76daf.tar.gz
baldeagleos-repo-3f9cf298e89cd5037b982abba06091224ee76daf.tar.xz
baldeagleos-repo-3f9cf298e89cd5037b982abba06091224ee76daf.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.22.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.22.ebuild67
-rw-r--r--dev-python/cachelib/cachelib-0.13.0-r1.ebuild2
-rw-r--r--dev-python/cfn-lint/Manifest6
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.51.2.ebuild64
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.51.4.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.51.1.ebuild)0
-rw-r--r--dev-python/django/Manifest4
-rw-r--r--dev-python/django/django-5.2.15.ebuild100
-rw-r--r--dev-python/django/django-6.0.6.ebuild100
-rw-r--r--dev-python/filelock/Manifest4
-rw-r--r--dev-python/filelock/filelock-3.29.1.ebuild (renamed from dev-python/filelock/filelock-3.25.2.ebuild)2
-rw-r--r--dev-python/flask-caching/flask-caching-2.3.1-r1.ebuild2
-rw-r--r--dev-python/google-api-core/Manifest2
-rw-r--r--dev-python/google-api-core/google-api-core-2.31.0.ebuild55
-rw-r--r--dev-python/hiredis/Manifest1
-rw-r--r--dev-python/hiredis/hiredis-3.4.0.ebuild45
-rw-r--r--dev-python/pbs-installer/Manifest2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild33
-rw-r--r--dev-python/plotly/Manifest1
-rw-r--r--dev-python/plotly/plotly-6.8.0.ebuild110
-rw-r--r--dev-python/plumbum/Manifest2
-rw-r--r--dev-python/plumbum/plumbum-2.0.0.ebuild61
-rw-r--r--dev-python/pytools/Manifest2
-rw-r--r--dev-python/pytools/pytools-2026.1.1.ebuild34
-rw-r--r--dev-python/sigstore/Manifest1
-rw-r--r--dev-python/sigstore/sigstore-4.3.0.ebuild62
-rw-r--r--dev-python/sphinx-autodoc-typehints/Manifest2
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild44
-rw-r--r--dev-python/tox/Manifest2
-rw-r--r--dev-python/tox/tox-4.55.1.ebuild97
-rw-r--r--dev-python/traitlets/Manifest1
-rw-r--r--dev-python/traitlets/traitlets-5.15.1.ebuild36
-rw-r--r--dev-python/typer/Manifest3
-rw-r--r--dev-python/typer/typer-0.26.5.ebuild68
-rw-r--r--dev-python/typer/typer-0.26.7.ebuild (renamed from dev-python/typer/typer-0.26.4.ebuild)3
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.11.19.ebuild99
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.11.19.ebuild164
-rw-r--r--dev-python/uvicorn/Manifest2
-rw-r--r--dev-python/uvicorn/uvicorn-0.49.0.ebuild80
43 files changed, 1278 insertions, 143 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 5bf5e2c46e89..6be34ef468ee 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -7,5 +7,6 @@ DIST boto3-1.43.18.gh.tar.gz 1151413 BLAKE2B 81013f13acbc4e1c154b62b63163b8034cc
DIST boto3-1.43.19.gh.tar.gz 1151877 BLAKE2B 2e0841161be1264af7314127ef7ca145a374dff3ec0e5ac5b00d9ee38076300f40ecfc06881084dec3325d3d85f71aa562b3327ec63fb726715995b64b194d90 SHA512 91cc620b226736b763abc8e7790c763485a53d5175a6f981d50cd3780106f794d1f09e009a4c236dd3c02f9177d9f189daba97b4bfeb1535139f63f14966d8ff
DIST boto3-1.43.2.gh.tar.gz 1133320 BLAKE2B 21890b9f6629ec5af1da155d767a6117beada74550c292ba07d6900666bef39722740493e343a4770cf7f8adbb0030462d9e41366daee4c2bc17c391f14153f2 SHA512 b807ff1e6133285f6f64a83e328b7522f18d2de63838e9d6d70b982f44316b63aed90ddf3cbc12c6c32967c35807c0ef548d647588cd76c09a363e4de0c9b1e0
DIST boto3-1.43.20.gh.tar.gz 1153608 BLAKE2B 14c74c4983763e063110c401406a7023ec4a26e12442d083c85f5757067a3b2a9f2c8def2547e8328de8dbcc372007bc2e782b0efdb1b0ffa584262e47c26a4a SHA512 ce9c0abc4278141549fb98c073f5f3e16d708207129953181546c53ff0c222ce63cf717efb2b5c727de6ee19817abc97561e5b03c3c81b6e76466bafddbb51b7
+DIST boto3-1.43.22.gh.tar.gz 1154525 BLAKE2B ecf768e7dfbb30cc111caaf16b21db86c5ce686e8c049b394533f8e9f6cd75868a629cb0e55bda56e32cc9b65da76c81203bf93d510eeec16e813b9b623644c1 SHA512 cc9514fb65605ef1d36044d671b2b3fe93e34dff13a7f1eafb4bd2810380460f510d7c37265395009e3da60d7f52e56b8695a8b355b13a948a6db423569bb4ce
DIST boto3-1.43.6.gh.tar.gz 1137408 BLAKE2B 11a92806102c847f0072394f726a56c84f2378f9b75394d3b23f9357a35dd8ae2794149d7d20c0b4f0ba64a14e4234606ac49b846320e770b20eca51c9f53790 SHA512 e51787a036386af77a77f39ef1b857bf1fa6a6a106694ae0f6fd07097420fb1a01ad14037e55a8279c1aa8968c64becede89ef3ecbd5bd43c4af0f30f4e5cae5
DIST boto3-1.43.9.gh.tar.gz 1141698 BLAKE2B 37721c03d15d8cc7d290dcf9e56c5a83d480379514b0504a5164ab0dcec1211f3df001a966562f5f69e94325ccd42bc0da787121c68b75419fa45913feb5a4e6 SHA512 a130960634934428ab43845f69a2997638077c3bf856e12b00637dcd995dd835ad0a01eedd0a25d003d7c3e4515077c5ff19f90d289f5fe3c8bf5d837a629d09
diff --git a/dev-python/boto3/boto3-1.43.22.ebuild b/dev-python/boto3/boto3-1.43.22.ebuild
new file mode 100644
index 000000000000..015f6e99eeec
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.22.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.18.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 6c3d4504987f..39f9893c3bc0 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -7,5 +7,6 @@ DIST botocore-1.43.18.gh.tar.gz 16377376 BLAKE2B 4eb2808f4aa3b2b64f9d4b5d2df19c0
DIST botocore-1.43.19.gh.tar.gz 16389618 BLAKE2B e6a7fa90e34505f40d780d44e0d99ee5b408f8c47204a13a02a10984fe7753941724599cd78ed1b63c45bf22eba35945b6127e5ac8cffd7765c45d2fe808ccef SHA512 9d58dc82d27cc9c74f2a65138203492825b3b311d08e22c33620ff2c33ec0701082072a5b573e4a609bfd5d8f66f36620dea9f36f4cf92cd79d773b6e5951a68
DIST botocore-1.43.2.gh.tar.gz 16233880 BLAKE2B f35f27344dd853b1c6e7c1049d501f034c378149ccff13ebffafa054a1f76d56f54104046804e6957f533c0db7aa49c4249af8820ad9d382e522b1c1149de65d SHA512 72cc8eaf651b0634af1d023098994db3dc8d879f8c685e75c226935010d5dee08da00577a5192d68bb0c23c928efc9573820c74f468e79594ddc1f6e96e89e61
DIST botocore-1.43.20.gh.tar.gz 16407359 BLAKE2B 75ebcbd2952672e445fcd00755dd8da50036da029f9d74daf6f972c78a3663f8beb39f104b7ffa093238bc0d317af59d9c8c8e904c4e3838204714584e2278b3 SHA512 6c45b08a1c2552c9f129c6ba16356facfbe60cba3d3aef7fb76b7bfadeefe0529d34ab6578fbc20e4d861a98ac1e324dfedd0cdacb23d392adf35696d10cbf56
+DIST botocore-1.43.22.gh.tar.gz 16413439 BLAKE2B 8516d423cc67f4110ddc0163546b540fda793021ae16231d381241f07d87dc77b074c50a780023d897a6e18105ac96f1905be8ceb97a72065b08b9a2837ba1a6 SHA512 e6223cf519811e4c66ee930a7944406f24636ff7d2e035ff16f41da964225963b726294498749019af9ccd1a2b699651a439f85af9d9954ea0737def4fb17795
DIST botocore-1.43.6.gh.tar.gz 16273836 BLAKE2B 42049eda3d77066f53733fb4a7df1cbc4e0c7b5e7b2f6398ded8917935935ec7fcae1dd029156eba1eaaf16a73bea6ffe2983b39036552a34b17934985f8a002 SHA512 771d17792bf1c8e75028dcd0fb618ee52fb7c0a57fe2560f564d136cfe17ecdcb1f7185486a10ef60ce80ceb0d446c518e3b2e93facf52e736030b764e8c254b
DIST botocore-1.43.9.gh.tar.gz 16299354 BLAKE2B fcb35ec47d892c36c319a14e62ffedec51fe48ad68beeb2e527c3f282647a5f980a182c8d66ff12a69a45e4c137f1f486b0056345cfeb2c1e52b03b76df5015c SHA512 20033802430564aa77607a0c042511c7831c75f92240da388aaf036d90969f5560b9cb5dbb01f590b95cc9a2039557fd3f540fd6c4170104d732d033e142c08a
diff --git a/dev-python/botocore/botocore-1.43.22.ebuild b/dev-python/botocore/botocore-1.43.22.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.22.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/cachelib/cachelib-0.13.0-r1.ebuild b/dev-python/cachelib/cachelib-0.13.0-r1.ebuild
index b34651cc877d..809cdc1501cc 100644
--- a/dev-python/cachelib/cachelib-0.13.0-r1.ebuild
+++ b/dev-python/cachelib/cachelib-0.13.0-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 x86"
BDEPEND="
test? (
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 349e2500cdc8..eeac0a390579 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -2,9 +2,7 @@ DIST cfn_lint-1.49.3.tar.gz 4037038 BLAKE2B 621ac3cb97d5924e1b29c75924f89a3942b7
DIST cfn_lint-1.49.3.tar.gz.provenance 9768 BLAKE2B fc1c6756840e9ae9862c80cd6854a788ffe4a7e35724121fb1c5aaab38bc1d9be23b66b35cbcb14490e55ee75a39459cd542545d9c543f5bdd53776d8d81c1ed SHA512 acd61ba2f218a51b4ad078465b02a684d8a2903d440450a8a6b9844e28daf64182f887d06734cf7fea433a4c17920ef3236b3e305625fc8a2666cda84e7bc403
DIST cfn_lint-1.50.1.tar.gz 4076509 BLAKE2B 438ce08ba7b37ca76b8a286f18deabd740969627c5177a40fc75fe76c36cb1adebf4c5e5a785b7422f287ee72d294c571d9e1bdfca6b9ef10473a28f4ae993da SHA512 9ac4224f4d5da149747abe00d6bffed88bc8fd3b36a868417bd8cf578b1cf7956812c7caaca4da178a1bed2b31a0a83f22be489176755e2146f8286e2dee12ce
DIST cfn_lint-1.50.1.tar.gz.provenance 9678 BLAKE2B fde3c92469e6b11b53a3734c1266810052dadf96ea1cb2ab9d2f20ad36fa6d499ee260fdbf98f2a97b86543763f3af201d98ddc586a32649aa2bb716d0a206e2 SHA512 6c0af59dc5e2b61eb617f1690d671d85b2a9bc9d0ffec5d86cab9e49cabe4b3b551f16fc4cc720eddab122b69253ba3e31af4ac57cc4947cf23a3589a8e2678f
-DIST cfn_lint-1.51.1.tar.gz 4142083 BLAKE2B e182736243ef60fce02d0c5f150a986c857b56bc6b85794417655a4806284915100b6bb0717394f333caf5f2b8ca13177a0985a347163b892b8628d99848a604 SHA512 fc51ebdbd013368bc35b4425a85c2c1346cec827d28db0bfde2d24e21d5af7e8392e0ddc68184612dee4cf1ccae2aa76ed39bc2ca36e83ccabcc40f672af7059
-DIST cfn_lint-1.51.1.tar.gz.provenance 10054 BLAKE2B 69543bc495c01f826aaad69c02b523fb4e27ff2cd14e088f7e397793e7dc1aa65407d1ece1b349dcc14d2b07d405a0ea614c1703ac0bd1a3c8ea4074653f03a2 SHA512 134cab13677dec78f0da9ea6fe6719796f0f5aaffcd90531a9150cbb35e7efc3217bd15bf8c0f179e8b0e59f6b5fa107237eab2cd59cabb9879327c372007aaa
-DIST cfn_lint-1.51.2.tar.gz 4145007 BLAKE2B 1f782cddbba2b28ef6723059a8bab251592bcab09aa27280733d1633ba6523929c418a8b45bb90910a65f2540faf44e51eeee1a5ad8fd94db6b49d9aec027d26 SHA512 865a9fcb0b935aeaf25cb7f4469a2265c31f03d9e6f2707407fde2b2f712c9a0ed762fd4362a8a75445636e8d3aece9d6c529de21efde055d4d6d8c3da66a840
-DIST cfn_lint-1.51.2.tar.gz.provenance 10177 BLAKE2B 44e10c7815a1de6da3a1ea9c14946c5e9e1f80b2030dc4ef749d12a15725a4a0d2bb6c24236dc6ca5c3c3aea5ccbe00673279926def6767d7c15e379ad9805d0 SHA512 15e76d38e6dbcebb196af6abc2d98be9bfa9c92383dc49a1b5f236b327e4f83c835e880bf727e73c3e676fe205b0ddb6bed569874b556375c2006c977824fc09
DIST cfn_lint-1.51.3.tar.gz 4155028 BLAKE2B 545b321d12f33736773490b6e60a62ee8046a29ca2c0e231d9e895cdc2623126892a4787dd5c97c8489c166f14028647cccd3cd29d826a58f1c9cf1cf0e21e3e SHA512 b2f5b78a7b1badfe8f84dfed010042ee1cae2f5137e3840e8d83b5f9ae7de9ff4c1fee2bc4e26046cfd3fde8638626e062533ff053c55b9a3120c572d50b8ae3
DIST cfn_lint-1.51.3.tar.gz.provenance 10240 BLAKE2B 3a84b9e84086a244660d2998d40b96160a87b0a985df3423efe87cd7f786c78e7347f741dc7dc70f6d0f621f5b0936193d8a5f52d12ee4e28995c75815aaa181 SHA512 8736cfa8f830c88dbab41396635a233253fb82d02159e2d59442ea35aad94562488ab04bfbf2ae0fd9d8ec4c2850fd70907ae74b8e0b16552d48ff166f9a8cff
+DIST cfn_lint-1.51.4.tar.gz 4156267 BLAKE2B 7445b3ac5ba060f7d3004027a6571a091b067180b7709122439a7886660db7aabe5009d2df17b48f1f0f133ea1ed43974a5bebdc7e9b97ae74da640dd455e399 SHA512 3633252f455be097d80a9c9b6660a41f106e4ee833178c29241a77f8f7140f0db9e9b4be729056966f59a59aca6ec206f8fd375ea9a045c21a48444c438d428d
+DIST cfn_lint-1.51.4.tar.gz.provenance 10130 BLAKE2B 887befe8d89d2ae67dbdb319824fad4e51f9ac29e6bc4561b2d4875a2df3626f0f063a1ea2f9c320a881c22d572aff703a1b8f5bab16cb65503bb6e505cf87f9 SHA512 8cd061ba39d9716f2f1ea502b8d1c3c8ce294a797c503d56a01c66e138d988905a18fafa5908033521f6dcb3bda12f70cd92aa7912d059026e490d3a4740895f
diff --git a/dev-python/cfn-lint/cfn-lint-1.51.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.51.2.ebuild
deleted file mode 100644
index d7de023d99dc..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.51.2.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/aws-cloudformation/cfn-lint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/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}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # 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
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.51.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.51.4.ebuild
index d7de023d99dc..d7de023d99dc 100644
--- a/dev-python/cfn-lint/cfn-lint-1.51.1.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.51.4.ebuild
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index 746e1d4499e0..7d4fedba47ad 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -1,6 +1,10 @@
DIST Django-4.2.30.checksum.txt 2498 BLAKE2B 82da291f4b5df6d4058f30e918f47388938429b0b4030672e80ac0b566dd138aa7edf88479cbafe9757c9443b16bc20d8a0708ddad310ebd16390847793cbe20 SHA512 a71849dd02eb2cbfed340ae286c7d02bf6b9cef0509ea04c6b38160ae2779240f54b50ec25487d485ef505c04cb5dc20afd01708460bc1ef5485f1ff0adecba2
DIST Django-5.2.14.checksum.txt 2317 BLAKE2B 0cd012b8815ec7305520483ea1c9db5b3b1373ede52b120010472c662ba55f110c8ac3fd5e12ef539618911dae28d81fbe9886f8436e941b95f2d7d3ae09f4ea SHA512 b81cb4877274d11f6270b55b9726aeec378f92e48f4ce9394a556156aad07af28f622dcad86ab93a594314639259888194a4f8df63bfaa109f69ad7a9441c7a7
+DIST Django-5.2.15.checksum.txt 2678 BLAKE2B 0b7491d214b65731b3d4ca6b9f7628456b520abf96bfbba47daee1e038c58ae485cea7605463cc3902fe92417af93c8cb5ade0ccb3e0804abf98ddbbc3598960 SHA512 ea4588b01a5a0abb8a340bc0fbda7ede35a5ee835c02d4490999f582a1a56df7bffb9f3c5aa8461a2b84f193daee046a6467d980bc011a14918d5709830d438b
DIST Django-6.0.5.checksum.txt 2307 BLAKE2B 8dcc3a52c9cce9dc00d4911025deb818ec2eccdc3f5254dd640720ac81077ea4ab7b8cd39ec96a4c099f9796e81f4980a8b38e5e4750c405fa3fdc1a783c227b SHA512 7acf5c8e6732eb4208b85b31ba2ab939e3bd7a773827d7f8cbb524b255c8f05ad3acb02c40077f2b7e418ae7287f30090f559bbe44c69c91dba6517e5f42a865
+DIST Django-6.0.6.checksum.txt 2667 BLAKE2B ccd5eca7611836d94bf85c6636d7d8adf794aaa6624edc1f051cbffe6b8ebec84166ccf65c8e9ad771fdf6505e5a75e8079092519867f6b8077badccadb0e481 SHA512 d8d0ae636d3f63d46e0b4a922f24abb5ccb97074a07cedc8f195b051342c262f7190c954c36b966089980e562424efff9342a3d6e8913e622f260d7130c86aa9
DIST django-4.2.30.tar.gz 10468707 BLAKE2B 760101d8eede890455e1df29bf6cd018007216f8f7ceaba8381c757eec5387b0d8524af2e4519cf6adeca93d3116f3f82b57887f73cc68c89dfbffddc79158e8 SHA512 62bbb451a3ab61ab1679ce9e86178147930cc711f01a0d983aa231ffbc4152f1926d3da240751ee4636f1c0c421248d2f3ee5ebd6827c45a4743adae7b46fbe8
DIST django-5.2.14.tar.gz 10895118 BLAKE2B de911089a503cce7c12ee50e4729ea94c5400f6260c84d79ef12f8fbd251ea7d332eb26b5194fbb1663602ff4b2488673498f81e013fb967fe358ef3b6339257 SHA512 e6e05195d4693209de15be99fc6621cc23b5a0d28fbcf2516b271274aa1637be4f55a6b607fb1c5dc8e913a78eca99d76645bce1cc71468a8dfed7e16c129a84
+DIST django-5.2.15.tar.gz 10873669 BLAKE2B 8ecd4b927ddce91a4e0b6d069824798b79098a43832072f8cef84c877bc0b237d25ae761452a5131d350eca4afe9dab5dd1c3e0fbb1af8d5c5ce6e88076341c8 SHA512 ac222ce040bd55dc580bfbc38d5c35802960fcd90070271f2f990f3a2f8c429c837b511fce1c45ef2d21ad518fdd47c26a6486a8f4696f3f2e9ee9e114421a3c
DIST django-6.0.5.tar.gz 10924131 BLAKE2B 03c0e2e5b62efa2a1462d3beba4103d4b30714ecd42f573b3665399feba335925e8032ad01826b4f31da7bf1686768b45b1f872af52c4315900440f4b033bd6d SHA512 c8f06e11217a1ec5a089646c9d3581cbda7c0d1178cdad3547e0d8a3444bd78a093ecea04deebd2d15f6179f43cf9e427385e28ca310de56b8cd7310e3fcb260
+DIST django-6.0.6.tar.gz 10905525 BLAKE2B 129a68d95c31159df5072a95725184784feb310c8e2389d687eb3a50ed066365fc3c981f936a399c3b570b18a3def442220a915a91bc8de1c602a04a0a9e7b2f SHA512 0e8d651d2efa1c368b2177ae48e3a3e17656ab28d1655a3b561acac88558c1db66160461e79b2ef6d589fb589e1afa90e63c5f51d28a215c4abb91de1299f01b
diff --git a/dev-python/django/django-5.2.15.ebuild b/dev-python/django/django-5.2.15.ebuild
new file mode 100644
index 000000000000..9749f699e1ed
--- /dev/null
+++ b/dev-python/django/django-5.2.15.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
+"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20241002 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ # d55979334dcefdb11626220000bec97ade09df07
+ "${FILESDIR}"/django-5.2.7-py314.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${P^}.checksum.txt" sha256 "${P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/django/django-6.0.6.ebuild b/dev-python/django/django-6.0.6.ebuild
new file mode 100644
index 000000000000..c68dd7757e2f
--- /dev/null
+++ b/dev-python/django/django-6.0.6.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+MY_P=${P/_}
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P^}.checksum.txt )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${MY_P^}.checksum.txt" sha256 "${MY_P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion django-admin
+ bashcomp_alias django-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index a8d1bc3d9df4..1a3a151a0bd6 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -1,6 +1,6 @@
-DIST filelock-3.25.2.tar.gz 40480 BLAKE2B ba4435e9f121e2c6e1a584ab915b3b2402cb061c9e173d4c1f5c4225c1f345f6e5fa1f4d46ff3b11f46f433f1bfc801fcd1f6cb456883688798126320ee08e2c SHA512 cc2fa97b1720a9b76c2b66da0268ead7c29d188511737672240002215e90362e5e214befc617dd15aed645dee9077d29b31b24bcccfa1fdd3ab0e8f8982601e1
-DIST filelock-3.25.2.tar.gz.provenance 9520 BLAKE2B e536981b5f552135a6066eaf75ac045590f8fe71da4d1a794fc897a8734d72ab749da7135fb5c7c7cf49ffb0e89890ed1e029091ce8ae05ecc6845fc0898833b SHA512 9a3ba6774aef62a400a73ad561415e184bc1ed717e0b2f4f8d2d42ca74c319f06ff40e88f38093eff3f3e3e2fc08cf296ccbdb1b7d5162b02efd505c9c417a62
DIST filelock-3.28.0.tar.gz 56474 BLAKE2B 174c287a64470c85f203bbb435696275d7bc82ab4a76157a8c7278ef4d5554094ff28ab971f3145022a4031c4d123c8b09b103c4a12699eefa1152ab3ef7a36f SHA512 5729570f86816cb95e0cdca1c0ae830d6fa21b966429348493df7173e091fdb19144336fed762bfb5b950f4b9a056ad1b4891864ab55efd9f2d6475be2216c6f
DIST filelock-3.28.0.tar.gz.provenance 9570 BLAKE2B ffefd7f319adeb400f09576fd7f5454a8d4064c98e94148669a32bc21a37c013218f8dbdbaac7ef93c6490a3ad68e7cb42b39699b49d56bd045fbac963afa043 SHA512 6b3874946d34d64a433efcf56c8bf7c362ea6692965e3277d1e7e542b8f6c3853708ea3f2d33d20f274c395498a76642cab7a887c0750aff9f7a284c49cd3a10
DIST filelock-3.29.0.tar.gz 57571 BLAKE2B d253183ce329cffd2242670fd77f3b4e629bf01b9c306f952bb559bb444929dd4a324d577894855e191c9193e41f743c19376a0a810d2d2b3970ab47bb8a6b43 SHA512 81957a44e2c64d05db5e95bfbba264733b710859aa41d62106d1f6348a2d9af491c6661801797d1a29e28f6a16df34c424b31669efe73b9e7c45123cebb2cdf5
DIST filelock-3.29.0.tar.gz.provenance 9288 BLAKE2B f4ee6047fc7532a609bc6ee634d77c1eea96c8881e0d793e29aa4b97edac884d0c265b874fb31b2aaa54be1a184bb2b24ed986d0cbe46795379d4438475e5708 SHA512 3b44c5b625211cf8f6d31655a6f4592138b63cb1a27948685bb3b2902c3ce59caf5d23f2dcf367b24c20184214586a1e3f9e3f1d9f9e4d7df7258eb9f95b3417
+DIST filelock-3.29.1.tar.gz 59335 BLAKE2B 69fee586a49b80e69c159c1737c8ab4d63fcfbc7fe9ef5c591336b3dd901e8fb4b2e6f87e6fb29e67fdb392e86413dbe820100389fb9067cc4bc7f0bb5af75d9 SHA512 ae11921d0b3df0e0501a47fad9d4da2bf1ce7c93b69b2bb52e6896a74464cd14197246a8dc20754a7aec881539499a230afab4125214e4bc44eeb4037d043161
+DIST filelock-3.29.1.tar.gz.provenance 9943 BLAKE2B 33a80d142c0ff469a61f8497a1cfb1e30e504ebdef7667f94209314569edecb5c9ca97acbea3fd08350e37931628987925c8d901b790e2e1d9b0074bdef7c326 SHA512 0b84a5aca134d6479605353132076e1137353cf1dbd5db93f3f2ea8de079afe93f8556a99bcda7e07c5def3db186edfca8ae603e096c722ebd5d236f76baf2a3
diff --git a/dev-python/filelock/filelock-3.25.2.ebuild b/dev-python/filelock/filelock-3.29.1.ebuild
index 0c8f0c0c6c99..1f38026c0588 100644
--- a/dev-python/filelock/filelock-3.25.2.ebuild
+++ b/dev-python/filelock/filelock-3.29.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/flask-caching/flask-caching-2.3.1-r1.ebuild b/dev-python/flask-caching/flask-caching-2.3.1-r1.ebuild
index 4c0cb0189707..1009a0f29b27 100644
--- a/dev-python/flask-caching/flask-caching-2.3.1-r1.ebuild
+++ b/dev-python/flask-caching/flask-caching-2.3.1-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 x86"
RDEPEND="
>=dev-python/cachelib-0.9.0[${PYTHON_USEDEP}]
diff --git a/dev-python/google-api-core/Manifest b/dev-python/google-api-core/Manifest
index b4726f80b5ba..cd3ad8f9740d 100644
--- a/dev-python/google-api-core/Manifest
+++ b/dev-python/google-api-core/Manifest
@@ -1,2 +1,4 @@
DIST google_api_core-2.30.3.tar.gz 177001 BLAKE2B f92aaca90dbb81ba324310cbea02bc7b9548c46b04c4fd73f94a4a068d28f4faa1593f4494b907c1f48d215c0ace16cf6b8050e4a1096ef7a25584b5f8e9ddb6 SHA512 bf05923a2321ac3c6e61ac1a6f64b063d8bdf2e31ed1f06c9e60defe45b1f8a5297cd40e9e14e0e772a6504f114c6dfd48e72301c493f672c8e903d49a6db00f
DIST google_api_core-2.30.3.tar.gz.provenance 5822 BLAKE2B fcfb17036eb98d36c8adc812d20a51f5755b496f1b4b8198e2e102482a7ec2ccb907aeeaa53893a7cd5b5edd9117e530239f69614ec5adc8c78a52c351941837 SHA512 fb161a1593e6b7e63bcbf022a27a9a660d3b12817d95f81c9e5642497a2b3d22cc0836efc63b7a316a4a6451d980111bcf3bea06cc45432b0ca0449da3dafbf8
+DIST google_api_core-2.31.0.tar.gz 176492 BLAKE2B d7a43dffcfe90b1d73f2697b694d38b72d0fd925c70ee489c2c0b2a136795e74a47dd83a75a679a073d044d07b8c0320b3a69dcac7fcf41358cba777f81d3565 SHA512 3ad498a4639901e0580fe06f5da27d13a46e2843189f15acb6332144fb8fff15a0e97d6d506a64725517241235543d94f12e0e797b3ca3948986c7e060379d09
+DIST google_api_core-2.31.0.tar.gz.provenance 5919 BLAKE2B 82a16489c1b3aa9eff1187a1bace2ecfe9e51891d672ce1d0b219d086f172f5fc0c0e51ea3be925496cbf6c6f400bab0e9b9d4063d7ee653c19eed43d8e8d20c SHA512 3ce46850b8b137d97b20a0c91eeac907e4f9ea6dd610cda7e19e3fbdd184146e401d1d4fca6146a21855dc9276cc7af3d9734e9947aef534d3e761a0ce47ce73
diff --git a/dev-python/google-api-core/google-api-core-2.31.0.ebuild b/dev-python/google-api-core/google-api-core-2.31.0.ebuild
new file mode 100644
index 000000000000..70d0fcde31d3
--- /dev/null
+++ b/dev-python/google-api-core/google-api-core-2.31.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2020-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="Core Library for Google Client Libraries"
+HOMEPAGE="
+ https://github.com/googleapis/google-cloud-python/
+ https://pypi.org/project/google-api-core/
+ https://googleapis.dev/python/google-api-core/latest/index.html
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="grpc"
+
+RDEPEND="
+ >=dev-python/googleapis-common-protos-1.63.2[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.25.0[${PYTHON_USEDEP}]
+ >=dev-python/proto-plus-1.25.0[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-5.29.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.33.0[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ grpc? (
+ >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
+ dev-python/rsa[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # The grpc_gcp module is missing to perform a stress test
+ tests/unit/test_grpc_helpers.py
+)
+
+python_test() {
+ rm -rf google || die
+ epytest tests
+}
diff --git a/dev-python/hiredis/Manifest b/dev-python/hiredis/Manifest
index d10439456cbd..aa8b650c356f 100644
--- a/dev-python/hiredis/Manifest
+++ b/dev-python/hiredis/Manifest
@@ -1 +1,2 @@
DIST hiredis-py-3.3.1.gh.tar.gz 20064 BLAKE2B 9b49159291e21f00561a75e89c443fd879e6cc74a215d68768a54e9ca18e5e60057e236ea1dc40d09efb0cbf1fb38440f323ae1156b0213cb6cf351c72e23016 SHA512 02160cb5200f9741b81e9871944adc106f7fe61fdd749dde948ce9881a15b81bebc5e21047c60ad9bc164ee994fc517015b47282930c195b7c051c15d5b97fcf
+DIST hiredis-py-3.4.0.gh.tar.gz 20142 BLAKE2B 2f008475f266c965ef3b9918cefe7071f140cf4aa7d2f55194f5339a4d59b31d0d9359229f8c91f8ca5e629b8ee02d9c4821651aa77c1027d8405bc7b764def7 SHA512 9c8161b72187eaf64593cd73a855daa6f9bb94ed7b34cded353a0541b9870c2d1ef914f6d575d771432767f9bd6d40c243179f54f674cb2065bb05d206203f6d
diff --git a/dev-python/hiredis/hiredis-3.4.0.ebuild b/dev-python/hiredis/hiredis-3.4.0.ebuild
new file mode 100644
index 000000000000..9da6a8046e12
--- /dev/null
+++ b/dev-python/hiredis/hiredis-3.4.0.ebuild
@@ -0,0 +1,45 @@
+# 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
+
+MY_P=hiredis-py-${PV}
+DESCRIPTION="Python extension that wraps hiredis"
+HOMEPAGE="
+ https://github.com/redis/hiredis-py/
+ https://pypi.org/project/hiredis/
+"
+SRC_URI="
+ https://github.com/redis/hiredis-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+DEPEND="
+ >=dev-libs/hiredis-1.0.0:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}"/hiredis-2.4.0-system-libs.patch
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ rm -rf hiredis || die
+ epytest
+}
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index 661749a52d97..43d43b890e43 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -2,3 +2,5 @@ DIST pbs_installer-2026.5.10.tar.gz 72513 BLAKE2B c20f78d1e026c94b4f9a09036fde6e
DIST pbs_installer-2026.5.10.tar.gz.provenance 9932 BLAKE2B 3d366fd8f3306ce1e66c338bec1cb776b925ef37081366a946182ce68b3781b0ebca32eba55d29e36f734d1554b34486963116b2360d77693313a53fe78c3640 SHA512 c5394edb6f18fd767af548242ba97738e4a1e062d3467abb30060b7950b305e78895311811abb8389d247727f3eb2478c0efeaa6d1e6970c292c6c4ae7f95506
DIST pbs_installer-2026.5.8.tar.gz 71877 BLAKE2B b85346c84c7e2b8859c44a13e844f015feb6f77938c853aa2f31f6572e23bddc8f4fcff2c0a21c814f20517953ed0f273bd5f6cb2ce1bcca0eb20bad8c78e674 SHA512 e3c3fad7358af454c08e31132a74d77afcbb3400e71c31d87440b194e21f00ebb7c663732329e3f5cad224c99d46a84c6958451379c2f0751afe1b372328be0d
DIST pbs_installer-2026.5.8.tar.gz.provenance 9611 BLAKE2B e5191bb1aaf8f1d3cb427ebe6e27186eeac4392db5cdf4bfefdea45361ac490e198e3a30e8f66c42d2be6d317aba4ec477e5c6cebc4cd5d8889b9358cc37eb98 SHA512 d8e146b3939996443e87d1f9ee0814863c9d0274f5390868245bebdc7ac9f379d7fcbd69c6e6a9e65be68b3dc105b05263eae14745b5ad44fb9c23efd6d60fe8
+DIST pbs_installer-2026.6.2.tar.gz 72505 BLAKE2B 631cc767640288849ca45b3c657f71345d4d26e5928c409750d8cea847a66313e232045fa04fc7da8f7c1507ea0cdb5d96f0f598f0e91de2675606a621461779 SHA512 39718058055ae3102187c4c0c58c913f6984841967e63fe3d81f65f2747fe1c6f54e337c076b7af1048d1b3911c2d75b1d6ca834d3820a4c6701a9257329cb03
+DIST pbs_installer-2026.6.2.tar.gz.provenance 10047 BLAKE2B c4c1a314119d1447ae2a391f9a879d1dee14b93af7c7dde85040f484c4bb28a0bf2e12d7305cfa83d9c045785358eabf1220389bf4a2e5dcb78999801c232338 SHA512 2ce2939a90b7aa73c0a5dcac971ef7f8ec5c406c30f5084422216ef9af3ea5033f29ab606ef65ee42e965a615b33abc5d2c02d671cf48989c8a1318811ea605d
diff --git a/dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild b/dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild
new file mode 100644
index 000000000000..5255989ad0b2
--- /dev/null
+++ b/dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Installer for Python Build Standalone"
+HOMEPAGE="
+ https://pypi.org/project/pbs-installer/
+ https://github.com/frostming/pbs-installer/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# httpx is needed to download builds
+# zstandard is needed to install them
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.11 3.12 3.13)
+ <dev-python/httpx-1[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests import-check
diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest
index f4d8f3659995..c7b09016c7dc 100644
--- a/dev-python/plotly/Manifest
+++ b/dev-python/plotly/Manifest
@@ -1 +1,2 @@
DIST plotly.py-6.7.0.gh.tar.gz 10364351 BLAKE2B 335dcabc60048651d6e356bbb59320977989be15d5ea33d03e6ff2b2f5c19d0774679fccbe7da442287ee1dd94cfba14beb2f40fd538f13ffde3acf56839346a SHA512 ad651e9a79be30bb9123f2fd26d8847eba7cc7168924af5237c495352749bebd12c823e5294865ad9aca69ccaeb4636baa1f82b4bcc39b747a02b9b58c52da5d
+DIST plotly.py-6.8.0.gh.tar.gz 10539690 BLAKE2B d76f29669cc393bc8e842a95182f876b15d869cf75dff6ecdd7c4bc01de2239f6d3bcecf2e2a29171fead59e1cbac38820caa7ad9632b3b8d9fda4cbba528be0 SHA512 8be8a6f2cd6ba94bc18130524853679ce8f58d3b220eed06e508dc147209e94df51da68a9b8934288caddcbdf82ef93c3b50ad9c563a7298726383634c7e5ec4
diff --git a/dev-python/plotly/plotly-6.8.0.ebuild b/dev-python/plotly/plotly-6.8.0.ebuild
new file mode 100644
index 000000000000..8e0e8fb4c131
--- /dev/null
+++ b/dev-python/plotly/plotly-6.8.0.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=hatchling
+
+inherit distutils-r1
+
+MY_P=plotly.py-${PV/_}
+DESCRIPTION="Browser-based graphing library for Python"
+HOMEPAGE="
+ https://plotly.com/python/
+ https://github.com/plotly/plotly.py/
+ https://pypi.org/project/plotly/
+"
+SRC_URI="
+ https://github.com/plotly/plotly.py/archive/refs/tags/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}"
+# The tests are not included in the PyPI tarball, to use the GitHub tarball
+# we have to skip npm, which means that the resulting install will
+# unfortunately lack the jupyterlab extension.
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/narwhals-1.15.1[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jupyter[${PYTHON_USEDEP}]
+ dev-python/jupyterlab[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scikit-image[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ dev-python/xarray[${PYTHON_USEDEP}]
+ )
+"
+
+# There are sphinx docs but we are missing a bunch of dependencies.
+# distutils_enable_sphinx ../../../doc/apidoc
+
+EPYTEST_PLUGINS=()
+# xdist is causing pretty nasty race conditions here
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # requires polars
+ tests/test_optional/test_px
+
+ # requires kaleido
+ tests/test_optional/test_kaleido/test_kaleido.py
+)
+
+EPYTEST_DESELECT=(
+ # requires polars
+ 'tests/test_plotly_utils/validators/test_fig_deepcopy.py::test_deepcopy_dataframe[polars]'
+
+ # require anywidgets
+ 'tests/test_io/test_to_from_json.py::test_from_json_output_type[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_from_json_output_type[FigureWidget-FigureWidget1]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_filelike[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_filelike[FigureWidget-FigureWidget1]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_pathlib[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_pathlib[FigureWidget-FigureWidget1]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_file_string[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_file_string[FigureWidget-FigureWidget1]'
+
+ # minor matplotlib incompatibility
+ plotly/matplotlylib/mplexporter/tests/test_basic.py::test_legend_dots
+ plotly/matplotlylib/mplexporter/tests/test_utils.py::test_linestyle
+
+ # fails in non-isolated env
+ test_init/test_dependencies_not_imported.py::test_dependencies_not_imported
+ test_init/test_lazy_imports.py::test_lazy_imports
+
+ # TODO
+ 'tests/test_plotly_utils/validators/test_colorscale_validator.py::test_acceptance_named[Inferno_r]'
+
+ # numpy 2.4
+ tests/test_optional/test_figure_factory/test_figure_factory.py::TestViolin::test_violin_fig
+ tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_encode_customdata_datetime_homogeneous_dataframe
+ tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_encode_customdata_datetime_series
+ tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_numpy_datetime64
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # stop installing junk "js" package
+ sed -i -e '/used by Jupyter extension/d' pyproject.toml || die
+}
+
+src_configure() {
+ # Do not try to fetch stuff with npm
+ export SKIP_NPM=1
+}
diff --git a/dev-python/plumbum/Manifest b/dev-python/plumbum/Manifest
index b4eac123af91..7e5ea13077c9 100644
--- a/dev-python/plumbum/Manifest
+++ b/dev-python/plumbum/Manifest
@@ -1,2 +1,4 @@
DIST plumbum-1.10.0.tar.gz 320039 BLAKE2B 6fa83c89d1585219a0a333929aefb52747d5f0bcd3eb3e890a8581607dda702ad71207226ce5007f7341b8d2105970d4aa237b0d7f59649bff8e991a9cecb150 SHA512 c290ae9bb4475380ae6cc32d801050642d1ef2806df6b1be9e45ed61f511ac5e3a4da2f45104d55b0eb34b6a73c649bab05b8ea9bb84d666adf8d921f8c503e2
DIST plumbum-1.10.0.tar.gz.provenance 9486 BLAKE2B d25167ce4077f4704731cf9ed7bbd4ded0b2372c2328991514ab6d1bc720b86296787f8412e4e1168d27eb691ae8c1d33bbf774301fa7a9557698be215d94af9 SHA512 e85f298df0907fd8e7f343d56580059ab689c627db21989a4879d799eb1f07b3a31d8db67fbd72fcdb4e3fdbc6e18abf4dba7b9097bb7168c111ea23738d512d
+DIST plumbum-2.0.0.tar.gz 378026 BLAKE2B 49ccbefb7e4bae7f85281c62e6c81207270dda7a1d6a587a782cbe34532c4698bf587da8f22b1c092592a3dd55e26d636d082f0e0af5884faf137c32c1ce2cfe SHA512 cc8e8ebaccee5ef7cc79eb0f65057a78f6b2caf946c27b9c8806814b9e50f8925ba7115c58fef8e6bfe7b0bda54c4c4d8985863b0ba214e6c09a07b9bfc4f081
+DIST plumbum-2.0.0.tar.gz.provenance 9484 BLAKE2B b6fe479624642e1b5d34b773efe8c2ec4435bef92f9939d4fc1e5457b4ca603ffa722f3b5546bda61d9b8dd2e146d67a6646e3f3035c658f5d2853ae31af9ba4 SHA512 c32c02f9aa3e2bb77d9eae169b9e92316e6308dc5c30a49108705c02ac194dc5fabfadedf307c45fd2bad5b3ee695d1cede73fdf08176b3f92c61e9624ccc7e3
diff --git a/dev-python/plumbum/plumbum-2.0.0.ebuild b/dev-python/plumbum/plumbum-2.0.0.ebuild
new file mode 100644
index 000000000000..96b8fd152ab1
--- /dev/null
+++ b/dev-python/plumbum/plumbum-2.0.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tomerfiliba/plumbum
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="A library for shell script-like programs in python"
+HOMEPAGE="
+ https://plumbum.readthedocs.io/en/latest/
+ https://github.com/tomerfiliba/plumbum/
+ https://pypi.org/project/plumbum/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.12)
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Need sshd running
+ tests/test_remote.py
+ tests/test_utils.py
+ # Windows specific
+ tests/test_putty.py
+ # Needs sudo without password
+ tests/test_sudo.py
+ # Wrong assumptions about env handling
+ tests/test_env.py::TestEnv::test_change_env
+ tests/test_env.py::TestEnv::test_dictlike
+ tests/test_local.py::TestLocalPath::test_iterdir
+ )
+
+ epytest -o addopts=
+}
+
+pkg_postinst() {
+ optfeature "remote commands via ssh" dev-python/paramiko
+ optfeature "progress bars in jupyter" dev-python/ipywidgets
+ optfeature "colored output in jupyter" dev-python/ipython
+ optfeature "images on the command line" dev-python/pillow
+}
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index a1aa001b9d47..3aba0744a318 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -1,2 +1,4 @@
+DIST pytools-2026.1.1.tar.gz 86006 BLAKE2B d92aa9a186a7690b22de308c191fd2a3db8970ac354947efe012704757210b610bc92399dd39c9e6e393ac231d1251c9a1dca06d8b3527a46b2e9e63cdbcd241 SHA512 0481691fdb81a8bce3ba6b9dadd9cba5333bf6659122f1b0a92c52046a76b8f666028fa52f48af4df79c3354171b4d3ed847fb3d14a14ca3a87f5e3f8b454ce6
+DIST pytools-2026.1.1.tar.gz.provenance 9857 BLAKE2B dbbd3b2bbe2ae6de1611d77a3fe31728ff2a12e9513b69541941d32f8cf60d5308203b43af12ca678ced754328c5a60421c9abff933eb331db18cbe9c41d0f5d SHA512 6c9920f8c18f1a6514d19ccfa952e92628c2089d9500179ebca95849f38c703141efebc0371f16a96f9fe82a7915f15cad842c2c342d0088452fc3a222a3a14e
DIST pytools-2026.1.tar.gz 85929 BLAKE2B 8cf1bd65c74a669ad78214fea94a31e4f84cb84c69180c645f14bddb0e62615d8faad4e7d15bf65ba51b86f14a7a453fd8c9cfc729f90765a3395358e6201a24 SHA512 4172c1a865428610c975f5a164ba886aafc7445f87cb4572b26ac67c8144a4d14f755645a6f5f341d057c10f2f10f3fa4d2822aa75c660a42165be644ec820fc
DIST pytools-2026.1.tar.gz.provenance 9476 BLAKE2B 269542f1236d91f1b7218321e0a4cadf532b952938d0bce927794218e556531e968a693b67460688c182433171cec718b3e317fa43ff1293d020291b9e23fb32 SHA512 fc8e7cc992b09b9947dc7565ab2515a198500ae964834ec2d52107ddd8ec2f26a0a8aa507a1756164dcff69cc11121015d5badb4885e91c2a5a9b34ea6303f97
diff --git a/dev-python/pytools/pytools-2026.1.1.ebuild b/dev-python/pytools/pytools-2026.1.1.ebuild
new file mode 100644
index 000000000000..d022461743fb
--- /dev/null
+++ b/dev-python/pytools/pytools-2026.1.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/inducer/pytools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+# NB: numpy are an "extra" (optional) deps
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/siphash24-1.6[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/sigstore/Manifest b/dev-python/sigstore/Manifest
index 839aaa6426cf..e0590ae7bed1 100644
--- a/dev-python/sigstore/Manifest
+++ b/dev-python/sigstore/Manifest
@@ -1 +1,2 @@
DIST sigstore-python-4.2.0.gh.tar.gz 300449 BLAKE2B 07a5e9682283867af0350e383054e9f9ec62ba022620925ee4baa4e0e2808d4e03ab720fb8a7fb6611284565a3d8ecb1436d60b4dc60050605b8c129ca53ba75 SHA512 8dc3ddad69ed3a72f5b6b8f013f8f7355dc88e8b429f53e23765153ed0d32b019c9372429389a2c660433569fa956e5c7f7ee1d3f084b1bb5c730d415a7d9ec1
+DIST sigstore-python-4.3.0.gh.tar.gz 415515 BLAKE2B 7916adfa7b64ed0acc2ab1689584e3ced8df7587a5579538b9b5d2dc46cccb316e9d348312dfc075a00fc33e3d8b99a38fe8792e95544c5d2bae4845cf99a2d1 SHA512 6211ba78c2d608881ed46870597cf3273af89dc8313499a40a344bce1d6821f23b990cde63d27d6a2c5c1aa1b3d359bbbd368c6e1c11abdb6457d610eb3db580
diff --git a/dev-python/sigstore/sigstore-4.3.0.ebuild b/dev-python/sigstore/sigstore-4.3.0.ebuild
new file mode 100644
index 000000000000..287f00c321dc
--- /dev/null
+++ b/dev-python/sigstore/sigstore-4.3.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P=sigstore-python-${PV}
+DESCRIPTION="A tool for signing Python package distributions"
+HOMEPAGE="
+ https://github.com/sigstore/sigstore-python/
+ https://pypi.org/project/sigstore/
+"
+# no tests in sdist, as of 3.3.0
+SRC_URI="
+ https://github.com/sigstore/sigstore-python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-42[${PYTHON_USEDEP}]
+ >=dev-python/id-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.2[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-23.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.6[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.1[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ~dev-python/rfc3161-client-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/rfc8785-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/rich-13[${PYTHON_USEDEP}]
+ ~dev-python/sigstore-models-0.0.6[${PYTHON_USEDEP}]
+ ~dev-python/sigstore-rekor-types-0.0.18[${PYTHON_USEDEP}]
+ >=dev-python/tuf-6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pretend[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin deps
+ sed -r -i -e 's:~=:>=:' -e 's:, ?< ?[0-9.]*::' pyproject.toml || die
+}
+
+python_test() {
+ epytest test/unit --skip-online
+}
diff --git a/dev-python/sphinx-autodoc-typehints/Manifest b/dev-python/sphinx-autodoc-typehints/Manifest
index ed54a201fb14..3cce0034f4a9 100644
--- a/dev-python/sphinx-autodoc-typehints/Manifest
+++ b/dev-python/sphinx-autodoc-typehints/Manifest
@@ -4,3 +4,5 @@ DIST sphinx_autodoc_typehints-3.10.3.tar.gz 78698 BLAKE2B 94d827a8e896e99f225cf7
DIST sphinx_autodoc_typehints-3.10.3.tar.gz.provenance 10182 BLAKE2B 57894c2962a4bd77e549f686f81e71f3a86dc93041fdda12692f19696afb8e69bfa5e3b70faccda3a0c8fea823f06e4608d8acc31d85a2e8b5cc322b12543787 SHA512 6400a52f04923f4ffa7e6e8aae5130abdf55cb842d115632c4233ae47f9639d59c73ef3d9245e7ed839119f82c815e285df381a32da3eeb3b6d548884e24df97
DIST sphinx_autodoc_typehints-3.10.4.tar.gz 79571 BLAKE2B 6975a7a8af4730b3db5dc03466f2d585b21721a78d63c3d698abd62d68cb8bab12171e817bf7fd26fb0d14bf0a35b61dfe6c410d620bb35fe2a08c30a01f3f4f SHA512 7613dcfb79677586090d215622dd22522813904bae7bef0da81b4869024c2e248125090016ef555c437909b9caffdec8cca0878f37c3bda156bea38a23f9d2ce
DIST sphinx_autodoc_typehints-3.10.4.tar.gz.provenance 10233 BLAKE2B 076fde02ad406e8f49cb4da9fa1c290b0f24083a75193686896dd00fd3b091a873400bbe08fc61d35d5c14e843d3254fd1e242007b1c0f676885ed7b56a2cabc SHA512 e9447087e1725aa3d6f5bf62d3a2ea628e2405104e45b76231fd1e396d76a73fc816162fe3d2033ead92bd0fbe0de42411dd5ecc302cb49fa536cb786798faf3
+DIST sphinx_autodoc_typehints-3.10.5.tar.gz 79721 BLAKE2B 0a841ae1c38de85611ad82fb96d1141c3b3280c312bdb27e86de4b8d50adf52ee2d5b98f1a1d1fd0850498b5e1342414495734a317e991ae02c53cc1fd985bd7 SHA512 3bcc8241b782945810a66c9a5947e942229afd9b6125df60cdee876197b093e63d58f0ba687181ecb8666136ab156d571314409ab00230102b3cf92cd0f67885
+DIST sphinx_autodoc_typehints-3.10.5.tar.gz.provenance 10037 BLAKE2B 675d402ff82e1eb2e8f658ef5ba0aa00db083ffad16fd6e45dad6ee345996e3ced176fa09fb4d9c92215db8c41a2f0e15709061b9da6d614cc1d15c528f48ea8 SHA512 ccad8edef0ec6e479acf1da8769044fb4863e801a5ea15aa36c7b931622de2f7a1540b76152a06ad1bf9f66a2d4f4625f5760a06a62ca4be554fe8d72ca30183
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild
new file mode 100644
index 000000000000..238733c448a1
--- /dev/null
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/sphinx-autodoc-typehints
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Type hints support for the Sphinx autodoc extension"
+HOMEPAGE="
+ https://github.com/tox-dev/sphinx-autodoc-typehints/
+ https://pypi.org/project/sphinx-autodoc-typehints/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
+"
+# skipping optional test dep on dev-python/nptyping as that package
+# is horribly broken and on its way out
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-25.4[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
+ >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Internet
+ tests/test_annotations.py::test_format_annotation
+ tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
+)
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index bfe21d486e3f..03e851718637 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -6,3 +6,5 @@ DIST tox-4.54.0.tar.gz 279256 BLAKE2B f1a1265879ce21f9f4005268dd5800dd7d84d6c914
DIST tox-4.54.0.tar.gz.provenance 9424 BLAKE2B b9f9dee2859d4e640edd8e9ca8274a2715c25a11fe4639ec0b210f9565a12a50523c7f3e051f370259a70772b29abd617b28fa177da7bdc69179b8bd8ff35cf7 SHA512 efdf4aabc3d64219f842c06b9b8ae07b1532076269bd4753bf11e93ff59498337e35eb436f5c5a43028ba4027cd63b5d216febdeb6e0ec9208a435305c8a785f
DIST tox-4.55.0.tar.gz 279415 BLAKE2B 11dda60b9cabd4829237c736bcb9772dd67fb0b3cd3ab5298c8c4ffd7a641430d2ad642a3fd74d8ccae96344b91cf73aeadf1b734b1bd61eb2284c0ba38c70eb SHA512 febc47e4eec439f60dbd26a996469923129aa079abc660f90e6f3da6f37aa1bc335970aea9cde5b7747cbf236acbfd54038aa9b97bba66603ce30c59dde0b39a
DIST tox-4.55.0.tar.gz.provenance 9518 BLAKE2B 63757d88294e09a97b15c77315e567b10bbade87ce731051e2fa513adedf03d43df2fc135b635dfe378d292a5a6cdd81b4177b1d8bb6b7ee5bf5111856738899 SHA512 532bdf5719ce9ea6b11894af6043890289fc72e87d1c2476fc629c2ec8766f76e2444282ee6bb5f9160c20145571c079138e777629b6d026f3420a38f6602fd5
+DIST tox-4.55.1.tar.gz 280676 BLAKE2B ccbf018634d708ba00710ea1c15fa1328acf402f021559cb0d3e78a050449a0a0fae9e3a072c0efcf13e98031ed4aa3baf0298b35cba8cae2d8336c181edb40a SHA512 5d34cccd8e4813c0e4a4406711f2e9e3bd61228d3668044d82858d7fbd9aca60e28ac4cf9a3b13f01acc181de1822b3b4f8d27acb99d403faafbfc8063fc5dcf
+DIST tox-4.55.1.tar.gz.provenance 9530 BLAKE2B 6a8de7003c54e6c388154619fc5900bd968e72862267615f67157e4b4c1294cd1d70dfcb02189788bb415ef84e07775acf08c38fa66113f850c78b00a28f2b68 SHA512 c8773255b47b7078b80c179dff30b0a51a1ec3e0b2576377c377aec87fefa74383e14e4a9c19a067b9eadd45e8611e6d0c2eddbd60b774ac91fbb62abf803e56
diff --git a/dev-python/tox/tox-4.55.1.ebuild b/dev-python/tox/tox-4.55.1.ebuild
new file mode 100644
index 000000000000..db6e52f11b21
--- /dev/null
+++ b/dev-python/tox/tox-4.55.1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/tox
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ dev-python/python-discovery[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} )
+# xdist seems to mess up state between successive implementation runs
+distutils_enable_tests pytest
+
+src_prepare() {
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
+ tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
+ # require tombi
+ tests/session/cmd/test_schema.py::test_schema_tombi_lint
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ case ${EPYTHON} in
+ python*)
+ local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine )
+ ;;
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+ ;;
+ esac
+
+ epytest -o addopts=
+}
diff --git a/dev-python/traitlets/Manifest b/dev-python/traitlets/Manifest
index 1b3674d9dc01..cbf5d3153dc2 100644
--- a/dev-python/traitlets/Manifest
+++ b/dev-python/traitlets/Manifest
@@ -1,2 +1,3 @@
DIST traitlets-5.14.3.tar.gz 161621 BLAKE2B b7367c4f14bf1e5dc24361d5d6780ef353a0356be2cbc8548052a27d279b02ce856b73ae1320d5dcded86afe16e8ead7f9d6964d9822f87cc06b616394c42693 SHA512 7c8469761aab7ad708b12d49c222a6e892877152c68125b805a1819b06292380be16e816c405398ad988f2197adc2c59781457a51efc7d1e410f9ed8b11c06c4
DIST traitlets-5.15.0.tar.gz 163197 BLAKE2B edc61e5d2b5409642372c7b0e5242a99d7deafb9d1a110517b8b8578365bdf0eead11fa111c5347a65f33ea9a26ac85d1713b6015c3108a4a678c5942e3c348d SHA512 81d50489c4827f3a8654008a76d2cda5f397d79c80765f831cd275ed0c7c0cd64a90b9253f60ce26cbb1c000b0a76e15c4a8cf46cfe923417a436c02ff8d034e
+DIST traitlets-5.15.1.tar.gz 163344 BLAKE2B efd33a32d3003c88c0bee8aa8195a4d6773b522a27feb3aa5eb4e907aabb7a48e2c1d9f75ee901093d69f712c8f5f096d13f7fca5afeed5115d023912384552d SHA512 b46fae256eb86094fa0bd30342deb7bd2b120ebd19dc27b6d1cce1c6c58c8a522afc5c131dbccfb0f08de033f2f287a5ebd02e305ccb0dc6b2c6c7ae0499edc6
diff --git a/dev-python/traitlets/traitlets-5.15.1.ebuild b/dev-python/traitlets/traitlets-5.15.1.ebuild
new file mode 100644
index 000000000000..2998ec636d96
--- /dev/null
+++ b/dev-python/traitlets/traitlets-5.15.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A configuration system for Python applications"
+HOMEPAGE="
+ https://github.com/ipython/traitlets/
+ https://pypi.org/project/traitlets/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ test? (
+ >=dev-python/argcomplete-2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/source \
+ dev-python/myst-parser \
+ dev-python/pydata-sphinx-theme
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ tests/test_typing.py
+)
diff --git a/dev-python/typer/Manifest b/dev-python/typer/Manifest
index 8d566af1665a..4e20effb8a77 100644
--- a/dev-python/typer/Manifest
+++ b/dev-python/typer/Manifest
@@ -1,5 +1,4 @@
DIST typer-0.24.2.tar.gz 119849 BLAKE2B baa49b38a5d813278cf1cd98b4a354582902e192dd6265b0905f473c998eeccf0a9f6b4fc07a700ab73eb75d1c37f36122c6b1730778c3a18f15ae6cf2dd0b50 SHA512 4e282e616c8ea57665493bb15bbe3e2a6388f974b602c879a16c14c7c07e55960d9808f4af50b78e79149bb3cb9dbd26da397078ebef8264ec7893ba74034014
DIST typer-0.25.1.tar.gz 122276 BLAKE2B 08089d17ca0c038806d0dcc5795d5f88cd0e0163697288b5ae003bdfcaf95537ff465874f1bb5510fe84e0ae1f7ea9c68ebe08639253a0575c220b26297abeb2 SHA512 26e9927a82d8e17e8eae370b7235a7481b6d875c77c5600f8390c22a5274b3a0e3abe14d1c2eae93850613bf685555afe67a2e495687328615c65fc8d27bcb7b
-DIST typer-0.26.4.tar.gz 201191 BLAKE2B f3daacfdc11eb94431fea1b4b06e8d1c348815a5442cc79e18a5b353864f5edd08a74dbdd039cf4a4f63fa90440b8305f1230facdac8371673c11ee31a1fd8f8 SHA512 05ebdebab17831f8d044ca2513931c789191ca680fbcde0068475917a47d7a252a09c7c1849a4c4153f917c7ec9f147bc476738d5922e73adb686db1ad736ec3
-DIST typer-0.26.5.tar.gz 201494 BLAKE2B 1db1fba0fb41340b5fa76ead3529e77c6a776cd8b3230ddb9d31f8e78b894935cc596b25d102baf49411f272013b7d95a466c09233eef558ad4bcf412d260649 SHA512 ea5c335fdc6a864bc6f9e0ff3a5b81c0e621484c8c33883375080ed97bc5a6de86a5a88d5aa048f6eb145fbeb442b7262da98154e097b5fda31a070392430e51
DIST typer-0.26.6.tar.gz 201595 BLAKE2B 8876972ad0a676ddca9f67c243d820e36dc5c147ece11a797914dd64abf413f0c51f57d7695009b2683c3415010b2ab10c33f36bd853f277f03abee6d0bc7632 SHA512 35acd70290b7318f86f51d7b3a31a12bea719df3ec684f3099cd75ef49eff28700a3f40b1f92bcef855f5087f68a7e7cd367a7ae660850814085b7a7bb2821bc
+DIST typer-0.26.7.tar.gz 201709 BLAKE2B 7c596ef29150726a82261b9f19374418a5380e3de6d8d43cb10299bf6f3afe3c428e92bdd3923ed0485819e0b68d5f0e93df567ef193294c6734dff2a9907186 SHA512 6efa29c2fc45d1c28acd6cbbe49e63784a51c26c833dff20e55281f45b2282838d5ebd7939693ffcc185a9a95ec00485c749183d19d6b33cd41eb402b314bbcc
diff --git a/dev-python/typer/typer-0.26.5.ebuild b/dev-python/typer/typer-0.26.5.ebuild
deleted file mode 100644
index 7e07856e9a6c..000000000000
--- a/dev-python/typer/typer-0.26.5.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 shell-completion pypi
-
-DESCRIPTION="Build great CLIs. Easy to code. Based on Python type hints"
-HOMEPAGE="
- https://typer.tiangolo.com/
- https://github.com/fastapi/typer/
- https://pypi.org/project/typer/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="cli"
-
-RDEPEND="
- >=dev-python/annotated-doc-0.0.2[${PYTHON_USEDEP}]
- >=dev-python/rich-13.8.0[${PYTHON_USEDEP}]
- >=dev-python/shellingham-1.3.0[${PYTHON_USEDEP}]
- cli? ( !dev-lang/erlang )
-"
-BDEPEND="
- test? (
- dev-python/coverage[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # LLM crap
- rm -r typer/.agents || die
- if ! use cli; then
- sed -i -e '/typer\.cli/d' pyproject.toml || die
- fi
-}
-
-python_test() {
- # See scripts/tests.sh
- local -x TERMINAL_WIDTH=3000
- local -x _TYPER_FORCE_DISABLE_TERMINAL=1
- local -x _TYPER_RUN_INSTALL_COMPLETION_TESTS=1
-
- epytest
-}
-
-python_install() {
- if use cli && [[ ! ${COMPLETIONS_INSTALLED} ]]; then
- local -x _TYPER_COMPLETE_TEST_DISABLE_SHELL_DETECTION=1
- newbashcomp - typer < <(typer --show-completion bash || die)
- newzshcomp - typer < <(typer --show-completion zsh || die)
- newfishcomp - typer < <(typer --show-completion fish || die)
- COMPLETIONS_INSTALLED=1
- fi
-
- distutils-r1_python_install
-}
diff --git a/dev-python/typer/typer-0.26.4.ebuild b/dev-python/typer/typer-0.26.7.ebuild
index 7e07856e9a6c..f875bee44d47 100644
--- a/dev-python/typer/typer-0.26.4.ebuild
+++ b/dev-python/typer/typer-0.26.7.ebuild
@@ -52,6 +52,9 @@ python_test() {
local -x _TYPER_FORCE_DISABLE_TERMINAL=1
local -x _TYPER_RUN_INSTALL_COMPLETION_TESTS=1
+ # needed to import tests.util somewhere deep in tests
+ local -x PYTHONPATH=${S}
+
epytest
}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index ceb6772b7f06..c941ffb14de6 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -7,5 +7,6 @@ DIST uv_build-0.11.15.tar.gz 390571 BLAKE2B c15def99bc189d1470200eb1410a7a05f98c
DIST uv_build-0.11.16.tar.gz 390555 BLAKE2B 728d2aa39bd35ace67f95840acc73c7a361f8d9a6ee647d58110440af968ac7d1ddef347099a06facf8454f20218b85d1b367957bc788ac86e41efadfac57714 SHA512 fcc8bdf72e6d1769bc37668e8cbb3f8444f05ce3cb6eca6f949ec02d4adbe638b8f89b143a8af445c7c55ea5f9cffe1ea796ee49a6fdc1f60a07e9642cf9bd4e
DIST uv_build-0.11.17.tar.gz 398969 BLAKE2B d6a7a8f42b86eb8767c8873bcf65422b6ee6d391500359ca697d708635ada7305c898c01e20c2581a8c046229b3a286b5b112f822ab27b2bb71d00e32117572b SHA512 0d9e7507146a8bb3a4c32e20c9856fa614e7ee34c7d350af3bc60ff6a31bc5c6c76df3d45e26490e1da4d8f2036687000f9040afab1d4781cedca81062b29798
DIST uv_build-0.11.18.tar.gz 399045 BLAKE2B 8389c0cc8ffa3d29d8684bb5cfcdb0485e4a0bb3c4ce3a32a3ebb44fcade6deec0e19ed24957716f11ba35e1c48fd34af878b11180544d1a4970faf14cad3819 SHA512 87b7e5bc3e908f3dbd4ab5a9cca29b54a72c961ec15a2955586f9248742f79b6c0974200366ab831cba2be7393a273e9c0302323f7b7389960197194517edfe5
+DIST uv_build-0.11.19.tar.gz 398965 BLAKE2B 01f2ba93ad45b68649599ace9a678478a9a595bcded022a5ff3ec4638f6e4f8d9ad21173c67511bb11f75327f3045e3cb4f9860b57d790502aa71ad8bda59f61 SHA512 9ff1f62933f1f3a81386306ad64c65153848ff9461ee6b690455d1bf6f41ac2287302e42afe11dbc9b1532c08908f96d5158d5b2ff0e829a10330472b7f346cc
DIST uv_build-0.11.7.tar.gz 365752 BLAKE2B 2de7a3656ea9960d2959a6bde66b85979b56e1cedce5ccc38759dae6a165d1d79998bcab3f43e472d91281fe320aadbb00f765776da3f06902b6a81b37d8b0aa SHA512 5ef23796480d36b20d1ca1b5c22eeb86c6634acbe9eb62642044d6c34a8dc45ca59727a77793fa324dbc3656a3659521544387d8afa346879675ff09fef1ca62
DIST uv_build-0.11.8.tar.gz 367238 BLAKE2B 04dfc0cec62b53554b5041f77f0c34794ed2b9890449406af7011182acc23aab77bc087cdfcaf3d360a85169a51c998b4e7c0ddbdda1bdad4f487078226c6890 SHA512 67a5931ba6557c12e1fc668b061c5cfaefea7275fbeac4e658b6e37a748fb67b452b694960cec9bea97bcc4da43e24566a6adfec001057be478d8056894f54a5
diff --git a/dev-python/uv-build/uv-build-0.11.19.ebuild b/dev-python/uv-build/uv-build-0.11.19.ebuild
new file mode 100644
index 000000000000..d66584ed2ede
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.11.19.ebuild
@@ -0,0 +1,99 @@
+# 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}/
+uv_build-${PV}/README.md
+uv_build-${PV}/pyproject.toml
+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 e4e3a8042c08..4f68f00d0969 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -16,6 +16,8 @@ DIST uv-0.11.17-crates.tar.xz 44959296 BLAKE2B 67b39c5547e6809b4788d7945d635e5a7
DIST uv-0.11.17.gh.tar.gz 5349885 BLAKE2B b38fd4e6a4f0fc33f3f8f63ec235e1a586fd481ca600de3869366ac257fb6ef2a98da554b8ee06be03dd883d53d24de061cd771780006c0bfce5ea501b3414d0 SHA512 ff5aaa75585fb23d4de034e0519b333e031551e360863a9de6be551f1f8f90afd528c16ae7699b303bd4567b93cf6d322c33472bb278b9311e83106cf783450e
DIST uv-0.11.18-crates.tar.xz 44929200 BLAKE2B f72160cef10b9a6e8e7cec3ac967a8fedc13c78eb1e2b4a65ec44b9e53f4bd08d653da7c4910d9cf978273fcce64dee378b9afe12f7736e795407f39df8d81c3 SHA512 bc8d0535f1b45d50996ffc422a09133c05f270fb01dc2c227d9fb3ba04ebd1153b98638cbf5ad4b4e2d8725508500c3052e3dd5f6951a97d8df4eab5c574c631
DIST uv-0.11.18.gh.tar.gz 5355670 BLAKE2B c826f9f96fcc62015ea51fe6836f07057156777b6808228eaaccd680d121cf78515f722b82801389d5189c5332b4e9b4bc9a7df6351ee908835b5031b0479378 SHA512 59ef43479bee5cc36dc5966ef5ec7bacb22e17d831ee2a0f8246d73c432cd0da76d230882afc08b31b610f92c333547285af420597f3f696a8acc30107cb2141
+DIST uv-0.11.19-crates.tar.xz 44929200 BLAKE2B f72160cef10b9a6e8e7cec3ac967a8fedc13c78eb1e2b4a65ec44b9e53f4bd08d653da7c4910d9cf978273fcce64dee378b9afe12f7736e795407f39df8d81c3 SHA512 bc8d0535f1b45d50996ffc422a09133c05f270fb01dc2c227d9fb3ba04ebd1153b98638cbf5ad4b4e2d8725508500c3052e3dd5f6951a97d8df4eab5c574c631
+DIST uv-0.11.19.gh.tar.gz 5374193 BLAKE2B 7a18db84b7a6658547e2eab2de5de82f7e678bccf305a04ec7348b79c4d972b8723c7ea1afd12e04077a577e8bba72db5e089f85d1626ea5745204f75f835a00 SHA512 053c0372ded66ec8bcb109524ac67cc035722573ab4ac1a05ffcde6a126f4b67515901e45978b535e3051976effbdf89b99ebb59b62174389e3097ad058eda04
DIST uv-0.11.7-crates.tar.xz 46854096 BLAKE2B b4fc06608d3c68910a48af598803b934017787bbf14599f66fa43096aa3ef2cdeca8ee35230ea3b8446da044a29f0b476f58f224732959e8017720e79a0d7cd8 SHA512 9cdcc1f565a3bf4d3490296710a7821e3760164d723057d591bf923e093aac50f51ad209ceed6f8c4e8fd2104ee90363750017bb56de2c76fca5dda7fcee815b
DIST uv-0.11.7.gh.tar.gz 5220735 BLAKE2B aae6d54fb59def30a517b4b4a1df524af346128a601e8a016dd9f4df3c49733c835e9259a85321f7dd1bdbcad93e6c53a5568521419e213a977653c9d48bde81 SHA512 f9b34b628ac035cacb36bd9cd7276d28c59f768360a197f4c1c036a81651aa6c40b17656c4b5230cc19b496c415687fc99f05bf4c66459e5457f5cef105b8d7e
DIST uv-0.11.8-crates.tar.xz 46751616 BLAKE2B 1b7772787035387868d4ec4ae3383c5e04ec70daaa25241bbdaf1699b3ee24dced7c5035a764be6c9179a6a94c4f21d1883ee7f57ce3f6d0184900ee3d581c40 SHA512 60a717024179a76c69a7dcbc58733854148ded16eef07b0607bdc37d714ac754869eec6ac48528c03782645f1c0a8692f8ec1d4997e2ff9b09748224ac96f897
diff --git a/dev-python/uv/uv-0.11.19.ebuild b/dev-python/uv/uv-0.11.19.ebuild
new file mode 100644
index 000000000000..278562102301
--- /dev/null
+++ b/dev-python/uv/uv-0.11.19.ebuild
@@ -0,0 +1,164 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+RUST_MIN_VER="1.94.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 libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+
+ # uv is now forcing bundled liblzma, sigh
+ sed -i -e '/xz/s:"static"::' Cargo.toml || die
+}
+
+src_configure() {
+ local myfeatures=(
+ test-git
+ test-pypi
+ test-python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ 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/uvicorn/Manifest b/dev-python/uvicorn/Manifest
index f6b9e2d600d0..512ce9413032 100644
--- a/dev-python/uvicorn/Manifest
+++ b/dev-python/uvicorn/Manifest
@@ -4,3 +4,5 @@ DIST uvicorn-0.47.0.tar.gz 90582 BLAKE2B f37c8705b37daf7bb1dd6baf6baa3e310354fce
DIST uvicorn-0.47.0.tar.gz.provenance 9431 BLAKE2B cd6f6ee3a48e788aa5161d1d9fc9066ce49456042c98acdd46adaea60439870f7c6276ab14793a040736aaf497e1b1b82f2e6a010ae8ec445ab29b2a44eaa4c1 SHA512 b0a4fb992aaeca52774751137070e8fd26d55e61491efae97454f37ea043bf437e455775f1b3ba99b95b603da21a8feda54d295dac83dbb0f5957a0b8f653162
DIST uvicorn-0.48.0.tar.gz 91074 BLAKE2B 39b7133a0a83a3f8b09b95288132ef2ed689a8d6df4cdbb6b3e1f18828be579f4db1d64a5385fbbb2d70c06d6918fbe9c6d5bf1582a4ddf1b0f1153d57dec96d SHA512 00215d19b95ff050ff60455e32aacc157950aa10062f11acfc50e919e58f67ed8bfe7d65a5fe57f63e46e1bfb854637436557e94b120bf1567d374bf2c42f9ae
DIST uvicorn-0.48.0.tar.gz.provenance 9384 BLAKE2B f68abf277ebc678fa8345b10b8f2f784beb395840c20b60b7278d69b165c4ee59267696ca873a3947799004c0360fa001a60c133054dc8679f75e988beeab7db SHA512 5deed175065f2986de4b914a5840b0d45d2455f1afc3978895c924caab20604e90c291260fa8a17fab4aec15b44c22d44f8c28a91af59dc06b54f18cebdba952
+DIST uvicorn-0.49.0.tar.gz 91284 BLAKE2B 44bc012868fe519132fba4485f0b8f7c6d9eb586ad7d710a00b9c43147b72ea88433a92121ee4ea0b8a83b017c7f4f8e953f9410341b313b2d04017feecdc3d2 SHA512 7aa56da2baa5f2aebee97a3ebb94f77bef68e4f160657c6ace770bd43c92d66234a2d7d692ff3bc2809a8f8149904ef38692b81f7ff08df8a5b765d4a47bd586
+DIST uvicorn-0.49.0.tar.gz.provenance 9600 BLAKE2B 8b104211313a3da23431a693b7d6aa778f174ffc1e66e20b46f34b7986c02739559babd73f34490b07fe32dc8422bd1f5fa9a3f0fff6348a7d63bfe2d865bbf6 SHA512 075901986512a504961048faaf3e99600cd97f2940c2418616344843520e1924060d57acb214962d648c3c570f40cf1b3bce547bdf929d36adaf8a32f7ad8a5f
diff --git a/dev-python/uvicorn/uvicorn-0.49.0.ebuild b/dev-python/uvicorn/uvicorn-0.49.0.ebuild
new file mode 100644
index 000000000000..71d102991929
--- /dev/null
+++ b/dev-python/uvicorn/uvicorn-0.49.0.ebuild
@@ -0,0 +1,80 @@
+# Copyright 2021-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/Kludex/uvicorn
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Lightning-fast ASGI server implementation"
+HOMEPAGE="
+ https://www.uvicorn.org/
+ https://github.com/Kludex/uvicorn/
+ https://pypi.org/project/uvicorn/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/asgiref-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ >=dev-python/h11-0.8[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/a2wsgi[${PYTHON_USEDEP}]
+ >=dev-python/httptools-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28[${PYTHON_USEDEP}]
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ >=dev-python/websockets-10.4[${PYTHON_USEDEP}]
+ dev-python/wsproto[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ >=dev-python/watchfiles-0.20[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-mock )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # too long path for unix socket
+ tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers
+ # TODO
+ 'tests/protocols/test_http.py::test_close_connection_with_multiple_requests[httptools]'
+ 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[httptools-max=defaults sent=defaults+1]'
+ 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[h11-max=defaults sent=defaults+1]'
+ # tests broken with non-ancient dev-python/websockets
+ tests/protocols/test_websocket.py::test_fragmented_message_exceeding_max_size
+ tests/protocols/test_websocket.py::test_fragmented_message_reassembly
+ )
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/middleware/test_logging.py::test_running_log_using_fd
+ # crashes pytest-xdist
+ tests/test_config.py::test_bind_stdin_works_with_reload_or_workers
+ )
+ ;;
+ esac
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "auto reload on file changes" dev-python/watchfiles
+}