summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-04-25 07:11:56 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-04-25 07:11:56 +0000
commit623185c982b63cb1a3648fd547d634ce7db7d731 (patch)
tree8cca341055d3a6a48065f95616f2ac6103c365c3 /dev-python
parent00ae7917936dcce4c0ff3c6dc8ada15ee24ff8af (diff)
downloadbaldeagleos-repo-623185c982b63cb1a3648fd547d634ce7db7d731.tar.gz
baldeagleos-repo-623185c982b63cb1a3648fd547d634ce7db7d731.tar.xz
baldeagleos-repo-623185c982b63cb1a3648fd547d634ce7db7d731.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/authres/authres-1.2.0-r1.ebuild4
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.42.96.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.42.96.ebuild67
-rw-r--r--dev-python/channels/Manifest6
-rw-r--r--dev-python/channels/channels-3.0.5.ebuild41
-rw-r--r--dev-python/channels/channels-4.2.2.ebuild34
-rw-r--r--dev-python/channels/channels-4.3.2.ebuild62
-rw-r--r--dev-python/channels/files/channels-4.3.2-fix-install.patch14
-rw-r--r--dev-python/channels/metadata.xml11
-rw-r--r--dev-python/clickdc/Manifest1
-rw-r--r--dev-python/clickdc/clickdc-0.1.1.ebuild49
-rw-r--r--dev-python/clickdc/files/clickdc-0.1.1-click-8.2.patch15
-rw-r--r--dev-python/clickdc/metadata.xml10
-rw-r--r--dev-python/cmd2/Manifest1
-rw-r--r--dev-python/cmd2/cmd2-3.5.1.ebuild58
-rw-r--r--dev-python/dkimpy/dkimpy-1.1.8.ebuild4
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.152.2.ebuild112
-rw-r--r--dev-python/ipython/Manifest6
-rw-r--r--dev-python/ipython/ipython-9.13.0.ebuild (renamed from dev-python/ipython/ipython-9.10.0.ebuild)36
-rw-r--r--dev-python/ipython/ipython-9.9.0.ebuild160
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/matplotlib/Manifest2
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.9.ebuild351
-rw-r--r--dev-python/mediafile/Manifest1
-rw-r--r--dev-python/mediafile/mediafile-0.17.0.ebuild31
-rw-r--r--dev-python/openapi-spec-validator/Manifest2
-rw-r--r--dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild57
-rw-r--r--dev-python/opentelemetry-api/Manifest1
-rw-r--r--dev-python/opentelemetry-api/opentelemetry-api-1.41.1.ebuild61
-rw-r--r--dev-python/opentelemetry-sdk/Manifest1
-rw-r--r--dev-python/opentelemetry-sdk/opentelemetry-sdk-1.41.1.ebuild56
-rw-r--r--dev-python/opentelemetry-semantic-conventions/Manifest1
-rw-r--r--dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.41.1.ebuild52
-rw-r--r--dev-python/packaging/Manifest2
-rw-r--r--dev-python/packaging/packaging-26.2.ebuild40
-rw-r--r--dev-python/patatt/patatt-0.7.0-r1.ebuild2
-rw-r--r--dev-python/pyghmi/Manifest2
-rw-r--r--dev-python/pyghmi/pyghmi-1.6.16.ebuild (renamed from dev-python/pyghmi/pyghmi-1.6.14.ebuild)0
-rw-r--r--dev-python/pyopenssl/Manifest4
-rw-r--r--dev-python/pyopenssl/pyopenssl-26.1.0.ebuild (renamed from dev-python/pyopenssl/pyopenssl-25.3.0.ebuild)6
-rw-r--r--dev-python/pypax/pypax-0.9.5-r2.ebuild2
-rw-r--r--dev-python/pypax/pypax-9999.ebuild2
-rw-r--r--dev-python/pyroute2/Manifest1
-rw-r--r--dev-python/pyroute2/pyroute2-0.9.6.ebuild26
-rw-r--r--dev-python/pyzotero/Manifest2
-rw-r--r--dev-python/pyzotero/pyzotero-1.11.1.ebuild49
-rw-r--r--dev-python/redis/redis-7.4.0.ebuild2
-rw-r--r--dev-python/simplejson/Manifest2
-rw-r--r--dev-python/simplejson/simplejson-4.1.1.ebuild38
-rw-r--r--dev-python/sphinx-gallery/Manifest2
-rw-r--r--dev-python/sphinx-gallery/sphinx-gallery-0.21.0.ebuild53
-rw-r--r--dev-python/testtools/Manifest3
-rw-r--r--dev-python/testtools/testtools-2.9.1.ebuild (renamed from dev-python/testtools/testtools-2.8.2.ebuild)3
-rw-r--r--dev-python/trimesh/Manifest1
-rw-r--r--dev-python/trimesh/trimesh-4.12.1.ebuild88
-rw-r--r--dev-python/url-normalize/Manifest1
-rw-r--r--dev-python/url-normalize/url-normalize-3.0.0.ebuild34
-rw-r--r--dev-python/wrapt/Manifest3
-rw-r--r--dev-python/wrapt/wrapt-2.2.0_rc11.ebuild (renamed from dev-python/wrapt/wrapt-2.2.0_rc7.ebuild)0
-rw-r--r--dev-python/wrapt/wrapt-2.2.0_rc9.ebuild39
-rw-r--r--dev-python/xxhash/xxhash-3.6.0.ebuild2
67 files changed, 1452 insertions, 349 deletions
diff --git a/dev-python/authres/authres-1.2.0-r1.ebuild b/dev-python/authres/authres-1.2.0-r1.ebuild
index 9c0bda5e0fd7..2fc90261fef1 100644
--- a/dev-python/authres/authres-1.2.0-r1.ebuild
+++ b/dev-python/authres/authres-1.2.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~ppc ~ppc64 ~riscv x86"
python_test() {
"${EPYTHON}" -m doctest -v authres/tests ||
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index dcb1f34788ee..314c4658c7b5 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -16,3 +16,4 @@ DIST boto3-1.42.92.gh.tar.gz 1125628 BLAKE2B e53dcee267249fd505065f25fba9eacbd9d
DIST boto3-1.42.93.gh.tar.gz 1126304 BLAKE2B ee8404e5a2da1588feb02858efee8d6cd9a7babc932d910f43c533968259e4f6535f2351c526dfff290abcc068d59c48dec32328a2100a52f4f72ce51c71e418 SHA512 8d801b54b7a6c76cde0da8f8890633a7c026071bc2de13ad17fd23f068fe112ce588da5e5848d3b5b0e4567285d6ae53efa9371468c9851f9f1b902d85562e31
DIST boto3-1.42.94.gh.tar.gz 1127443 BLAKE2B 581bec1a14fe7f28049e6aa241a2d78bcbdd85ddb460259a3de0086791c4cbda3ba2066c71724dba079f7d556b720f1cd6dbc38c4edcf818471ce23f4948bd7c SHA512 b40f568a008b659647d73550fe3af61c3541b888a8af63b63d47e8f0e64c122c8886094365d97f3190a33427428ce85850bfe2ce06309833a6d793185a54b7aa
DIST boto3-1.42.95.gh.tar.gz 1128216 BLAKE2B 172fcf19ac3f70d98bf5dc5e19fd590d9004effd858b604c5ff50d1df849100c154b8e1748e8534b7f860ce2e4cfe663e9f6b13cf0e85cc5683443c208ed5c41 SHA512 32d3595b8bcde8b899b0669759b9b3e198b569b70ce6d360071a61aa5ec257040520a5df8168c68548f3b7711f2c9e8b2b1cd10f9ab107da7caf3aaedae4f4ec
+DIST boto3-1.42.96.gh.tar.gz 1129293 BLAKE2B 186684ffe3d8e776e6f7462b4c7fdd996febcfc84ef87b3fe7399bc44bf00578177dab353d758231d0b2437fdbbef9204fc58b2eeda8f5be95b1d74e967c0d1d SHA512 c265a94e7fb4e7ed19e2f5aa152410c83d8e171373eb95c3572e8cc03fae6371c2ee7145722adffdab4e680b8f2abd0f3c3f4ff52bbd20fdfccd932f30cb9a20
diff --git a/dev-python/boto3/boto3-1.42.96.ebuild b/dev-python/boto3/boto3-1.42.96.ebuild
new file mode 100644
index 000000000000..6e5f06a012ad
--- /dev/null
+++ b/dev-python/boto3/boto3-1.42.96.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.16.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 8a3b0f06a06e..a10aeddb57f8 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -16,3 +16,4 @@ DIST botocore-1.42.92.gh.tar.gz 16157923 BLAKE2B 635caf24f55c3c291f5d8dcb6c4954b
DIST botocore-1.42.93.gh.tar.gz 16167198 BLAKE2B 3e9cde424583c5c613b973cf2f3551e4b919400685bafb20676e09731ea1f33822d18a3a86af7b5146508ca77776ac3410a7ce0d1ce22c229fb9b3b1dee9ed89 SHA512 8276b64b5c25ff6b311f267862e3a79581c46e3b307d121c12388218ace595d694757aca0e50c47087897eca2485f39d0d0374f8a6ee8276102f5a8329f6db5e
DIST botocore-1.42.94.gh.tar.gz 16186741 BLAKE2B 70638508206b097d98a7c09d5de7aed9db0adcdb1b1682fa9ea10949d202641b18efaea1c1d018231f244a15f04bede13b4a9e48d18af89cd97a363d1ce555e1 SHA512 b91302f22f6aa541ce26659f0afd9d7b3fb01d7d6bde43ef91aa6341dc7535516fda87c0855194dc4439c855a7ebf98df8effac2649a55f107020a4f881b1dfc
DIST botocore-1.42.95.gh.tar.gz 16187519 BLAKE2B 52ba6fea31a36f0064a0a099c9d208658a120ab8597ce4e3d9cb1bbebce71a9f6a3683e50e5819674fe6211a606d6700283f6801fe77e54d22f5ba08e42a1b54 SHA512 4199045983c267595df46c810bf75d64809c03c36de622166ee910076177a979dd28e3ea7c0a4956a9c21dc310a0ef12223efb32e27e33d5906f92964beb65e2
+DIST botocore-1.42.96.gh.tar.gz 16190988 BLAKE2B c63dbf335904dd9fd56d2881428fab2500ef36104fee2f979fb8394860eb30743022db17ffaabfe14bb896bed2b03728e32f0d0f8e7e6f1979abefb171f87a7c SHA512 d3f55cb1c05cb587b89f83eb3ca58fc002d67187e958deb25d8bd571bac89802e63231da4e6b9261616003e6cb3972291697141ad4208cec76ce39769aa81fc4
diff --git a/dev-python/botocore/botocore-1.42.96.ebuild b/dev-python/botocore/botocore-1.42.96.ebuild
new file mode 100644
index 000000000000..f6ce0d9ed8d5
--- /dev/null
+++ b/dev-python/botocore/botocore-1.42.96.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/channels/Manifest b/dev-python/channels/Manifest
index 93bbf2713782..b58c0c2009cc 100644
--- a/dev-python/channels/Manifest
+++ b/dev-python/channels/Manifest
@@ -1 +1,5 @@
-DIST channels-4.3.2.gh.tar.gz 206077 BLAKE2B c0913d67dc74bc728dd828584cf803b4ad175bab717de71ccf1e1c5b6aaca296fd15d011deb07b2876e63b7daaefab5e5ee24c323e907b3c563f5358759f14b8 SHA512 29d9c91aca721fad44143978863c45812bf596bb65cf99084803f78d85c664d5cc7ca1015df151cdc27754b822c9cfd18102989b6e5f59bc50257f6c9d8b8b3e
+DIST channels-3.0.5.gh.tar.gz 200118 BLAKE2B 7a7653f986face1e87369917317db013e5c9fc912c6e2d7c737054ffef167bd01feb48f7e2d00d0d331e7a16093478e5416645717aed59e46dfec8f9b3641a2e SHA512 b12d1aec9602b702b5a097e9ca52dccad49940f82fcbe5594890c9bd1f1879a2fcf0f29630ca53e4972a26853df8f71d07d7b2cccd876abbf2417a76dee281bf
+DIST channels-4.2.2.gh.tar.gz 197010 BLAKE2B 321bf62c68038ce511145acd43c036dd298d58056f20ab2d676c3e3a8d6360a86a4f07c8f9ed6c123f888c012d69da22cfae4fb477dd5422cf326bf2de6a4c8f SHA512 8f7c8f27981988fed8ec254db91ce0a130b24842949ef94cc9ae21b4a259a7003654ec86c4e18aa81924e26d9b81b6a2aafaac404e490cbdda6b4a100476917a
+EBUILD channels-3.0.5.ebuild 936 BLAKE2B 788d0e9a2822dd9d0ed2d1d1a62135aeb5f244710b66f7591962518a5204cde5b8e779280783dd1d1a1b1a3fa9b272a0eb457f1d88d62c8ecefc8f67384929ef SHA512 89003fa68c7ab1cdd1a329f4389ba6fe28f491217a70c03b2979a992b450d8aa1a02f024f073ad5fc0aa1d093d81c6c8b1adaa45bdc9a179f5bd1607d85c13ef
+EBUILD channels-4.2.2.ebuild 829 BLAKE2B e5946c4a0eaf9fb3ffa2092a3d5d49d3d6ee16f151483fa2b716c8bab3350eca5e330a22822f881421d8882ffb970f4c56154c613477d094319e46addf1a5537 SHA512 84ce30d87a654c1a89ac299fb0f6447ca9c736e4b63497d83fc2687384e9cbe8094ba8f5021a19f726f9bae97c6b6d11eddef6a9ee5c275efe827bf95d3848ec
+MISC metadata.xml 445 BLAKE2B b4c0a41d6caadfbc53cbba3c41f8b7689a286b3f8d285c37a88a1f79d8dc350b82fea255048c022b92091a1e0cc67bf19645d6c32183b82a6dd49cccadf5078f SHA512 380c8b98efe8d9a2513c51899b7de90b115d4a51f104f46b552ff8929c322850e511e245a2ba0e976213416ae7241a17292ca98248caacfc891fcdcf5cea5d44
diff --git a/dev-python/channels/channels-3.0.5.ebuild b/dev-python/channels/channels-3.0.5.ebuild
new file mode 100644
index 000000000000..03a4923889fe
--- /dev/null
+++ b/dev-python/channels/channels-3.0.5.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2022 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="Extends Django abilities beyond HTTP protocol"
+HOMEPAGE="https://github.com/django/channels"
+SRC_URI="https://github.com/django/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=dev-python/django-2.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/async-timeout[${PYTHON_USEDEP}]
+ >=dev-python/daphne-3.0[${PYTHON_USEDEP}]
+ <dev-python/daphne-4.0[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( README.rst )
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # https://github.com/django/channels/issues/1915
+ echo 'asyncio_mode = auto' >> setup.cfg
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/channels/channels-4.2.2.ebuild b/dev-python/channels/channels-4.2.2.ebuild
new file mode 100644
index 000000000000..710613a7cbd1
--- /dev/null
+++ b/dev-python/channels/channels-4.2.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2022 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="Extends Django abilities beyond HTTP protocol"
+HOMEPAGE="https://github.com/django/channels"
+SRC_URI="https://github.com/django/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=dev-python/asgiref-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/django-4.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/async-timeout[${PYTHON_USEDEP}]
+ >=dev-python/daphne-4.0.0[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
diff --git a/dev-python/channels/channels-4.3.2.ebuild b/dev-python/channels/channels-4.3.2.ebuild
deleted file mode 100644
index ffafd1ece52b..000000000000
--- a/dev-python/channels/channels-4.3.2.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 #pypi
-
-DESCRIPTION="Brings async, event-driven capabilities to Django"
-HOMEPAGE="
- https://channels.readthedocs.io/
- https://github.com/django/channels/
- https://pypi.org/project/channels/
-"
-# no tests in sdist
-SRC_URI="
- https://github.com/django/channels/archive/refs/tags/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- <dev-python/asgiref-4[${PYTHON_USEDEP}]
- >=dev-python/asgiref-3.9.0[${PYTHON_USEDEP}]
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/async-timeout[${PYTHON_USEDEP}]
- dev-python/selenium[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_IGNORE=(
- # avoid daphne as it requires autobahn
- tests/sample_project/tests/test_selenium.py
- tests/security/test_websocket.py
- tests/test_database.py
- tests/test_generic_http.py
- tests/test_generic_websocket.py
- tests/test_http.py
- tests/test_testing.py
-)
-
-EPYTEST_PLUGINS=( pytest-django pytest-asyncio )
-distutils_enable_tests pytest
-
-PATCHES=(
- "${FILESDIR}"/channels-4.3.2-fix-install.patch
-)
-
-python_prepare_all() {
- # avoid daphne as it requires autobahn
- sed -e '/"daphne"/d' -i tests/sample_project/config/settings.py || die
-
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/channels/files/channels-4.3.2-fix-install.patch b/dev-python/channels/files/channels-4.3.2-fix-install.patch
deleted file mode 100644
index 18eca8f75445..000000000000
--- a/dev-python/channels/files/channels-4.3.2-fix-install.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index 742e1f6..43d8c0d 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -52,7 +52,7 @@ types =
-
- [options.packages.find]
- exclude =
-- tests
-+ tests*
-
- [flake8]
- exclude = venv/*,tox/*,docs/*,testproject/*,build/*
-
diff --git a/dev-python/channels/metadata.xml b/dev-python/channels/metadata.xml
index 0dec5a678a5f..7093cae71294 100644
--- a/dev-python/channels/metadata.xml
+++ b/dev-python/channels/metadata.xml
@@ -2,10 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>negril.nx+gentoo@gmail.com</email>
- <name>Paul Zander</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
- <stabilize-allarches/>
+ <upstream>
+ <bugs-to>https://github.com/django/channels/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/clickdc/Manifest b/dev-python/clickdc/Manifest
new file mode 100644
index 000000000000..349ec2b1eb94
--- /dev/null
+++ b/dev-python/clickdc/Manifest
@@ -0,0 +1 @@
+DIST clickdc-0.1.1.tar.gz 10128 BLAKE2B 98d9cf5f223be841c07698ec3a42f8cf49b8808d8090a7a5aaa2809c44d613f87e81fa2cee99e1cb611f8b0b691faaa9fd9de9fa71fb85e17e4845409bd44621 SHA512 9b369d86240da16cc38edae7b7ca705610c8afce3240fafeb287053b860c40cd30bd3af48a73fb5d4444cb62ecb1266c505f817f231671b95d0413fb416e7a6c
diff --git a/dev-python/clickdc/clickdc-0.1.1.ebuild b/dev-python/clickdc/clickdc-0.1.1.ebuild
new file mode 100644
index 000000000000..ccfea5fcf06f
--- /dev/null
+++ b/dev-python/clickdc/clickdc-0.1.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Define click command line options from a python dataclass"
+HOMEPAGE="
+ https://github.com/Kamilcuk/clickdc
+ https://pypi.org/project/clickdc/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # Irrevelant downstream, unpackaged pyright
+ "tests/test_typing.py"
+)
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/clickdc-0.1.1-click-8.2.patch
+)
+
+python_prepare_all() {
+ # workaround setuptools-git-versioning
+ sed -e "/^\[project\]/aversion = \"${PV}\"" \
+ -e '/^dynamic =/ s/"version", //' \
+ -i pyproject.toml || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/clickdc/files/clickdc-0.1.1-click-8.2.patch b/dev-python/clickdc/files/clickdc-0.1.1-click-8.2.patch
new file mode 100644
index 000000000000..13cdbad77d5e
--- /dev/null
+++ b/dev-python/clickdc/files/clickdc-0.1.1-click-8.2.patch
@@ -0,0 +1,15 @@
+More complicated patch
+https://github.com/Kamilcuk/clickdc/pull/3
+
+--- a/tests/test.py
++++ b/tests/test.py
+@@ -11,7 +11,7 @@ import clickdc
+
+
+ def invoke(*args, **kwargs):
+- return CliRunner(mix_stderr=True).invoke(*args, **kwargs)
++ return CliRunner().invoke(*args, **kwargs)
+
+
+ def run(arg_class, input: str, output: Any = None, fail: int = 0, toargs: bool = False):
+
diff --git a/dev-python/clickdc/metadata.xml b/dev-python/clickdc/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/clickdc/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/cmd2/Manifest b/dev-python/cmd2/Manifest
index 4eed67ebc425..42075ab88925 100644
--- a/dev-python/cmd2/Manifest
+++ b/dev-python/cmd2/Manifest
@@ -1,3 +1,4 @@
DIST cmd2-2.6.2.tar.gz 592373 BLAKE2B 917ecd684c60c0a6c1b273ef52fa1e317f71522dfd6fc8a9d2c1ee7fa28788b734c6536a9481ac56ef8409002f503837ae51191478a68e364c4780e9feb4b8e8 SHA512 75531dca561427eef259765a55c6385401edd8bc9d5c4cf08ab97e53e118334be932ee5c59f9e1fcd529a7a5f7416e654ee1d618d91623068ef21bcc66dcfdd7
DIST cmd2-3.4.0.tar.gz 710127 BLAKE2B 7bafd8d6a172b2a3cbc9d8eeae1a04002e61da7964593983d11e0e43574aa0a324b268bda6e118f22b2e4a1cb87f107c363c47d52f5cb74c4112aefec46a45f0 SHA512 e73bf4c1b66e40707082c3d42c99fdcb73b15e22e442e2489a386ae9d1c3f274e930e82c6320ced962852f6682544a86d788540166b6b4f0f77a08658b813e9b
DIST cmd2-3.5.0.tar.gz 707274 BLAKE2B 53e02be5c3f1531d767464d6b8765eafe5134b8711388e2adacba35486d035f64f49d6bf74c8f6e6b94a9d1f2a7843c2993c2eb94950bf12c603cfc1ade37263 SHA512 dc2d3181113146df5df4ae5b68f28c71476b32bdf1d9e34f03cac979a3cbf2759d850111515b95f0e76129d5aa054c87cf3ee8aafab592b3e9817a9fd32e04dd
+DIST cmd2-3.5.1.tar.gz 707325 BLAKE2B 5fd287a1a984c425cc7fdb3ef6c1f709b4af470b3280e715bcbad8200b52d5f8d698716eb540a9c9603ed090e2394b3aac319aaf80afc652459c127d968020bc SHA512 30414090390c1087173d2a259b5af2dc12228ab16892ea8617ec4168882565ebeef7e76a2c86b6e614fe45e3e454f74c49b633358b5da84d57365e7e70432054
diff --git a/dev-python/cmd2/cmd2-3.5.1.ebuild b/dev-python/cmd2/cmd2-3.5.1.ebuild
new file mode 100644
index 000000000000..815213316576
--- /dev/null
+++ b/dev-python/cmd2/cmd2-3.5.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 optfeature virtualx pypi
+
+DESCRIPTION="Extra features for standard library's cmd module"
+HOMEPAGE="
+ https://github.com/python-cmd2/cmd2/
+ https://pypi.org/project/cmd2/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ >=dev-python/pyperclip-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/rich-15.0.0[${PYTHON_USEDEP}]
+ >=dev-python/rich-argparse-1.7.2[${PYTHON_USEDEP}]
+"
+# pyperclip uses clipboard backends in the following preference order:
+# pygtk, xclip, xsel, klipper, qtpy, pyqt5, pyqt4.
+# klipper is known to be broken in Xvfb, and therefore causes test
+# failures. to avoid them, we must ensure that one of the backends
+# preferred to it is available (i.e. xclip or xsel).
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ || (
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+src_test() {
+ # tests rely on very specific text wrapping...
+ local -x COLUMNS=80
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ # TODO: tests_isolated?
+ nonfatal epytest -o addopts= tests || die
+}
+
+pkg_postinst() {
+ optfeature "IPython shell integration" dev-python/ipython
+}
diff --git a/dev-python/dkimpy/dkimpy-1.1.8.ebuild b/dev-python/dkimpy/dkimpy-1.1.8.ebuild
index bdff4d490fbd..bada88064eda 100644
--- a/dev-python/dkimpy/dkimpy-1.1.8.ebuild
+++ b/dev-python/dkimpy/dkimpy-1.1.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2025 Gentoo Authors
+# Copyright 2020-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64 ~ppc ~ppc64 x86"
RDEPEND="
>=dev-python/dnspython-2.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 8d4ce35cd7a4..a8f6e334f772 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -4,3 +4,4 @@ DIST hypothesis-6.151.12.gh.tar.gz 9870628 BLAKE2B 4f0ffbdc31e11c6ab8541cd12df34
DIST hypothesis-6.151.14.gh.tar.gz 9871044 BLAKE2B bed431dcd481f5af11043fd0beca9caf207c918052dd054ef0e758d07646b1870417d868179bb251c6f6463fe73d10a8adabce5f0b0cfa9858be77e876575a46 SHA512 c1e3e3b03d3ed3ac50c7e83b236b8eda65ab6694adde07c88e5096df7361242d194b7624743656e8f30d885e554428d1af3cb9cbfd20514dca1e50bf3d29b4e5
DIST hypothesis-6.151.9.gh.tar.gz 9864451 BLAKE2B 9d9c2800cf1212e743a599c261c78c0a7d349e58075a443e0d10e6373b1582e059abde416cec4f3a8185ae424725f93da8ab4e43dd70bd0f86071d69aca94def SHA512 3e41bdd077a18fe72360547bc03f2c3d7218e8cd6cb563fffd6024427bfa5ce0764ca9c7ef0dafdded896625128fc14b9d3f8c4564aa8a509545abf0ad24adbf
DIST hypothesis-6.152.1.gh.tar.gz 9871990 BLAKE2B cd86297e7247e3a515cbebf862a2397c4dfa50edda336e6be46b7b9b52d724857ab41ffb2b09846c7dfb6d0c6730082aa92735c7b4bd3b643781c87fd7de0706 SHA512 8d8c865bf38759e58020d4e4a1632dd0c3179c50deb14995bbe61cdf714b6230e9a3df0e2302c4842513d37d5c5cfeab49f05314b672afcf66e7081eafe88071
+DIST hypothesis-6.152.2.gh.tar.gz 9601975 BLAKE2B 7903dece41ee26508700e8617105089371dfd8efa35de1ba49cda3512b8ad6cea89faab17c713c1d32a8b3dd19e6e16d62ea4faa2f08d7b39fca8f605ea329a5 SHA512 d88b967d4109e0604267b20740fd3fc2006d945b02bf4f3b7311d3108bc437c5790b26c6b45bae5aae858229c81d2333d203139cee5184a38e0ce83704527e87
diff --git a/dev-python/hypothesis/hypothesis-6.152.2.ebuild b/dev-python/hypothesis/hypothesis-6.152.2.ebuild
new file mode 100644
index 000000000000..e2dc047d3cc6
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.152.2.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2026 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/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/attrs-22.2.0[${PYTHON_USEDEP}]
+ 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=(
+ # broken somehow (xdist?)
+ 'hypothesis-python/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
+ )
+ local EPYTEST_IGNORE=(
+ # require syrupy
+ tests/cover/test_custom_reprs.py
+ )
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ python3.14t)
+ EPYTEST_DESELECT+=(
+ # TODO
+ 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ 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/ipython/Manifest b/dev-python/ipython/Manifest
index 5665de9449e8..83a985cbde50 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1,8 +1,6 @@
-DIST ipython-9.10.0.tar.gz 4426526 BLAKE2B 0b7e4f370bce45fe9703ae27872217e4a04cca89880863e61499c7132a42c4b739c54202fead6e76c4550408f3555c5b677f4d2dadc93395efbeef7418b3ae3c SHA512 f0f6592aa7984cbf77b82630ec6c9e5d269e6c2486dc885de4640e5d3f60a4d39fb8660a7d7e93efc241ad213a70667322d05a0d86468d22b701698a3e2fb03a
-DIST ipython-9.10.0.tar.gz.provenance 9575 BLAKE2B 2041c8b06c8e896ccb6e6c0fcea9c3708229b35472dec88f3d00b4445095b5e804d48e88357608ea951ae795b37e2007e0f51aaf26b66ef7923dd6ead6fe0935 SHA512 ab56e0f6897fdf00c2d18e630a48ddaec3caeb4670690c8c7607d4384e42fe841e37d644cb68a7c9875620bf40c23590d41409fc92eda0e1ec415b61c69b6435
DIST ipython-9.11.0.tar.gz 4427354 BLAKE2B 37d8bc4ac85becce0d1ef1da42bc4cf4fb021b6fb200fe9c735d408e9b044371f020af4dd915546196b3baef55d6eba81267fd35f3914b2e16b115b0d64a1394 SHA512 9ac8f20b7f644c8c0c87673da4e549a54721a0204ab73d1075315d5d222323daf4b3e627e3fafef60f3274cf6e5edbc33e7c7bb1c593af477abad825b2cfe2fe
DIST ipython-9.11.0.tar.gz.provenance 9388 BLAKE2B 1e2d8a8d1af398f252508959a622eba27ab4d4b88c31d359c9734aeaf750b180e0a7d1ca541047cdad16c4f909bed2969dfee8536ba315c113bb9cdeb92116a0 SHA512 a264c29635b73430b869fd83a080958ad61bc30bc989ef9d109f2a5217dedbec579f735567daac23b853c13b2a5691872cccebf1169c31d4586390c3458b2b84
DIST ipython-9.12.0.tar.gz 4428879 BLAKE2B 288a8b0b3c10c8b6bcc39378c830845611da223ad452114b5c3a8b6c5152007689725897aa852e7e3f11af43113315303a6859e3a8ac29a125b62a712cff9549 SHA512 142d5f994df287f09904ba1582c75336dd375947b92c6b39eeeb41578e6b1c1b8aaa06f36972dda9cf1435be29cc96feb8ed5a6ba0baf4fc14b21525ff04efcc
DIST ipython-9.12.0.tar.gz.provenance 9426 BLAKE2B 2b46d1c0724fa300a77f9907fbc9d7aeef058e16532e27394d411c5cdcc328cdb9b19502dceee7e27f9cc008ec84ea2a4aa89e3ed186cca796147eef311705f4 SHA512 b999d9f8054eaaa760cfe0b0dd90ff17697dc2ecda7e7685c008fd0826448b56720e76f89029d56784117ebc8c9c4034463c3af43a26dbc396f7309d4e080fe1
-DIST ipython-9.9.0.tar.gz 4425043 BLAKE2B 8bd87dbad423722ff878875651fa263be2bae2fcabafb03a9e7e7125c2d350ead453187f370c978067509a7433a007757dc0b79d18f376bbe683bc9b9dc3746b SHA512 f381764a71f73b2b565996565d26d43c587c9cd21e9286c317950b3ee3a41fb9f2fc79022e5c99560f39e90e7bcfb166f54cfbe0113f0b36523578cf6aaaca8b
-DIST ipython-9.9.0.tar.gz.provenance 9253 BLAKE2B 6d989e199d4f6afb9fa7b6f3d3c249cfdc7c86f289a907808e5b2f13a723a43c28f1284f582c7fde2c1f1e9279c9a6dbf9caacae994e9d580d4e8a90a7bbe73c SHA512 70bf51ed1a544c867e21711af0e5602d33e1d6505d9ef3295dcdb5253ad3d456f49cfb2e9de2d9a92117a52642f2cf26ea9eca790f67f0824e9d7a0f8175a845
+DIST ipython-9.13.0.tar.gz 4430549 BLAKE2B e57be94d752a7de861cfe8a86e65e9827894c11f4e01e857973868145862d95ecdebc3f59a40b01fc40bbe738f6a93c364f429fec873833246e930870ab2300c SHA512 64bdeded45d1113180301e6122bde25a957755ef2fc7b8d9a9cd3ae390f7a92da7c77be379fb895647d0faade4832f67ea3bd3d7dbec7580f0b02796696490e2
+DIST ipython-9.13.0.tar.gz.provenance 9426 BLAKE2B 89a5b4d09efc361b080dc78eaa1007c237036a3ba8101cfa812fc634c90f8cbe5ddc3cfa8e1018e6be209fc45203c6ee0ad1ec79257dbe0dcc296629b05050b3 SHA512 e72798ac68a3b731c65f36f53c62a0dc642458657c6fc0093b66a5d0a8f8fe1638d6cf47f0b3b3702501f28e6f4791a3799566c8efc224f6c11bfbb03ccfa700
diff --git a/dev-python/ipython/ipython-9.10.0.ebuild b/dev-python/ipython/ipython-9.13.0.ebuild
index 4cad8b2e929c..123d08cf6bdf 100644
--- a/dev-python/ipython/ipython-9.10.0.ebuild
+++ b/dev-python/ipython/ipython-9.13.0.ebuild
@@ -24,34 +24,32 @@ IUSE="examples gui notebook nbconvert +smp test"
RESTRICT="!test? ( test )"
RDEPEND="
- >=dev-python/decorator-4.3.2[${PYTHON_USEDEP}]
+ >=dev-python/decorator-5.1.0[${PYTHON_USEDEP}]
>=dev-python/ipython-pygments-lexers-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/jedi-0.18.1[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-inline-0.1.5[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.18.2[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-inline-0.1.6[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.7[${PYTHON_USEDEP}]
>=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
<dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.11.0[${PYTHON_USEDEP}]
+ >=dev-python/psutil-7[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.14.0[${PYTHON_USEDEP}]
>=dev-python/stack-data-0.6.0[${PYTHON_USEDEP}]
>=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.11)
"
BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-80[${PYTHON_USEDEP}]
test? (
app-text/dvipng[truetype]
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
>=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
dev-python/nbformat[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
+ >=dev-python/numpy-2.0[${PYTHON_USEDEP}]
dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.0.0[${PYTHON_USEDEP}]
dev-python/pickleshare[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
+ >=dev-python/testpath-0.2[${PYTHON_USEDEP}]
)
"
@@ -73,7 +71,7 @@ PDEPEND="
dev-python/ipywidgets[${PYTHON_USEDEP}]
dev-python/widgetsnbextension[${PYTHON_USEDEP}]
)
- ' 3.{11..13})
+ ' 3.{12..14})
smp? (
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
>=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
@@ -96,18 +94,6 @@ python_test() {
local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
local EPYTEST_DESELECT=()
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/14244
- tests/test_display.py::TestAudioDataWithoutNumpy
- # minor exception message mismatch
- # https://github.com/ipython/ipython/issues/14976
- tests/test_ultratb.py::ExceptionMessagePreferenceTest::test_jsondecodeerror_message
- )
- ;;
- esac
-
if [[ $(tc-get-ptr-size) == 4 ]] ; then
EPYTEST_DESELECT+=(
# https://github.com/ipython/ipython/issues/15107
diff --git a/dev-python/ipython/ipython-9.9.0.ebuild b/dev-python/ipython/ipython-9.9.0.ebuild
deleted file mode 100644
index 61f8cd862f0c..000000000000
--- a/dev-python/ipython/ipython-9.9.0.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/ipython/ipython
-PYTHON_COMPAT=( python3_{10..14} )
-PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
-
-inherit distutils-r1 optfeature toolchain-funcs pypi virtualx
-
-DESCRIPTION="Advanced interactive shell for Python"
-HOMEPAGE="
- https://ipython.org/
- https://github.com/ipython/ipython/
- https://pypi.org/project/ipython/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="examples gui notebook nbconvert +smp test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/decorator-4.3.2[${PYTHON_USEDEP}]
- >=dev-python/ipython-pygments-lexers-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/jedi-0.18.1[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-inline-0.1.5[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
- >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
- <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.11.0[${PYTHON_USEDEP}]
- >=dev-python/stack-data-0.6.0[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.11)
-"
-
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- app-text/dvipng[truetype]
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
- dev-python/nbformat[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/pickleshare[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-asyncio )
-distutils_enable_tests pytest
-
-RDEPEND+="
- nbconvert? (
- dev-python/nbconvert[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- $(python_gen_cond_dep '
- gui? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
- ' 'python*')
- $(python_gen_cond_dep '
- notebook? (
- dev-python/notebook[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/widgetsnbextension[${PYTHON_USEDEP}]
- )
- ' 3.{11..13})
- smp? (
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
- )
-"
-
-python_prepare_all() {
- # Rename the test directory to reduce sys.path pollution
- # https://github.com/ipython/ipython/issues/12892
- mv IPython/extensions/{,ipython_}tests || die
-
- distutils-r1_python_prepare_all
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/14244
- tests/test_display.py::TestAudioDataWithoutNumpy
- # minor exception message mismatch
- # https://github.com/ipython/ipython/issues/14976
- tests/test_ultratb.py::ExceptionMessagePreferenceTest::test_jsondecodeerror_message
- )
- ;;
- esac
-
- if [[ $(tc-get-ptr-size) == 4 ]] ; then
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/15107
- IPython/extensions/ipython_tests/test_deduperreload.py::DecoratorPatchingSuite::test_function_decorator_from_other_module
- IPython/extensions/ipython_tests/test_deduperreload.py::DecoratorPatchingSuite::test_function_decorators
- IPython/extensions/tests/test_deduperreload.py::DecoratorPatchingSuite::test_method_decorator
- )
- fi
-
- # nonfatal implied by virtx
- nonfatal epytest || die "Tests failed on ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # Create ipythonX.Y symlinks.
- # TODO:
- # 1. do we want them for pypy?
- # 2. handle it in the eclass instead (use _python_ln_rel).
- # With pypy not an option the dosym becomes unconditional
- # TODO2: figure out what TODO meant.
- dosym ../lib/python-exec/${EPYTHON}/ipython \
- /usr/bin/ipython${EPYTHON#python}
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-}
-
-pkg_postinst() {
- optfeature "code formatting" dev-python/black
- optfeature "sympyprinting" dev-python/sympy
- optfeature "cythonmagic" dev-python/cython
- optfeature "%lprun magic command" dev-python/line-profiler
- optfeature "%matplotlib magic command" dev-python/matplotlib-inline
-
- if use nbconvert; then
- if ! has_version virtual/pandoc ; then
- einfo "Node.js will be used to convert notebooks to other formats"
- einfo "like HTML. Support for that is still experimental. If you"
- einfo "encounter any problems, please use app-text/pandoc instead."
- fi
- fi
-}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..d12ab8aeaca8 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
deleted file mode 100644
index 637368d2f237..000000000000
--- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
-
---- a/setup.py
-+++ b/setup.py
-@@ -18,7 +18,7 @@ setup(
- author_email='michal.danilak@gmail.com',
- url='https://github.com/Mimino666/langdetect',
- keywords='language detection library',
-- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
-+ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
- include_package_data=True,
- install_requires=['six'],
- license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 7100f5f39dd8..271137de443d 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,6 +19,4 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
-PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
-
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index c0f74ac187e2..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,9 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>pastalian46@gmail.com</email>
- <name>Takuya Wakazono</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index 30f67661d2fe..0622b93eb4fc 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -1,3 +1,5 @@
DIST freetype-2.6.1.tar.gz 2302080 BLAKE2B 6a5fb98e5fa6cf4b7d7533ad44e364227d8c2f7dded4c552d6e22e204c32b7858f20d41d1e809ecdad6e5353d6cec81bea0e0b06a4533363a41ecab83ce3f7ca SHA512 ff2daed64d712737085924c50e75862fafbcbb24eef6d72dac9eaae63bb656d7245397fd828f5d3e47ac847f7ff83d73dedfdd61fde1f7d6e0f0cdeb49bcf83b
DIST matplotlib-3.10.8.tar.gz 34806269 BLAKE2B 1dc1de36b7b29c1d9b50fd464dff7054faef4bcf0e6338c8ac4c89bcb7325578af0be99323336489ecc9dfda0418596413e456e16391343fe2fbdec16730a4e4 SHA512 66d07fb0b13821e88f6e6fe9f9882542340c074198dce7d5f8bf5d65d1c64326ae7517ad38d6357491c54aedd8cd1b03f555ad6d9337754db5dbd43c6305ab3f
DIST matplotlib-3.10.8.tar.gz.provenance 9863 BLAKE2B 33b9105d073518a90bfcb4c829021f4383821fff4bdda51b711aea627ec4d69f12ad9067ac28c47dd911a4a2459d9b5ae2e68db46941f43b7f4f0534fe645a3d SHA512 4125dfe66b33c8c5d00b588600ba92c4e0f6fc310478b65fcc8f602c3a38baf9897f5347513bbc24249e01e061a5039ba10bc5eca21584b9391be148e0ba2285
+DIST matplotlib-3.10.9.tar.gz 34811233 BLAKE2B 93a2b76390f68f366ad9e761e32a8fd2e85c95ac53ed1359bbfa3aef29c368a1c74284b65113b6f503109d4e1c72f899728afd1c327d62ce80cfb3e7583bbfce SHA512 432b234e78e416d779cb1c5c7924f2e68997d9da8a204e7bd5b199aeaafdc900a93e492a464d21daccb11124c01567437c440c4d3ddbf3f772834e4217460a1f
+DIST matplotlib-3.10.9.tar.gz.provenance 9742 BLAKE2B 0c46e3818add6d952b1e1a7b45ec523fb7637bb030bb83b89d2b9f60cf2cc41c728ed3bb537db396fe88a436f0bcd33d656e5d68aa04e23651aa44c31b6725c2 SHA512 e86e176981d5736517a14b8eb0be633068bff2d24d4028d2eb5a1a4612a24cba98d9cef884cd98daa57252cdff4db5419be5bdc4b4b3aae8d778fd16e954a1fe
diff --git a/dev-python/matplotlib/matplotlib-3.10.9.ebuild b/dev-python/matplotlib/matplotlib-3.10.9.ebuild
new file mode 100644
index 000000000000..d789dccb358b
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-3.10.9.ebuild
@@ -0,0 +1,351 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/matplotlib/matplotlib
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 pypi virtualx
+
+FT_PV=2.6.1
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="
+ https://matplotlib.org/
+ https://github.com/matplotlib/matplotlib/
+ https://pypi.org/project/matplotlib/
+"
+SRC_URI+="
+ test? (
+ https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
+ )
+"
+
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
+
+LATEX_DEPEND="
+ virtual/latex-base
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/poppler[cairo,png,utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ dev-texlive/texlive-xetex
+"
+
+DEPEND="
+ media-libs/freetype:2
+ >=media-libs/qhull-2013:=
+ >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
+"
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ media-fonts/stix-fonts
+ media-libs/libpng:0
+ virtual/imagemagick-tools[jpeg,tiff]
+ cairo? (
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ excel? (
+ dev-python/xlwt[${PYTHON_USEDEP}]
+ )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ latex? (
+ ${LATEX_DEPEND}
+ )
+ qt6? (
+ $(python_gen_cond_dep '
+ || (
+ dev-python/pyqt6[gui,widgets,${PYTHON_USEDEP}]
+ dev-python/pyside:6[gui,widgets,${PYTHON_USEDEP}]
+ )
+ ' 'python3*')
+ )
+ webagg? (
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ )
+ wxwidgets? (
+ $(python_gen_cond_dep '
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ ' python3_{10..12})
+ )
+"
+
+BDEPEND="
+ ${RDEPEND}
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ test? (
+ $(python_gen_impl_dep 'tk')
+ ${LATEX_DEPEND}
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ !hppa? ( !s390? (
+ || (
+ media-video/ffmpeg[openh264]
+ media-video/ffmpeg[x264]
+ )
+ ) )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ # do not unpack freetype
+ unpack "${P//_/}.tar.gz"
+}
+
+python_prepare_all() {
+ # Affects installed _version.py, bug #854600
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+ # increase lock timeout to 30 s
+ sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
+ # upstream uses 'x86_64' condition to require exact matches no their CI
+ # which doesn't match results from other x86_64 systems
+ find -name 'test_*.py' -exec \
+ sed -i -e "s:platform.machine() == 'x86_64':False:" {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ unset DISPLAY # bug #278524
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ DISTUTILS_ARGS=(
+ -Dsystem-freetype=true
+ -Dsystem-qhull=true
+ -Dmacosx=false
+ )
+}
+
+src_test() {
+ mkdir subprojects/packagecache || die
+ cp "${DISTDIR}/freetype-${FT_PV}.tar.gz" subprojects/packagecache/ || die
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by -Wdefault
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
+ tests/test_testing.py::test_warn_to_fail
+ tests/test_legend.py::test_legend_nolabels_warning
+ # TODO?
+ tests/test_backend_qt.py::test_fig_sigint_override
+ tests/test_backend_qt.py::test_ipython
+ tests/test_backend_nbagg.py::test_ipynb
+ # leak tests are fragile
+ tests/test_backends_interactive.py::test_figure_leak_20490
+ # major "images not close", new texlive perhaps
+ tests/test_contour.py::test_all_algorithms
+ 'tests/test_usetex.py::test_usetex[png]'
+ 'tests/test_usetex.py::test_multiline_eqnarray[png]'
+ 'tests/test_usetex.py::test_rotation[png]'
+ # "no warnings"
+ tests/test_backend_pdf.py::test_invalid_metadata
+ tests/test_figure.py::test_too_many_figures
+ # Requires qt5
+ tests/test_backends_interactive.py::test_qt5backends_uses_qt5
+ 'tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
+ 'tests/test_backends_interactive.py::test_interactive_backend[toolmanager-MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_blitting_events[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_blitting_events[MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
+ 'tests/test_backends_interactive.py::test_interactive_thread_safety[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_interactive_timers[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
+ 'tests/test_backends_interactive.py::test_interactive_timers[MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
+ # Tests mixing qt5 and qt6, requires installing all Qt4Py impl.
+ tests/test_backends_interactive.py::test_cross_Qt_imports
+ # "images not close", sigh
+ 'tests/test_image.py::test_interp_nearest_vs_none[pdf]'
+ 'tests/test_bbox_tight.py::test_bbox_inches_tight_raster[pdf]'
+ # minor sphinx output mismatch
+ tests/test_doc.py::test_sphinx_gallery_example_header
+ # TODO: timezone mismatch? DST?
+ tests/test_dates.py::test_auto_date_locator_intmult_tz
+ )
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO: warning isn't passed through
+ tests/test_image.py::test_large_image
+ # TODO: regression in 7.3.18+
+ tests/test_axes.py::test_axes_clear_reference_cycle
+ # TODO
+ tests/test_pickle.py::test_complete
+ tests/test_pickle.py::test_no_pyplot
+ tests/test_pickle.py::test_pickle_load_from_subprocess
+ tests/test_pickle.py::test_simple
+ tests/test_texmanager.py::test_openin_any_paranoid
+ )
+ ;;
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # https://github.com/matplotlib/matplotlib/issues/23384
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ tests/test_constrainedlayout.py::test_compressed1
+ )
+ ;;
+ python3.14)
+ EPYTEST_DESELECT+=(
+ # some minor asyncio trouble
+ tests/test_backends_interactive.py::test_webagg
+ )
+ ;;
+ esac
+
+ case ${ABI} in
+ hppa)
+ EPYTEST_DESELECT+=(
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_quiver.py::test_barbs_pivot[png]'
+ 'tests/test_quiver.py::test_barbs_flip[png]'
+ 'tests/test_text.py::test_parse_math'
+ 'tests/test_text.py::test_parse_math_rcparams'
+ )
+ ;;
+ arm)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_ps.py::test_savefig_to_stringio
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ sparc64)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_pgf.py::test_pdf_pages_metadata_check
+ tests/test_backend_pgf.py::test_minus_signs_with_tex
+ )
+ ;;
+ x86)
+ EPYTEST_DESELECT+=(
+ 'tests/test_tightlayout.py::test_tight_layout2[png]'
+ 'tests/test_patches.py::test_wedge_range[pdf]'
+ 'tests/test_tightlayout.py::test_tight_layout3[png]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_axes.py::test_fill_between_interpolate_decreasing[png]'
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
+ EPYTEST_DESELECT+=(
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ # override BUILD_DIR used by meson, so that mpl is actually rebuilt
+ # against bundled freetype
+ local orig_build_dir=${BUILD_DIR}
+ local BUILD_DIR=${BUILD_DIR}-test
+
+ # we need to rebuild mpl against bundled freetype, otherwise
+ # over 1000 tests will fail because of mismatched font rendering
+ local DISTUTILS_ARGS=(
+ "${DISTUTILS_ARGS[@]}"
+ -Dsystem-freetype=false
+ )
+ distutils_pep517_install "${BUILD_DIR}"/install
+ cp -r {"${orig_build_dir}","${BUILD_DIR}"}/install"${EPREFIX}/usr/bin" || die
+ cp -r {"${orig_build_dir}","${BUILD_DIR}"}/install"${EPREFIX}/usr/pyvenv.cfg" || die
+ local -x PATH=${BUILD_DIR}/install${EPREFIX}/usr/bin:${PATH}
+
+ pushd lib >/dev/null || die
+ local path
+ local sitedir=${BUILD_DIR}/install$(python_get_sitedir)
+ # sigh, upstream doesn't install these
+ while IFS= read -d '' path; do
+ cp -r "${path}" "${sitedir}/${path}" || die
+ done < <(
+ find \( \
+ -name baseline_images -o \
+ -name '*.ipynb' -o \
+ -name '*.pfb' -o \
+ -name '*.ttf' -o \
+ -name tinypages \
+ \) -print0
+ )
+ popd >/dev/null || die
+
+ # pretend we're on CI to increase timeouts
+ local -x CI=1
+ nonfatal epytest --pyargs matplotlib -m "not network" \
+ -o tmp_path_retention_policy=all || die
+}
diff --git a/dev-python/mediafile/Manifest b/dev-python/mediafile/Manifest
index f484d59d1e85..b964f3a5285b 100644
--- a/dev-python/mediafile/Manifest
+++ b/dev-python/mediafile/Manifest
@@ -3,3 +3,4 @@ DIST mediafile-0.15.0.gh.tar.gz 622616 BLAKE2B f8b36e6bd1400f55033fe7a85c76ba666
DIST mediafile-0.16.0.gh.tar.gz 627848 BLAKE2B 46e82b6855cd11b63ba3f83fe369b760ae486829c4eb726b33ed282af1c50d8a7653c0be60797532dbab37f5fdc13830a7a17c1af93406e6d1bdd69aad08c9aa SHA512 7459f098f4db44cedef19d005ee3526c1a220756128a3fb790e9e8bf7e082dafe31045c18cc44f9764d84fa1ebbc5bd9830f9832335e1c0481310ad588bb7b67
DIST mediafile-0.16.1.gh.tar.gz 666169 BLAKE2B dbc4ea1673071df08b47850296cbf5781fdc6b576af0146c8f11b81e42acbc2e80dca60395ca85d3f4549d5b2914321d62c3cd1fc486784ee0491b5ce649190c SHA512 4100f8fe66383fdf6b238bad18573af9b9a57ae68606be0a7494950387d04f4478f1d58b2d12869dc8cebc904dc0db357656f6144041902c0787d2ea70121841
DIST mediafile-0.16.2.gh.tar.gz 666245 BLAKE2B e4ba0732e205e58348cb94e03c43cd210b287cb7cb309f471f277a42437611e7ed1beb9b6c4c47d92bd7382a5e8704a98a1e1c56a3fad4b4194fa97144447f7d SHA512 e7cc9a606d59e930b8bcacb208561e92f5d9ffb5d7aaf59b65260f2ac63780c6b9bc4042402955783717454f358b24b514fe5a17e174e644e1eed9ee3e45cc7d
+DIST mediafile-0.17.0.gh.tar.gz 666422 BLAKE2B b9c15b53a2d2b81a8ef8a102023e4e771b53aa6aaba46f6327d8c31525697512f76959043647619e9f092e0b586c298456008fe7ae384678ecc43df8c51a02e8 SHA512 743fb98cf68d64daf3ee32a5a2d12b8664b39519b248eb44fdf7f45cbee9de95e77cfe9ce9159d770d4050d4f77bca197148317e25b30f25cc30903adcc51bb7
diff --git a/dev-python/mediafile/mediafile-0.17.0.ebuild b/dev-python/mediafile/mediafile-0.17.0.ebuild
new file mode 100644
index 000000000000..f9d3d5b77088
--- /dev/null
+++ b/dev-python/mediafile/mediafile-0.17.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Read and write audio files' tags in Python"
+HOMEPAGE="
+ https://github.com/beetbox/mediafile/
+ https://pypi.org/project/mediafile/
+"
+SRC_URI="
+ https://github.com/beetbox/mediafile/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/filetype-1.2.0[${PYTHON_USEDEP}]
+ >=media-libs/mutagen-1.46.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs
+distutils_enable_tests unittest
diff --git a/dev-python/openapi-spec-validator/Manifest b/dev-python/openapi-spec-validator/Manifest
index 987925de04f0..4cbee1de9613 100644
--- a/dev-python/openapi-spec-validator/Manifest
+++ b/dev-python/openapi-spec-validator/Manifest
@@ -3,3 +3,5 @@ DIST openapi_spec_validator-0.8.0.tar.gz 1744560 BLAKE2B 6ac56b686c0d11b657cae6b
DIST openapi_spec_validator-0.8.0.tar.gz.provenance 9722 BLAKE2B e867db7f88cf437f505f93399aa503d9f95a892ecbe724c81f108675635ff04209c51a02fa8b658f65e33cabfd9b3feb281b6afb573c355ac670d9e254235aec SHA512 5912574f9ac632011c7f8519730943af0e3fcef9ed7270a308192154ae47c0fa798d35e1f140429dffccc4ea66763d5fe1b96d2de8b111bc615661904d8e7807
DIST openapi_spec_validator-0.8.4.tar.gz 1756847 BLAKE2B 2f9684ecbbefce4dcabb547959d3c796d6280f8a470d0e33e4e1db75844969e6ac2e92f3ee23c33f1ff4b2520eeb3ed05d4186cd1049398c5950d5a2718bb546 SHA512 53582f62ac4438c754422f27b68aa83513d0ee845ed40451b293dcfbddc4267c9e2c0554af04e64a9046cf38072e7c2e7798639fb630f33ff153ce12e339755b
DIST openapi_spec_validator-0.8.4.tar.gz.provenance 10068 BLAKE2B 64981dfc9c5ca841cd1f625de30eac52f39ec3e32015cbb74e6607a6f7e3384e217dc30a76c6c36316f07b9911c62342091d98ee706334bc6c45e6349708bdfc SHA512 93aad020d63176749dd2455356deeea6524f98ae2a27186e3445f4121f139d0817caf8d6cab9862a00fcc7b1137181cdc40c31c10f887edc8f41f7393f536e06
+DIST openapi_spec_validator-0.8.5.tar.gz 1756845 BLAKE2B b9405997f5ca94645b02cce34663f4eb3c0b91eeb3e08e35c35b5aecbe76daf1dad91a8aafed9b1f03fe2d532cfe929146bbe85c030b4492f3b9ba47ddf7b1c3 SHA512 e1da428809c5ababe0ac58aee5ab7f0b93c9b5bb80fee4c711c9c22d8c413f3235d970f2b044b9a6df6890ee84f3c1d88148b0ef4cec970a093490a4e2c3744e
+DIST openapi_spec_validator-0.8.5.tar.gz.provenance 10149 BLAKE2B 62c9f653c4973377f2a922bf093506830a51410becabc7f431d95f849bdf267c3f71faefe28a484db7b30d3fd0b173e243f6b7a3624d1a3c87996e23f9b35933 SHA512 4d2bb2400872a8d657359eb2e23d78edf8d4c951ab8e326b357cef73ff5879b9d947f64fc2c22f196ec49fdb7fabd87bbfda88c2093611984c7d8ab85bf70a07
diff --git a/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild b/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild
new file mode 100644
index 000000000000..d46f644acf1f
--- /dev/null
+++ b/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild
@@ -0,0 +1,57 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYPI_VERIFY_REPO=https://github.com/python-openapi/openapi-spec-validator
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 spec validator"
+HOMEPAGE="
+ https://github.com/python-openapi/openapi-spec-validator/
+ https://pypi.org/project/openapi-spec-validator/
+"
+
+LICENSE="BSD"
+SLOT="0"
+if [[ ${PV} != *_beta* ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+fi
+
+RDEPEND="
+ >=dev-python/jsonschema-4.24.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-path-0.4.3[${PYTHON_USEDEP}]
+ >=dev-python/lazy-object-proxy-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/openapi-schema-validator-0.7.3[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-settings-2.0.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Internet
+ tests/integration/test_shortcuts.py::TestPetstoreV2Example
+ tests/integration/test_shortcuts.py::TestApiV2WithExampe
+ tests/integration/test_shortcuts.py::TestPetstoreV2ExpandedExample
+ tests/integration/test_shortcuts.py::TestPetstoreExample
+ tests/integration/test_shortcuts.py::TestRemoteValidatev2SpecUrl
+ tests/integration/test_shortcuts.py::TestRemoteValidatev30SpecUrl
+ tests/integration/test_shortcuts.py::TestApiWithExample
+ tests/integration/test_shortcuts.py::TestPetstoreExpandedExample
+ tests/integration/test_validate.py::TestPetstoreExample
+ tests/integration/test_validate.py::TestApiWithExample
+ tests/integration/test_validate.py::TestPetstoreExpandedExample
+ tests/integration/validation/test_validators.py
+)
+
+src_prepare() {
+ sed -i -e '/--cov/d' pyproject.toml || die
+ # remove meaningless upper bounds
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/opentelemetry-api/Manifest b/dev-python/opentelemetry-api/Manifest
index 664dd8eb5173..bb31355a7db3 100644
--- a/dev-python/opentelemetry-api/Manifest
+++ b/dev-python/opentelemetry-api/Manifest
@@ -1 +1,2 @@
DIST opentelemetry-python-1.40.0.gh.tar.gz 1380277 BLAKE2B a52ce43e047347d55ce3ba54c2db4fa883f7e543eac9cfe4e3aa92f03db3a0a2fa943235e9f1fe61b5b7bfe377f7c3a661822405c357e2b31885ca7f20c636d6 SHA512 3c5ff022f0374cd28248a8d08d3e909945833db06afaced75d3bafe1420b3e2686e8a5aa14c60bd01380dd0a22c3c08c92caed2671925f3cea4aa40f383c83c1
+DIST opentelemetry-python-1.41.1.gh.tar.gz 1501865 BLAKE2B fe44f7e589487cd44457e5434f95caf99cfc53b4bf3c95e03391be4052e1aa57f43623b5a3d9f42dab34b092cd9453316747ac965f39eaa1d023e43254c74b14 SHA512 9622efe2861aa4680649d74b0e0e0b296505050edaef70f2c8bdcaf533e1137959d54e2fe49b35f48b4ddfe2b52d2b4cef74bbcd0cdffbb287a4a72aa10a3e1b
diff --git a/dev-python/opentelemetry-api/opentelemetry-api-1.41.1.ebuild b/dev-python/opentelemetry-api/opentelemetry-api-1.41.1.ebuild
new file mode 100644
index 000000000000..05e2aec95aae
--- /dev/null
+++ b/dev-python/opentelemetry-api/opentelemetry-api-1.41.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P="opentelemetry-python-${PV}"
+DESCRIPTION="OpenTelemetry Python API"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-api/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/importlib-metadata-6.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ default
+
+ # Unnecessary restriction
+ sed -i -e '/importlib-metadata/s:, < [0-9.]*::' pyproject.toml || die
+}
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in opentelemetry-semantic-conventions opentelemetry-sdk \
+ tests/opentelemetry-test-utils
+ do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest
+}
diff --git a/dev-python/opentelemetry-sdk/Manifest b/dev-python/opentelemetry-sdk/Manifest
index 664dd8eb5173..bb31355a7db3 100644
--- a/dev-python/opentelemetry-sdk/Manifest
+++ b/dev-python/opentelemetry-sdk/Manifest
@@ -1 +1,2 @@
DIST opentelemetry-python-1.40.0.gh.tar.gz 1380277 BLAKE2B a52ce43e047347d55ce3ba54c2db4fa883f7e543eac9cfe4e3aa92f03db3a0a2fa943235e9f1fe61b5b7bfe377f7c3a661822405c357e2b31885ca7f20c636d6 SHA512 3c5ff022f0374cd28248a8d08d3e909945833db06afaced75d3bafe1420b3e2686e8a5aa14c60bd01380dd0a22c3c08c92caed2671925f3cea4aa40f383c83c1
+DIST opentelemetry-python-1.41.1.gh.tar.gz 1501865 BLAKE2B fe44f7e589487cd44457e5434f95caf99cfc53b4bf3c95e03391be4052e1aa57f43623b5a3d9f42dab34b092cd9453316747ac965f39eaa1d023e43254c74b14 SHA512 9622efe2861aa4680649d74b0e0e0b296505050edaef70f2c8bdcaf533e1137959d54e2fe49b35f48b4ddfe2b52d2b4cef74bbcd0cdffbb287a4a72aa10a3e1b
diff --git a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.41.1.ebuild b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.41.1.ebuild
new file mode 100644
index 000000000000..49333f855a7f
--- /dev/null
+++ b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.41.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P="opentelemetry-python-${PV}"
+DESCRIPTION="OpenTelemetry Python SDK"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-sdk/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+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}]
+"
+
+EPYTEST_PLUGINS=( pytest-rerunfailures )
+# Tests cannot handle xdist with high makeopts
+# https://bugs.gentoo.org/928132
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # TODO
+ tests/metrics/test_measurement_consumer.py::TestSynchronousMeasurementConsumer::test_collect_deadline
+)
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in tests/opentelemetry-test-utils; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest tests
+}
diff --git a/dev-python/opentelemetry-semantic-conventions/Manifest b/dev-python/opentelemetry-semantic-conventions/Manifest
index 664dd8eb5173..bb31355a7db3 100644
--- a/dev-python/opentelemetry-semantic-conventions/Manifest
+++ b/dev-python/opentelemetry-semantic-conventions/Manifest
@@ -1 +1,2 @@
DIST opentelemetry-python-1.40.0.gh.tar.gz 1380277 BLAKE2B a52ce43e047347d55ce3ba54c2db4fa883f7e543eac9cfe4e3aa92f03db3a0a2fa943235e9f1fe61b5b7bfe377f7c3a661822405c357e2b31885ca7f20c636d6 SHA512 3c5ff022f0374cd28248a8d08d3e909945833db06afaced75d3bafe1420b3e2686e8a5aa14c60bd01380dd0a22c3c08c92caed2671925f3cea4aa40f383c83c1
+DIST opentelemetry-python-1.41.1.gh.tar.gz 1501865 BLAKE2B fe44f7e589487cd44457e5434f95caf99cfc53b4bf3c95e03391be4052e1aa57f43623b5a3d9f42dab34b092cd9453316747ac965f39eaa1d023e43254c74b14 SHA512 9622efe2861aa4680649d74b0e0e0b296505050edaef70f2c8bdcaf533e1137959d54e2fe49b35f48b4ddfe2b52d2b4cef74bbcd0cdffbb287a4a72aa10a3e1b
diff --git a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.41.1.ebuild b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.41.1.ebuild
new file mode 100644
index 000000000000..8a8a16a06a33
--- /dev/null
+++ b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.41.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+MY_P="opentelemetry-python-${PV}"
+DESCRIPTION="OpenTelemetry Semantic Conventions"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-sdk/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ ~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in opentelemetry-sdk tests/opentelemetry-test-utils; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest
+}
diff --git a/dev-python/packaging/Manifest b/dev-python/packaging/Manifest
index d1684489de7e..06dc17dc8a72 100644
--- a/dev-python/packaging/Manifest
+++ b/dev-python/packaging/Manifest
@@ -2,3 +2,5 @@ DIST packaging-26.0.tar.gz 143416 BLAKE2B 0f64797c7dc0c1d452bef437f3c61959efe17d
DIST packaging-26.0.tar.gz.provenance 9319 BLAKE2B 95a46bf39757ebc5daa5a847413936dbf9067c50129009cca898b3010d2cc7d7175b1091ba4b8b3f5c13106a9f9da0b6dc858ab65fd0dbe7164e2c99752c539b SHA512 b1280f2554b17244745ac2c566922c1bb2b68e45a18020633d52c12a0e6be784506f10c0dfcf9a528ff6dedb7a4bfac0f240367fe26707435ee7cc15fb4c45a8
DIST packaging-26.1.tar.gz 215519 BLAKE2B de311aea3af5d7fe1414c6c3aa667b7835d47949c26d5298e1172c1bbb6c9f75646f99f4b7a633f7d2b1b13677a19d6f497912a35531baf6b7d0edb0db1e4075 SHA512 37dfdc50da2701016ff8caf7053c7d06ed3c8762ed22e43f8001c12b99b00251f960d50e8bfa0294e37069091135ef6006c7b3b92d05fde2b934cf336f0fbe1d
DIST packaging-26.1.tar.gz.provenance 9178 BLAKE2B acb6131b39570cc582506163fd2b84802c36fd29c3b3c2b61470bf12fb352f77498429d54efc32e469a5189f94ba28df9334ba5febbbc0fde46e201d9962cc36 SHA512 46873132db3e0cec2c383965e68d495645a44e16059758fb88287c2e4b8e6d06f309f03a9658b21381a89b2dbb0265123a99e42059816dbc7f33b2c6d5766828
+DIST packaging-26.2.tar.gz 228134 BLAKE2B 5d19304c33c560fdc5e1784c2cc0ce8b7033957c2484ff00d7b07110e2d49c84c14c40066c93a9fada23dbc47a864ac4de16afec5588031c38b084a9198d40e8 SHA512 cefa0ac8cfade3e86d73c62e79aff75e7e24337495f6e675c20ddd3fa3f3431eb48764a34e5ab0bcdacc0d2204afdc0088686d1f3f6880e9a8ae055da4867f15
+DIST packaging-26.2.tar.gz.provenance 9601 BLAKE2B bfeddec8c935693875dae1b6a5f6c8309a3a9ccaf0a814012795c97df3f08ec2ec3dec9e69179363f507297b42ee18e404039e0573c9ca1287eca4ed5544ba32 SHA512 05f2c47a7cfbd175bac6731b87d59daf4d072592787e7feca26c203478678e90451cfce405e0fd2b82ca8db64f29cbd9f01a73bd3fdfc7eacdb4b3b1d9a7fd35
diff --git a/dev-python/packaging/packaging-26.2.ebuild b/dev-python/packaging/packaging-26.2.ebuild
new file mode 100644
index 000000000000..c3ece7e7f6cf
--- /dev/null
+++ b/dev-python/packaging/packaging-26.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/pypa/packaging
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core utilities for Python packages"
+HOMEPAGE="
+ https://github.com/pypa/packaging/
+ https://pypi.org/project/packaging/
+"
+
+LICENSE="|| ( Apache-2.0 BSD-2 )"
+SLOT="0"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+RDEPEND="
+ !<dev-python/setuptools-67
+"
+DEPEND="
+ test? (
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest --capture=no
+}
diff --git a/dev-python/patatt/patatt-0.7.0-r1.ebuild b/dev-python/patatt/patatt-0.7.0-r1.ebuild
index cf5aec45ade7..abc4587a96c5 100644
--- a/dev-python/patatt/patatt-0.7.0-r1.ebuild
+++ b/dev-python/patatt/patatt-0.7.0-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://www.kernel.org/pub/software/devel/patatt/${P}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64 ~ppc ~ppc64 x86"
RDEPEND="dev-python/pynacl[${PYTHON_USEDEP}]"
diff --git a/dev-python/pyghmi/Manifest b/dev-python/pyghmi/Manifest
index bb11e9e8d7b0..0665628f12dc 100644
--- a/dev-python/pyghmi/Manifest
+++ b/dev-python/pyghmi/Manifest
@@ -1,2 +1,2 @@
-DIST pyghmi-1.6.14.tar.gz 284679 BLAKE2B 9fd7943b3fd57eee6423a57fe26f052bb11c96ca26d4e9e7fc3e03d756a5ba7d928fa2512ae257ce928ae6be854d2e56ddde33860359eeddc398f1d89666826a SHA512 80b0704b357abc7d63adff5e226612ee94c1795969d4a877030c75bd4fe235e959711ff2b7715f53dfbb7a15969a922ffb889b4df998e06e4edfea635a3c2798
DIST pyghmi-1.6.15.tar.gz 284731 BLAKE2B b26ba91dc36619d81351e94ee35ac456691e8f3ac74873f30dd4ae5e94709480881c38c0ec29fccf6594eff7489abfab42edcc6d138cf1b08ca86efa9ea5e8bc SHA512 2098304c7c03ae1ecabac35c8287bde69eedb2aee9e85d702014001cb6ad99880ddf427fbd47c9a6f69c331db1c11ea1d333a38a43f36507d8c373856e220837
+DIST pyghmi-1.6.16.tar.gz 284898 BLAKE2B 7ad59de92f40ecf4fe67d7a0e27abe1f124b7cc35989245261d56243abcc0c1e396bfd656bb2515b0343aad10fbdd0bec1c60458d03476a792ecb49b157c5cd6 SHA512 fa4f41e262e63312010da0f51cb558a0ba99e74ffd6e90a108ca5310aa7b065b96f9967e4e39596a09d33795d0d9919d13f0b66eeb73b630b23eec68f1dde596
diff --git a/dev-python/pyghmi/pyghmi-1.6.14.ebuild b/dev-python/pyghmi/pyghmi-1.6.16.ebuild
index 52ebdfb77faa..52ebdfb77faa 100644
--- a/dev-python/pyghmi/pyghmi-1.6.14.ebuild
+++ b/dev-python/pyghmi/pyghmi-1.6.16.ebuild
diff --git a/dev-python/pyopenssl/Manifest b/dev-python/pyopenssl/Manifest
index 7cc92161e2ce..a01e255861c2 100644
--- a/dev-python/pyopenssl/Manifest
+++ b/dev-python/pyopenssl/Manifest
@@ -1,4 +1,4 @@
-DIST pyopenssl-25.3.0.tar.gz 184073 BLAKE2B af606496044a1cc1683892b38beb6bdd09e6617b640b3d316922128dba0e1464f06526fd6890703a8c6d0790856917ab9136870205e70ee264a52db7985041da SHA512 526b44eeff032c1966944cb8721e0694446ef2a40d3b23e7d04aebbc7986282858a2673f6fa1a9f1bf98cfe514a408a926910571e73db2bf3bae252427f398de
-DIST pyopenssl-25.3.0.tar.gz.provenance 9165 BLAKE2B 0c0a87e9c3da1e166dbcd2680d7327573509f90d4827db8cae253d8b268c37f9cd86af23863d384d7db814d6dd75ebc6e7595fb085da9bef3a50d85f118b2b1a SHA512 a2305073f461b5674b549bfb58cb35e77721357926d5c370f42ef5fe61b5b5b55ac4825512c3e473ed6554f4641d5cb9df540414e32aabc60ef676cceb334eef
DIST pyopenssl-26.0.0.tar.gz 185534 BLAKE2B 463efcbbcf3f600f0f26d3175cc242302b697ee280fa2a0d909724dc158a3d530cb2267ede8900557e05cf562bb510a9a913c0b175ef781721cb0f202e18e042 SHA512 aa8d68c6945c4e12b87c839d33da5e03a645b45b07ea63a8b663ea1fc09ff6a1744b35dff679046b049d410b945fd6dd4a39a74010b1c10fcd916be7715d6742
DIST pyopenssl-26.0.0.tar.gz.provenance 9119 BLAKE2B 944517f6722c8a06e880b30d1c51b7f6189c2a61195ef0d207840b8fcd0bd18b8d60bd0c6ff4331d393ccf9919c50d869b825a55dd83440bce8645dc3cde9ffe SHA512 db480457c37a5bc50e8da6882f2bb5cf86f28c25f89052d86980b87a7e6a097fbe2df652ca96b1a6493dde30062965e1a53971925a48e664e96fdee46b82dd82
+DIST pyopenssl-26.1.0.tar.gz 186181 BLAKE2B 047bfcbcd21bb00bb8ae6d2e39c30f21f3925971fb199ef50d7fea4d12b3edbb9af0d74bce828f8b10a3d7f4b6739a6ba62ec3d9ae52ee83ccf8445b9b056ec8 SHA512 084117296b7013d665d7f30705b26ad5dd2758febfc7080ae656328d40a2e992b74c52abcc39b9243bc9a918b4611f1f497e56928a5789ffc63c0b521357eb9c
+DIST pyopenssl-26.1.0.tar.gz.provenance 9212 BLAKE2B 2a0d770895ffd4d306f87a15b273233f3297741fc4ab0032f176d76319bdd8997868ceebdf6e6f75a4d169a69a3304de236809fe864d31374c830d4f8749bda1 SHA512 6542d8fb16868c390600c452ef99f05b831645dcf78ec0aba5a71b0504a88a5b0ac2f4467d776423ec5cc97f36020e35904a5f01d9418d69695dfc45850117a6
diff --git a/dev-python/pyopenssl/pyopenssl-25.3.0.ebuild b/dev-python/pyopenssl/pyopenssl-26.1.0.ebuild
index 8bfa4d2f7929..de32a15935a9 100644
--- a/dev-python/pyopenssl/pyopenssl-25.3.0.ebuild
+++ b/dev-python/pyopenssl/pyopenssl-26.1.0.ebuild
@@ -20,11 +20,11 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
- <dev-python/cryptography-47[${PYTHON_USEDEP}]
- >=dev-python/cryptography-45.0.7[${PYTHON_USEDEP}]
+ <dev-python/cryptography-48[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-46.0.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/typing-extensions-4.9[${PYTHON_USEDEP}]
' 3.{11..12})
diff --git a/dev-python/pypax/pypax-0.9.5-r2.ebuild b/dev-python/pypax/pypax-0.9.5-r2.ebuild
index ed50ce451db1..32d1e73b4ce5 100644
--- a/dev-python/pypax/pypax-0.9.5-r2.ebuild
+++ b/dev-python/pypax/pypax-0.9.5-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pypax/pypax-9999.ebuild b/dev-python/pypax/pypax-9999.ebuild
index 546f4e54f96a..f63dcbb49c21 100644
--- a/dev-python/pypax/pypax-9999.ebuild
+++ b/dev-python/pypax/pypax-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pyroute2/Manifest b/dev-python/pyroute2/Manifest
index 1da45ac9ca45..ac1fb7072446 100644
--- a/dev-python/pyroute2/Manifest
+++ b/dev-python/pyroute2/Manifest
@@ -1 +1,2 @@
DIST pyroute2-0.9.5.tar.gz 969492 BLAKE2B 478cbb1a6795a817d9219cd39834b311c0afe05410858db26e8d4fdcc93ba388f648d217e48c5a38acfd65ddac07194bd9b2fe9d5378733dcc199119de33fa15 SHA512 affae114a5d9541bf4e746e233e1d11908ec0c2790eeb623dee225c65397ee4142a2f99537ec9c8bfa9ae723196c56dbc7cf8e80a574a242b7ab5b929fd1b2c6
+DIST pyroute2-0.9.6.tar.gz 478486 BLAKE2B 995b1d66e9f7c82a1ab4461516a455f58a0d5b549cca665741afed2e96fb836ba113c736bb23ed14ae140056e770ca24f091cded3b5ea17d742752843b7ff24e SHA512 b568b79e1cc38651be8ea020326a147e26ec5fb7b9257ec95d809214b6110483fac7672dd8621d7d4f4108d10be35a9dcc770aaf2eccc801861b12af77ad73d5
diff --git a/dev-python/pyroute2/pyroute2-0.9.6.ebuild b/dev-python/pyroute2/pyroute2-0.9.6.ebuild
new file mode 100644
index 000000000000..683f412558e4
--- /dev/null
+++ b/dev-python/pyroute2/pyroute2-0.9.6.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A pure Python netlink and Linux network configuration library"
+HOMEPAGE="
+ https://github.com/svinota/pyroute2/
+ https://pypi.org/project/pyroute2/
+"
+
+LICENSE="|| ( GPL-2+ Apache-2.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+# tests need root access
+RESTRICT="test"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pyzotero/Manifest b/dev-python/pyzotero/Manifest
index 23945ad62920..5feb668d8131 100644
--- a/dev-python/pyzotero/Manifest
+++ b/dev-python/pyzotero/Manifest
@@ -1,2 +1,4 @@
DIST pyzotero-1.11.0.tar.gz 552101 BLAKE2B 6c46ae87026d29d575d45dcb6886e85ccbbdf0cb6a602c32b33d23289db135d2639814f5e28da2d957013ebb188dad8264838ad7d8b853496bf5c5e214f74b57 SHA512 176d935813727993bc774e506f5520b46c425ebdcafba10c4187ffa5bafc15d73698989743cf43bc9b7302250a4784abe3a432dd8c4fdc39c5d4d521fb89040e
DIST pyzotero-1.11.0.tar.gz.provenance 9276 BLAKE2B 9e97f59b4a0eba2161963c2be6a490afe92deeb359e4ec0a1877afe4bf333a8ec2e3451af17d80b0ad7a6b52931db5088144a42f3b6ff8d6d6bbd7c55cd99277 SHA512 502f8bdcaa23be052ecb2a475a05a892e757c82032c59e8caf75fdd76eace5dc5f088add34bd5deb375669a585611a6735836bfc3ac87e8aa4ecfcd8af6099a0
+DIST pyzotero-1.11.1.tar.gz 553518 BLAKE2B e2b6b6a180d4d6707240ac025cefd86a89cd78c6cc72110b718480625a4f9cd5592b2a820bc6eae0849a67c1cba2a151b635bed7f7a60bb93b1b5bec5d2184c3 SHA512 938c0c0b1e32bce80d6629a1a56f4a5024713cccf48307192b18faba7f4966d0ba3a58f49e92f97e3a51a2b231bf7006feef7f2b5ed928a2149b21164a8a8750
+DIST pyzotero-1.11.1.tar.gz.provenance 9323 BLAKE2B 40e4e7fa504c437b73b464757382405ba09d463ffff1a39bf00c1dfd4e0fa34c616d82080d78b7a420dd93b7e4ab9e45f55f9ac2e04b049d8cae86a2c7f486d9 SHA512 b9e835aa6410dd0eb80c5179ed3ff0f647d2d088227975a2000d487c9cee7735b7cccc7935943d03e81b24ce6f24d97b01fed7d03e5863d55d3aa818a27fc0ea
diff --git a/dev-python/pyzotero/pyzotero-1.11.1.ebuild b/dev-python/pyzotero/pyzotero-1.11.1.ebuild
new file mode 100644
index 000000000000..c26bc34fb446
--- /dev/null
+++ b/dev-python/pyzotero/pyzotero-1.11.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYPI_VERIFY_REPO=https://github.com/urschrei/pyzotero
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python client for the Zotero API"
+HOMEPAGE="
+ https://github.com/urschrei/pyzotero/
+ https://pypi.org/project/pyzotero/
+"
+
+LICENSE="BlueOak-1.0.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ app-text/zotero-bin
+ <dev-python/bibtexparser-2[${PYTHON_USEDEP}]
+ >=dev-python/bibtexparser-1.4.3[${PYTHON_USEDEP}]
+ >=dev-python/feedparser-6.0.12[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ >=dev-python/whenever-0.8.8[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2025.2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/tzdata-2025.2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx doc \
+ dev-python/sphinx-rtd-theme
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ > tests/__init__.py || die
+ epytest -o addopts=
+}
diff --git a/dev-python/redis/redis-7.4.0.ebuild b/dev-python/redis/redis-7.4.0.ebuild
index a97dcf3831ab..737f2cb4966b 100644
--- a/dev-python/redis/redis-7.4.0.ebuild
+++ b/dev-python/redis/redis-7.4.0.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
BDEPEND="
test? (
diff --git a/dev-python/simplejson/Manifest b/dev-python/simplejson/Manifest
index ddaabba0d7fe..90a23da8fc44 100644
--- a/dev-python/simplejson/Manifest
+++ b/dev-python/simplejson/Manifest
@@ -4,3 +4,5 @@ DIST simplejson-4.0.1.tar.gz 115959 BLAKE2B 6e882ac33343552c472e4fe045c09d73d6e1
DIST simplejson-4.0.1.tar.gz.provenance 9422 BLAKE2B af77b146445c6b9db0dacd7bed5644bc21bb8d84245f1b4e93003859a690006b027beddc4a3ca1924c5e38348368004116e6ad0216facc78499c22845769b89b SHA512 1aa9c8491d900a2371b1a6bf99151094205999612f92a6d0fe43589208df7573f1df9d0f5e19c02f84ff08055a356552bf6be7c6d79e46514a14d0a82d5d5dd1
DIST simplejson-4.1.0.tar.gz 118653 BLAKE2B 2451f491567664d4aac9ff6bbbe3e379042c174297a1e46b6b38085235faffb33e02384bd4c085d870f1f6b0cee5d7648b666e7fb0cd50d6a1e3abb2f87636a4 SHA512 1cc9a34cc4f3217fda7b46ed38119827508051e3ef0f3e8f13c794c24446b553f198ddc06a94363ed70ba60032edd13aede7c40d323f8d27657735bb662589cc
DIST simplejson-4.1.0.tar.gz.provenance 9383 BLAKE2B 93e6890550cbc1cdc89fca50ae1a1a867f70a5884d2d9e0795dea2bdad1a339c8ef0b626a5aab250e32653dd7cea819d8c95330ec5d4e7cc98aeee63f87d4e86 SHA512 19cbe306c8c85409a9aaea42e149fd5bf8ed9252f8d70850ea0fc3c28f31c379105542c0e4a1b5f9e9c61c6c061ebb69e33a91a88add301a43adf3ee54b25af8
+DIST simplejson-4.1.1.tar.gz 118860 BLAKE2B 75af5b57638bb5282bf9f81ea26422bbe3d687155eb88f782300f723c8ce116537d5cf16c51e2d2424ba2100e4db10b075faec4d81347ab6e2ee2363d90d8837 SHA512 1690a070738aa8609170d9a329c2f9cb489e9e24de8058ed5e243327f21b02aab1d0b638a2306331d21b2f0b5021c591d40cacb00f8c94957928790caf95bfca
+DIST simplejson-4.1.1.tar.gz.provenance 9802 BLAKE2B fa57f47ac3183ad9fe5c75af0fd3c24355ce8b5c93d8f010d9363d041c8b49774d027b7eee15fc77da16f9b4e6b6745c74b513480798536997fb253ab3175e50 SHA512 464d7479ea42f0ca4e9626a7d2013a1a954f97333c7774c0633a7c68073b25bd8f0e821d8aa71f3138c64016e6f18761f420778858dff470fd10bb38bc373b52
diff --git a/dev-python/simplejson/simplejson-4.1.1.ebuild b/dev-python/simplejson/simplejson-4.1.1.ebuild
new file mode 100644
index 000000000000..419c6fa62dac
--- /dev/null
+++ b/dev-python/simplejson/simplejson-4.1.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/simplejson/simplejson
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple, fast, extensible JSON encoder/decoder for Python"
+HOMEPAGE="
+ https://github.com/simplejson/simplejson/
+ https://pypi.org/project/simplejson/
+"
+
+LICENSE="|| ( MIT AFL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+DOCS=( README.rst CHANGES.txt )
+
+distutils_enable_tests unittest
+
+src_configure() {
+ # native-extensions are always disabled on PyPy
+ # https://github.com/simplejson/simplejson/blob/master/setup.py#L121
+ export DISABLE_SPEEDUPS=$(usex native-extensions 0 1)
+ use native-extensions && export REQUIRE_SPEEDUPS=1
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ eunittest
+}
diff --git a/dev-python/sphinx-gallery/Manifest b/dev-python/sphinx-gallery/Manifest
index 45af14404fc9..7487e33b3040 100644
--- a/dev-python/sphinx-gallery/Manifest
+++ b/dev-python/sphinx-gallery/Manifest
@@ -1,2 +1,4 @@
DIST sphinx_gallery-0.20.0.tar.gz 473502 BLAKE2B eced250cbd7b5c86a748ee68f0d0c9d2fc02c526b1c9f83b74f6c82f2df9cd4e0571edf0650392f2b9b33a8c33c6c22e700c82f87e2bd63b2bbb94905bdc940d SHA512 571ae48d7aba2b7807b68cdab7d73a538fe8cfb72436c80f85cd3c309d4ded6a5368400485f7684e607a980b1679438be4148ca9681c75a80f754ca084a716b3
DIST sphinx_gallery-0.20.0.tar.gz.provenance 9739 BLAKE2B f7643623ffd2ecb85606a7db5b3163a6d489a24d4e35d4c7820e1beae6e08503e5ea4eb8b09cb17af0f1f925421db72e830f10bc555a00bda6645cde49e52109 SHA512 2d4b3a5b9e74dca7450515ba100ead95e26a1265374c9c514189b5438f5241388e6cbd6351e9e8ba9ed77e7e4c1921f36b094211a41de647453888d5fe3825d6
+DIST sphinx_gallery-0.21.0.tar.gz 483616 BLAKE2B 9a1c84edc63201be44f1879afdeaf3264022a2dd340b72be4d3d46c358c3496e08a063bfa6fa9019b23368494b7b355e8869638c049b94f20a7ee69f80efa33c SHA512 718c37ac4e90e06ee00afe5678fbce6db82cc117c48b10bd85b82d065a59fed49aaf8c33c047fe6574412d6c23514b3b14b7377b2b99ce2c46698fe79b83d6c0
+DIST sphinx_gallery-0.21.0.tar.gz.provenance 9772 BLAKE2B 0e529fd62aeece0120e88d1953c680d815133d5e23976935f6e848dfa5d4718395ad854e0bff5dc090bcad85fa71584146708fc9765e3adcf4b5c8300542358c SHA512 1a58636031e5115d7c9bd2e155cbf6cb184d2c7543aebd3943113521d39a8b993e30f2adcdc1d4023a9a3f5b6b8bd4f090b603eefaef03075351ee446812253f
diff --git a/dev-python/sphinx-gallery/sphinx-gallery-0.21.0.ebuild b/dev-python/sphinx-gallery/sphinx-gallery-0.21.0.ebuild
new file mode 100644
index 000000000000..b5adc9ebaddb
--- /dev/null
+++ b/dev-python/sphinx-gallery/sphinx-gallery-0.21.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/sphinx-gallery/sphinx-gallery
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Sphinx extension to automatically generate an examples gallery"
+HOMEPAGE="
+ https://github.com/sphinx-gallery/sphinx-gallery/
+ https://sphinx-gallery.github.io/
+ https://pypi.org/project/sphinx-gallery/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-6[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/joblib[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ sphinx_gallery/tests/test_docs_resolv.py::test_embed_code_links_get_data
+ sphinx_gallery/tests/test_full.py::test_run_sphinx
+ sphinx_gallery/tests/test_full.py::test_embed_links_and_styles
+ # require jupyterlite_sphinx
+ sphinx_gallery/tests/test_full.py
+ sphinx_gallery/tests/test_full_noexec.py
+ sphinx_gallery/tests/test_gen_gallery.py::test_create_jupyterlite_contents
+ sphinx_gallery/tests/test_gen_gallery.py::test_create_jupyterlite_contents_non_default_contents
+ sphinx_gallery/tests/test_gen_gallery.py::test_create_jupyterlite_contents_with_jupyterlite_disabled_via_config
+ )
+
+ epytest -o addopts=
+}
diff --git a/dev-python/testtools/Manifest b/dev-python/testtools/Manifest
index f0d715b62736..6fa4856ecdc3 100644
--- a/dev-python/testtools/Manifest
+++ b/dev-python/testtools/Manifest
@@ -1,6 +1,7 @@
DIST testtools-2.7.2.tar.gz 201430 BLAKE2B d827d8e66c85908f4d16aa0762c3b0a454d374a0d23323fc3c123027f55f0e85f4fea9a24b5d1d0279266af2185f08abbcbbdcb785014b237df45a6448587611 SHA512 5815519d2b72d6b1e9f453c02793c70eb7d3b6580a211fb3708cd6121aed3c6100ceb1e35321f481a63b1f999ede030e43f1ae91d3621faf461c1908db767551
-DIST testtools-2.8.2.tar.gz 206889 BLAKE2B 4c25e88d5602c00ab9079d5ef504648cf7f59ae63d8844d5bdbac2b215db64234925ee9ce89532ca71d681031fa4d656e1c60413f731aa135791b43edbbd6015 SHA512 2880b5e8c92e59e3d9cad7b6b64781763a549abf74672a46f0b3a33300793d91ea8453fc364d497ae7492095385309e6b150a712fea4529324cf4673b6e60aa7
DIST testtools-2.8.7.tar.gz 219464 BLAKE2B 2fc7a96ed6cfacef508b6f095ff69b10a1bbb7dd7c7e38a84eb4ef301f1c08dc20a6a0a754978e5ca7b311ee5060aa74837b2376e531699107af9b974db6dfc0 SHA512 673f85058cf1c6d30b9283e67905c9e156304b682bcee7240a42cf2946d0aa0743cf2ae67968582ae58f21feba6a9769c54afd3e1544c966f72ccb2ceb948fac
DIST testtools-2.8.7.tar.gz.provenance 9519 BLAKE2B 928791506982c283ae39bd2327bdf7d816cf6f57482bed9edf8c90becedb77afe3a2f8dc5f2e9371c66cc3b51e447172ef9079d5dfcae7c6402fda30c565c73f SHA512 523fe8e7132a69703cd939a5e55db337d0269241d376c876068672a5a3e736a1fb8d1caa8053e69bbf3c9ab2acec973997ec2244b37c5e2396e91d8c321f2ab2
DIST testtools-2.9.0.tar.gz 220801 BLAKE2B d269b7a2a5dd8b79ee8bbedd74df76e5e08eb019f99c5ef079e3b5998a94e9d20abec3accc56f2c10ec84ae3090d86c3d2742c54e1523db2099e0ce895167b0f SHA512 ab0f8b94d67e432d2ea2edff3e351368607e4e55e8ea8f5c1fa66a186317bb81bd5948745b4d523472f0a60acc7d216d704b1888098e4dff0f28150dce1a7395
DIST testtools-2.9.0.tar.gz.provenance 9506 BLAKE2B 5fe31bb8456892b14738aa77b9b8bd0ee6f2673c0399a6e51ff333e77e9450a9bc3a98f1be0d75d645686234eb525c66c5ff9f672b392b07539d10ed471e2234 SHA512 1692e02fdfe17bdfa7fb046547254cdee74e990ce3d56bbd60bad349986292517355b5a8fd9fc3f1a7cac7b592fc93831c62b32a067f0adb7aa84d1222ea1cd2
+DIST testtools-2.9.1.tar.gz 221377 BLAKE2B 61684837047dc9ec91a412b22f7423c43f19500062571d0b36f821576503537218f5225c963f603feb142e3f1a5766d825a59df8e6a5da12d739372ae7c55b85 SHA512 68530c96756d383575602c6e3b6d33ca19fec4fe35ac6dba4ada4954be969a31414f930572cebbcbe4008fbdd1904537be793acdb5cce8458e36cdcbbfe719e0
+DIST testtools-2.9.1.tar.gz.provenance 9604 BLAKE2B 01f82b392b2dd0226fda576aefd788c388ba50c275740f4adeab5ad2decf56a6a628e911bb8db0423ef047bf845325759f8c5c3135abd8146a33e4e699fa92c6 SHA512 5177b6070f4760baffc1644536abea1de55937e797de08e8d499e7ce07053ce8e0c22d996e9401a53e2ebe2461ce0c32e50732cdd9af0a26e40b3e19aac8891e
diff --git a/dev-python/testtools/testtools-2.8.2.ebuild b/dev-python/testtools/testtools-2.9.1.ebuild
index ce98e47d6f81..f76cca969639 100644
--- a/dev-python/testtools/testtools-2.8.2.ebuild
+++ b/dev-python/testtools/testtools-2.9.1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/testing-cabal/testtools
PYTHON_COMPAT=( python3_{10..14} )
PYTHON_REQ_USE="threads(+)"
@@ -17,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest
index 9b86792523d4..d73703de2e6d 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1,3 +1,4 @@
DIST trimesh-4.11.4.gh.tar.gz 13710953 BLAKE2B 799a9eae33a781d303a6a732b41c1744aae1aaf344d9d59dd33165865c023928246bca4fba023ceffc5d1e7131d43fe6a66457282791bda2ccf57aeb53af3714 SHA512 028b089293cac6c487a20188ef429f11813eb13641b0775ec192e3ae2c07ccb234813f94b29a3bfa7639332586889ddfe2db9f1d56fd7b0170baf919f0ac1ad8
DIST trimesh-4.11.5.gh.tar.gz 13711494 BLAKE2B 4a03edebf9be2bb6d6fb06d6085d8d144175279ec5d876aae79d449aba93ded2410167a3b6f3692ad0ad1da96f62d2c3333beb951b0ef17586a7def8a0b4a4a3 SHA512 da32e900ab14b0abf86703db9caa7475cb906035c9b5f096cf44bb40a24d3d65dd53e2e028e3f78e14c3dd7a91a357b54c4fa802fb09ff1688022b7dd8770f14
DIST trimesh-4.12.0.gh.tar.gz 13717504 BLAKE2B d712b44ca8fe2acbaeba61f1281294183624e54c4dbb8976ab521b49792acdc4f1b98bbfcbc8ee40f12f2f732f15bf42d6034822a28e7f9a6303390a00795a78 SHA512 80e09da861ebef2568ee61719db18eea349b7d21ab9e7b0bb5a4b4deccc43bfc52dd9e492b9c04fd5ae95e6a59a4130e69b96727ebdef989adeccbd40c9a91c6
+DIST trimesh-4.12.1.gh.tar.gz 13716880 BLAKE2B 81b32c95976169413e76e36ed03873b7ae9b67d4c2d298a660dc483557b5299c6cb23ae8d1faf8065ac5b4f47bc0a58cdd75c497514068276f00ffc00f99e4f6 SHA512 7511dfc3e1d52ac452c4b4225a9ada2c176951e18ee176b4d47236f782b4d4760121a4e3b42063eb499e7df3f046102554f1fc3684c93bc58669ab6bdc6f0b62
diff --git a/dev-python/trimesh/trimesh-4.12.1.ebuild b/dev-python/trimesh/trimesh-4.12.1.ebuild
new file mode 100644
index 000000000000..2b755daa6ae0
--- /dev/null
+++ b/dev-python/trimesh/trimesh-4.12.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for loading and using triangular meshes"
+HOMEPAGE="
+ https://trimesh.org/
+ https://github.com/mikedh/trimesh/
+ https://pypi.org/project/trimesh/
+"
+SRC_URI="
+ https://github.com/mikedh/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pycollada[${PYTHON_USEDEP}]
+ dev-python/pyglet[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
+ dev-python/svg-path[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/xxhash[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+: ${EPYTEST_TIMEOUT:=300}
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # requires manifold3d
+ tests/test_boolean.py::test_multiple_difference
+ # timing nonsense
+ tests/test_bounds.py::BoundsTest::test_obb_mesh_large
+)
+EPYTEST_IGNORE=(
+ # require pyinstrument
+ tests/test_sweep.py
+)
+
+python_test() {
+ # We run tests in parallel, so avoid having n^2 threads in lapack
+ # tests.
+ local -x BLIS_NUM_THREADS=1
+ local -x MKL_NUM_THREADS=1
+ local -x OMP_NUM_THREADS=1
+ local -x OPENBLAS_NUM_THREADS=1
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature_header "${PN} functionality can be extended by installing the following packages:"
+ optfeature "making GUI applications with 3D stuff" dev-python/glooey
+ optfeature "2D triangulations of polygons" dev-python/mapbox-earcut
+ optfeature "loading a number of additional mesh formats" dev-python/meshio
+ optfeature "figuring out how much memory we have" dev-python/psutil
+ optfeature "marching cubes and other nice stuff" dev-python/scikit-image
+}
diff --git a/dev-python/url-normalize/Manifest b/dev-python/url-normalize/Manifest
index 95dc585a6e60..7d36e64e182f 100644
--- a/dev-python/url-normalize/Manifest
+++ b/dev-python/url-normalize/Manifest
@@ -1 +1,2 @@
DIST url-normalize-2.2.1.gh.tar.gz 18114 BLAKE2B 01739d38749e038dba14b35c2ba29301c0f538ebc8b2966ee6562740564fe5fffa64106c7a01dac9959cdd56df825a30093019d6c80fdf761996578d6932773d SHA512 51f57bf6d94863662789321b8965c0ca833d34d0c8095f2a39303a410f61c24f04a56e83258dafaa8a4250b0d1b44ad3c3a63430da2b04f4d906d84a71208f46
+DIST url-normalize-3.0.0.gh.tar.gz 62532 BLAKE2B c79eb146709b4bf031fbfa866df6784f7fea66daa9fd1822830dc5af245fe3ab1d81823c661b1fe3dd3a6c4e8144b5dc2a6522eb8ca18bbf952d385d2c9e00ea SHA512 5d1d4984788d09b88c191807760878391fa6a92b5930d1efe12985a7700126319750f6b1b29632071668f7d2dfe0977c782a0b859ccca10a9114698578cd7e4f
diff --git a/dev-python/url-normalize/url-normalize-3.0.0.ebuild b/dev-python/url-normalize/url-normalize-3.0.0.ebuild
new file mode 100644
index 000000000000..1feed80958fc
--- /dev/null
+++ b/dev-python/url-normalize/url-normalize-3.0.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="URL normalization for Python"
+HOMEPAGE="
+ https://github.com/niksite/url-normalize/
+ https://pypi.org/project/url-normalize/
+"
+SRC_URI="
+ https://github.com/niksite/url-normalize/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/idna-3.3[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts= -m "not socket"
+}
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
index 8c1c0bfbd764..49ef0b769656 100644
--- a/dev-python/wrapt/Manifest
+++ b/dev-python/wrapt/Manifest
@@ -1,5 +1,4 @@
DIST wrapt-1.17.3.gh.tar.gz 140900 BLAKE2B 88c4cd718cd98a97c866c4f0b9f7e095347fe6fa5fed60c54e389329c89f9f07099c8fb79561cf5e12c19c44a4067d81e805c55b54a74429e6b75913dedd6b3f SHA512 1a1f7419f20faa461a9e23ad09cc98d381ef2c48b3b24ed1dfe98d42d16857a958252301e78dd41b7fa8ef37eea379f9244cace2b396b49718c44cbc701308a3
DIST wrapt-2.1.2.tar.gz 81678 BLAKE2B f7fc45f31b8077d6d97c14c1f649437e0f1da7537769d369d427edede0ba1b84c8c07e6de9ded8088f29f2fb774272186d0f9b707e6b2bef650dc5f78444d852 SHA512 97f1af4cabfd7a4cfabfaf36d26d1afc577747f18946226fbb80256e13c55302b746005e01720e874d46d536826c83e9234544c98f8dd1ecd3c9a091113da808
DIST wrapt-2.2.0rc10.tar.gz 123726 BLAKE2B 6997cb2d4a04ab371969fd81465a62430d9e3bfde8191d9cae299359fb41076ab16e6fd3f70adaa7fa660e32008d5db5f5d20fb03250e960d16f9e68d0445807 SHA512 143fee72a4321308fee90147fbb50ea114bf38f440e56b13352ed2e514511cb439f57a3e74db3a6b936a5156d8f267ed6fe57f72028380ca3beb41e6fa8bb9b3
-DIST wrapt-2.2.0rc7.tar.gz 110602 BLAKE2B 727d02fd827ac875bb35430d9c2d3a9d8a33cc12ea16c7e15519c8eb2a51f59b90487629a49efebae44d8911655466b32864e4c1bc1f182a796268133bd94b8e SHA512 17848645d32e58f1bb18fea0a99f3cd156eff7353f7a7c7328873597a2ca3ca6b48173f4109f70e48311d9f26780fc7b3d331a8581474cfe27cb3654bc996ee9
-DIST wrapt-2.2.0rc9.tar.gz 119647 BLAKE2B fe6b0855f0ec003e8d1720d94ff8188887029286bfaf9d808e8daf7223bbac65867db6e94df664150cc5e262bd635a35ece9dd8cc4bda82daabfd08a252703cd SHA512 462d4fcdf9190136b3cfdd670c666464b82713ecd4b86a0b17840bd4dd0829903c50125349fb2587a400b32ae1cb467a079147aa1c1f59cddc37467f644416e2
+DIST wrapt-2.2.0rc11.tar.gz 125088 BLAKE2B 6965486ac76c852dcc66c9766a956fde9e0b4683a86755dbbd13faa20d037d6730fb3d1f8fca7c3b58f74fa540bfa212e7d336aa5d6eae7aa58859c648e3398a SHA512 73a6e2e787c79162e43b4f07e8a5ee3827e11141a6c00677662357ea5706de68e318ea2d3c1145901326cd9db9477a969ffcdcf6989621551ff189927ca530b6
diff --git a/dev-python/wrapt/wrapt-2.2.0_rc7.ebuild b/dev-python/wrapt/wrapt-2.2.0_rc11.ebuild
index 8514e94dc258..8514e94dc258 100644
--- a/dev-python/wrapt/wrapt-2.2.0_rc7.ebuild
+++ b/dev-python/wrapt/wrapt-2.2.0_rc11.ebuild
diff --git a/dev-python/wrapt/wrapt-2.2.0_rc9.ebuild b/dev-python/wrapt/wrapt-2.2.0_rc9.ebuild
deleted file mode 100644
index 8514e94dc258..000000000000
--- a/dev-python/wrapt/wrapt-2.2.0_rc9.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-MY_P=${P/_}
-DESCRIPTION="Module for decorators, wrappers and monkey patching"
-HOMEPAGE="
- https://github.com/GrahamDumpleton/wrapt/
- https://pypi.org/project/wrapt/
-"
-
-LICENSE="BSD"
-SLOT="0"
-if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-fi
-IUSE="+native-extensions"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # skip mypy tests, they are fragile
- rm -r tests/mypy || die
-}
-
-python_compile() {
- local -x WRAPT_INSTALL_EXTENSIONS=$(usex native-extensions true false)
- distutils-r1_python_compile
-}
diff --git a/dev-python/xxhash/xxhash-3.6.0.ebuild b/dev-python/xxhash/xxhash-3.6.0.ebuild
index 33b92bfb630f..020ee992a3f2 100644
--- a/dev-python/xxhash/xxhash-3.6.0.ebuild
+++ b/dev-python/xxhash/xxhash-3.6.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~sparc ~x86"
DEPEND="
>=dev-libs/xxhash-0.8.0