summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-18 07:04:23 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-18 07:04:23 +0000
commitba4c1875f8c9ddf19f301d06ec0b76f59ea23a2a (patch)
treebc819537e71e2911443c8f83ef54825b91701fa5 /dev-python
parent6d5d9f9dd5fb1dec0c667d6f2287019e89b81dd1 (diff)
downloadbaldeagleos-repo-ba4c1875f8c9ddf19f301d06ec0b76f59ea23a2a.tar.gz
baldeagleos-repo-ba4c1875f8c9ddf19f301d06ec0b76f59ea23a2a.tar.xz
baldeagleos-repo-ba4c1875f8c9ddf19f301d06ec0b76f59ea23a2a.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/black/black-25.9.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.40.54.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.40.54.ebuild67
-rw-r--r--dev-python/colorlog/Manifest2
-rw-r--r--dev-python/colorlog/colorlog-6.10.1.ebuild23
-rw-r--r--dev-python/diskcache/diskcache-5.6.3.ebuild3
-rw-r--r--dev-python/django-auth-ldap/Manifest2
-rw-r--r--dev-python/django-auth-ldap/django-auth-ldap-5.1.0.ebuild42
-rw-r--r--dev-python/django-auth-ldap/django-auth-ldap-5.2.0.ebuild1
-rw-r--r--dev-python/django-cache-url/django-cache-url-3.4.5.ebuild1
-rw-r--r--dev-python/django-cors-headers/Manifest1
-rw-r--r--dev-python/django-cors-headers/django-cors-headers-4.8.0.ebuild31
-rw-r--r--dev-python/django-debug-toolbar/Manifest1
-rw-r--r--dev-python/django-debug-toolbar/django-debug-toolbar-6.0.0.ebuild1
-rw-r--r--dev-python/django-filter/Manifest1
-rw-r--r--dev-python/django-filter/django-filter-25.1-r1.ebuild41
-rw-r--r--dev-python/django-js-asset/django-js-asset-3.1.2.ebuild2
-rw-r--r--dev-python/django-otp/Manifest1
-rw-r--r--dev-python/django-otp/django-otp-1.6.0.ebuild46
-rw-r--r--dev-python/django-polymorphic/Manifest1
-rw-r--r--dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild42
-rw-r--r--dev-python/django-polymorphic/django-polymorphic-4.1.0.ebuild2
-rw-r--r--dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch23
-rw-r--r--dev-python/django-redis/Manifest1
-rw-r--r--dev-python/django-redis/django-redis-5.4.0.ebuild83
-rw-r--r--dev-python/django-redis/django-redis-6.0.0.ebuild5
-rw-r--r--dev-python/django-sortedm2m/django-sortedm2m-4.0.0.ebuild2
-rw-r--r--dev-python/django-taggit/django-taggit-6.1.0-r1.ebuild9
-rw-r--r--dev-python/django-template-partials/Manifest1
-rw-r--r--dev-python/django-template-partials/django-template-partials-25.1.ebuild35
-rw-r--r--dev-python/django-timezone-field/django-timezone-field-7.1-r1.ebuild3
-rw-r--r--dev-python/django/django-5.2.7.ebuild2
-rw-r--r--dev-python/django/files/django-5.2.7-py314.patch133
-rw-r--r--dev-python/djangorestframework/Manifest1
-rw-r--r--dev-python/djangorestframework/djangorestframework-3.16.0-r1.ebuild47
-rw-r--r--dev-python/djangorestframework/djangorestframework-3.16.1.ebuild1
-rw-r--r--dev-python/dulwich/Manifest2
-rw-r--r--dev-python/dulwich/dulwich-0.24.5.ebuild121
-rw-r--r--dev-python/h5py/Manifest1
-rw-r--r--dev-python/h5py/h5py-3.15.1.ebuild63
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.142.1.ebuild125
-rw-r--r--dev-python/jupyter-core/Manifest1
-rw-r--r--dev-python/jupyter-core/jupyter-core-5.9.1.ebuild33
-rw-r--r--dev-python/merge3/merge3-0.0.16.ebuild2
-rw-r--r--dev-python/micawber/micawber-0.5.6.ebuild2
-rw-r--r--dev-python/nox/Manifest2
-rw-r--r--dev-python/nox/nox-2025.10.16.ebuild (renamed from dev-python/nox/nox-2025.05.01.ebuild)17
-rw-r--r--dev-python/opentelemetry-api/Manifest2
-rw-r--r--dev-python/opentelemetry-api/opentelemetry-api-1.38.0.ebuild (renamed from dev-python/opentelemetry-api/opentelemetry-api-1.35.0.ebuild)2
-rw-r--r--dev-python/opentelemetry-sdk/Manifest2
-rw-r--r--dev-python/opentelemetry-sdk/opentelemetry-sdk-1.38.0.ebuild (renamed from dev-python/opentelemetry-sdk/opentelemetry-sdk-1.35.0.ebuild)9
-rw-r--r--dev-python/opentelemetry-semantic-conventions/Manifest2
-rw-r--r--dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.38.0.ebuild (renamed from dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.35.0.ebuild)2
-rw-r--r--dev-python/protobuf/Manifest2
-rw-r--r--dev-python/protobuf/protobuf-6.33.0.ebuild154
-rw-r--r--dev-python/pudb/Manifest3
-rw-r--r--dev-python/pudb/pudb-2025.1.2.ebuild (renamed from dev-python/pudb/pudb-2025.1.ebuild)8
-rw-r--r--dev-python/pypi-attestations/Manifest2
-rw-r--r--dev-python/pypi-attestations/pypi-attestations-0.0.28.ebuild40
-rw-r--r--dev-python/pypugjs/pypugjs-5.12.0.ebuild2
-rw-r--r--dev-python/pytest-django/pytest-django-4.11.1.ebuild5
-rw-r--r--dev-python/pytest-jupyter/Manifest1
-rw-r--r--dev-python/pytest-jupyter/pytest-jupyter-0.11.0.ebuild32
-rw-r--r--dev-python/pytokens/pytokens-0.2.0.ebuild2
-rw-r--r--dev-python/requests-file/Manifest1
-rw-r--r--dev-python/requests-file/requests-file-3.0.0.ebuild29
-rw-r--r--dev-python/tifffile/Manifest2
-rw-r--r--dev-python/tifffile/tifffile-2025.10.16.ebuild (renamed from dev-python/tifffile/tifffile-2025.9.30.ebuild)0
-rw-r--r--dev-python/toolz/Manifest2
-rw-r--r--dev-python/toolz/toolz-1.1.0.ebuild33
-rw-r--r--dev-python/tree-sitter/Manifest3
-rw-r--r--dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild67
-rw-r--r--dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild64
-rw-r--r--dev-python/tree-sitter/tree-sitter-0.25.0.ebuild58
-rw-r--r--dev-python/tree-sitter/tree-sitter-0.25.1-r1.ebuild (renamed from dev-python/tree-sitter/tree-sitter-0.25.1.ebuild)2
-rw-r--r--dev-python/uvloop/Manifest1
-rw-r--r--dev-python/uvloop/uvloop-0.22.1.ebuild87
-rw-r--r--dev-python/whenever/Manifest2
-rw-r--r--dev-python/whenever/whenever-0.9.3.ebuild (renamed from dev-python/whenever/whenever-0.9.1.ebuild)0
-rw-r--r--dev-python/wrapt/Manifest2
-rw-r--r--dev-python/wrapt/wrapt-2.0.0_rc5.ebuild (renamed from dev-python/wrapt/wrapt-2.0.0_rc3.ebuild)0
84 files changed, 1059 insertions, 648 deletions
diff --git a/dev-python/black/black-25.9.0.ebuild b/dev-python/black/black-25.9.0.ebuild
index 5ba7be51de4d..08a86a551aee 100644
--- a/dev-python/black/black-25.9.0.ebuild
+++ b/dev-python/black/black-25.9.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
RDEPEND="
>=dev-python/click-8.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index e7e15d17664e..caccd6687789 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -9,3 +9,4 @@ DIST boto3-1.40.50.gh.tar.gz 1009112 BLAKE2B a5c1be6c13cacb8b0fa1a7b4c64a9fec9ca
DIST boto3-1.40.51.gh.tar.gz 1009591 BLAKE2B 1b574f5c14eb8e8274f51764b587c8dc6cd4be95445cd5988cbfd1930ba970643653b7b2343e0c9f28c8ec906d714da662df7ed5743fc4d732e62d39f862e967 SHA512 d2564dce5a656b5f0eff78f2953c1407150e67f92fb01df0ca45f1e62ad0e343ea09fa362e64ecf688f091017ff068eb7a77d37c908d23215c61bcc28bb5cfaa
DIST boto3-1.40.52.gh.tar.gz 1010268 BLAKE2B 83b1ca1b5b65bd8e058fea5a97dc37b6bef6a4243bf0fc2cc1c6d9be1b9808852e5b854ac902e7a97ded4a65cb25279ae43ca39c179c6552b83f859522859f80 SHA512 8e18f4c9ba9101babd0ca83a7094daa1e1302ef2e46c49d67a3b61b00f89983698a0dd2632d2d566138031cf6cbe3924202b60e5aaee4a9d48ace83fa77b8e86
DIST boto3-1.40.53.gh.tar.gz 1011133 BLAKE2B c2b93b36d9ed83c442ee2f2f873668947c06f27122b77eec925ca23b52753ac2056dbfb49aed7793b95c8bba7d8bf5b19df85f9bd7160270f72039dd4c61e412 SHA512 b595ec51307c5d218a25fe88cd26f01786d4b0afb7b160f6c42f256f7fdd1789ed9a05d0b2e77c4967384413328caa7fda43981567ad562ba3230e25844f92ae
+DIST boto3-1.40.54.gh.tar.gz 1012193 BLAKE2B 11f293c1a8737992b44b152db1ed3589ce76f29b22be5d043f6cced42c3134e0b788b12d1fc1c114c7e8a7a964c56fc06dd46a3356d0fdd899f257fd245e73ee SHA512 1c5162a07d731ca1cea80a2b6a5e1d1484357ad238de8108dd3d66a046f0180d4fce74cf8a2590cd6fc3baa21e4b68b196268bb9ac558e530ea6a2e0fdaaa808
diff --git a/dev-python/boto3/boto3-1.40.54.ebuild b/dev-python/boto3/boto3-1.40.54.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.54.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.14.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 1c302cca8ea5..e19cc2fd034b 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -9,3 +9,4 @@ DIST botocore-1.40.50.gh.tar.gz 15222465 BLAKE2B 626b040c06531d96c1e0276e4bf6a70
DIST botocore-1.40.51.gh.tar.gz 15225894 BLAKE2B c4524ecc477f6d21b87040792f4c123e8b1f6dfcee1a8fa04374ced27f685251028a8aa43a5f608bb0a46aa51b2d19d00e46cceaa5822e2a28a701782d8a9109 SHA512 1091fbe9c63b9990367886d937f93392bae720682c0471496cca1c841ef177157e3191575b70f40c721f787b25ea4747df0d1b26c12b9b7eae62db93127695d9
DIST botocore-1.40.52.gh.tar.gz 15233376 BLAKE2B 42b98caa71139cc3893a99216caa5eb3553d37419c24ddf1f8f21798652ef7c61611d887b7b4d2d0d68a6060a7e96c2847f0858d1c9445ad224a586db864d1c2 SHA512 799393c26e105a64fb6e83259f2a4ade3fdddd334056a5bf4f77f7b51eda548687e9fe1de9dad4e95a0258302d63d84a66d2b3e0296643bd96234ec96c31ace3
DIST botocore-1.40.53.gh.tar.gz 15251620 BLAKE2B ff4e660e6b2ab94e1ddc2f7a8c9a888ebc9be3833f672e49dc7fa9960f51caddf6e1ad5d0a7453a8948bcd016f2bbe995c1a06509341713c863b64e92fef01b0 SHA512 f64a034fa916b7cd49a21a3248b888c63635bafbce3034ca1ee144f80a92ccc94ac7f51cb5a459399449259d2f20d6f39efb126d6c19aa6c8200dd87e190e772
+DIST botocore-1.40.54.gh.tar.gz 15251739 BLAKE2B ca4f84e88e76bf2ea9b88833b856b4d6f19b3b973e12bb4b6ffbec2004e6586cf607f410983762d2fefdae9f7d6460abba6362dfcf46887da0acdf249260fc26 SHA512 14b995a497dc77aa8f95a51a77862d6b0a8298f1ff526bc87c4c919a1073c834efd66040ac91279eb3932b81767e09bc360cc11b80951ab3fc2d96b89382fdc2
diff --git a/dev-python/botocore/botocore-1.40.54.ebuild b/dev-python/botocore/botocore-1.40.54.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.54.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+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/colorlog/Manifest b/dev-python/colorlog/Manifest
index 0b49be5cddb9..06b90f66f33c 100644
--- a/dev-python/colorlog/Manifest
+++ b/dev-python/colorlog/Manifest
@@ -1 +1,3 @@
+DIST colorlog-6.10.1.tar.gz 17162 BLAKE2B f30ebe7ee1342581a65db2a1c860fa339303b5692c7de0a016f39845f831532d8c231a478a231f203a616a4e304363a6920cb0a9f52373ab985ffad6cc04fbce SHA512 cb17c23929053842d1a6d592d309d3d2a4ba4b9d07cdcf43efa7c65fb796fe26a588d6689ddb1d88ea0539f4ef4f1f2b98fb71b8e6e7840cc5543e5eabcbd22c
+DIST colorlog-6.10.1.tar.gz.provenance 9456 BLAKE2B 5d601c3a053b2b3571c10eac92951a0ce90eedef9cdb44817c782f2c725e40847b595ea325d4b37dd54dff5c3f682b6a614ec19f719d10b6cad0e01ef25746c8 SHA512 2132c8a6a24c9ee5e73ccdf58a3b2014f2d5c6c4eb53d20adde1b4a58a4669498d1c4eaa2e63b84b6138db425b976c9a84c1482e69e18a0ae9f97dd566767e7a
DIST colorlog-6.9.0.tar.gz 16624 BLAKE2B 6c4e6db3592bafa0c4ee799681076f9c775200d495e19532b63c11e3cd165eeb1c1dfd1b3b0763be6b033d098afec2a467103f2d73e73a6d0592a4d04e1cc2af SHA512 a1f0fa3858314a770050172c287fca3bbd060ea00ce8d042429edf38f363ac21b689204c2f97140bc58c27f708bb15836de699a4692873118471e4e966a8320f
diff --git a/dev-python/colorlog/colorlog-6.10.1.ebuild b/dev-python/colorlog/colorlog-6.10.1.ebuild
new file mode 100644
index 000000000000..a741f49f4d5e
--- /dev/null
+++ b/dev-python/colorlog/colorlog-6.10.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2025 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/borntyping/python-colorlog
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Log formatting with colors"
+HOMEPAGE="
+ https://pypi.org/project/colorlog/
+ https://github.com/borntyping/python-colorlog/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/diskcache/diskcache-5.6.3.ebuild b/dev-python/diskcache/diskcache-5.6.3.ebuild
index a110394efc4b..cb99fe90fbcb 100644
--- a/dev-python/diskcache/diskcache-5.6.3.ebuild
+++ b/dev-python/diskcache/diskcache-5.6.3.ebuild
@@ -32,6 +32,9 @@ BDEPEND="
"
distutils_enable_sphinx docs
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/django-auth-ldap/Manifest b/dev-python/django-auth-ldap/Manifest
index b1058ba2060e..7d7d71b9cef7 100644
--- a/dev-python/django-auth-ldap/Manifest
+++ b/dev-python/django-auth-ldap/Manifest
@@ -1,2 +1,2 @@
-DIST django_auth_ldap-5.1.0.tar.gz 55059 BLAKE2B 4c1cf5cf7113b90be392b519c0ecfceeb72568a6e50803bd276becca22fffb3ec7222069b374e311156d2e4c559b65985af2a740e0a78ec66b398622db66da47 SHA512 3b1257c91d1651df83c1c0343b8f0658d1e9e6b23cbb161ec2f5c847d9c924609509b28f3d1efde9c09e890b73191f0a6a6e9bd802cb4c6985c0c36b5955a9dd
DIST django_auth_ldap-5.2.0.tar.gz 55287 BLAKE2B 3a3f5d79cee7f3f74ea4ed40b4577ecc1e1a1e07ad173d6e9c48fdc7af92497c2689e1f0639173a5503578d4471a995d6ebca8fe7210e6e456345761de7ebad9 SHA512 db3c231331cd53e580bc01aa86c4004554d221ed5f97a90fe0e29a1536bc472abd23502a85b4967acc1c35bf3038ff11147ae18e02abc9466d5d8d60b2a5ddb2
+DIST django_auth_ldap-5.2.0.tar.gz.provenance 9405 BLAKE2B 70b7d1480bbbbc9f3bcfa31ee51c2dcc818c2bd34234811168d986b380a4221b88d35a6c1e753d08b402cbd6ae37eab7d2ca34494b4a8ff5e31d14849f84b9ca SHA512 9eae92494589c9f5344d37b0011e190ea4f0336691d61700c11b5d7ee013287f5101182d2f57d91232799c0804b04ae6a062b8c7a0e3eec5a853bb7f68dad9e5
diff --git a/dev-python/django-auth-ldap/django-auth-ldap-5.1.0.ebuild b/dev-python/django-auth-ldap/django-auth-ldap-5.1.0.ebuild
deleted file mode 100644
index 5a87fe3c7957..000000000000
--- a/dev-python/django-auth-ldap/django-auth-ldap-5.1.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Django LDAP authentication backend"
-HOMEPAGE="
- https://github.com/django-auth-ldap/django-auth-ldap/
- https://pypi.org/project/django-auth-ldap/
-"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/django-3.2[${PYTHON_USEDEP}]
- >=dev-python/python-ldap-3.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- $(python_gen_impl_dep sqlite)
- net-nds/openldap[-minimal]
- )
-"
-
-distutils_enable_sphinx docs --no-autodoc
-
-python_test() {
- # for slapd and slapdtest
- local -x SBIN=/usr/sbin:/usr/$(get_libdir)/openldap
- "${EPYTHON}" -m django test -v 2 --settings tests.settings ||
- die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/django-auth-ldap/django-auth-ldap-5.2.0.ebuild b/dev-python/django-auth-ldap/django-auth-ldap-5.2.0.ebuild
index 5a87fe3c7957..c480831e69a5 100644
--- a/dev-python/django-auth-ldap/django-auth-ldap-5.2.0.ebuild
+++ b/dev-python/django-auth-ldap/django-auth-ldap-5.2.0.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/django-auth-ldap/django-auth-ldap
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild b/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild
index 616ad08c803d..ac88c3058987 100644
--- a/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild
+++ b/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild
@@ -28,6 +28,7 @@ RDEPEND="
DOCS=( AUTHORS.rst CHANGELOG.rst README.rst )
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_prepare_all() {
diff --git a/dev-python/django-cors-headers/Manifest b/dev-python/django-cors-headers/Manifest
index 4700b10c4d8c..e70d0907ec18 100644
--- a/dev-python/django-cors-headers/Manifest
+++ b/dev-python/django-cors-headers/Manifest
@@ -1,2 +1 @@
-DIST django-cors-headers-4.8.0.gh.tar.gz 40304 BLAKE2B b1affef0b0a651d94ba26cb66bf2abe37bcd27b7ceb2f0a750975ef428a6dfe65c30521c9ec09aff976c465ea91c9c59a1abe1bb8b18250567b3cb062a77a138 SHA512 bcc15f65eaf009a8485e18fcd4e0f65ad6b331719746c2b27f18ba03f069bf1aeb2ebaf030ddf57ec97ed3839d9cad15ccd4749aa104d37deba63806dc1a9fd7
DIST django-cors-headers-4.9.0.gh.tar.gz 40976 BLAKE2B 9c32af42fd7b4666c7ae0a16227a3994df8472e9572531acdd5a0f3dc17151d4cce852a2c75254fe75d7c4b48ea4a5fb9577e02b7f6b878ca4af83e46ab83015 SHA512 d655369b149bafcf5fea560c40ab4b69f2e49143e9565806f013101fe5a4de902d6f4bf9961056d10f931537df6dcb36d763138b8a25a3c17971ad5349b6f1b3
diff --git a/dev-python/django-cors-headers/django-cors-headers-4.8.0.ebuild b/dev-python/django-cors-headers/django-cors-headers-4.8.0.ebuild
deleted file mode 100644
index d1d2088b119d..000000000000
--- a/dev-python/django-cors-headers/django-cors-headers-4.8.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Django App that adds CORS (Cross-Origin Resource Sharing) headers to responses"
-HOMEPAGE="
- https://github.com/adamchainz/django-cors-headers/
- https://pypi.org/project/django-cors-headers/
-"
-SRC_URI="
- https://github.com/adamchainz/django-cors-headers/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- >=dev-python/asgiref-3.6[${PYTHON_USEDEP}]
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-django )
-distutils_enable_tests pytest
diff --git a/dev-python/django-debug-toolbar/Manifest b/dev-python/django-debug-toolbar/Manifest
index c04cf46ae763..956b29bdb766 100644
--- a/dev-python/django-debug-toolbar/Manifest
+++ b/dev-python/django-debug-toolbar/Manifest
@@ -1 +1,2 @@
DIST django_debug_toolbar-6.0.0.tar.gz 305331 BLAKE2B a51c465065036a2b9807bcf75561f3b12dea8532312b5f56ae97ed304d97de1e4f686f9ec38952e7defbb1c4142e63946661e2d6248f800072180ffc94cf83c1 SHA512 2772bba84805309cebba962ee386e2c44a922f7b1f61fcb59b9723e107ac950b0b8816f22fbf28c4a11c9e985b3c2343c4a7ca0a07ac0060de5533e95d06d5f4
+DIST django_debug_toolbar-6.0.0.tar.gz.provenance 9931 BLAKE2B 65b8a2edd627e9a5b86d26692d8b5b29f426beaf12f138357f04e3ecfbd7822624d7452a25d43b8ebf7a8b9ed581d0880969d7f7ac52161452064ba050100310 SHA512 bf0bc9b88ecfeb2edee3a99e84e15ad07d173e4072ed35a074303b7ed0e37afabaa83e631760247173098fe3467a6b9a75ed5df9f5bdf5bfab04f7a55ba8e143
diff --git a/dev-python/django-debug-toolbar/django-debug-toolbar-6.0.0.ebuild b/dev-python/django-debug-toolbar/django-debug-toolbar-6.0.0.ebuild
index 4de75dbe590e..e673f24d4b4b 100644
--- a/dev-python/django-debug-toolbar/django-debug-toolbar-6.0.0.ebuild
+++ b/dev-python/django-debug-toolbar/django-debug-toolbar-6.0.0.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/django-commons/django-debug-toolbar
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/django-filter/Manifest b/dev-python/django-filter/Manifest
index 2729169e0852..9a7c0c5594af 100644
--- a/dev-python/django-filter/Manifest
+++ b/dev-python/django-filter/Manifest
@@ -1,2 +1 @@
-DIST django-filter-25.1.gh.tar.gz 139657 BLAKE2B 765b804b997dacdd31c682fec4e64333d9de6d14c5a9aa62d5884ff0ac92e3ae9ed96aee9853ca6c84134b7254216ee63cd0f58b9f4bb28da145de640d95ef6a SHA512 9b1893b83d84918e8d91043e838f559fecd96fed8c77e3ca164c18bfbb630fc5c5ee85eb3ef5834bdca8187d2693540a8a2c922f2107f1ae9a9d905ef8587428
DIST django-filter-25.2.gh.tar.gz 140478 BLAKE2B 1d4ac9aa7023c6049d4a42cb2bc3113b7b38ac1283ad957f3b66a815a7e519fcee30ed34d69973eb329fb95d5e7ecead1505623abefab9e28b87cda7972acd8d SHA512 9bbe21af68e94974f554d1c72053bda75ae35c069b9df7066e5c8b091f90a44244cbc5340b7a8556b6a46c25d8fc26c11f2457f815378314c4bce7e8ece3765a
diff --git a/dev-python/django-filter/django-filter-25.1-r1.ebuild b/dev-python/django-filter/django-filter-25.1-r1.ebuild
deleted file mode 100644
index 35864666c3bd..000000000000
--- a/dev-python/django-filter/django-filter-25.1-r1.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Django app allowing declarative dynamic QuerySet filtering from URL parameters"
-HOMEPAGE="
- https://github.com/carltongibson/django-filter/
- https://pypi.org/project/django-filter/
-"
-SRC_URI="
- https://github.com/carltongibson/django-filter/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- ${RDEPEND}
- dev-python/djangorestframework[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-python_test() {
- local -x DJANGO_SETTINGS_MODULE=tests.settings
- "${EPYTHON}" -m django test -v 2 || die
-}
diff --git a/dev-python/django-js-asset/django-js-asset-3.1.2.ebuild b/dev-python/django-js-asset/django-js-asset-3.1.2.ebuild
index da7671504fb7..70f91d25e7c4 100644
--- a/dev-python/django-js-asset/django-js-asset-3.1.2.ebuild
+++ b/dev-python/django-js-asset/django-js-asset-3.1.2.ebuild
@@ -10,7 +10,7 @@ inherit distutils-r1 pypi
DESCRIPTION="Script tag with additional attributes for django.forms.Media"
HOMEPAGE="
- https://github.com/matthiask/django-js-asset/
+ https://github.com/feincms/django-js-asset/
https://pypi.org/project/django-js-asset/
"
diff --git a/dev-python/django-otp/Manifest b/dev-python/django-otp/Manifest
index ceb2871c3ee2..4abaeabd0108 100644
--- a/dev-python/django-otp/Manifest
+++ b/dev-python/django-otp/Manifest
@@ -1,2 +1 @@
-DIST django_otp-1.6.0.tar.gz 73830 BLAKE2B c68193a6da04d330daa73805389513554944832d0eeaf090d5f7c03fa6f52831658c813c3d4838fe3b71ad7044f1bffe1d74682af78262cf06f38bc05f12a467 SHA512 6800fc61fcf674933a8f0bb928fa97ac794075bc937022866c97d25b2d7f1a02f7402383d487c7a4d7e1bb48abc2ad6fa8c4d808c15222ba8cff35c909b2b22d
DIST django_otp-1.6.1.tar.gz 74134 BLAKE2B fcd3fcdab38f98cef3330ad36008f74f58134a1ea82440caa56a901575ad63805242969689e0381ae0823d70d4a7790c3e9703b6a8d1e3fa30bf10aa5be1bfc2 SHA512 7fdcbc53e7c210b4d8332b6facfefa7bd3d4f51df30f180be3936474da5a2bc604841e964114d2a8826a85839de2088e0e189779c47f7ab98473e575b5e3ffdf
diff --git a/dev-python/django-otp/django-otp-1.6.0.ebuild b/dev-python/django-otp/django-otp-1.6.0.ebuild
deleted file mode 100644
index 57572db5cccc..000000000000
--- a/dev-python/django-otp/django-otp-1.6.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Django framework adding two-factor authentication using one-time passwords"
-HOMEPAGE="
- https://github.com/django-otp/django-otp/
- https://pypi.org/project/django-otp/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- dev-python/freezegun[${PYTHON_USEDEP}]
- || (
- dev-python/qrcode[${PYTHON_USEDEP}]
- dev-python/segno[${PYTHON_USEDEP}]
- )
- $(python_gen_cond_dep '
- dev-python/tomli[${PYTHON_USEDEP}]
- ' 3.10)
- ${RDEPEND}
- )
-"
-
-python_test() {
- local -x PYTHONPATH=test:${PYTHONPATH}
- local -x DJANGO_SETTINGS_MODULE=test_project.settings
- "${EPYTHON}" -m django test -v 2 django_otp ||
- die "Tests fail with ${EPYTHON}"
-}
diff --git a/dev-python/django-polymorphic/Manifest b/dev-python/django-polymorphic/Manifest
index fb56af597d39..21191fc129a5 100644
--- a/dev-python/django-polymorphic/Manifest
+++ b/dev-python/django-polymorphic/Manifest
@@ -1,2 +1 @@
-DIST django-polymorphic-4.0.0.gh.tar.gz 104146 BLAKE2B 10b80b40e93048df9e116e0c6a5f9b38e6e31c2c40644d2066176f8d17649b8af7091a4fa8fdff3c16a32163707adbcb52d6a247592630d85336cd2c9ff11321 SHA512 ca21831a2acc6775568898d53d47b221c8b971eb2a41c3b621ea8af3ae52875cfa2b98d04bd4cd8f1d556fe2c9932a3de44bdb8554302cb82ce0dc19d06abdb2
DIST django-polymorphic-4.1.0.gh.tar.gz 104197 BLAKE2B b76ee07790fc1b88e3f75460adb43d78505e2acce0298872aff9bbcb00bab67e78b4fed228b50a2228c17f22f8fba7a3bb4918281b2535daf3c2273437037d20 SHA512 ef6eab91812d8cd0762648f90b2411ee6d748790e6285e6ea8aea8362c67d9a7433d18726a60b155a1d9f75bf929ed36c447504421d800d04d6e4731e73bb7f1
diff --git a/dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild b/dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild
deleted file mode 100644
index ac468df2b35b..000000000000
--- a/dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Seamless Polymorphic Inheritance for Django Models"
-HOMEPAGE="
- https://github.com/jazzband/django-polymorphic/
- https://pypi.org/project/django-polymorphic/
-"
-SRC_URI="
- https://github.com/jazzband/django-polymorphic/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/django-3.2[$PYTHON_USEDEP]
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- dev-python/dj-database-url[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- # ecb85b3539c71e376eb0a111e98b5b374d5c9532
- "${FILESDIR}/${P}-test.patch"
-)
diff --git a/dev-python/django-polymorphic/django-polymorphic-4.1.0.ebuild b/dev-python/django-polymorphic/django-polymorphic-4.1.0.ebuild
index 49fd45b2be86..855450c94f28 100644
--- a/dev-python/django-polymorphic/django-polymorphic-4.1.0.ebuild
+++ b/dev-python/django-polymorphic/django-polymorphic-4.1.0.ebuild
@@ -30,8 +30,8 @@ BDEPEND="
$(python_gen_impl_dep sqlite)
${RDEPEND}
dev-python/dj-database-url[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-django )
distutils_enable_tests pytest
diff --git a/dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch b/dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch
deleted file mode 100644
index 022c0b3881d9..000000000000
--- a/dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From ecb85b3539c71e376eb0a111e98b5b374d5c9532 Mon Sep 17 00:00:00 2001
-From: Jonathan he <jonathan.he@oracle.com>
-Date: Wed, 5 Feb 2025 16:02:04 -0500
-Subject: [PATCH] PolymorphicQuerySet: Prevent NoneType error in test___lookup
-
----
- polymorphic/query.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/polymorphic/query.py b/polymorphic/query.py
-index 8e93281..ba67529 100644
---- a/polymorphic/query.py
-+++ b/polymorphic/query.py
-@@ -277,7 +277,8 @@ class PolymorphicQuerySet(QuerySet):
- tree_node_test___lookup(self.model, a)
- elif hasattr(a, "get_source_expressions"):
- for source_expression in a.get_source_expressions():
-- test___lookup(source_expression)
-+ if source_expression is not None:
-+ test___lookup(source_expression)
- else:
- assert "___" not in a.name, ___lookup_assert_msg
-
diff --git a/dev-python/django-redis/Manifest b/dev-python/django-redis/Manifest
index 54bf95ca08fa..e32493f7d48c 100644
--- a/dev-python/django-redis/Manifest
+++ b/dev-python/django-redis/Manifest
@@ -1,2 +1 @@
-DIST django-redis-5.4.0.tar.gz 52567 BLAKE2B f3ac670500dbe57d795905d10d3a63102c60de6b61e96af257c0e654cd7aa7dc2e70e512bad55ef4129dd11f60ceaaeeccf78b94486550a555a843e4dea98f1f SHA512 12eb85ee3ce2c8fcf013c804a630bd3eb943de0980d1f6d365b5b5ed762ab956db80329f3e170f330ccc5b9e6f178ffa7938b1880477b7fb609d2cc3680b984a
DIST django_redis-6.0.0.tar.gz 56904 BLAKE2B 795c285fde69dff4809323e7da2aa0d2720c5939ab68197cbc8ab2b3cf468397146d25791e46b148e0214ff25169a8ac9dac990befb07ade16ed695e4b28c7c0 SHA512 616f3a81d986c5958b2d2740ad1becbd304ed395b9907758fd80a1cf2a5457c8f66a158874ee4b416b85c3540dc45f4127587cdf15d7b884c624ab7e8f84272e
diff --git a/dev-python/django-redis/django-redis-5.4.0.ebuild b/dev-python/django-redis/django-redis-5.4.0.ebuild
deleted file mode 100644
index ef7269fffed0..000000000000
--- a/dev-python/django-redis/django-redis-5.4.0.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Full featured redis cache backend for Django"
-HOMEPAGE="
- https://github.com/jazzband/django-redis/
- https://pypi.org/project/django-redis/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- >=dev-python/django-3.2[${PYTHON_USEDEP}]
- >=dev-python/redis-3.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-db/redis
- dev-python/lz4[${PYTHON_USEDEP}]
- dev-python/msgpack[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -e '/--cov/d' \
- -e '/--no-cov/d' \
- -i setup.cfg || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- cd tests || die
- local setting_file settings=(
- settings.sqlite
- settings.sqlite_json
- settings.sqlite_lz4
- settings.sqlite_msgpack
- settings.sqlite_sharding
- settings.sqlite_zlib
- # TODO: requires pyzstd
-# settings.sqlite_zstd
- )
- for setting_file in "${settings[@]}"; do
- einfo "Testing ${setting_file} configuration"
- epytest "--ds=${setting_file}"
- done
-}
-
-src_test() {
- local redis_pid="${T}"/redis.pid
- local redis_port=6379
- local redis_test_config="
- daemonize yes
- pidfile ${redis_pid}
- port ${redis_port}
- bind 127.0.0.1
- "
-
- # Spawn Redis itself for testing purposes
- einfo "Spawning Redis"
- einfo "NOTE: Port ${redis_port} must be free"
- "${EPREFIX}"/usr/sbin/redis-server - <<< "${redis_test_config}" || die
-
- # Run the tests
- distutils-r1_src_test
-
- # Clean up afterwards
- kill "$(<"${redis_pid}")" || die
-}
diff --git a/dev-python/django-redis/django-redis-6.0.0.ebuild b/dev-python/django-redis/django-redis-6.0.0.ebuild
index 44ee6e173562..6d31dc1a29b1 100644
--- a/dev-python/django-redis/django-redis-6.0.0.ebuild
+++ b/dev-python/django-redis/django-redis-6.0.0.ebuild
@@ -27,10 +27,10 @@ BDEPEND="
dev-db/redis
dev-python/lz4[${PYTHON_USEDEP}]
dev-python/msgpack[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-{mock,xdist} )
EPYTEST_XDIST=1
distutils_enable_tests pytest
@@ -42,13 +42,12 @@ src_prepare() {
}
python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
# no clue why we need to set it explicitly
local -x DJANGO_SETTINGS_MODULE=settings.sqlite
# sqlite_zstd requires pyzstd
# the test suite only works with -n4
# https://github.com/jazzband/django-redis/issues/777
- epytest -p xdist -n 4 -p pytest_mock -k "not sqlite_zstd"
+ epytest -n 4 -k "not sqlite_zstd"
}
src_test() {
diff --git a/dev-python/django-sortedm2m/django-sortedm2m-4.0.0.ebuild b/dev-python/django-sortedm2m/django-sortedm2m-4.0.0.ebuild
index 4f83af9cd59f..e407ea3ff918 100644
--- a/dev-python/django-sortedm2m/django-sortedm2m-4.0.0.ebuild
+++ b/dev-python/django-sortedm2m/django-sortedm2m-4.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/django-taggit/django-taggit-6.1.0-r1.ebuild b/dev-python/django-taggit/django-taggit-6.1.0-r1.ebuild
index 64622a46e97c..293c8bdd02db 100644
--- a/dev-python/django-taggit/django-taggit-6.1.0-r1.ebuild
+++ b/dev-python/django-taggit/django-taggit-6.1.0-r1.ebuild
@@ -26,12 +26,8 @@ RDEPEND="
>=dev-python/django-4.1[${PYTHON_USEDEP}]
dev-python/djangorestframework[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-django[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-django )
distutils_enable_tests pytest
python_test() {
@@ -44,6 +40,5 @@ python_test() {
)
fi
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p django -o DJANGO_SETTINGS_MODULE=tests.settings
+ epytest -o DJANGO_SETTINGS_MODULE=tests.settings
}
diff --git a/dev-python/django-template-partials/Manifest b/dev-python/django-template-partials/Manifest
index 8df68660747f..fc2479f01a17 100644
--- a/dev-python/django-template-partials/Manifest
+++ b/dev-python/django-template-partials/Manifest
@@ -1,2 +1 @@
-DIST django_template_partials-25.1.tar.gz 17272 BLAKE2B ffe041046d7c30cd928ad4023263431381104d7d5c48d6c146a465063365700c34fec9d42ebced83092bf6ccbf9e240b791cfd87ee3c38404d952ddba48c44f6 SHA512 f8971d7a5e6afd0ca02e9bb4620f601b267afc0bf7ee99acae0e785b4fa2a9f6eeb9014958e19524c61d47379eea9d97411225707d93ea93f64d169ca5e066ee
DIST django_template_partials-25.2.tar.gz 17787 BLAKE2B e471e8a1b8844352ae7b880e3f4b2ab858ff847a0a1980e80cf50048bfe623869f43fafd0d76ae07f2c6c8e28c95175e5d33bed743cb8930ef7cb5fce4686d74 SHA512 be5b71b498b5828169ef1ad0a79097cd3fe88a0bf6ff9e82d5f7466fd0939855cd053a2349924d0e99cd35553df809a6cc73e383734b62fb8450e3f9b270f2aa
diff --git a/dev-python/django-template-partials/django-template-partials-25.1.ebuild b/dev-python/django-template-partials/django-template-partials-25.1.ebuild
deleted file mode 100644
index 6cdad21f45e8..000000000000
--- a/dev-python/django-template-partials/django-template-partials-25.1.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Reusable named inline partials for the Django Template Language"
-HOMEPAGE="
- https://github.com/carltongibson/django-template-partials/
- https://pypi.org/project/django-template-partials/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/django[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- ${RDEPEND}
- )
-"
-
-python_test() {
- "${EPYTHON}" -m django test --settings=tests.settings -v 2 ||
- die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/django-timezone-field/django-timezone-field-7.1-r1.ebuild b/dev-python/django-timezone-field/django-timezone-field-7.1-r1.ebuild
index 74fb89bb455c..3f017ec3dd55 100644
--- a/dev-python/django-timezone-field/django-timezone-field-7.1-r1.ebuild
+++ b/dev-python/django-timezone-field/django-timezone-field-7.1-r1.ebuild
@@ -29,12 +29,11 @@ RDEPEND="
BDEPEND="
test? (
dev-python/djangorestframework[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-django pytest-lazy-fixtures )
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/django/django-5.2.7.ebuild b/dev-python/django/django-5.2.7.ebuild
index e9357d4a2eda..b8dd7817bc2d 100644
--- a/dev-python/django/django-5.2.7.ebuild
+++ b/dev-python/django/django-5.2.7.ebuild
@@ -56,6 +56,8 @@ PATCHES=(
"${FILESDIR}"/django-4.0-bashcomp.patch
# upstream hardcodes fixed versions, we backported the fixes
"${FILESDIR}"/django-5.2.6-htmlparser.patch
+ # d55979334dcefdb11626220000bec97ade09df07
+ "${FILESDIR}"/django-5.2.7-py314.patch
)
distutils_enable_sphinx docs --no-autodoc
diff --git a/dev-python/django/files/django-5.2.7-py314.patch b/dev-python/django/files/django-5.2.7-py314.patch
new file mode 100644
index 000000000000..ba3fa0b0e617
--- /dev/null
+++ b/dev-python/django/files/django-5.2.7-py314.patch
@@ -0,0 +1,133 @@
+From 82592c9815409a1e023152f565a65b0105565ed2 Mon Sep 17 00:00:00 2001
+From: Mariusz Felisiak <felisiak.mariusz@gmail.com>
+Date: Mon, 28 Jul 2025 23:21:17 +0200
+Subject: [PATCH] Fixed #36531 -- Added forkserver support to parallel test
+ runner.
+
+---
+ django/db/backends/sqlite3/creation.py | 10 +++++-----
+ django/test/runner.py | 16 ++++++++++------
+ tests/backends/sqlite/test_creation.py | 4 ++--
+ tests/test_runner/test_discover_runner.py | 10 ++++++++++
+ 4 files changed, 27 insertions(+), 13 deletions(-)
+
+diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py
+index 802e8b8357..8a07e0c417 100644
+--- a/django/db/backends/sqlite3/creation.py
++++ b/django/db/backends/sqlite3/creation.py
+@@ -62,7 +62,7 @@ class DatabaseCreation(BaseDatabaseCreation):
+ start_method = multiprocessing.get_start_method()
+ if start_method == "fork":
+ return orig_settings_dict
+- if start_method == "spawn":
++ if start_method in {"forkserver", "spawn"}:
+ return {
+ **orig_settings_dict,
+ "NAME": f"{self.connection.alias}_{suffix}.sqlite3",
+@@ -99,9 +99,9 @@ class DatabaseCreation(BaseDatabaseCreation):
+ self.log("Got an error cloning the test database: %s" % e)
+ sys.exit(2)
+ # Forking automatically makes a copy of an in-memory database.
+- # Spawn requires migrating to disk which will be re-opened in
+- # setup_worker_connection.
+- elif multiprocessing.get_start_method() == "spawn":
++ # Forkserver and spawn require migrating to disk which will be
++ # re-opened in setup_worker_connection.
++ elif multiprocessing.get_start_method() in {"forkserver", "spawn"}:
+ ondisk_db = sqlite3.connect(target_database_name, uri=True)
+ self.connection.connection.backup(ondisk_db)
+ ondisk_db.close()
+@@ -137,7 +137,7 @@ class DatabaseCreation(BaseDatabaseCreation):
+ # Update settings_dict in place.
+ self.connection.settings_dict.update(settings_dict)
+ self.connection.close()
+- elif start_method == "spawn":
++ elif start_method in {"forkserver", "spawn"}:
+ alias = self.connection.alias
+ connection_str = (
+ f"file:memorydb_{alias}_{_worker_id}?mode=memory&cache=shared"
+diff --git a/django/test/runner.py b/django/test/runner.py
+index b83cd37343..cc2fb2ebdf 100644
+--- a/django/test/runner.py
++++ b/django/test/runner.py
+@@ -387,8 +387,9 @@ def get_max_test_processes():
+ The maximum number of test processes when using the --parallel option.
+ """
+ # The current implementation of the parallel test runner requires
+- # multiprocessing to start subprocesses with fork() or spawn().
+- if multiprocessing.get_start_method() not in {"fork", "spawn"}:
++ # multiprocessing to start subprocesses with fork(), forkserver(), or
++ # spawn().
++ if multiprocessing.get_start_method() not in {"fork", "spawn", "forkserver"}:
+ return 1
+ try:
+ return int(os.environ["DJANGO_TEST_PROCESSES"])
+@@ -433,9 +434,12 @@ def _init_worker(
+ counter.value += 1
+ _worker_id = counter.value
+
+- start_method = multiprocessing.get_start_method()
++ is_spawn_or_forkserver = multiprocessing.get_start_method() in {
++ "forkserver",
++ "spawn",
++ }
+
+- if start_method == "spawn":
++ if is_spawn_or_forkserver:
+ if process_setup and callable(process_setup):
+ if process_setup_args is None:
+ process_setup_args = ()
+@@ -446,7 +450,7 @@ def _init_worker(
+ db_aliases = used_aliases if used_aliases is not None else connections
+ for alias in db_aliases:
+ connection = connections[alias]
+- if start_method == "spawn":
++ if is_spawn_or_forkserver:
+ # Restore initial settings in spawned processes.
+ connection.settings_dict.update(initial_settings[alias])
+ if value := serialized_contents.get(alias):
+@@ -589,7 +593,7 @@ class ParallelTestSuite(unittest.TestSuite):
+ return iter(self.subsuites)
+
+ def initialize_suite(self):
+- if multiprocessing.get_start_method() == "spawn":
++ if multiprocessing.get_start_method() in {"forkserver", "spawn"}:
+ self.initial_settings = {
+ alias: connections[alias].settings_dict for alias in connections
+ }
+diff --git a/tests/backends/sqlite/test_creation.py b/tests/backends/sqlite/test_creation.py
+index 8aa24674d2..fe3959c85b 100644
+--- a/tests/backends/sqlite/test_creation.py
++++ b/tests/backends/sqlite/test_creation.py
+@@ -36,8 +36,8 @@ class TestDbSignatureTests(SimpleTestCase):
+ clone_settings_dict = creation_class.get_test_db_clone_settings("1")
+ self.assertEqual(clone_settings_dict["NAME"], expected_clone_name)
+
+- @mock.patch.object(multiprocessing, "get_start_method", return_value="forkserver")
++ @mock.patch.object(multiprocessing, "get_start_method", return_value="unsupported")
+ def test_get_test_db_clone_settings_not_supported(self, *mocked_objects):
+- msg = "Cloning with start method 'forkserver' is not supported."
++ msg = "Cloning with start method 'unsupported' is not supported."
+ with self.assertRaisesMessage(NotSupportedError, msg):
+ connection.creation.get_test_db_clone_settings(1)
+diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py
+index 4f13cceeff..c6ce7f1e1d 100644
+--- a/tests/test_runner/test_discover_runner.py
++++ b/tests/test_runner/test_discover_runner.py
+@@ -98,6 +98,16 @@ class DiscoverRunnerParallelArgumentTests(SimpleTestCase):
+ mocked_cpu_count,
+ ):
+ mocked_get_start_method.return_value = "forkserver"
++ self.assertEqual(get_max_test_processes(), 12)
++ with mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"}):
++ self.assertEqual(get_max_test_processes(), 7)
++
++ def test_get_max_test_processes_other(
++ self,
++ mocked_get_start_method,
++ mocked_cpu_count,
++ ):
++ mocked_get_start_method.return_value = "other"
+ self.assertEqual(get_max_test_processes(), 1)
+ with mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"}):
+ self.assertEqual(get_max_test_processes(), 1)
diff --git a/dev-python/djangorestframework/Manifest b/dev-python/djangorestframework/Manifest
index 80e6d2ea5a00..0dbb762e4d2f 100644
--- a/dev-python/djangorestframework/Manifest
+++ b/dev-python/djangorestframework/Manifest
@@ -1,2 +1 @@
-DIST django-rest-framework-3.16.0.gh.tar.gz 9802743 BLAKE2B 22527415f7181f9657ded599726b90f705c9123b0b530090a10e6cf810ccb16978ba5b4c0ad7f125b457c3eeb0db8a7d9633ddfdff26caef8fe556a9271350bd SHA512 60df1226a18f833c3f79f103cc13df06d72438862272e59d875bddbbefb7bc737b13ca92458c3e0a624f18f9ab5ecd2f035bcc515416a5aaf5b5b680d973fb77
DIST django-rest-framework-3.16.1.gh.tar.gz 10312042 BLAKE2B 291643a06937c938e137d6329ad283924d64542a631ba7c0e2143983d9a3e589a85abff5e02b0937f1eb63de5c8a1c38f6eba4a0b26a5c36de29bb53eb0d4614 SHA512 e1073463b8e5119cc99434cf8d6ea095ed7045f34f5da8430d14c4dc31c560688e6a9c99d7a40b36450d27c8582593cb0875cc2ebd5df6cac2b25c1ba012e696
diff --git a/dev-python/djangorestframework/djangorestframework-3.16.0-r1.ebuild b/dev-python/djangorestframework/djangorestframework-3.16.0-r1.ebuild
deleted file mode 100644
index 9ca173b3ece9..000000000000
--- a/dev-python/djangorestframework/djangorestframework-3.16.0-r1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-# py3.13: https://github.com/encode/django-rest-framework/discussions/9445
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-MY_P=django-rest-framework-${PV}
-DESCRIPTION="Web APIs with django made easy"
-HOMEPAGE="
- https://www.django-rest-framework.org/
- https://github.com/encode/django-rest-framework/
- https://pypi.org/project/djangorestframework/
-"
-SRC_URI="
- https://github.com/encode/django-rest-framework/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/inflection[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # upstream is removing pytz, apparently it's not tested anymore
- # https://github.com/encode/django-rest-framework/discussions/9342
- tests/test_fields.py::TestPytzNaiveDayLightSavingTimeTimeZoneDateTimeField::test_invalid_inputs
-)
diff --git a/dev-python/djangorestframework/djangorestframework-3.16.1.ebuild b/dev-python/djangorestframework/djangorestframework-3.16.1.ebuild
index a0d82ede1f97..59454ea97ede 100644
--- a/dev-python/djangorestframework/djangorestframework-3.16.1.ebuild
+++ b/dev-python/djangorestframework/djangorestframework-3.16.1.ebuild
@@ -4,7 +4,6 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-# py3.13: https://github.com/encode/django-rest-framework/discussions/9445
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1
diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest
index 0cc08d507eb2..6912993918b5 100644
--- a/dev-python/dulwich/Manifest
+++ b/dev-python/dulwich/Manifest
@@ -5,6 +5,8 @@ DIST dulwich-0.24.2.tar.gz 883284 BLAKE2B 4ab3488c864c835b97a60d73bad69ec3fab930
DIST dulwich-0.24.3.tar.gz 911540 BLAKE2B b315d4387573c6723ad3fac4e29d7af60c956f22923d1d3c24d700fb11f916ac5bfa56b3ae61d10a37a9a2e1f5262471b66da0ec33b00cddc6074e807cce28a4 SHA512 3662dd2024241695f21d6d146dbe37efe0143d0965c0f93bd5d334a46718744ab561799e1aeee6d7b75abd8de1579c6a4b958b99850ac946d22a9004ee0dd9be
DIST dulwich-0.24.4.tar.gz 911727 BLAKE2B 6c9dd91a8fadd819180b57b42a0822487693e1d33b44600017d0d1cb07baf18b10d41a0f60d914c135df72b9bda5142a9b2782d1efdb3a1c0bba7b2fef8809db SHA512 67477820d6b13eb93a645e4e390ae52d0fe5af1118620dbddb3e4bf86b797b6aed042b74d4a8418003bef6a6619230e7b3458d2496f21baca1399f1809a574cd
DIST dulwich-0.24.4.tar.gz.provenance 9583 BLAKE2B 9ae12f5f0778f29349cce27d5de52e7ae0ad7c30fc5fcda2d80f21b86673c70ba8f1e497ea855126ddc8b3c1ea46d8ef4e4da1b9162a11eb3cc149cb79bb9634 SHA512 f8ffa810329897f926d92e9a8f20ea40dc44f9f8f1859fb123c1202909ebb311c6e715df7422570ed23342d153466d8e0006251a384dfc6f2f6e4b96399c3e7c
+DIST dulwich-0.24.5.tar.gz 913018 BLAKE2B 68c111fb5e08c57ad6a5829f48ba9c83400d7d71d952e3a400a8350410ef838886dc0fca78100fb7f32db3a89e9dfbad96b3c22012d4386fd0e827f0c5e89a68 SHA512 450aba2f77108f1221159bb5e41289f3eebb5750295047b07df2adc9295bba07766b628ac0b28c24082eb4f5d4bdf123bf5ddb89f7ae1f1374df4bb52f945659
+DIST dulwich-0.24.5.tar.gz.provenance 9673 BLAKE2B 5660ee4813676825980a103cbf4d6f342eab3d60a831a4d40005247f0f3d0dd4f28e571ecafe172963a5a531306ea4bf875b1ae77c620bd022bb8cc16b636408 SHA512 e32ca85ef1bcbd92ff9f0cb8e3e5d8b4796d20b50f2bac046099740a236f73782ec5af7d1fe9a7488054bc6c6636d4fb2ba846a101f6cd5d34b9f46301584e69
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
DIST libc-0.2.174.crate 779933 BLAKE2B 20ffcbbcad6961e732521940f0595039dc0576d85b2d3b2ad3f1decd37571132a4cd7505b2e108078a4379fc4cec46290b5633bcbcc6e7009c3b474c1a852628 SHA512 243f2ffd5741ef859e4dc5b7ee0396071943b1d10429efcaecb322957e256c4be88a7a649029dfd47e6456acc73ee257893fb6c4e8b4d0fe66a12bc5d1c13c73
diff --git a/dev-python/dulwich/dulwich-0.24.5.ebuild b/dev-python/dulwich/dulwich-0.24.5.ebuild
new file mode 100644
index 000000000000..64c6c51839e1
--- /dev/null
+++ b/dev-python/dulwich/dulwich-0.24.5.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/jelmer/dulwich
+PYTHON_COMPAT=( python3_{10..14} )
+
+CRATES="
+ autocfg@1.5.0
+ heck@0.5.0
+ indoc@2.0.6
+ libc@0.2.177
+ memchr@2.7.6
+ memoffset@0.9.1
+ once_cell@1.21.3
+ portable-atomic@1.11.1
+ proc-macro2@1.0.101
+ pyo3-build-config@0.26.0
+ pyo3-ffi@0.26.0
+ pyo3-macros-backend@0.26.0
+ pyo3-macros@0.26.0
+ pyo3@0.26.0
+ quote@1.0.41
+ syn@2.0.106
+ target-lexicon@0.13.3
+ unicode-ident@1.0.19
+ unindent@0.2.4
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
+HOMEPAGE="
+ https://github.com/jelmer/dulwich/
+ https://pypi.org/project/dulwich/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="GPL-2+ Apache-2.0"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
+LICENSE+=" )"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.11)
+"
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${RDEPEND}
+ dev-python/fastimport[${PYTHON_USEDEP}]
+ dev-python/gpgmepy[${PYTHON_USEDEP}]
+ dev-python/merge3[${PYTHON_USEDEP}]
+ dev-python/paramiko[${PYTHON_USEDEP},server(+)]
+ )
+"
+
+distutils_enable_sphinx docs
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so"
+
+pkg_setup() {
+ # avoid rust_pkg_setup which will die when there's no Rust found
+ if use native-extensions ; then
+ rust_pkg_setup # implicitly inherited through cargo
+ fi
+}
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+python_compile() {
+ unset PURE
+ # TODO: enable Rust extensions
+ if ! use native-extensions; then
+ local -x PURE=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # remove interference from the tests that do stuff like user.name
+ unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
+ unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
+ unset EMAIL
+ # Do not use make check which rebuilds the extension and uses -Werror,
+ # causing unexpected failures.
+ "${EPYTHON}" -m unittest -v tests.test_suite ||
+ die "tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/h5py/Manifest b/dev-python/h5py/Manifest
index 17779256d6db..6fdb967d8cda 100644
--- a/dev-python/h5py/Manifest
+++ b/dev-python/h5py/Manifest
@@ -1,2 +1,3 @@
DIST h5py-3.14.0.tar.gz 424323 BLAKE2B 4e8a2f78859aa4a9647a06f9319e79bc7f46d35029c02f7814d6c72fd2211c1d4c0cecdd7c14c3afc77a507e0bf98ef78009b2716f2d9cdbb152dd1578677088 SHA512 54e0054a542c8b62da90e15c110a153cc0cadc6cba1914074d35a6380f8b270ba051de860feb7e31c2ee3d4f09903e456c94e9faa3570764af0e36c480e1c44e
DIST h5py-3.15.0.tar.gz 425986 BLAKE2B f591276161d8c48e66c0678dd4bee88303816b21059c6a83540a69ae4c7890cf02f0dd3a1f81fc168339531319b014a7e24e33d5fc079b57bce401be7a085bbd SHA512 76a382bcfd5805e1a72a3770f1bf60851786642c7cad69021b02f850453e740ab26cd6de032ab0759113b9d2ad6e79f38492779c9acf83491123561dac9d2c6d
+DIST h5py-3.15.1.tar.gz 426236 BLAKE2B ede4864e8f24a3400dc4b4c7708894fb1d673b9e68465016a488d0700e463fb70fbf5f867e3f36d7fbace74ba13463b5933995b556f5deca4ac97c6442870f49 SHA512 db86c2b41823f9adfcd77b8f18ff9c0e3d6a5074cf3b547dd7353075d5edd948e58bd6c5e982a48e8985872d629107e3dca1efb7c5964510fc4b564eefde2fcb
diff --git a/dev-python/h5py/h5py-3.15.1.ebuild b/dev-python/h5py/h5py-3.15.1.ebuild
new file mode 100644
index 000000000000..bee8df0027bc
--- /dev/null
+++ b/dev-python/h5py/h5py-3.15.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple Python interface to HDF5 files"
+HOMEPAGE="
+ https://www.h5py.org/
+ https://github.com/h5py/h5py/
+ https://pypi.org/project/h5py/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+IUSE="examples"
+
+DEPEND="
+ >=dev-python/numpy-1.21.2:=[${PYTHON_USEDEP}]
+ >=sci-libs/hdf5-1.10.4:=[hl(+)]
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+BDEPEND="
+ >=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.14.5[${PYTHON_USEDEP}]
+ >=dev-python/pkgconfig-1.5.5[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-77.0.1[${PYTHON_USEDEP}]
+ test? (
+ dev-python/qtpy[testlib,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+python_prepare_all() {
+ # avoid pytest-mpi dep, we do not use mpi anyway
+ sed -i -e 's:pytest-mpi::' pytest.ini || die
+ distutils-r1_python_prepare_all
+
+ export H5PY_SETUP_REQUIRES=0
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest -m "not mpi"
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 5aa50296f7ba..05fb219eb57f 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -7,3 +7,4 @@ DIST hypothesis-6.140.2.gh.tar.gz 9625203 BLAKE2B f9ca33c1ad7522ab0250e7b453aba0
DIST hypothesis-6.140.3.gh.tar.gz 9625658 BLAKE2B 4316d4aa5f4b2b2a476c6d978d0934450b95f8260efefe6b8d2b2551af504ba2bbff761ac89bdd60fa1b7cc35b6d746c1f24419b56548aa33476960157ec078e SHA512 49be610c4c0af443a9c29262e04649fa4d3a810c386ccc4f570aac82f0289bab34718ae09e80bf10bb91654104b0d57c829d6b4facb8a22da09bfb921de15762
DIST hypothesis-6.141.0.gh.tar.gz 9626287 BLAKE2B 0bf4fcc59f7212a4ba78e052527eda19937d31bc22d311a72ee1fb934bf28fd2b1d292438e1dcd3177457b17337f6bfa8d06ee275f47cd1ee129e68833ef5f97 SHA512 f1b9125669e163c98f9c95767129d149bdd357db5adba66bb6867feffb14ab26395d1494bdd437ff18ef41e798ecda04952050b570ce9ff2e487387ca7d8d79d
DIST hypothesis-6.141.1.gh.tar.gz 9626528 BLAKE2B f7a45ec59649a616cec57f4ceb4d956a4a3c5bf7bdf264873b5244720118160b6b80309336fd58ca6714e6ba70aa9592f5e68eea4f20cd127840bbadb43d68fe SHA512 efec8874ca2f492f067156b18486deb3930b319d69f04decb99de1c01bd3b9cbcd086243b5be5620711486d94b127043a7311019adaa6b10b597f3d079aecb36
+DIST hypothesis-6.142.1.gh.tar.gz 9624401 BLAKE2B 5c736f7af6fa9437699dc85387ee0383e007443b29f16786c86fad056b994d9f5a10142a59098340511f499f02759bf186b542a4522bdb3670672de14b309933 SHA512 ce72892a521ae9d7ae06949efaa04b41ee48d767fb6e8e4b375baa1ed4f9fc77ec0c49b042ccc0f5eff5ca91a60b1f563e7b32ff4f50659ecccab38d4260cca4
diff --git a/dev-python/hypothesis/hypothesis-6.142.1.ebuild b/dev-python/hypothesis/hypothesis-6.142.1.ebuild
new file mode 100644
index 000000000000..69da4112ef36
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.142.1.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.13t)
+ EPYTEST_DESELECT+=(
+ # TODO: missing warning
+ 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns'
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]'
+ hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds
+ hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence
+ hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression
+ hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types
+ hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic
+ hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense
+ hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns
+ hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope
+ hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/jupyter-core/Manifest b/dev-python/jupyter-core/Manifest
index fad7572294d9..29526300ced8 100644
--- a/dev-python/jupyter-core/Manifest
+++ b/dev-python/jupyter-core/Manifest
@@ -1 +1,2 @@
DIST jupyter_core-5.8.1.tar.gz 88923 BLAKE2B 6c71035772039e719f6ec1b9ef9a70b7e651475668672b89f10e47945b224fc110d7a7ec58af8d591388d5608bd2ea2e0e0bba5aac704e48e004f0d59d5175d4 SHA512 6b3b9afbf3cf17546c1750b2725124a21a5bc0070cee580e9e82c902eddd12c54d371769211bc7c3a302fdfb9452bbc78e9e4f1b0d27e65d83f2cf86e3f0529a
+DIST jupyter_core-5.9.1.tar.gz 89814 BLAKE2B 0bfcbbfb7e7932a564ee8f7f800eff1283039bea950a5902a024eb4140a992e6f47c3d07fe839190bc894565aa536bb7b1acaea1c94c8217ae07e80efe9b66d4 SHA512 e248949096858df7627e98fc61c493097ef9c5730497dba0781eb4e3dea225539b7d747d80513b35262ab22111008b34a4bc73359015323fcba89c99485f31d2
diff --git a/dev-python/jupyter-core/jupyter-core-5.9.1.ebuild b/dev-python/jupyter-core/jupyter-core-5.9.1.ebuild
new file mode 100644
index 000000000000..204eb8fa6a4f
--- /dev/null
+++ b/dev-python/jupyter-core/jupyter-core-5.9.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core common functionality of Jupyter projects"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/jupyter_core/
+ https://pypi.org/project/jupyter-core/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/platformdirs-2.5[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.11.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/merge3/merge3-0.0.16.ebuild b/dev-python/merge3/merge3-0.0.16.ebuild
index 70f82ea4cff5..159006c2d83d 100644
--- a/dev-python/merge3/merge3-0.0.16.ebuild
+++ b/dev-python/merge3/merge3-0.0.16.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
distutils_enable_tests unittest
diff --git a/dev-python/micawber/micawber-0.5.6.ebuild b/dev-python/micawber/micawber-0.5.6.ebuild
index b1e3425ce80c..1d0757ff5946 100644
--- a/dev-python/micawber/micawber-0.5.6.ebuild
+++ b/dev-python/micawber/micawber-0.5.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/nox/Manifest b/dev-python/nox/Manifest
index 987aa6a233c5..59e8137f5b7b 100644
--- a/dev-python/nox/Manifest
+++ b/dev-python/nox/Manifest
@@ -1,2 +1,2 @@
-DIST nox-2025.05.01.gh.tar.gz 4023268 BLAKE2B b5cfdb095595108613b2bce716ca3fb84978278de23da21f01a5169931187837056bc1381d510f343593097ff4c779f834c06d1bcef61394e72c87db26a92022 SHA512 1b1efac7dd78029d6c61122cdafde8077bfe2635a1d3441e848847e5c81da6cd9f2db102796b855520e9d239ee5b9b782e50b40e904c9bafafcc2f44cf61e871
DIST nox-2025.10.14.gh.tar.gz 4029759 BLAKE2B fd524485099c0ed9fc363545792c44d919e6cf0abcfd11ac43fab8f9310c5225534d75a1a58c75edc2cbde46f094f148a5d6bd1aedc673e48887c2d8b5dec3c4 SHA512 94b420670391031b17bf3b77450db11bb8f047284ee8a47cf1faa0f526c46594dd4edb1941599c723c806a58aece99f83a7e668e37968b3c8ddc9ef65c9c8661
+DIST nox-2025.10.16.gh.tar.gz 4030415 BLAKE2B 1ad98e773c387669f10de8879bb81d9aeb549f30ba8976e5f8d97589df967244a81138f0dc2e7ff2ddc40e81d694ed8bbf89aa11d9988c615f0b4af100e0b495 SHA512 992bb658ffbc889eeb584a4c3c8785f2a251f111fc0cd4fbe35eb67b5463a45772cefebf2ef2e88d337e4ff7879da47ad0ec07082e904968e7e1996a7d79127d
diff --git a/dev-python/nox/nox-2025.05.01.ebuild b/dev-python/nox/nox-2025.10.16.ebuild
index 2b5688b68e86..0363029d0463 100644
--- a/dev-python/nox/nox-2025.05.01.ebuild
+++ b/dev-python/nox/nox-2025.10.16.ebuild
@@ -24,26 +24,22 @@ KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/argcomplete-1.9.4[${PYTHON_USEDEP}]
- >=dev-python/attrs-23.1[${PYTHON_USEDEP}]
+ >=dev-python/attrs-24.1[${PYTHON_USEDEP}]
>=dev-python/colorlog-2.6.1[${PYTHON_USEDEP}]
>=dev-python/dependency-groups-1.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.9[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.14.1[${PYTHON_USEDEP}]
+ >=dev-python/humanize-4[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.15[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
- dev-python/py[${PYTHON_USEDEP}]
+ >=dev-python/pbs-installer-2025.01.06[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-src_prepare() {
- # remove upper bounds from dependencies
- sed -i -e 's:<[0-9.]*,::' pyproject.toml || die
- distutils-r1_src_prepare
-}
-
python_test() {
local EPYTEST_DESELECT=(
# TODO: conda?
@@ -65,6 +61,5 @@ python_test() {
;;
esac
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest -o tmp_path_retention_policy=all
}
diff --git a/dev-python/opentelemetry-api/Manifest b/dev-python/opentelemetry-api/Manifest
index 6ab343764c96..77979af8f1af 100644
--- a/dev-python/opentelemetry-api/Manifest
+++ b/dev-python/opentelemetry-api/Manifest
@@ -1,3 +1,3 @@
-DIST opentelemetry-python-1.35.0.gh.tar.gz 1248960 BLAKE2B ecb5a671300f60657a77d9b86a9dd673c23ee916020f5fbd658d373b0e6b25a1b448cb5ea5ec7ebcf8ca662f87c728316f260d2809c74e193fab5a2f0762ef4a SHA512 5f530f651df307476af5e364f1a0ae20c0b9600e3ce6dd78e66fddaa012fd398a2ff9539c75d8970e162d969809655478604666e79f88a00918421e186cdfb37
DIST opentelemetry-python-1.36.0.gh.tar.gz 1251116 BLAKE2B 4b2df24523b5f05c0f5efdec895ab641bc7bd6607a71aee91c7db4bc35b4f3cd29e7da17bd4e487f72d645a3cffd572504de9f5987db051e1c74ee14d4074a59 SHA512 6e142e1dc33a8aa1313d61c15b00619b8df9fbff73dd1b9f187370cc6396a1d37b83dfb8d6effad795a37e851f05b88ef2cf487ece3008e172ad9759ceb697c4
DIST opentelemetry-python-1.37.0.gh.tar.gz 1270475 BLAKE2B e3739e70de1f612f2f7ce477810106ef4f9bc444a4001e5e7c20652b185c60b15370675a4da7a877799839076c5fc357bd4dab8e0d82cccbd7b49908a8c6ea42 SHA512 9e8f309b8bdbedb6040acb1f29d1bbfdd4dabc8b5dae01554363431dbdfd7e5d26fdf76e3ca63f1d9b1ab31d570ce24dc41418d85e8cc3b5d65530a52069e8e3
+DIST opentelemetry-python-1.38.0.gh.tar.gz 1272944 BLAKE2B 1750a6e64f673c4ed66ff987ba954b68b6915c24688de4ac7a9585174f6571ed5ee4b38aa8b7467246b95f3b82e06421ed2abada6346590173cc75b020ecba1a SHA512 56d825706f86c30872f4839f86cfd8d8a7837de9ebf7ca0e861787684043b7bf120186d0245aef5ec57b33788444b666cc0875a20d385fb2db54cddf6c5019b5
diff --git a/dev-python/opentelemetry-api/opentelemetry-api-1.35.0.ebuild b/dev-python/opentelemetry-api/opentelemetry-api-1.38.0.ebuild
index 2e0505edce37..9458397b663e 100644
--- a/dev-python/opentelemetry-api/opentelemetry-api-1.35.0.ebuild
+++ b/dev-python/opentelemetry-api/opentelemetry-api-1.38.0.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}/${PN}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
>=dev-python/importlib-metadata-6.0[${PYTHON_USEDEP}]
diff --git a/dev-python/opentelemetry-sdk/Manifest b/dev-python/opentelemetry-sdk/Manifest
index 6ab343764c96..77979af8f1af 100644
--- a/dev-python/opentelemetry-sdk/Manifest
+++ b/dev-python/opentelemetry-sdk/Manifest
@@ -1,3 +1,3 @@
-DIST opentelemetry-python-1.35.0.gh.tar.gz 1248960 BLAKE2B ecb5a671300f60657a77d9b86a9dd673c23ee916020f5fbd658d373b0e6b25a1b448cb5ea5ec7ebcf8ca662f87c728316f260d2809c74e193fab5a2f0762ef4a SHA512 5f530f651df307476af5e364f1a0ae20c0b9600e3ce6dd78e66fddaa012fd398a2ff9539c75d8970e162d969809655478604666e79f88a00918421e186cdfb37
DIST opentelemetry-python-1.36.0.gh.tar.gz 1251116 BLAKE2B 4b2df24523b5f05c0f5efdec895ab641bc7bd6607a71aee91c7db4bc35b4f3cd29e7da17bd4e487f72d645a3cffd572504de9f5987db051e1c74ee14d4074a59 SHA512 6e142e1dc33a8aa1313d61c15b00619b8df9fbff73dd1b9f187370cc6396a1d37b83dfb8d6effad795a37e851f05b88ef2cf487ece3008e172ad9759ceb697c4
DIST opentelemetry-python-1.37.0.gh.tar.gz 1270475 BLAKE2B e3739e70de1f612f2f7ce477810106ef4f9bc444a4001e5e7c20652b185c60b15370675a4da7a877799839076c5fc357bd4dab8e0d82cccbd7b49908a8c6ea42 SHA512 9e8f309b8bdbedb6040acb1f29d1bbfdd4dabc8b5dae01554363431dbdfd7e5d26fdf76e3ca63f1d9b1ab31d570ce24dc41418d85e8cc3b5d65530a52069e8e3
+DIST opentelemetry-python-1.38.0.gh.tar.gz 1272944 BLAKE2B 1750a6e64f673c4ed66ff987ba954b68b6915c24688de4ac7a9585174f6571ed5ee4b38aa8b7467246b95f3b82e06421ed2abada6346590173cc75b020ecba1a SHA512 56d825706f86c30872f4839f86cfd8d8a7837de9ebf7ca0e861787684043b7bf120186d0245aef5ec57b33788444b666cc0875a20d385fb2db54cddf6c5019b5
diff --git a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.35.0.ebuild b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.38.0.ebuild
index 24d7c9ee7aac..9484c573b9eb 100644
--- a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.35.0.ebuild
+++ b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.38.0.ebuild
@@ -24,20 +24,15 @@ S="${WORKDIR}/${MY_P}/${PN}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
~dev-python/opentelemetry-semantic-conventions-${PV}[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/flaky[${PYTHON_USEDEP}]
- )
-"
-EPYTEST_PLUGINS=()
+EPYTEST_PLUGINS=( pytest-rerunfailures )
# Tests cannot handle xdist with high makeopts
# https://bugs.gentoo.org/928132
distutils_enable_tests pytest
diff --git a/dev-python/opentelemetry-semantic-conventions/Manifest b/dev-python/opentelemetry-semantic-conventions/Manifest
index 6ab343764c96..77979af8f1af 100644
--- a/dev-python/opentelemetry-semantic-conventions/Manifest
+++ b/dev-python/opentelemetry-semantic-conventions/Manifest
@@ -1,3 +1,3 @@
-DIST opentelemetry-python-1.35.0.gh.tar.gz 1248960 BLAKE2B ecb5a671300f60657a77d9b86a9dd673c23ee916020f5fbd658d373b0e6b25a1b448cb5ea5ec7ebcf8ca662f87c728316f260d2809c74e193fab5a2f0762ef4a SHA512 5f530f651df307476af5e364f1a0ae20c0b9600e3ce6dd78e66fddaa012fd398a2ff9539c75d8970e162d969809655478604666e79f88a00918421e186cdfb37
DIST opentelemetry-python-1.36.0.gh.tar.gz 1251116 BLAKE2B 4b2df24523b5f05c0f5efdec895ab641bc7bd6607a71aee91c7db4bc35b4f3cd29e7da17bd4e487f72d645a3cffd572504de9f5987db051e1c74ee14d4074a59 SHA512 6e142e1dc33a8aa1313d61c15b00619b8df9fbff73dd1b9f187370cc6396a1d37b83dfb8d6effad795a37e851f05b88ef2cf487ece3008e172ad9759ceb697c4
DIST opentelemetry-python-1.37.0.gh.tar.gz 1270475 BLAKE2B e3739e70de1f612f2f7ce477810106ef4f9bc444a4001e5e7c20652b185c60b15370675a4da7a877799839076c5fc357bd4dab8e0d82cccbd7b49908a8c6ea42 SHA512 9e8f309b8bdbedb6040acb1f29d1bbfdd4dabc8b5dae01554363431dbdfd7e5d26fdf76e3ca63f1d9b1ab31d570ce24dc41418d85e8cc3b5d65530a52069e8e3
+DIST opentelemetry-python-1.38.0.gh.tar.gz 1272944 BLAKE2B 1750a6e64f673c4ed66ff987ba954b68b6915c24688de4ac7a9585174f6571ed5ee4b38aa8b7467246b95f3b82e06421ed2abada6346590173cc75b020ecba1a SHA512 56d825706f86c30872f4839f86cfd8d8a7837de9ebf7ca0e861787684043b7bf120186d0245aef5ec57b33788444b666cc0875a20d385fb2db54cddf6c5019b5
diff --git a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.35.0.ebuild b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.38.0.ebuild
index b622343e0735..4015971e8096 100644
--- a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.35.0.ebuild
+++ b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.38.0.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}/${PN}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/protobuf/Manifest b/dev-python/protobuf/Manifest
index 862a682fef99..a408c54b8b3c 100644
--- a/dev-python/protobuf/Manifest
+++ b/dev-python/protobuf/Manifest
@@ -1,5 +1,6 @@
DIST protobuf-32.0.gh.tar.gz 9692366 BLAKE2B 37e09bec62a5c35a3ca45d4bd4fd27e719a4f04b95f049b265ca7c231459d8333eafc13cfd1126dda5ccf799ab2e2e9f305fcae5525a64b4b1eb45b1fb3a897b SHA512 89806b219fa2132e46bf01b7a5831c2977ad7ebe06750956d0e17bcdc028498e883704445fca56bb813f4b78e935709f67f8fa1b46b597840c58a843483cdafb
DIST protobuf-32.1.gh.tar.gz 9694736 BLAKE2B 37a310799eaa58b14f67c62410f1e150c031b94db5a499ceeda749bd13a1165403a5d4c86ffa45729ae333080697ce0619b29a51d2bc345de012f99a3ce5dd20 SHA512 840239f4fb57450ffe61f2cdc73daf5f1f3ea317b1ab1135a90303783e62722cfa410ff27bb2c5c6d3106be39ccdc95cdfbc5bf271ba79f935ab85f9b8ce3075
+DIST protobuf-33.0.gh.tar.gz 6869946 BLAKE2B ee9a600d67873f129138cb3ab13b3d5197301e8cfc682f194317c8389f7115d10bab73e410116570f8f0ccfe2dc20f8f629b47c90f7b31a3df54acfacda18506 SHA512 365f975f2e982dd2d5588dc0ff435316bf6e50d272e419c01793e4d02f1a9f1e98026fc854ec73f1ee4eb0391701201ae82c7af9b18f3b677d451dd3dd78c468
DIST protobuf-5.29.4.py.tar.gz 424902 BLAKE2B 54941b008ff5ebd007076448828564128d98e9a6a4613c87057c359124940d341358fe28107b929e3e842ac7e1b34ed54c30219ed95cbb418826592e2458a01f SHA512 634faf103ed8320762593689796d26e6b988e1b40277b12dc7356983c07d5d1da8cac1530e4f16c0a1494abfb885f26bf9884988029e863515cf535c62d96c77
DIST protobuf-5.29.5.py.tar.gz 425226 BLAKE2B 1d7461e94ba8bc097d6f52170678665e3cd97ef44e4757e6c20bcb1bdfbfe673d26cd4a63f8e6972af964e381dfffedeb9a4959ec7a7d5a3a3f87f917c8aa329 SHA512 cbb39efe7f6499362b3e4cc9f073df921c8b83d3aafde245a2ca3432f3e744a428e946799c48b2797e08312342e164eced0bf2b8865b8d042b54913855abb1c8
DIST protobuf-6.30.2.gh.tar.gz 9523913 BLAKE2B d3950abfe8b3b61dc2bb61f683b014de29451252c46b670dee75a81eb0b8ed30a3209227aa9483800244af16058469deb281521609d769a3456a798ca8a9a4a3 SHA512 f2ee857a36b49f87257a306b3f3c361770d74aaf24c4650b9d00994e1e1a0b09079fb0ce5ffb4d5a4a32d8ca46e3247d6db454918fa0b104fc8d58e8a0546a96
@@ -8,3 +9,4 @@ DIST protobuf-6.31.1.gh.tar.gz 9602805 BLAKE2B 349a528acaad6bae8c39be2888fcfe855
DIST protobuf-6.31.1.py.tar.gz 441797 BLAKE2B 867ee81473a733020098f76c2ccf22161a73b3a1219e08f0f339f202cff871447d874cc6c13d42ef314a0134d65c56631ba4ab6feb806749f3d18443f666f5d9 SHA512 595c125a116020344d5706adf444e1a3259eae5bce3ca61b92c1ab4cb63c167f97210c71e5e24b8c49c6489777ca6de95abdd398125ba3925313ad5ebe09cc18
DIST protobuf-6.32.0.py.tar.gz 440614 BLAKE2B 615338e96a26c5a9f254b41da41598d9826fa039cff088c94fe3693a1f042631a7b48ac9a3a9bf6de2f6c5d61209796e227df080f4388f46d76afa9fecc94ddd SHA512 c29d1b01984e0cc204bffa5c757e4df4eb8ee696b6f5557414e65310b15956192fc73db5daae176f2b4db03e98c36a46cc74ca8b377df193bc9461142c8269cf
DIST protobuf-6.32.1.py.tar.gz 440635 BLAKE2B 4d6c7c398378e04f130ec281234a96ef59fc34511d9c1c3153851a2623b894dc64d559e02bd8f55c9b7f82d98d43e914ca5967481dcf4eb92f7cd22aa47a4e77 SHA512 f8aeb9cdbde385e728f3006d16f26c540a5ec46f7046486b34cdf254a22acdcf6a152791517cd852cfa866809b0b79b3233757c4f898e4768d00b0d902c30776
+DIST protobuf-6.33.0.py.tar.gz 443463 BLAKE2B 32d7a4e03912356836f748a6d255f171778c91f8d45718d9d1cd67c0c1e5123d74dbd2529baef13c09b022cb2555c1a0852490bde9b6aa7aeda320f062278bab SHA512 9173f832a2e285095ab2e479f7b8155e1005f38cbd385f3752ecd3f68281f1b2f530a12cd784d293263a233fdb94f5f6c5dc988e29fe3345d3e721d8d7ba2dcf
diff --git a/dev-python/protobuf/protobuf-6.33.0.ebuild b/dev-python/protobuf/protobuf-6.33.0.ebuild
new file mode 100644
index 000000000000..f5d1adf34524
--- /dev/null
+++ b/dev-python/protobuf/protobuf-6.33.0.ebuild
@@ -0,0 +1,154 @@
+# Copyright 2008-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Default implementation currently is upb, which doesn't match dev-libs/protobuf
+# https://github.com/protocolbuffers/protobuf/blob/main/python/README.md#implementation-backends
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+GH_PV=$(ver_cut 2-3)
+GH_P=${PN}-${GH_PV}
+
+DESCRIPTION="Google's Protocol Buffers - Python bindings"
+HOMEPAGE="
+ https://protobuf.dev/
+ https://pypi.org/project/protobuf/
+"
+# Rename sdist to avoid conflicts with dev-libs/protobuf
+SRC_URI="
+ $(pypi_sdist_url) -> ${P}.py.tar.gz
+ test? (
+ https://github.com/protocolbuffers/protobuf/archive/v${GH_PV}.tar.gz
+ -> ${GH_P}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# need protobuf compiler
+BDEPEND="
+ test? (
+ dev-libs/protobuf
+ dev-python/absl-py[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ unpack "${P}.py.tar.gz"
+
+ if use test; then
+ mkdir "${WORKDIR}/test" || die
+ cd "${WORKDIR}/test" || die
+ unpack "${GH_P}.gh.tar.gz"
+ fi
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip old-style namespace
+ rm google/__init__.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ local EPYTEST_IGNORE=(
+ # TODO: figure out how to build the pybind11 test extension
+ google/protobuf/internal/recursive_message_pybind11_test.py
+ )
+
+ case ${EPYTHON} in
+ python3.11)
+ EPYTEST_IGNORE+=(
+ # syntax error...
+ google/protobuf/internal/json_format_test.py
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ # exception message mismatch
+ google/protobuf/internal/json_format_test.py::JsonFormatTest::testInvalidTimestamp
+ google/protobuf/internal/well_known_types_test.py::TimeUtilTest::testInvalidTimestamp
+ )
+ ;;
+ esac
+
+ cp -r "${BUILD_DIR}"/{install,test} || die
+ local -x PATH="${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}"
+ cd "${BUILD_DIR}/test$(python_get_sitedir)" || die
+
+ # copy test files from the source tree
+ cp -r "${WORKDIR}/test/${GH_P}/python/google/protobuf/internal/." \
+ google/protobuf/internal/ || die
+ # link the test data for text_format_test.py
+ # (it traverses directories upwards until to finds src/google...)
+ ln -s "${WORKDIR}/test/${GH_P}/src" ../src || die
+
+ # compile test-related protobufs
+ local test_protos=(
+ # from src
+ any_test.proto
+ map_proto2_unittest.proto
+ map_unittest.proto
+ unittest.proto
+ unittest_custom_options.proto
+ unittest_delimited.proto
+ unittest_delimited_import.proto
+ unittest_features.proto
+ unittest_import.proto
+ unittest_import_option.proto
+ unittest_import_public.proto
+ unittest_legacy_features.proto
+ unittest_mset.proto
+ unittest_mset_wire_format.proto
+ unittest_no_field_presence.proto
+ unittest_no_generic_services.proto
+ unittest_proto3.proto
+ unittest_proto3_arena.proto
+ unittest_proto3_extensions.proto
+ unittest_retention.proto
+ util/json_format.proto
+ util/json_format_proto3.proto
+ # from python
+ internal/descriptor_pool_test1.proto
+ internal/descriptor_pool_test2.proto
+ internal/factory_test1.proto
+ internal/factory_test2.proto
+ internal/file_options_test.proto
+ internal/import_test_package/import_public.proto
+ internal/import_test_package/import_public_nested.proto
+ internal/import_test_package/inner.proto
+ internal/import_test_package/outer.proto
+ internal/message_set_extensions.proto
+ internal/missing_enum_values.proto
+ internal/more_extensions.proto
+ internal/more_messages.proto
+ internal/no_package.proto
+ internal/packed_field_test.proto
+ internal/self_recursive.proto
+ internal/test_bad_identifiers.proto
+ internal/test_proto2.proto
+ internal/test_proto3_optional.proto
+ internal/well_known_types_test.proto
+ )
+ local proto
+ for proto in "${test_protos[@]}"; do
+ protoc --python_out=. -I"${WORKDIR}/test/${GH_P}/src" -I. \
+ "google/protobuf/${proto}" || die
+ done
+
+ epytest
+}
diff --git a/dev-python/pudb/Manifest b/dev-python/pudb/Manifest
index 220d92622067..6c2519fa8f3a 100644
--- a/dev-python/pudb/Manifest
+++ b/dev-python/pudb/Manifest
@@ -1,2 +1,3 @@
DIST pudb-2025.1.1.tar.gz 224765 BLAKE2B 997e1f7b905ad02da01560379de3d7a01f1089e3ec39d7282f78b783fadc2a625147ab6ed2c584cb1a9d6db24098512294d821466cd826f786812e697977006e SHA512 b4d66303226064101efc0809328bf91a7c2d86dae5aab46df128694a68943c128fe390608b774134572e0283aa6f6fc1ed4b4fe2f7ade290f9fbb017fab15a66
-DIST pudb-2025.1.tar.gz 220623 BLAKE2B 241fcb3bf0dbf6ae3719672a8b3eb29f0ff3bee0da83b721810aa4e084728c1ed4844195d0694e8526f1f819a0ab814fe7f4318014ace03a673f9125679648bb SHA512 205502e6c5ecd4428c44f7bc1742bbad95ce675a1127f527b562b2a5f49c50102db3365abdf324a4d74a490a70a1ab1af8b8b48f865eb15b222831b4975ad8cb
+DIST pudb-2025.1.2.tar.gz 225444 BLAKE2B 257cf7a72df34a6f80ba18fc79c92739e5714c5dfcba9d42da48591de6fb0289dbaead776db582d2dd47a1a8bed86b1e857946987871bc51593c9b4ba5f9d8f0 SHA512 b7dbf5fe9ab757bf7ba01fda235607eda17a44f33b9585bd48b8ae1c576f969874032dec2513c661564c913b5edf5c6611f4d29818f9a0d156c45a04b3cd05a6
+DIST pudb-2025.1.2.tar.gz.provenance 9451 BLAKE2B 91a6febccd0e406fbafc4fe2ae7574d66062b725416364eb097a5fa04faf49e0861f01e11dd15e1a2953a92bc0e44ab1e03f40541fbffa091cd2b86b6afc0785 SHA512 aca765a1a2e90e653120eeaab51f2bec1fde8e09f6884c80fb39cabda27df595936949c1d0fa1feefd76270dec19d5d90348023e2faf889742cbefb708f56e5d
diff --git a/dev-python/pudb/pudb-2025.1.ebuild b/dev-python/pudb/pudb-2025.1.2.ebuild
index cbc1456d6280..1dbafc331d90 100644
--- a/dev-python/pudb/pudb-2025.1.ebuild
+++ b/dev-python/pudb/pudb-2025.1.2.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/inducer/pudb
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi optfeature
@@ -23,15 +24,12 @@ RDEPEND="
>=dev-python/jedi-0.18[${PYTHON_USEDEP}]
>=dev-python/packaging-20.0[${PYTHON_USEDEP}]
>=dev-python/pygments-2.7.4[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.13[${PYTHON_USEDEP}]
>=dev-python/urwid-2.4[${PYTHON_USEDEP}]
dev-python/urwid-readline[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
pkg_postinst() {
diff --git a/dev-python/pypi-attestations/Manifest b/dev-python/pypi-attestations/Manifest
index 2d475693a137..88b4d3d5c317 100644
--- a/dev-python/pypi-attestations/Manifest
+++ b/dev-python/pypi-attestations/Manifest
@@ -1,2 +1,4 @@
DIST pypi_attestations-0.0.27.tar.gz 123543 BLAKE2B 11e6dabcb58c5201af4df0392784c5cda02eabfde4d6d2cd39464d3bf89fa7a54495c435e86e5b7031ed7d9a85230ec273279d2f8ab86ba5e1dec2eb431829e4 SHA512 206c6aaf523a0143defe2ef35ee886d8d5d3cc7d3010a5f1ef6d5e9f0af3dac56b2a3b3af87256b50bf475d88ff397ea35f7512aac540a2918e8a52c91ac6e03
DIST pypi_attestations-0.0.27.tar.gz.provenance 9602 BLAKE2B 70ace0f798e6bdeb1be3af64c78ba3d774a2944239776728c70c8d06f91c7a6fef1f929ca63ed52ffd83e4d623b1dfe457a670ab5c9e72908b59d93d1b54a3c5 SHA512 9cd9bed860bedd479800c52637e24a9fcbe9f03a8ea8c25a5c4029e4f8c61743843dbb583afd7958c6fa8418ef734f08d4a55a7c4222956fe1f934004c14cdf6
+DIST pypi_attestations-0.0.28.tar.gz 124805 BLAKE2B f6a2227b715846199f632aa3476fd1b7c32a39e84f5deacdb088e7a649358182f5a1acb3bf2bc6b768c096e6015183ff540f55e020d3f6373dc2fc1bd09012a0 SHA512 96a24272ce62808b4401dc528035caab959bd89a82e790855453aba8e864cc4550cd3734a44734e67be98f569c9c6ffad5e4d4ba23facf4bd2c491ab6c47c713
+DIST pypi_attestations-0.0.28.tar.gz.provenance 9454 BLAKE2B 8c23ae6dd16cefb5036cc3fc6c3d31a8022d1ea53ca4aaae08e5a026b008731eb7a5404ad0ac13915aaf15dae05b9d79ee09ea8c5fff880f919aaa2ca4d910dd SHA512 33e4ab27a58f4a9a578c05875dcbac1a0a543bcdc30a8c89f07538bc8d4d4cdfbaa2a0e207a503dc8462e607a7a56836938b6e2ef9fb74d9468514f8b0ea0ffc
diff --git a/dev-python/pypi-attestations/pypi-attestations-0.0.28.ebuild b/dev-python/pypi-attestations/pypi-attestations-0.0.28.ebuild
new file mode 100644
index 000000000000..64f9a738aa0f
--- /dev/null
+++ b/dev-python/pypi-attestations/pypi-attestations-0.0.28.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2025 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/pypi/pypi-attestations
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Convert between Sigstore Bundles and PEP-740 Attestation objects"
+HOMEPAGE="
+ https://github.com/pypi/pypi-attestations/
+ https://pypi.org/project/pypi-attestations/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64"
+
+RDEPEND="
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ =dev-python/pyasn1-0.6*[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.10.0[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/rfc3986[${PYTHON_USEDEP}]
+ =dev-python/sigstore-4*[${PYTHON_USEDEP}]
+ dev-python/sigstore-models[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pretend[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pypugjs/pypugjs-5.12.0.ebuild b/dev-python/pypugjs/pypugjs-5.12.0.ebuild
index e3dfef284f7c..3a6f09383da0 100644
--- a/dev-python/pypugjs/pypugjs-5.12.0.ebuild
+++ b/dev-python/pypugjs/pypugjs-5.12.0.ebuild
@@ -32,11 +32,11 @@ BDEPEND="
>=dev-python/flask-2.1.1[${PYTHON_USEDEP}]
>=dev-python/jinja2-3.1.1[${PYTHON_USEDEP}]
>=dev-python/mako-1.1.3[${PYTHON_USEDEP}]
- >=dev-python/pytest-asyncio-0.19.0[${PYTHON_USEDEP}]
>=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/pytest-django/pytest-django-4.11.1.ebuild b/dev-python/pytest-django/pytest-django-4.11.1.ebuild
index 4ca23b436bec..9225be9c8bc9 100644
--- a/dev-python/pytest-django/pytest-django-4.11.1.ebuild
+++ b/dev-python/pytest-django/pytest-django-4.11.1.ebuild
@@ -31,19 +31,18 @@ BDEPEND="
test? (
dev-python/django[${PYTHON_USEDEP}]
>=dev-python/django-configurations-2.0[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
distutils_enable_tests pytest
python_test() {
local -x DJANGO_SETTINGS_MODULE
local -x PYTHONPATH=${PWD}
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x PYTEST_PLUGINS=pytest_django.plugin,xdist.plugin
for DJANGO_SETTINGS_MODULE in pytest_django_test.settings_sqlite{,_file}; do
einfo "Testing ${DJANGO_SETTINGS_MODULE}"
epytest tests
diff --git a/dev-python/pytest-jupyter/Manifest b/dev-python/pytest-jupyter/Manifest
index 0757bad4d005..524b425abae5 100644
--- a/dev-python/pytest-jupyter/Manifest
+++ b/dev-python/pytest-jupyter/Manifest
@@ -1 +1,2 @@
DIST pytest_jupyter-0.10.1.tar.gz 15580 BLAKE2B 931045927f14973162d45ccdff3a28b0e1d955c276ccf73fa91cae46af8d697368edc10bb3a8042885aae8309dd901201ef147967eae13bca453bc3c144de1fc SHA512 ca380f3b4550388606053db97666d3e191e2b4c030b98fed8b88cee53aac0451faf63d1300c50af4313f20b38937558c390c7f9113ef6b9d20fa0c8f0b41e118
+DIST pytest_jupyter-0.11.0.tar.gz 15773 BLAKE2B c7176ee096149a9336c4ffa00b00c43700ee50a78983b6ca9ce6041070f36d3dd7fe13e839766b6431d67785d5d5eb6133ed6aa51c2f1d05a020b129946ad1f0 SHA512 008c98fca8204e8a64919722a659cb3fe07bf74cd2c3b12045701a68e6798385606882d556e00a4c2fc814aea601e4dc7faa307ee3f86bffde3f771ee6fc170c
diff --git a/dev-python/pytest-jupyter/pytest-jupyter-0.11.0.ebuild b/dev-python/pytest-jupyter/pytest-jupyter-0.11.0.ebuild
new file mode 100644
index 000000000000..5bb2dd5bea3c
--- /dev/null
+++ b/dev-python/pytest-jupyter/pytest-jupyter-0.11.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pytest plugin for testing Jupyter libraries and extensions"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/pytest-jupyter/
+ https://pypi.org/project/pytest-jupyter/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/ipykernel-6.14[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.7[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-1.21[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+distutils_enable_tests pytest
diff --git a/dev-python/pytokens/pytokens-0.2.0.ebuild b/dev-python/pytokens/pytokens-0.2.0.ebuild
index 83b1fa1fad0e..54fe84704abe 100644
--- a/dev-python/pytokens/pytokens-0.2.0.ebuild
+++ b/dev-python/pytokens/pytokens-0.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/requests-file/Manifest b/dev-python/requests-file/Manifest
index 0e9a0b1bbc24..6090d7952ec4 100644
--- a/dev-python/requests-file/Manifest
+++ b/dev-python/requests-file/Manifest
@@ -1 +1,2 @@
DIST requests_file-2.1.0.tar.gz 6891 BLAKE2B 69d92d836f184b48420ed3a0cdc44905ac0c495e3cbc574a62c1c3b4088770654925a97775fedfdcec25e247ef4d06df82a52f2303d5b29f875f77d8f13c3952 SHA512 1c13ca665797987ad2908ebe0cdff97f03cbbbb110c6fe782a03edb6035575ee8eb89683e197336d6ed8d5868873d88eccac642d45996e88368af234a9318611
+DIST requests_file-3.0.0.tar.gz 6897 BLAKE2B f1ff3e72bfd4c1f216acc0792c6d77881e7130aa944e8ed38cb2f477b6d8811e654e898c04bda642edd2c463eb05767887579e2299824582ae44dc58496baedf SHA512 7270ff6eadceadfbb60cc1fcfc4d02749d9d84788d4d6039810e137933207daefbf5419c932e13445a703164ae2e42e8291ccd2e3b79c092c136b84ed468afa7
diff --git a/dev-python/requests-file/requests-file-3.0.0.ebuild b/dev-python/requests-file/requests-file-3.0.0.ebuild
new file mode 100644
index 000000000000..ff658e87d13a
--- /dev/null
+++ b/dev-python/requests-file/requests-file-3.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="File transport adapter for Requests"
+HOMEPAGE="
+ https://github.com/dashea/requests-file/
+ https://pypi.org/project/requests-file/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index ef3aa378b241..56f7b52ba671 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,2 @@
+DIST tifffile-2025.10.16.gh.tar.gz 362127 BLAKE2B df4b16596110f7db0ea6c2f371a14e4dc92f45a3337535c7f276c20c3daf7845eb90f5874f8a9281b226cafc085ef2725d6004e80b9aacb015a7aabee50ef402 SHA512 066817c268f4a3207261857b24ba2d2b7f100aedd1947d8b0d8b0a54a0dee6cb71ca0213555ab598457d2d98bda09f4cd57ec8c76b03024e2727a8b7e9b95588
DIST tifffile-2025.10.4.gh.tar.gz 359732 BLAKE2B 5dd69e8a8fbaf39f18c7ed1edc25aaf1e2c12fdaf6593c84b4346dd58471e9ed13c7ca491ead1321c87e98128c19d68c8504aefb5440a2d52766ced942512f6c SHA512 20c3786d8d85eac2a52f38f4e578ef24dfa8eaa2a60bf200a061742af0dc8fcc278939f542ea9a225add02b563932d17f07d160e3a1d5e34ba26502b58b3d52e
-DIST tifffile-2025.9.30.gh.tar.gz 359562 BLAKE2B accdc42dce218781d61b29b8931a73ebf4889f54e517940f5d00f897f07f3c175bd8e39aafa27c03e3eda624e8687dcb1ab1827878759edb2a1fef6ce07acec3 SHA512 77de77c7f3f013adcf5760353f20236180176282a958d3390161bcc456fdc47231883d86325a064b156fcb7e14acc48cb2b4b109d11a79ab298a1c6b6ef622bb
diff --git a/dev-python/tifffile/tifffile-2025.9.30.ebuild b/dev-python/tifffile/tifffile-2025.10.16.ebuild
index 5b5faa624889..5b5faa624889 100644
--- a/dev-python/tifffile/tifffile-2025.9.30.ebuild
+++ b/dev-python/tifffile/tifffile-2025.10.16.ebuild
diff --git a/dev-python/toolz/Manifest b/dev-python/toolz/Manifest
index 18748254a05f..2c0df90ff1b6 100644
--- a/dev-python/toolz/Manifest
+++ b/dev-python/toolz/Manifest
@@ -1 +1,3 @@
DIST toolz-1.0.0.tar.gz 66790 BLAKE2B c5e6d8bb96561f7ca97ac7b3a8233eb1002892974c7dd4127732a89117608dfa964ec9d8ab1f8f679e487885b76d4eaed33be275a90afa4beb4a21e1ce4f29ab SHA512 90ba917ff06b7c4a4bbeb1d2c64bcb34bbe41607c7cea402f9d96f352c20c53edc53333ba06da9193bc714a2a836e68acd55e581b9f590fe1d962fc4ae8847d9
+DIST toolz-1.1.0.tar.gz 52613 BLAKE2B 1b72dc41a37023450564029f0d258fc7e2739addfe1f58270187b6984743e5d2c540d1a6cfd8fcfb70628b31bded315a2684c5afdc32877cefde520f922cec03 SHA512 9ed105cdd2cf84fe9c14416544e689f163d250df75e426b568e19233aed08a0c453288ee54a13cf890773f3d6c118f12dfcb37d2b8fa74adb1b16415f5fd2843
+DIST toolz-1.1.0.tar.gz.provenance 9263 BLAKE2B cbc9cf4b5cbfd92b3131b763d31719089d0d5bc7d8d36f1a445c76bfb1052b6e3aa481b1703c99ed7fea5e92f3969ba6c3e15f6fc4932ec0265e5e5c8430e5ce SHA512 28f3c61bc6d6162e4b05affff5f8bf37ba9483b62987314078612c55beec2cd672a466149a6a1373e679c3f91e007fa1b645fefa208cb95643b473296cb19148
diff --git a/dev-python/toolz/toolz-1.1.0.ebuild b/dev-python/toolz/toolz-1.1.0.ebuild
new file mode 100644
index 000000000000..89cbfb73053a
--- /dev/null
+++ b/dev-python/toolz/toolz-1.1.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pytoolz/toolz
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="List processing tools and functional utilities"
+HOMEPAGE="
+ https://github.com/pytoolz/toolz/
+ https://pypi.org/project/toolz/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # workaround setuptools-git-versioning
+ cat >> setup.cfg <<-EOF
+ [metadata]
+ version = ${PV}
+ EOF
+}
diff --git a/dev-python/tree-sitter/Manifest b/dev-python/tree-sitter/Manifest
index 335acadcc5eb..7c1d209124ca 100644
--- a/dev-python/tree-sitter/Manifest
+++ b/dev-python/tree-sitter/Manifest
@@ -1,5 +1,2 @@
-DIST tree-sitter-0.23.0.gh.tar.gz 167761 BLAKE2B 694e90f608f51fe4f9add476cd5ebcd0ce04a7b027efc4948ce49a6cc0f05ebf4f15e0fe3f365f89f3e04cfec542cb3f1db1e5b05ff7ca23d3134561ea3dcf36 SHA512 67a6f3359c6283c58afcdbe5b6a521cdfcf2585a5361fb69a55eff82941726a143528a402e6d609286d8846c77e20d0a38551525d761e35abb21045ad9c5a2f8
-DIST tree-sitter-0.23.1.gh.tar.gz 168079 BLAKE2B fe3f8d9dae426d7771eab7775d78a0af72e59bf3448005cec1e597a3263b2ac89d7b2c1a80aa12da42db54b242da10d0395673412257d57dff557b2cf4763869 SHA512 39ed2d5d8a737bd72d539701a2dab5abc501b151a3666180f127645895582757eba2ec98607bbeb07bf90377fccad4a93cb385ce16565ed3420908129cea4f57
DIST tree-sitter-0.24.0.gh.tar.gz 170141 BLAKE2B 3d7f076f947192105be2fc9d93831eb331c1ec189619f6db860db8b6b6c1f2f33cd03edf315c09a5de6637d870351d06d5507d9c0de8a4dadc4e9e863ac233e8 SHA512 471d605cc29bcf7fd228eefe8a3bc2dd39c163d584e941cfd8ac0e498ff1815c7cadb9a7a45c643f704b8c9f12932bcc53597c835e23b5988da087f9a6a59067
-DIST tree-sitter-0.25.0.gh.tar.gz 173820 BLAKE2B 63dbb9992fb6c4212a7a7cffd44b852d94d78a9699ec856807ce333ac494409f7dcd5cf3d8b0fdfa03c03a484ed3d5b0ee51c3847667474a04c811ae561f0918 SHA512 357a0aa1c9393f9ec1a056e87b54e5178abbd6b2525a863b2ed5ba788337a9ae555a52092fe89803215487d324e287f2c2cbe2d60f878e1c053cf6b41a387eeb
DIST tree-sitter-0.25.1.gh.tar.gz 174288 BLAKE2B 2580e7909e28ea05dfe8a015eb0e26d465318a0962666dc8de3d82d80c7647a62398abee093ccea13a04119e685dac3365ed098a70f7c50fac383cef34f7cb62 SHA512 37a6035921d44a13ef2128c8ff5dd7d8424dd50c1b5089a143ecfd921848304d91339d17108fa9e2f7ea0a6755b03413061ed6a6561ef1d8473534e8cf4636ef
diff --git a/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild b/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild
deleted file mode 100644
index 05f5fce682e5..000000000000
--- a/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python bindings to the Tree-sitter parsing library"
-HOMEPAGE="
- https://github.com/tree-sitter/py-tree-sitter/
- https://pypi.org/project/tree-sitter/
-"
-SRC_URI="
- https://github.com/tree-sitter/py-tree-sitter/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/py-${P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# setuptools is needed for distutils import
-DEPEND="
- >=dev-libs/tree-sitter-0.23.0:=
- <dev-libs/tree-sitter-0.24.0:=
-"
-RDEPEND="${DEPEND}
- $(python_gen_cond_dep '
- dev-python/setuptools[${PYTHON_USEDEP}]
- ' 3.12)
-"
-BDEPEND="
- test? (
- >=dev-libs/tree-sitter-html-0.20.4[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-javascript-0.21.0[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-json-0.20.3[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-python-0.23.0[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-rust-0.21.2[python,${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.22.2-unbundle.patch
-)
-
-src_unpack() {
- default
- rmdir "${S}/tree_sitter/core" || die
-}
-
-src_prepare() {
- default
-
- sed -i tree_sitter/binding/query.c -e 's/_PyErr_FormatFromCause/PyErr_Format/' || die
-}
-
-src_test() {
- rm -r tree_sitter || die
- distutils-r1_src_test
-}
diff --git a/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild b/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild
deleted file mode 100644
index 0643907eb58f..000000000000
--- a/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python bindings to the Tree-sitter parsing library"
-HOMEPAGE="
- https://github.com/tree-sitter/py-tree-sitter/
- https://pypi.org/project/tree-sitter/
-"
-SRC_URI="
- https://github.com/tree-sitter/py-tree-sitter/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/py-${P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# setuptools is needed for distutils import
-DEPEND="<dev-libs/tree-sitter-0.25.0:="
-RDEPEND="${DEPEND}
- $(python_gen_cond_dep '
- dev-python/setuptools[${PYTHON_USEDEP}]
- ' 3.12)
-"
-BDEPEND="
- test? (
- >=dev-libs/tree-sitter-html-0.23.0[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-javascript-0.23.0[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-json-0.23.0[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-python-0.23.0[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-rust-0.23.0[python,${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.22.2-unbundle.patch
-)
-
-src_unpack() {
- default
- rmdir "${S}/tree_sitter/core" || die
-}
-
-src_prepare() {
- sed -e 's/ts_node_child_containing_descendant/ts_node_child_with_descendant/' \
- -i tree_sitter/binding/node.c || die
- distutils-r1_src_prepare
-}
-
-src_test() {
- rm -r tree_sitter || die
- distutils-r1_src_test
-}
diff --git a/dev-python/tree-sitter/tree-sitter-0.25.0.ebuild b/dev-python/tree-sitter/tree-sitter-0.25.0.ebuild
deleted file mode 100644
index 0a3a553970da..000000000000
--- a/dev-python/tree-sitter/tree-sitter-0.25.0.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python bindings to the Tree-sitter parsing library"
-HOMEPAGE="
- https://github.com/tree-sitter/py-tree-sitter/
- https://pypi.org/project/tree-sitter/
-"
-SRC_URI="
- https://github.com/tree-sitter/py-tree-sitter/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/py-${P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-# setuptools is needed for distutils import
-DEPEND=">=dev-libs/tree-sitter-0.25.0:="
-RDEPEND="${DEPEND}
- $(python_gen_cond_dep '
- dev-python/setuptools[${PYTHON_USEDEP}]
- ' 3.12 3.13)
-"
-BDEPEND="
- test? (
- >=dev-libs/tree-sitter-html-0.23.2[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-javascript-0.23.1[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-json-0.24.8[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-python-0.23.6[python,${PYTHON_USEDEP}]
- >=dev-libs/tree-sitter-rust-0.23.2[python,${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.22.2-unbundle.patch
-)
-
-src_unpack() {
- default
- rmdir "${S}/tree_sitter/core" || die
-}
-
-src_test() {
- rm -r tree_sitter || die
- distutils-r1_src_test
-}
diff --git a/dev-python/tree-sitter/tree-sitter-0.25.1.ebuild b/dev-python/tree-sitter/tree-sitter-0.25.1-r1.ebuild
index fa21388eba67..119c2f17e375 100644
--- a/dev-python/tree-sitter/tree-sitter-0.25.1.ebuild
+++ b/dev-python/tree-sitter/tree-sitter-0.25.1-r1.ebuild
@@ -25,7 +25,7 @@ SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# setuptools is needed for distutils import
-DEPEND=">=dev-libs/tree-sitter-0.25.0:="
+DEPEND="=dev-libs/tree-sitter-0.25*:="
RDEPEND="${DEPEND}
$(python_gen_cond_dep '
dev-python/setuptools[${PYTHON_USEDEP}]
diff --git a/dev-python/uvloop/Manifest b/dev-python/uvloop/Manifest
index 43f11f8768fb..9c8a887afd74 100644
--- a/dev-python/uvloop/Manifest
+++ b/dev-python/uvloop/Manifest
@@ -1,2 +1,3 @@
DIST uvloop-0.19.0-cython3.patch.xz 6352 BLAKE2B 4a7056299d3d430ce5b6986d43ba4f20726ae4f9635042a43e2995ea373ed53ddce6af2eaa32202f81f80a27bd1d814e635a6be091b5f751bcf6825fd2c8e88a SHA512 aeda541f1327860d23b31ffda9923270a56a8311ec86b06f3bd653478bff591372106e8848af5229e3ad298e950b4c3a728ab4dd9056219b8afe55f5dd58ee3d
DIST uvloop-0.21.0.tar.gz 2492741 BLAKE2B bd890673ea420282929e2450977cf9ce86e5daf5bb6001fb8c3fef5d037a14071eb2e39e29020c22d34d3b8100485f10e6fba7a35dce6cde9e07fbd8bc0eaf98 SHA512 fd8684c1382178be72febf7ba3fa2cddf4303fceee79c1e475e6fcbf323ba8a53f516df1cd33a527d149f84807ad3cf8a61047d489601b43b21afd6e4fa088d6
+DIST uvloop-0.22.1.tar.gz 2443250 BLAKE2B 2974895dbad08aa987ce3228f6c4b143926b698b0b2131019f1ee5a21541b21c59d7ee60dcdfc693e34916d802945eeea9ab93004eb627005f77f048809891d0 SHA512 9bbb87c7ec344c254178c3fff322fe772cf4ebced9c45514860ed004242dba6e7f3b7774ed6c4ded36f915f8b4809747f0bace8b00338ac15dbe57f09b985ed2
diff --git a/dev-python/uvloop/uvloop-0.22.1.ebuild b/dev-python/uvloop/uvloop-0.22.1.ebuild
new file mode 100644
index 000000000000..4fc09cb0b09f
--- /dev/null
+++ b/dev-python/uvloop/uvloop-0.22.1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Ultra-fast implementation of asyncio event loop on top of libuv"
+HOMEPAGE="
+ https://github.com/magicstack/uvloop/
+ https://pypi.org/project/uvloop/
+"
+SRC_URI+="
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.19.0-cython3.patch.xz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 -riscv ~sparc ~x86"
+IUSE="examples"
+
+DEPEND="
+ >=dev-libs/libuv-1.11.0:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-python/cython-3.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/pyopenssl-22.0.0[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( aiohttp )
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ rm -r vendor || die
+ cat <<-EOF >> setup.cfg || die
+ [build_ext]
+ use_system_libuv=True
+ cython_always=True
+ EOF
+
+ # force cythonization
+ rm uvloop/loop.c || die
+
+ # don't append -O2... however, it's not splitting args correctly,
+ # so let's pass something safe
+ export UVLOOP_OPT_CFLAGS=-Wall
+
+ # https://github.com/MagicStack/uvloop/issues/701
+ sed -i -e 's:3, 14:3, 13:' tests/test_tcp.py || die
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # linting
+ tests/test_sourcecode.py
+ )
+ local EPYTEST_DESELECT=(
+ # unhappy about sandbox injecting its envvars
+ tests/test_process.py::Test_UV_Process::test_process_env_2
+ tests/test_process.py::Test_AIO_Process::test_process_env_2
+ # crashes on assertion
+ # https://github.com/MagicStack/uvloop/issues/574
+ tests/test_cython.py::TestCythonIntegration::test_cython_coro_is_coroutine
+ # Internet
+ tests/test_dns.py::Test_UV_DNS::test_getaddrinfo_{8,9}
+ )
+
+ rm -rf uvloop || die
+ epytest -s
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/whenever/Manifest b/dev-python/whenever/Manifest
index c533ae8da675..5f5fcbd9c998 100644
--- a/dev-python/whenever/Manifest
+++ b/dev-python/whenever/Manifest
@@ -65,8 +65,8 @@ DIST wasm-bindgen-macro-0.2.100.crate 9663 BLAKE2B b8a3fc6b3571f8caf106a9e9f3d9c
DIST wasm-bindgen-macro-support-0.2.100.crate 26243 BLAKE2B c18e35978b62dd2822ba8a4f6955cd5154b2a0d81b8e8032c2f8bda42c1c25f74a13f3e1c3a7bf47a823de2517a237e6a1aef18b189bf1f2b934123c58d1eb34 SHA512 0d03eaeda37c9c6ae06c0fa96e872b54780c4cf545b621c730dcc113dd59a8cb6333c5e3818f51365f71913b9669d8a870a06e70729722d03c07a49cff8a4fdf
DIST wasm-bindgen-shared-0.2.100.crate 8570 BLAKE2B 886fa72cae891d4c2311e12e28f0a7bde9bcaca893603afa3428a402726b3b2bcdb6cb7dca6fdf983bd8fac5f049f0543537f2161318769b43c7eebfc906df27 SHA512 3fca8ddd1c6b2f66f70f6608c9b341822603f1c0dd71d47d27c6be8fe3f2c88598619946627720734b48cf999cafd0c63a08af5db28ea78a1538d2165a5fba61
DIST web-sys-0.3.77.crate 638246 BLAKE2B 3f21ab03a18d82cffd96432e4f08bfae183b24f9a50dcfc51c927e9973dabfb8b6bb1f3ae044890832809ec91709242c1c37463931770d347fdf521587a72515 SHA512 cd149286105288f7c385a29eae7df2306d4066edfca4de1255efc7bd8a4e8eaafc313dab85091025c3b5d5e333fce8b7fcef1fb824fe4d799bcc9bb78b73c97a
-DIST whenever-0.9.1.tar.gz 256575 BLAKE2B 950c66dce3b69381339280c684e9912e2a645bffc5f110fde6bbdc15c5bff1260e2bde626b393e78e633a1503368e45c911bcf8f6f787414a49d8b9935281291 SHA512 223c6c983fb4c4c9046283960e91a3648e72b851fd0ad8bd4bbca71889413e31f7e89cbbbb5396e63687a788919edbe92d62456ac2aec607677bce1ad4ffcf07
DIST whenever-0.9.2.tar.gz 256743 BLAKE2B 46c622167a1031fda94d3a26ab0e2f3dd11278cec155aea02aa5d7ca16b606cfbc947a06f79c69901371bda250828503c99ecec466ba5060eacf6f6bcaf9f190 SHA512 f15d432eaec04d1687599d50c0495c4b810d210bdd3be9a23d10c4b0cf27324c981af8226863341da25f3b81e18937442a2071f0f10b785526831ef27e9eac31
+DIST whenever-0.9.3.tar.gz 256933 BLAKE2B beb210abe353e8a1521b3abc29dde303fc9d012ac0665717a83968b66abbaed8a66f9ffc15e6059b69afe2257e31fa951bdc95016ba558e5d427f94274df540c SHA512 ffd625289a475168bd8c0726818480be996f36670a33a0303bd3227add197ca05073419d38efe4c3f25a83368af4af1098838b65fbb3de7a1dc1221a49578ff4
DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
diff --git a/dev-python/whenever/whenever-0.9.1.ebuild b/dev-python/whenever/whenever-0.9.3.ebuild
index d272a5ab2387..d272a5ab2387 100644
--- a/dev-python/whenever/whenever-0.9.1.ebuild
+++ b/dev-python/whenever/whenever-0.9.3.ebuild
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
index 3154e69365bf..2772fab62a76 100644
--- a/dev-python/wrapt/Manifest
+++ b/dev-python/wrapt/Manifest
@@ -1,3 +1,3 @@
DIST wrapt-1.17.3.gh.tar.gz 140900 BLAKE2B 88c4cd718cd98a97c866c4f0b9f7e095347fe6fa5fed60c54e389329c89f9f07099c8fb79561cf5e12c19c44a4067d81e805c55b54a74429e6b75913dedd6b3f SHA512 1a1f7419f20faa461a9e23ad09cc98d381ef2c48b3b24ed1dfe98d42d16857a958252301e78dd41b7fa8ef37eea379f9244cace2b396b49718c44cbc701308a3
-DIST wrapt-2.0.0rc3.gh.tar.gz 177421 BLAKE2B 85759f3859ac1cf2e3acfe07af4c38f154e9f2a290666e060629c41ab24f4a1f370e70885e266d12888a8f707eaa67e2e439ffb21653c98f871ec6440bb697b1 SHA512 e76bc6e0a28fb0a3081085c98331a1cedd783d4c06d1a803dab581c2b88863a22f9cba76ad8e9623e6f84ef87fae8bde07677d5844aa5b9634acfc3c7da322ed
DIST wrapt-2.0.0rc4.gh.tar.gz 177839 BLAKE2B cf93d4ef525aa8e323f7fc2b939a63944ae06af0a18c4d01e64b82519bafc6c0b88262ebf239a64c9037627f145ae870b3bad088074aa337edd8179970068568 SHA512 7e2a7376293eefeda1c15a3dd4f2daa2744d6fecef5b1430b1f52c1f04ccc65aaa79e620190aeafb0d24c72fed3393e67d32d55a173a21f8c3e276a5ece7799e
+DIST wrapt-2.0.0rc5.gh.tar.gz 183363 BLAKE2B 0f3151f3c8784728cc28711f9a8b7f4be2065638c6508f19249a6f7d223205bfbe4fabe0681676969da292712c4388fbb9617200db77443a707ee96dfd945123 SHA512 b46590ab7bf11647d5447d21235fce52b30c1b433662bcbea0f8477ebe6e930517c0b32c3a8756823f864d136e3c50a2e6fcc09c1d40655b5f85d33eec361662
diff --git a/dev-python/wrapt/wrapt-2.0.0_rc3.ebuild b/dev-python/wrapt/wrapt-2.0.0_rc5.ebuild
index 6793b0ad13f4..6793b0ad13f4 100644
--- a/dev-python/wrapt/wrapt-2.0.0_rc3.ebuild
+++ b/dev-python/wrapt/wrapt-2.0.0_rc5.ebuild