summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aioquic/aioquic-1.2.0.ebuild4
-rw-r--r--dev-python/anyio/Manifest4
-rw-r--r--dev-python/anyio/anyio-4.14.0.ebuild74
-rw-r--r--dev-python/anyio/anyio-4.14.1.ebuild72
-rw-r--r--dev-python/bitarray/bitarray-3.8.2.ebuild2
-rw-r--r--dev-python/filelock/Manifest2
-rw-r--r--dev-python/filelock/filelock-3.31.0.ebuild31
-rw-r--r--dev-python/greenlet/greenlet-3.5.2.ebuild2
-rw-r--r--dev-python/hcloud/hcloud-2.22.0.ebuild2
-rw-r--r--dev-python/hypothesis/Manifest3
-rw-r--r--dev-python/hypothesis/hypothesis-6.156.9.ebuild133
-rw-r--r--dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.4.ebuild2
-rw-r--r--dev-python/json5/json5-0.15.0.ebuild2
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.20.0.ebuild2
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.5.9.ebuild2
-rw-r--r--dev-python/matplotlib/Manifest2
-rw-r--r--dev-python/matplotlib/matplotlib-3.11.0.ebuild2
-rw-r--r--dev-python/matplotlib/matplotlib-3.11.1.ebuild266
-rw-r--r--dev-python/msgpack/msgpack-1.2.1.ebuild2
-rw-r--r--dev-python/multipart/Manifest1
-rw-r--r--dev-python/multipart/multipart-2.0.0.ebuild22
-rw-r--r--dev-python/numexpr/Manifest1
-rw-r--r--dev-python/numexpr/numexpr-2.14.2.ebuild47
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.16.0.ebuild2
-rw-r--r--dev-python/pbs-installer/Manifest2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.7.18.ebuild33
-rw-r--r--dev-python/peewee/peewee-4.0.9.ebuild2
-rw-r--r--dev-python/platformdirs/Manifest2
-rw-r--r--dev-python/platformdirs/platformdirs-4.10.1.ebuild50
-rw-r--r--dev-python/pygal/pygal-3.1.3.ebuild2
-rw-r--r--dev-python/pylint/pylint-4.0.6.ebuild2
-rw-r--r--dev-python/pypdf/pypdf-6.13.3.ebuild2
-rw-r--r--dev-python/pyrate-limiter/pyrate-limiter-4.4.0.ebuild2
-rw-r--r--dev-python/pytest/Manifest2
-rw-r--r--dev-python/pytest/pytest-9.1.0.ebuild109
-rw-r--r--dev-python/python-tests/Manifest3
-rw-r--r--dev-python/python-tests/python-tests-0.3.15.0_beta4.ebuild75
-rw-r--r--dev-python/python-tests/python-tests-3.15.0_beta4.ebuild74
-rw-r--r--dev-python/regex/Manifest1
-rw-r--r--dev-python/regex/regex-2026.7.19.ebuild37
-rw-r--r--dev-python/signxml/signxml-4.5.1.ebuild2
-rw-r--r--dev-python/sphinxcontrib-mermaid/Manifest1
-rw-r--r--dev-python/sphinxcontrib-mermaid/sphinxcontrib-mermaid-2.1.0.ebuild45
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.51.ebuild2
-rw-r--r--dev-python/starlette/starlette-1.3.1.ebuild2
-rw-r--r--dev-python/tibs/Manifest1
-rw-r--r--dev-python/tibs/tibs-1.1.0.ebuild131
-rw-r--r--dev-python/tqdm/tqdm-4.68.3.ebuild2
-rw-r--r--dev-python/tzlocal/tzlocal-5.4.3.ebuild2
-rw-r--r--dev-python/uv-build/uv-build-0.11.23.ebuild2
-rw-r--r--dev-python/uv/uv-0.11.23.ebuild2
-rw-r--r--dev-python/vcrpy/Manifest2
-rw-r--r--dev-python/vcrpy/vcrpy-8.2.0.ebuild61
-rw-r--r--dev-python/vcrpy/vcrpy-8.2.1.ebuild61
-rw-r--r--dev-python/zeep/zeep-4.3.3.ebuild2
55 files changed, 989 insertions, 409 deletions
diff --git a/dev-python/aioquic/aioquic-1.2.0.ebuild b/dev-python/aioquic/aioquic-1.2.0.ebuild
index 1cc84188669c..0bcb66a715fb 100644
--- a/dev-python/aioquic/aioquic-1.2.0.ebuild
+++ b/dev-python/aioquic/aioquic-1.2.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -32,4 +32,6 @@ RDEPEND="
>=dev-python/service-identity-24.1.0[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
distutils_enable_tests pytest
diff --git a/dev-python/anyio/Manifest b/dev-python/anyio/Manifest
index abd68aa411f0..a5c42244e432 100644
--- a/dev-python/anyio/Manifest
+++ b/dev-python/anyio/Manifest
@@ -1,8 +1,4 @@
DIST anyio-4.13.0.tar.gz 231622 BLAKE2B 8224445390cb5a061c9065952ad7a5461aae80ce20be9be7a2984e54ab933373b3037eea4af2f890af8daf26faa2e4a4ee132ca612441828a9130d1a42756bde SHA512 3961bcc1d0d60ba78497203e19ee5a1c3bd7a067777f384d3353a4b0e37db7bf7bea364ef505f87575415db4bd2f06996d85913eb4e91e03f56d6b1e2d3a7ccb
DIST anyio-4.13.0.tar.gz.provenance 9508 BLAKE2B 7f835c0a3a8cc67e258115c3a128f952d649b699fc3fd859150685b6eabdbd0057c033000978c3ea25ebcd67749d4ebd6feefef3809556ff139c62e2f0ea7f4e SHA512 0fd3276663517fbbed2e4fea21a1eb14efa96290f07c509ea28a035d293af4f27d842f5b07b4305b267f0887c9c476ef23e07c0eee4ea75ab55692f252109327
-DIST anyio-4.14.0.tar.gz 253586 BLAKE2B 742b3d27dfc41983e39b61fa19daaa014d3cbba555744f0fe00b466d04da5c429940c98690858d66a3c354a21dded0b64dfeea1140c938fc5d8d70dc3c564612 SHA512 9d0e786c3bfe61f9001d3eac8e53a7efbc74dac0a61e3c07ce64bd7d090966a960f9f0967a41442b7cf99aa5ff1525d6ad2b73c9bf75da6295c44316f882ce47
-DIST anyio-4.14.0.tar.gz.provenance 9955 BLAKE2B 707a0f47ac4a65d6b766b4de926ea3721addfe80a0ece1d30857e3558c3cdeb909860d24b3bf35201e086f80fe2ab428daa295b8efa8e0b3cd2cc5cf953f616d SHA512 1cc0c4db2eacdff59331146831285f7580ef2f4d4d5fc9e49f903d2e876a8464e18ac3d2f6d54eef7c6feaca1273e2c151faad9cc4720401d8c436fdfa3221af
-DIST anyio-4.14.1.tar.gz 254831 BLAKE2B f28882aba2e169e4815785d7e943c9d3b1564a17db0ce9c1cdfa57d39c0ee804b6f1d4fda7c99ba87e78dce12211614d845405b8a19483f655810e3c8e6d6255 SHA512 46561cd8e551953237ad079fc0669fbf21fc9f8bcf5e1a3dbd44f52248a9dbcb54a34a801d094994b4a22fb5470439be681f6c743b02f73dbdc27ebb1de911ce
-DIST anyio-4.14.1.tar.gz.provenance 9673 BLAKE2B f1ae1a8ca9467acf52eb91113143975a20bf5f10dba68d4d9ccffe27feaad68a5825757b4563d2c2f640fa7566fe2158eafdf01902ef91445ca9dd60d30f7dc9 SHA512 6caff3807431390ce4b358a8677e22cc5636231608344d93b9d3960afdb90fa4d125078ce44fb31d79abb2e091d853c628a22c724df13000918945fbce875b87
DIST anyio-4.14.2.tar.gz 260176 BLAKE2B a349231f06bc2591dbee9c11bf3862c17ba00f8096095182a801607e3e8bf30178aa220cf53123d09e362c1245bba98bb1935a0235559dbdc755f40afc69135e SHA512 94f52ab81fbfab5d30937a0a7f4714f5cc9d8265f5450ccce1fff1f953f234f8c286d484f06f91e8737fa8d4d325275a1a62cce31fd66d4447c55eddcca87f2e
DIST anyio-4.14.2.tar.gz.provenance 9673 BLAKE2B 9e0d02159e5379d2404d9c1b69ee95af5aa47ea7279be393dd58f001f13e5442ec8ee266ecfd7b2e23799902e8faf734b55741cd7734b231d67493724a3d9884 SHA512 3c7fefa8feec3e78e08f0b42bfa3edd0809389640deb9cec8da11c4ae498943343d42860d9f66a2aaac7ddcd8f1ce09a97251ced8cdfa74a5e6f9e89c0ab0567
diff --git a/dev-python/anyio/anyio-4.14.0.ebuild b/dev-python/anyio/anyio-4.14.0.ebuild
deleted file mode 100644
index cbf4f7c1ccce..000000000000
--- a/dev-python/anyio/anyio-4.14.0.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/agronholm/anyio
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Compatibility layer for multiple asynchronous event loop implementations"
-HOMEPAGE="
- https://github.com/agronholm/anyio/
- https://pypi.org/project/anyio/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/idna-2.8[${PYTHON_USEDEP}]
- >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
- ' 3.{11..12})
-"
-# On amd64, let's get more test coverage by dragging in uvloop, but let's
-# not bother on other arches where uvloop may not be supported.
-BDEPEND="
- >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
- test? (
- >=dev-python/blockbuster-1.5.23[${PYTHON_USEDEP}]
- >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
- >=dev-python/trustme-1.0.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/trio-0.32.0[${PYTHON_USEDEP}]
- ' 3.{11..14})
- amd64? (
- $(python_gen_cond_dep '
- >=dev-python/uvloop-0.22.1[${PYTHON_USEDEP}]
- ' python3_{11..14})
- )
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-{mock,timeout} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
-distutils_enable_sphinx docs \
- '>=dev-python/sphinx-rtd-theme-1.2.2' \
- dev-python/sphinxcontrib-jquery \
- dev-python/sphinx-autodoc-typehints \
- dev-python/sphinx-tabs
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires link-local IPv6 interface
- tests/test_sockets.py::TestTCPListener::test_bind_link_local
- )
-
- local filter=()
- if ! has_version ">=dev-python/trio-0.26.1[${PYTHON_USEDEP}]"; then
- filter+=( -k "not trio" )
- EPYTEST_DESELECT+=(
- tests/test_pytest_plugin.py::test_plugin
- tests/test_pytest_plugin.py::test_autouse_async_fixture
- tests/test_pytest_plugin.py::test_cancel_scope_in_asyncgen_fixture
- )
- fi
-
- epytest -m 'not network' "${filter[@]}"
-}
diff --git a/dev-python/anyio/anyio-4.14.1.ebuild b/dev-python/anyio/anyio-4.14.1.ebuild
deleted file mode 100644
index e3bc6babc4f4..000000000000
--- a/dev-python/anyio/anyio-4.14.1.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/agronholm/anyio
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Compatibility layer for multiple asynchronous event loop implementations"
-HOMEPAGE="
- https://github.com/agronholm/anyio/
- https://pypi.org/project/anyio/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/idna-2.8[${PYTHON_USEDEP}]
- >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
- ' 3.{11..12})
-"
-# On amd64, let's get more test coverage by dragging in uvloop, but let's
-# not bother on other arches where uvloop may not be supported.
-BDEPEND="
- >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
- test? (
- >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
- >=dev-python/trustme-1.0.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/blockbuster-1.5.23[${PYTHON_USEDEP}]
- >=dev-python/trio-0.32.0[${PYTHON_USEDEP}]
- amd64? (
- >=dev-python/uvloop-0.22.1[${PYTHON_USEDEP}]
- )
- ' 3.{11..14})
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-{mock,timeout} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
-distutils_enable_sphinx docs \
- '>=dev-python/sphinx-rtd-theme-1.2.2' \
- dev-python/sphinxcontrib-jquery \
- dev-python/sphinx-autodoc-typehints \
- dev-python/sphinx-tabs
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires link-local IPv6 interface
- tests/test_sockets.py::TestTCPListener::test_bind_link_local
- )
-
- local filter=()
- if ! has_version ">=dev-python/trio-0.26.1[${PYTHON_USEDEP}]"; then
- filter+=( -k "not trio" )
- EPYTEST_DESELECT+=(
- tests/test_pytest_plugin.py::test_plugin
- tests/test_pytest_plugin.py::test_autouse_async_fixture
- tests/test_pytest_plugin.py::test_cancel_scope_in_asyncgen_fixture
- )
- fi
-
- epytest -m 'not network' "${filter[@]}"
-}
diff --git a/dev-python/bitarray/bitarray-3.8.2.ebuild b/dev-python/bitarray/bitarray-3.8.2.ebuild
index 93b1ff66517e..d209348146c9 100644
--- a/dev-python/bitarray/bitarray-3.8.2.ebuild
+++ b/dev-python/bitarray/bitarray-3.8.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 x86"
python_test() {
"${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index 19324a169191..68066960f00b 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -12,3 +12,5 @@ DIST filelock-3.30.2.tar.gz 176823 BLAKE2B deeacbd7d49da6730dc4e0ce6b2cf752aea84
DIST filelock-3.30.2.tar.gz.provenance 9761 BLAKE2B cd77c9a9a251f5009d9a805a89aec34ad0c490ff0536e69317c4519f9af5b23b24dd73e0d4310833df848171f29004047317cfae9cac25c2b3fa9c56b9764a21 SHA512 e229fd0f489df6beed32cb1b7f8559d2420675f6d4ce967e5ea653d7a79b82151bf794e04274d80931b66db996a39339ea8f04c9e3d9c52f584aeccf857e7629
DIST filelock-3.30.3.tar.gz 177706 BLAKE2B 067c4edef12b140b6cee97c5166e36de82697ed91e27bf58e1efb7c3ee8bf2de9d89cd3962eab3efb73798b57a83b103b364e1b1cf1e6ac64a902a16eab83b18 SHA512 7c7d2e607e5f1fb5f1ba000714571267f69fe313fdd7fb1f741cb799e36485761a01f9e0d53e96e144ff24449c6bdf7eaeb88b32684a863c2455948772df6e74
DIST filelock-3.30.3.tar.gz.provenance 9761 BLAKE2B 8e1b7929c39ce687bf2587af19fcf34de91887b318451ece908eefc745ece73a0d9b84793ad1f3f973c54cb083c6f8ba01924129ccd824092d51d3d9531cd5e4 SHA512 739b3f18d8826ab47e9ad613126ce2596406ce70190ba8e1f08c0cf743961750da2e89aec7ea6bde99456b7d6ec2852cace74788ef0111e57301823959b614b5
+DIST filelock-3.31.0.tar.gz 180931 BLAKE2B 1921f1ec88d79cb764c30dc5f2ebf9192209dd433504d6577f8f5c3b73951268345af331f1a684fd986d9f9f25ea3f88179dcd5ce32604c6af6f7b7e8903413d SHA512 e24d88921f975db582b64baf5e23bd1ebb3de1364b874e9d63a2a4a42cd9e71d2a30e6646f9b7afcbca3cd3b075eb480bb38c6451f5410b711ba57578252d871
+DIST filelock-3.31.0.tar.gz.provenance 9855 BLAKE2B 9b98e156d7e941a8585d6deb01ac732966ab560cbcf86dc5a6c076c74a7877c7fde9cc7982e084e502f3047a62b2571baffc4e81010d576a2283844b3be64d68 SHA512 4400dda6b091d5efbe61dc2cbc62e03fcaaf5d28f8e80e38e7e3e9cd5bc7f2d53eb969c123c0b8bb9da277e455dad1ef7769fecf7c999e94ad1a691b7b5ea1ff
diff --git a/dev-python/filelock/filelock-3.31.0.ebuild b/dev-python/filelock/filelock-3.31.0.ebuild
new file mode 100644
index 000000000000..1f38026c0588
--- /dev/null
+++ b/dev-python/filelock/filelock-3.31.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A platform independent file lock for Python"
+HOMEPAGE="
+ https://github.com/tox-dev/filelock/
+ https://pypi.org/project/filelock/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
diff --git a/dev-python/greenlet/greenlet-3.5.2.ebuild b/dev-python/greenlet/greenlet-3.5.2.ebuild
index 33588218e841..c69f59979da2 100644
--- a/dev-python/greenlet/greenlet-3.5.2.ebuild
+++ b/dev-python/greenlet/greenlet-3.5.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 -hppa ~m68k ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/hcloud/hcloud-2.22.0.ebuild b/dev-python/hcloud/hcloud-2.22.0.ebuild
index 9b729306ac26..08e3c96a695f 100644
--- a/dev-python/hcloud/hcloud-2.22.0.ebuild
+++ b/dev-python/hcloud/hcloud-2.22.0.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index c1f2f406393e..1c284f793ec3 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -4,6 +4,7 @@ DIST hypothesis-6.156.1.gh.tar.gz 9610367 BLAKE2B ffffd235f9f8cadbf42b7a65e7b0ab
DIST hypothesis-6.156.2.gh.tar.gz 9610596 BLAKE2B 53cebfefd0a794f19c9a5dbbe52170c959175dd1093b2bfa51448021d450a73e2d05cb5fa9236403d4e62e8790fe12b66b37c2487eed83b3797bbd4d42dc0be4 SHA512 fad5d16a132abe6789d1fae2a8942ad30580e74660258500091a9d4ad524ad5c2ed40a5ce184707cb62e4c6e98848c68e8c3c5cb3cc4891049d65e2f1ec49d14
DIST hypothesis-6.156.4.gh.tar.gz 9611219 BLAKE2B 57ce8d8577cb2889773523adb6b62c5d5e6fe104609676722e5af2c0c84ad74edba74d3144070ac5a1ef62243e3a95eea80adc71cda1ac9da724854351e001a9 SHA512 2f8199dd9d0156182f74e67ee7ccafc326ec4fbc0e2838a70ba453406f485826e5cb4e57f3601cfa2da19f40c8de5161e752fc4d7d6dd8c8538d09d68e8da011
DIST hypothesis-6.156.6.gh.tar.gz 9611355 BLAKE2B 41841a837cd722840f7d5d4243627cb220ed0cedc0cf4c010982fa14e8575f290da8c37c71955f4131029e685bdce019d699707404d1f92440726b7a0e572b40 SHA512 b495921459ea29faa9de74492ec6d64deaea9af79c93e8f429ce75787080afd5c73b448e9c07d795989254ccbbd40fc93f7ec403ea9a7b65f292f21aeca70c93
+DIST hypothesis-6.156.9.gh.tar.gz 9621697 BLAKE2B ff3b9f098c9097285976a44c68f1c4c4d431e757439d3faea759e7633f57d6ada94a5749d990dbaec7d936c12ecd9c2401dec0f68cbf5048a7819dd4a94e2ec7 SHA512 630dd5c026247535bcbbabd7c99eadc7c9d6831a3f8db301b6488045ee9d895487d629eac712331432ff2a4b9ea42e11bd4b7feb32813c8b635cf2aa9819f03a
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
@@ -14,6 +15,8 @@ DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a
DIST pyo3-macros-0.29.0.crate 8915 BLAKE2B c12d23753d5aba7333183d4b41f16c8da1d4297a3ff86b3b150e9185c1978fc184ac198e566a41833292a8a78ab59446eafd5ef7169e5cb41493e7cbeaa68280 SHA512 fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
+DIST quote-1.0.46.crate 31628 BLAKE2B b004131fc9942e278d3a89e9a68ea76098b94a488a4e5577074f59983809d92bb4803f759c47426a683191cc23bbe9783bbebbcbcaed6488d45a0e01b787cd36 SHA512 f51e65743b9f15b491d20bb6c3a0df921cfec29df8bafca36c9dde034b5117fe3f4eedcc258126c6cb1729be1ffde5fcf7e5b0fb0c3de4a618f46ab3cd803e77
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
+DIST syn-2.0.118.crate 305533 BLAKE2B f0ba994123a9ade5ea94e72f91d836c5af769ccca4c8c8d9ba8ae8c2bf2c7cfc88d4b068efa886e3c25c5635b2759b1bbf6b7b4afea6b66fc5084ad744272ba8 SHA512 24cbedce5f751fb5fab46ce27b9772fb59692e5520039a4d66a9f4d8d8b381d2af5c5be5eebd1e24cdba49fcb40a90b38f61477dd5dc96d8f272823f9a93b61d
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
diff --git a/dev-python/hypothesis/hypothesis-6.156.9.ebuild b/dev-python/hypothesis/hypothesis-6.156.9.ebuild
new file mode 100644
index 000000000000..08b90f0a27a8
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.156.9.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+CLI_COMPAT=( python3_{12..15} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+RUST_MIN_VER="1.91.0"
+CRATES="
+ heck@0.5.0
+ libc@0.2.186
+ once_cell@1.21.4
+ portable-atomic@1.13.1
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
+ quote@1.0.46
+ syn@2.0.118
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+"
+
+inherit cargo distutils-r1 optfeature
+
+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/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${P}/hypothesis"
+
+LICENSE="MPL-2.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0-with-LLVM-exceptions Unicode-3.0
+ || ( Apache-2.0 MIT )
+"
+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
+
+QA_PREBUILT="usr/lib/python.*/site-packages/hypothesis/_native.*"
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/
+ local EPYTEST_DESELECT=(
+ # broken somehow (xdist?)
+ 'hypothesis/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
+ python3.15*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
+ 'hypothesis/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/insipid-sphinx-theme/insipid-sphinx-theme-0.4.4.ebuild b/dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.4.ebuild
index 87863fec7c56..3d98ae12a1b1 100644
--- a/dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.4.ebuild
+++ b/dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/json5/json5-0.15.0.ebuild b/dev-python/json5/json5-0.15.0.ebuild
index e25e3624e35e..f49667c6cd6a 100644
--- a/dev-python/json5/json5-0.15.0.ebuild
+++ b/dev-python/json5/json5-0.15.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
index 7b485879e0d6..1e26e0404740 100644
--- a/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
+++ b/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild b/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild
index c3f9ae1dbb5d..3d39a09bc232 100644
--- a/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild
+++ b/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD MIT GPL-3 Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
RDEPEND="
>=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index 5db565b4c648..f6f538c267d1 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -5,3 +5,5 @@ DIST matplotlib-3.11.0.tar.gz 33251176 BLAKE2B becc1da603c014acb2e8ed9c6cd4558cc
DIST matplotlib-3.11.0.tar.gz.provenance 10233 BLAKE2B fb45ccc496c4198763f370423d8e5517d188e5a92435d08262e3bfb5b23976d9d0705cb583609fe570f624378c5fc13e1a58ac769344f8288d99c67bc48653e7 SHA512 ceb6374ee0bb8c7fe4fe1d3bc6cff687d3ed5e8d87bba416aed477deff284b85c6eff26f0867f158bfaeea93ea707837a39fd9850439d586233a8b3ae0fcaf78
DIST matplotlib-3.11.0rc2.tar.gz 33206182 BLAKE2B 54ec520fa553e94ba916a7e4a0c081e91b65f570891995707fef71e3e34af740ee5786b7cca18ce416d8cf37d98d6ae977ab6d52c3e01a7ab81e1ad17724b09a SHA512 8ded3dcaf3abf52640b11d1560b5a0b673cc864ff082020255b84699772c4ed4f4695f46dc5b5d9e9a0fc136051b63cb7255c323b59943768f502eeddf43d2e1
DIST matplotlib-3.11.0rc2.tar.gz.provenance 9981 BLAKE2B 65b5efa306d4ae7c107a3b69404748b414bf8f3f4b1eae1ca01880e7160bdeb07a034905e0cba6cab45b8664c5132797566fea94610a33d870ec15339ca3dcbb SHA512 d36424ad521cec542d71589d2135c4728fc3a7bcf40d35c32a94e002355a014827350882598ef0ecfddf94b2f9dbf66c4c51e6d5a5526b08c3a8e7cfae6f8263
+DIST matplotlib-3.11.1.tar.gz 32612045 BLAKE2B c5bd522384724bc059208e7ed8db27340234c25d1771b1f4fc06b261a15123dc679245466da9c55487aa475d508951b5bfc8adb23b377488fd9b61e4e920f4c0 SHA512 9300ac294f151c478cc8fc38d94931d1431f4083adeac6061c78a100abbbaa8145cd826dab9275319ae91ddb617a4fa4cd2bff1320832941181f707b43ba872a
+DIST matplotlib-3.11.1.tar.gz.provenance 10413 BLAKE2B 3e03cd552d74d19d00f33930bbb3c34cf171c4ddf10a598fc9d9f5d1584209adb84cf39938851bf272980ed747cad69d1cdd14deff25ba5a8f88444987f4fb3e SHA512 2591c1cdbfaa2ff4cd2a129c2c61c75db38027f0a34f5e140ce5137dca3b48a5d38b995e0e93abda0102673c782a59fb062df0c2b561a61ae7742af02e8df89c
diff --git a/dev-python/matplotlib/matplotlib-3.11.0.ebuild b/dev-python/matplotlib/matplotlib-3.11.0.ebuild
index 0b5964defe64..f9cdedd3e9de 100644
--- a/dev-python/matplotlib/matplotlib-3.11.0.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.11.0.ebuild
@@ -25,7 +25,7 @@ HOMEPAGE="
LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~riscv ~x86"
+ KEYWORDS="~alpha amd64 arm64 ppc ~riscv x86"
fi
IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
diff --git a/dev-python/matplotlib/matplotlib-3.11.1.ebuild b/dev-python/matplotlib/matplotlib-3.11.1.ebuild
new file mode 100644
index 000000000000..4c347f415fd8
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-3.11.1.ebuild
@@ -0,0 +1,266 @@
+# 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-release
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="
+ https://matplotlib.org/
+ https://github.com/matplotlib/matplotlib/
+ https://pypi.org/project/matplotlib/
+"
+
+# 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"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~riscv ~x86"
+fi
+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/raqm-0.10.4:=
+ >=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.28.2[${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}]
+ ')
+ )
+"
+
+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
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # 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.
+ # Apparently Darwin is given higher tolerances too.
+ find -name 'test_*.py' -exec sed -i \
+ -e "s:if platform.machine() == 'x86_64' else:if False else:" \
+ -e "s:if sys.platform == 'darwin' else:if True else:" \
+ {} + || die
+
+ # Enable installing test data.
+ # TODO: do it only for the test phase?
+ sed -i -e '/--tags/d' pyproject.toml || die
+}
+
+src_configure() {
+ # Affects installed _version.py, bug #854600
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV/_}
+
+ 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-libraqm=true
+ -Dsystem-qhull=true
+ -Dmacosx=false
+ )
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by -Wdefault
+ tests/test_testing.py::test_warn_to_fail
+ tests/test_legend.py::test_legend_nolabels_warning
+ # TODO: timezone mismatch? DST?
+ tests/test_dates.py::test_auto_date_locator_intmult_tz
+ # TODO: some latex error
+ 'tests/test_backend_pdf.py::test_font_heuristica[pdf]'
+ )
+
+ 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_text.py::test_metrics_cache2
+ )
+ ;;
+ esac
+
+ # TODO: recheck these
+ 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]'
+ )
+ ;;
+ # NB: The overlap here is deliberate. We copy the same deselect
+ # to the blocks above, but if we remove others, it will fall back here.
+ 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
+
+ # 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/msgpack/msgpack-1.2.1.ebuild b/dev-python/msgpack/msgpack-1.2.1.ebuild
index cf8f4ff54a1c..7d4fd7d28e4f 100644
--- a/dev-python/msgpack/msgpack-1.2.1.ebuild
+++ b/dev-python/msgpack/msgpack-1.2.1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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="+native-extensions"
# extension code is relying on CPython implementation details
diff --git a/dev-python/multipart/Manifest b/dev-python/multipart/Manifest
index f90b868d4471..7506a439720d 100644
--- a/dev-python/multipart/Manifest
+++ b/dev-python/multipart/Manifest
@@ -1 +1,2 @@
DIST multipart-1.3.1.tar.gz 38929 BLAKE2B 03560a8c2fef4c07129f94daf28f5857649cae43aaeaae6f3cd00ff810892f2450af399da691723306c4d2eec44cad4e8035a4ec0f99079c8aceae52b29f2624 SHA512 a8292c63ec312777e58a36e308f69949ae9ac86a8f4dd543de2f5bbdde510753f33904b100173efba07d85eed32f7bc53d743d51824b7a362b8438059714efff
+DIST multipart-2.0.0.tar.gz 42606 BLAKE2B de7119ecf7835b59d9dcfde431112a98c2e588e263159c380e56331b39479e23d1794a45817f420470dc150863b973b509d0050f80fccc771ad7668ec7b8aa40 SHA512 637a6224e83284d38c35a6615157463f08d7e9a95d6d71e0943d71e313cb7d5249b32eace22f064a93ecb86fc68a47fd2e65288c272acfc7d9cb692c3606a281
diff --git a/dev-python/multipart/multipart-2.0.0.ebuild b/dev-python/multipart/multipart-2.0.0.ebuild
new file mode 100644
index 000000000000..9a6e1e4d5f7e
--- /dev/null
+++ b/dev-python/multipart/multipart-2.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Parser for multipart/form-data"
+HOMEPAGE="
+ https://github.com/defnull/multipart/
+ https://pypi.org/project/multipart/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/numexpr/Manifest b/dev-python/numexpr/Manifest
index 09349fdb83cd..fb24c45bd129 100644
--- a/dev-python/numexpr/Manifest
+++ b/dev-python/numexpr/Manifest
@@ -1 +1,2 @@
DIST numexpr-2.14.1.gh.tar.gz 134417 BLAKE2B 88f010494404fa3149ac1b523e00d33013fa1ee0dadd672233eacc659818995edd2c151e1c89934fa6ce2695161e7a2ba182bb6ab5b6e020438f27cd4b27f975 SHA512 1bc50ce9f676d68d132a3e7bcded4b1f3feef2a9b43dce730bceb7999dc308d70700cffe45261d18128e0c0efbab574996ff33ac353915b59308d0da55761415
+DIST numexpr-2.14.2.gh.tar.gz 136123 BLAKE2B a94d321262ecf93059aa0a05000ab9ecccc09d1091370bc08cf8103b669df6bb29dd7c7389deddcf0812460973c51aea7988db24d8cbfd62eb85bc8c5f9dfe9b SHA512 895be42efa8f78cc679286be0791d5093620b630af92ffda28b7c9ce2121c59d4114681caaed853627ea477996c967b04235bbcdcf4ead211d61a9791dbae965
diff --git a/dev-python/numexpr/numexpr-2.14.2.ebuild b/dev-python/numexpr/numexpr-2.14.2.ebuild
new file mode 100644
index 000000000000..4748dc131253
--- /dev/null
+++ b/dev-python/numexpr/numexpr-2.14.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Fast numerical array expression evaluator for Python and NumPy"
+HOMEPAGE="
+ https://github.com/pydata/numexpr/
+ https://pypi.org/project/numexpr/
+"
+SRC_URI="
+ https://github.com/pydata/numexpr/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+DEPEND="
+ >=dev-python/numpy-2.0.0:=[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/packaging[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ # Tests will test that these variables are "safely" parsed, and break
+ # if you set them yourself. They don't do any real work, just asserts.
+ # Bug 963118.
+ unset NUMEXPR_MAX_THREADS NUMEXPR_NUM_THREADS OMP_NUM_THREADS
+
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)" >/dev/null || die
+ "${EPYTHON}" -c '
+import sys,numexpr
+sys.exit(0 if numexpr.test(verbosity=2).wasSuccessful() else 1)
+ ' || die "Tests failed with ${EPYTHON}"
+ pushd >/dev/null || die
+}
diff --git a/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild
index fc37787b90c1..c206191a1a88 100644
--- a/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild
+++ b/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index bc462d2bc6e0..71803cffd1d4 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -1,2 +1,4 @@
DIST pbs_installer-2026.6.10.tar.gz 73893 BLAKE2B 3af87ea1be1a7fc41059ae0b0b77ded24d6ab29439b5bc9a92f5c35e601a35aa10fcb18a756e34471e4dc135c4cee907a27436aa4f6df6b338ef1aa9f0027495 SHA512 88544fa5126e6f9ea259a74e8f8f6b1c6ba5cbc9bc7b586af05a561063c5950501e6a75923b60ea7e52f0b3686269ada6b8265fedeec7f143f158fb18061c9e8
DIST pbs_installer-2026.6.10.tar.gz.provenance 9988 BLAKE2B f0a457eadcccb409dc78aa55018765a1a2d25034dd3ad5633bdf344c8ed78f7f2df4a537ae2d28b0c04ac7077c42800e971d9915bf3243f5bedfcf72e1d2ca68 SHA512 341494699b0398d7ff043132f4fdc1d52f5934c0d3a26fa550783735b7070fe66a0696858b79a67f26adfccff3c488ef504660a3585653f5505390d599a6e40d
+DIST pbs_installer-2026.7.18.tar.gz 74147 BLAKE2B f591f1dfff9e8583c94120f56709b687ead3410023e3e1df8d37a7ed57dfe9a6805e232dba73a462669c7d811b3c39730b041992c60818f2fb3bcf3307a6dfc9 SHA512 deb4c1ae8d35befc4194bc015781c784dc8998db6fa30ffb8abc82d2b2a7d20ec5ae47733887db5352c6bf9adfe4486182d19fc92750d882297044e52b8860a1
+DIST pbs_installer-2026.7.18.tar.gz.provenance 10098 BLAKE2B 2e6c341d5376ab43728e9adbb081999d3acb2a56dc75b43aa94b70981c8a575a645ff11edd5301084474da670ee98c8d49ca12b43756c239b621f4c92cf4b597 SHA512 a7d8e30b1f5a5a498059456efdfd7b94f1c85dc6c972ceb144fa896212d889caf5e2490bb164ae0ca43a42f88ec8999887c4bc82e2cd71fc8f21bc9bd8b42dc4
diff --git a/dev-python/pbs-installer/pbs-installer-2026.7.18.ebuild b/dev-python/pbs-installer/pbs-installer-2026.7.18.ebuild
new file mode 100644
index 000000000000..5255989ad0b2
--- /dev/null
+++ b/dev-python/pbs-installer/pbs-installer-2026.7.18.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Installer for Python Build Standalone"
+HOMEPAGE="
+ https://pypi.org/project/pbs-installer/
+ https://github.com/frostming/pbs-installer/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# httpx is needed to download builds
+# zstandard is needed to install them
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.11 3.12 3.13)
+ <dev-python/httpx-1[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests import-check
diff --git a/dev-python/peewee/peewee-4.0.9.ebuild b/dev-python/peewee/peewee-4.0.9.ebuild
index 354b1a91f483..e41bf9288df5 100644
--- a/dev-python/peewee/peewee-4.0.9.ebuild
+++ b/dev-python/peewee/peewee-4.0.9.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~riscv x86"
IUSE="examples +native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index 69f7fd59a045..27112fd723b9 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1,2 +1,4 @@
DIST platformdirs-4.10.0.tar.gz 31224 BLAKE2B 4619bb4609da115660b0747237a4675a148df9a112847cb0b620c2567a24f7d7a85c7e443f92f36c3cd619b31dfacf7a5eaa1dd888548c463c48e28dcd22e178 SHA512 ad3c2dd1d65522be5b5cbd7e22447681ee0a9de80fd3716b64205c229995118ace7e9bd0282e98f9d83106df5d1332bcbebea97bc6433156de22d1e1ef2756f4
DIST platformdirs-4.10.0.tar.gz.provenance 9894 BLAKE2B 38fc9d69b639f158adc749eabac2c0495f1ce7b7bcc7ec37b95de7e612302b578abf28bdc05a4c0952cc58cd3a45859b1b099d326b67f08b24c120e702b5e05f SHA512 cc3e135570c28ea1bce8447f823723dec2f8e3384b92a598f1b8a5eb521a496a4f2a384331f21f8d6e0e1a03f6d28e54acac293a665cb454fcd338ce547911bc
+DIST platformdirs-4.10.1.tar.gz 31678 BLAKE2B f856043d7dfd9a1b3e588bd4c5ee4d40edcfe307dd6234b3b21e0d8025e922c383c07535572c2217c04c680a263ff917b172e31c019c6d6155ffd5cf03a1aa0f SHA512 11590c5ede99cf866be4bc6eba7f3c0764b4e2a7d176ba0cb0b967934e0b72388a44e52ff07519637ab87290f7d5aac186be60b58eae65aeb72ca580ac97ff09
+DIST platformdirs-4.10.1.tar.gz.provenance 9920 BLAKE2B 514a93e710634d7f9bad01dcb53c7f00c7bf1988247b80d07582596749864647cfc00662de85035a62035b18e3e30c916733d43c540e99fc500c58c3da1a8a6e SHA512 9517b368a04da9b6cf923b96bef99179922cf4e6898cf4d48ff82cc269a6fe1fafbf019c76338d95f848aab628c789139c5768bc337b111b26d0e2ae91bd8b66
diff --git a/dev-python/platformdirs/platformdirs-4.10.1.ebuild b/dev-python/platformdirs/platformdirs-4.10.1.ebuild
new file mode 100644
index 000000000000..97987e113428
--- /dev/null
+++ b/dev-python/platformdirs/platformdirs-4.10.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE="
+ https://pypi.org/project/platformdirs/
+ https://github.com/tox-dev/platformdirs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? (
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "hatchling' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "${PN}"
+ version = "${PV}"
+ description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
+ EOF
+ # sigh
+ cat > src/platformdirs/version.py <<-EOF || die
+ __version__ = version = '${PV}'
+ __version_tuple__ = version_tuple = (${PV//./, })
+ EOF
+}
diff --git a/dev-python/pygal/pygal-3.1.3.ebuild b/dev-python/pygal/pygal-3.1.3.ebuild
index 1fc81156f8d6..ee8934fea59d 100644
--- a/dev-python/pygal/pygal-3.1.3.ebuild
+++ b/dev-python/pygal/pygal-3.1.3.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="LGPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
dev-python/importlib-metadata[${PYTHON_USEDEP}]
diff --git a/dev-python/pylint/pylint-4.0.6.ebuild b/dev-python/pylint/pylint-4.0.6.ebuild
index 15ca18638155..702b432624f2 100644
--- a/dev-python/pylint/pylint-4.0.6.ebuild
+++ b/dev-python/pylint/pylint-4.0.6.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/pypdf/pypdf-6.13.3.ebuild b/dev-python/pypdf/pypdf-6.13.3.ebuild
index 8356f2373919..0395c87cbe04 100644
--- a/dev-python/pypdf/pypdf-6.13.3.ebuild
+++ b/dev-python/pypdf/pypdf-6.13.3.ebuild
@@ -25,7 +25,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
BDEPEND="
test? (
diff --git a/dev-python/pyrate-limiter/pyrate-limiter-4.4.0.ebuild b/dev-python/pyrate-limiter/pyrate-limiter-4.4.0.ebuild
index 628b89d6e44a..d81bc22075e1 100644
--- a/dev-python/pyrate-limiter/pyrate-limiter-4.4.0.ebuild
+++ b/dev-python/pyrate-limiter/pyrate-limiter-4.4.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RDEPEND="
dev-python/filelock[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest
index 493aff3076a8..8d43c27013b1 100644
--- a/dev-python/pytest/Manifest
+++ b/dev-python/pytest/Manifest
@@ -1,6 +1,4 @@
DIST pytest-9.0.3.tar.gz 1572165 BLAKE2B a86001e79e630f8e7aa3007d287271702b11eef00938f50f8f404a646c90cacb2f661e9d7ce08fa6820ec1dbc858c30a0c450126b52388356ef23d138669e297 SHA512 228908e1f9718c418b5e118e7c49cb4b998b907982e277f29cdd13199383425cce9c7cee3275440bb1d0b0ae68b4a88443ef3400f506e9b787fc4d816bc47003
DIST pytest-9.0.3.tar.gz.provenance 9379 BLAKE2B e5d6d3cfde46cfa80ddb436fbf7608e79ced8a08fad3a5841ccc30ecd40a425e37745a9994c9cf75602467934d14d23df07ed1c20ae4801ea3e60b3fde4d805b SHA512 6e93af12b5ab40e5c76ca6f42298767a9d04f1ace4af4403e4d2589962e3dc79d8a8e0c308f528a4cf8d0b60ad600bd33128982a59bbb74c2eb0ca16192b0f51
-DIST pytest-9.1.0.tar.gz 1634181 BLAKE2B 46588d912f67c468ada6b2d4c280226b0e448225c502fed31a864b737d3d68867788cc3709441a30177f2ef4a449f8ea93afb552718e82dd5fdab8826e06ee93 SHA512 808ec20f7a50092d1795d04e0857325b979b686654f76d8b24a6d8000c2e8226458b70f26492710abfe75527250641fc47d34b4f6a0ecb8d57aedc9fb96af830
-DIST pytest-9.1.0.tar.gz.provenance 9897 BLAKE2B f373d56efc0a202661325ba4e92286bd897840dc0d1474a68969c31f2768fe19e2be1c9d4a4b64af3695de3942a06d6d973db083014fbedf58591144b01417ba SHA512 5313644bfded7b7d12763be4eac8ffd7313570f1a707d135d68d59060d2a66d992511598db740fb48622371627cb3dd05b458cc816a864230b2e13f688c91d90
DIST pytest-9.1.1.tar.gz 1636369 BLAKE2B 5aff9a07b8473392cbd549511e15dd4de6c16da2a88c213f5ac0685316190fcd6e292967006578e8041b25eba4093ed551e8d6e0d64f96ad28bac62b2e63da38 SHA512 10065997d09e8614ccf064b673e9dde8a4048eb0d701dd1e1e45b9b3751788d1060093aded2b180779852d981b3521b6d08e27fc86fb087b31933e55f57e8292
DIST pytest-9.1.1.tar.gz.provenance 9662 BLAKE2B dd66e9bb76806471bc37335d26793804a071abb178984dd7f9402eddab5f7e134b75aa41cef28cb550f8f949f9cfbdfa7f414dd41a01ab8c256dd8e050be97ec SHA512 c3030cec79605893ff80f095ec5fb29334af83e511488270f107428f96ecdf22f086deda5e114bb80deb8f88bd529b88e708c3751f02182be5fabafde8192d29
diff --git a/dev-python/pytest/pytest-9.1.0.ebuild b/dev-python/pytest/pytest-9.1.0.ebuild
deleted file mode 100644
index 32d56f37e013..000000000000
--- a/dev-python/pytest/pytest-9.1.0.ebuild
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/pytest-dev/pytest
-PYTHON_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Simple powerful testing with Python"
-HOMEPAGE="
- https://pytest.org/
- https://github.com/pytest-dev/pytest/
- https://pypi.org/project/pytest/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/iniconfig-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-22[${PYTHON_USEDEP}]
- <dev-python/pluggy-2[${PYTHON_USEDEP}]
- >=dev-python/pluggy-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- dev-python/argcomplete[${PYTHON_USEDEP}]
- >=dev-python/attrs-19.2[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/xmlschema[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-src_test() {
- # workaround new readline defaults
- echo "set enable-bracketed-paste off" > "${T}"/inputrc || die
- local -x INPUTRC="${T}"/inputrc
- distutils-r1_src_test
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return
- fi
-
- local -x COLUMNS=80
-
- local EPYTEST_DESELECT=(
- # broken by epytest args
- testing/test_warnings.py::test_works_with_filterwarnings
- testing/test_threadexception.py::test_unhandled_thread_exception_after_teardown
- testing/test_unraisableexception.py::test_refcycle_unraisable
-
- # does not like verbosity
- testing/test_assertrewrite.py::TestAssertionRewrite::test_len
-
- # tend to be broken by random pytest plugins
- # (these tests patch PYTEST_DISABLE_PLUGIN_AUTOLOAD out)
- testing/test_helpconfig.py::test_version_less_verbose
- testing/test_helpconfig.py::test_version_verbose
- testing/test_junitxml.py::test_random_report_log_xdist
- testing/test_junitxml.py::test_runs_twice_xdist
- testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal
- testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal_count
- testing/test_terminal.py::TestProgressOutputStyle::test_xdist_verbose
- testing/test_terminal.py::TestProgressWithTeardown::test_xdist_normal
- testing/test_terminal.py::TestTerminalFunctional::test_header_trailer_info
- testing/test_terminal.py::TestTerminalFunctional::test_no_header_trailer_info
-
- # unstable with xdist
- testing/test_terminal.py::TestTerminalFunctional::test_verbose_reporting_xdist
-
- # TODO (XPASS)
- testing/test_debugging.py::TestDebuggingBreakpoints::test_pdb_not_altered
- testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_simple
- testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_twice
- testing/test_debugging.py::TestPDB::test_pdb_with_injected_do_debug
- testing/test_debugging.py::test_pdb_suspends_fixture_capturing
-
- # setuptools warnings
- testing/acceptance_test.py::TestInvocationVariants::test_cmdline_python_namespace_package
-
- # PDB tests seem quite flaky (they time out often)
- testing/test_debugging.py::TestPDB
-
- # TODO
- testing/test_terminal.py::TestProgressOutputStyle::test_xdist_times
- )
-
- local EPYTEST_PLUGINS=()
- local EPYTEST_XDIST=1
- epytest
-}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 9cda7e9e4a17..0bf2190ee83b 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -8,9 +8,12 @@ DIST Python-3.15.0b2.tar.xz 35381676 BLAKE2B 59834dc8301dcc9d7e25fd3faf6060a6755
DIST Python-3.15.0b2.tar.xz.sigstore 5583 BLAKE2B a766583eb8340ac3bef93ac0bde0ffa66f4680361bb369b3baccd715eb24a8a1f2e5f1ba049e1e8d3c7c53f41a2fe4b0402104156f7c0609355a18dbb24c99e2 SHA512 78f437419f67b10d556ec2304e9f46af4ee0114434e1c51594ccf202aa98ae3b733f4022aeac8fc1afdeeb29fda9328f855dd4914d38318c9ec965b45358153c
DIST Python-3.15.0b3.tar.xz 35459584 BLAKE2B 613f3609775df8b899603363a5e6cce39d3e1e56451c626cf87adc6149d9bbe5d1cddce86e3d86eb521747f4f0ada226322d0d737f881d107adccfd7b8533098 SHA512 a8c73a8e373ca921c87778d011072c1a0602cc203c65acda69117189cf5bd6c277c54044af381f27c243b187bbbb7b3ef47b9318bc89e2c044de9723175d7dca
DIST Python-3.15.0b3.tar.xz.sigstore 5687 BLAKE2B fd74f7eae99854979980740fb5af2f75fcd4a37548667706fe3f301d213244af987afc7a5395d85df48a04f42f0f660ab6c2b717085c43077f7da5b0413aabc3 SHA512 0f9241d114a1b390f547fbd0768be1375d1500c2e9b8d851a3ba87a5d8df1c0963e69c8798dd5576298f0e535860b5faa69ead5f41549d1a4b0e6228603b5a26
+DIST Python-3.15.0b4.tar.xz 35509544 BLAKE2B d7fb1fb55cb75ab28971dc4ce575a61213b2041d12224b387ca6e2c176c818d37f4db07c4064cecdefae794befbd2247cacda43b33dd28485e9a6e547e9b6865 SHA512 ea668ea51334338aa44ee6ab20d9acb958fb7c41c1bd8ef3b91048d80a27f7aa2b2bc7b4c4928714b22c86a7a7719e7c09ae2ac82fc3f3ad01ca3a736f85e067
+DIST Python-3.15.0b4.tar.xz.sigstore 7105 BLAKE2B 78f8667ab32ae1353cb1475a9318e669922d475e0c31fd5e5bd86f944dc318d33299b9fbb6d00eb833cfa0f33dd0f043a6301f3e09f25fb1af892f3bb3a633b2 SHA512 df6545bc6899bcaafa056066b25a35de010a64587af223060f14ae35313b18c9e221f8bced7e256d2b3f9f13fa56c86a1cb8feefe0e24c7ad2efc41e4bf115b9
DIST python-gentoo-patches-3.12.13_p1.tar.xz 12408 BLAKE2B 2b232c2742eafcb803713c837b4ddaa38f45c88e707ec272571739570f9e2e5c94644681369d887992eadf5f0c1178489f1aa3a7d8163a2aa4ce6a86732e73da SHA512 e06d78ad24c9fbc3fa9c47b25ba722342ddd140aa30f624b41d605dae40d00ab956d879a247db2d7980c063a1472de40587a0d3cd6947e560aa7e8d0e4f89309
DIST python-gentoo-patches-3.13.14.tar.xz 9360 BLAKE2B 257a43992b857d44881174b36b0940fab3f879060938fe6e6464ae671832a3af624a0cc6f012e44ee344a34d0a8da0c898a29176029bfab70086434fbd3c3b99 SHA512 0084ffc35ff81a7056dd7a3624083ed957fbe482b1cbca9e401ef5851e0046b82b9102f4cf358f2974d7a7dfb3e21e96dcafe6c207417fa01834b9d10a2ee8d6
DIST python-gentoo-patches-3.14.6.tar.xz 10312 BLAKE2B 3415bb7859cdd8754987afdc7d0c793833755698a9a6b7e7b7c75d2c203109640cf5c1aff49ea38419273959479fb745cf956cae263515d82c0e7e67155be5c2 SHA512 19cb6f1424165153d2834b310ef6f8a0ac047351126191457fc0ce49238a6b21fe8a427897a5ce19bdd20076abc2189c71175981a67ab07dcbdec759b80005ab
DIST python-gentoo-patches-3.14.6_p1.tar.xz 12032 BLAKE2B 315de6cb5f346c6406e12d4cb6ccbc986e6a39dc334e5ceb4d1ba4922a336d77f0bd0167fb7ef4d1c40ce0829e03248e838dbfbd0a46c0e4e0f6cf9e999e09e8 SHA512 2ac689aa6cff138782440ce1104bf21eace756fd1a72e22590c14157390937f7f50cd1e1ca774bb5a1ff08404b74901fb55d703c39a6ff9c9165e420d1b045e9
DIST python-gentoo-patches-3.15.0b2.tar.xz 3436 BLAKE2B fa2128b899f2d93078058ccd3e47b780bd092a841b07add94da61a55bb1f9846ec1fa5e00bcd78fcdd1d7da80fdf1dbabcc5d644a70cebce2018c457b186c74a SHA512 e92e87c027c8d777faae20b264cd83353dbb23d15679e99465f014277d02078b8c68fce3723e176cbebd94ac2057e5a9703f0ae5f5691e934b74947735ec3a86
DIST python-gentoo-patches-3.15.0b3.tar.xz 3432 BLAKE2B 994e9339e00dfa4b40395e763f25dde4813d791151787028dafcf2e5159c38bbe88d4b56d07fc4c7454a09bd55edfda94b9cb8cf5c0ff0ffe7db4bb1a8eea8b6 SHA512 8c3a8dea43fc42179679b1f6811979dabb4e1c34821b4aecd894d661842df26e7592f5c74787157f36ccddf9ce233994c774fbe8381dc0ccaff3dfcff0c6c572
+DIST python-gentoo-patches-3.15.0b4.tar.xz 3436 BLAKE2B 82a8b6a3467613229b938313f69dca219793fe5e4a16266483705f00062eec30f775bbaf4b50aa38062a96377a44071f2d29b5ae7926a003d3b70094ddc0db5e SHA512 0858432978d85453ca136c4b54737c6df8ca536852723f0625984ca7cb4aef623286d94e34b8ac80f2f7547a8fe95390972e569bdcdb30c93f4466eab586022b
diff --git a/dev-python/python-tests/python-tests-0.3.15.0_beta4.ebuild b/dev-python/python-tests/python-tests-0.3.15.0_beta4.ebuild
new file mode 100644
index 000000000000..5d64b5152fd6
--- /dev/null
+++ b/dev-python/python-tests/python-tests-0.3.15.0_beta4.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+REAL_PV=${PV#0.}
+MY_PV=${REAL_PV/_beta/b}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 2-3)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.15.0_beta4.ebuild b/dev-python/python-tests/python-tests-3.15.0_beta4.ebuild
new file mode 100644
index 000000000000..5ed96d1087f8
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.15.0_beta4.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_beta/b}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index c9f54135fe9e..fef0ca879d7e 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,3 +1,4 @@
DIST regex-2026.5.9.tar.gz 416074 BLAKE2B 76b6802ebede45eeb54bbada24f9cde5a6b16a304d4edf3f05464b04e3a3a064c2417fe2c5ef7e599cb67fcdea76a3b02648a621095b4a1c88e0a8141495f7c1 SHA512 c118b46e5746c83e7e93f2bcb85b4e85e04b04670a3aef0eab0b1707c653e98ed79fe5007734b15358023c5a30282fadb0947c3590388d64410e53d49ca63df5
DIST regex-2026.6.28.tar.gz 416101 BLAKE2B 58b5cc513180239c9b56891d64039be2ea615d976ec652153d401af518fe2bca084378bc75eccd316f04c6b49eace42b205936a39e130c1c13f2644c81411a4e SHA512 2f0cbe5c45a69f00e33190fdbfc2faf2b6c4c66cf8cb13fc6dde55dbed8506548db89d7b6bceb66ae31912655c8cb984813a6bdbea89e975735316833b4edd14
DIST regex-2026.7.10.tar.gz 416282 BLAKE2B 145e8a7d3f0d3ad130d3b8426b97de145b3d04c6a98407788f8bb3515a3350952ff05e754bb29791a2356ec2aa8e6c5249a03181015e8c928cf71e7cef803698 SHA512 aae3e083d972a18eec000150c9858e8ff835d447193ec5df5b9e3afd330b7c67b6f4825f0773a2e744b77380aaff7a43be5034168bba7f497fa39798eb40822f
+DIST regex-2026.7.19.tar.gz 416440 BLAKE2B c7e922fca496731dba5130bd7f572df56adfd5c31db6812f935ede24060b3fb6abca57836f3d0a0ad7bcee6433e1520b14611657495e6e844fc2d5d99d6dba32 SHA512 807b987dd5fa12f5fdb95c79955823f263f03f23059c8ec1783958bab5dadb1c38dab022a3e519ebb6810b6e03692c14b4d354506ff7a00a7323ee79d61f4e34
diff --git a/dev-python/regex/regex-2026.7.19.ebuild b/dev-python/regex/regex-2026.7.19.ebuild
new file mode 100644
index 000000000000..f45afd466843
--- /dev/null
+++ b/dev-python/regex/regex-2026.7.19.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+# pypy isn't supported upstream because of its UTF8 representation for strings
+# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="
+ https://github.com/mrabarnett/mrab-regex/
+ https://pypi.org/project/regex/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc"
+
+distutils_enable_tests unittest
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/Features.html )
+ local DOCS=( README.rst docs/*.rst )
+
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
+ eunittest
+}
diff --git a/dev-python/signxml/signxml-4.5.1.ebuild b/dev-python/signxml/signxml-4.5.1.ebuild
index 0465556f7e5e..ffbfd98011fd 100644
--- a/dev-python/signxml/signxml-4.5.1.ebuild
+++ b/dev-python/signxml/signxml-4.5.1.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/XML-Security/signxml.git"
else
inherit pypi
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+ KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv"
fi
LICENSE="Apache-2.0"
diff --git a/dev-python/sphinxcontrib-mermaid/Manifest b/dev-python/sphinxcontrib-mermaid/Manifest
index e1161e4ce55f..584162c27325 100644
--- a/dev-python/sphinxcontrib-mermaid/Manifest
+++ b/dev-python/sphinxcontrib-mermaid/Manifest
@@ -1,2 +1,3 @@
DIST sphinxcontrib-mermaid-2.0.2.gh.tar.gz 23399 BLAKE2B 3243962204fa9c95433dfcf2bda1544ae7e3116f21089bff847ff3a05407b500ee1a266f6b37d6147b2b31f75d88f770ad5f49cc266ac676665c3c3eb55687e3 SHA512 7bb6022f6cd113e3047ec446081d705041937d834cd8afe74b0f237d39b77f2e3e714753853ec5acf5227f512f641b6380ca0f6507adefb959902231e97a1101
DIST sphinxcontrib-mermaid-2.0.3.gh.tar.gz 25727 BLAKE2B 385a2cfc0ff5a99f7e6353c069ab4a99cd0bcddd44085df2a769daba1a418db7d01beb73d642459dcea8e9a6e02f69991a0d987775f824eb78dc4107354764f0 SHA512 612e02eacb84c56700a710a9338b6cd3b9167c6e88b5a4e4d814fdfe91d5887d24ca3d504b97bbc91997379eadb5596a6bcf4e916d84177076603df7cf137707
+DIST sphinxcontrib-mermaid-2.1.0.gh.tar.gz 27473 BLAKE2B c5582e488f7ced6bcf563ad429c6ab910afd501a095569c40855363d7b4cf05cfc1e0f366f7047ca3f5c7c6a8f72ae83044cd7bb8cf934c9e56823a3b811b051 SHA512 d704a020249367e9e0404d0a4d91b7f1646952af359ec39215a7959a25d18ea981634d1014134f703e5ad0b0f8ff8689aac91b9635fdda019e46788f45c4afde
diff --git a/dev-python/sphinxcontrib-mermaid/sphinxcontrib-mermaid-2.1.0.ebuild b/dev-python/sphinxcontrib-mermaid/sphinxcontrib-mermaid-2.1.0.ebuild
new file mode 100644
index 000000000000..395135d9d7c7
--- /dev/null
+++ b/dev-python/sphinxcontrib-mermaid/sphinxcontrib-mermaid-2.1.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx spelling extension"
+HOMEPAGE="
+ https://github.com/mgaitan/sphinxcontrib-mermaid
+ https://pypi.org/project/sphinxcontrib-mermaid/
+"
+# pypi does not include test files, so we use the GitHub tarball
+SRC_URI="
+ https://github.com/mgaitan/sphinxcontrib-mermaid/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-3.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ distutils_write_namespace sphinxcontrib
+ rm -rf sphinxcontrib || die
+ epytest tests
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.51.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.51.ebuild
index b46152f6c679..de47d8afec0a 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.51.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.51.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
IUSE="examples +sqlite test"
RDEPEND="
diff --git a/dev-python/starlette/starlette-1.3.1.ebuild b/dev-python/starlette/starlette-1.3.1.ebuild
index ce859e5ce3ab..4e0d7192b6f9 100644
--- a/dev-python/starlette/starlette-1.3.1.ebuild
+++ b/dev-python/starlette/starlette-1.3.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ppc ~riscv x86"
+KEYWORDS="amd64 arm64 ppc ~riscv x86"
# TODO: default to httpx2? add some flags?
RDEPEND="
diff --git a/dev-python/tibs/Manifest b/dev-python/tibs/Manifest
index 8aa455653e1c..03f6cab3036e 100644
--- a/dev-python/tibs/Manifest
+++ b/dev-python/tibs/Manifest
@@ -71,6 +71,7 @@ DIST tibs-0.11.0.tar.gz 1930081 BLAKE2B 5a8f60767bf67f98d86ac72d6e079b69675f2feb
DIST tibs-0.12.0.tar.gz 2164862 BLAKE2B 0ab165a01180d709e67142bf34bb48b7b3ec9d8b7d1f9de42be05bdd756e6572c6d528615352c940765cc88d06b364ea87e74371dd04ef20cd65da27230930f5 SHA512 58d8161c5eb553b3e211777da67fdb0fd6dac326b9ccb4dccf917fd0ec24b79f395a214f53829e129267b6830a4d557d4b4bac85a2edbaefaef5eb25ae4667fa
DIST tibs-0.9.2.tar.gz 1320735 BLAKE2B 3f0c72c9f8ba947ac9bd351fcba48ad430590982c61881d31eb0ae48edc5502d3b97e931bb32662047d346f442e83b07f60b1673746a5af743d2742a3d79edc8 SHA512 fcb314ebac4416c8bfb36930d86678709e6b2e0cf2dd524ea6c45577252313f2fb4f3cbfe32375927ceb54b13257361cdbb2a0a18216fe089a3a3e34290d21c3
DIST tibs-1.0.0.tar.gz 2166659 BLAKE2B 5dc454458f3926b9db5a187c640d7929ea9b0975ce140580a84388c1465151c0d37f9b3985777ef06f1d2f4bfe26712b53034767af94130bcd8e09db95c746f4 SHA512 64fce5f0dfa8ce4d5e6c3f2b9ee7a610c22b5651ca17e8e23b8d5182ec7f44438a614d64eec7ccb324d6d2fdf0f1f5e3b094bb92620367a53119904d3c0fc859
+DIST tibs-1.1.0.tar.gz 2184321 BLAKE2B a96af6e399af3d9938b2faabd9c9bb25a2621097def36ee98c6130c7ded60925ce0dc3d3181eab57c101f099b22d7fdfe72c21b0997e05cff9fd5bd44734d7c6 SHA512 fd21f1485a1582b4a9325c587db796fd601088aa2288040bc135cf8c60f9484c565f01e88d11dd978386ad65284233c96151019a9e7196bd60925d61162ef24e
DIST typenum-1.20.1.crate 105479 BLAKE2B aa3ff221502fb140dd500c302b09279f5d161123093d0f97d7b1a8761ae465ec71f7035109651e483b735121f8267ca2ff21a64825e9a91f83fcce4e7e1192d6 SHA512 ad4768b49dc06808e3135411ffaf21453572d152f71d73c34b7fe5d00e276d3e121dc78ebed57d620cf46b5ab24b5b5e0787f38ad9ce8bd12330b499cbbde5e1
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
diff --git a/dev-python/tibs/tibs-1.1.0.ebuild b/dev-python/tibs/tibs-1.1.0.ebuild
new file mode 100644
index 000000000000..49cc4885a365
--- /dev/null
+++ b/dev-python/tibs/tibs-1.1.0.ebuild
@@ -0,0 +1,131 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+ allocator-api2@0.2.21
+ anyhow@1.0.102
+ bitflags@2.11.0
+ bitvec@1.1.1
+ block-buffer@0.12.0
+ bytemuck@1.25.0
+ cc@1.2.60
+ cfg-if@1.0.4
+ chacha20@0.10.0
+ const-oid@0.10.2
+ cpufeatures@0.3.0
+ crunchy@0.2.4
+ crypto-common@0.2.2
+ digest@0.11.3
+ equivalent@1.0.2
+ find-msvc-tools@0.1.9
+ foldhash@0.1.5
+ foldhash@0.2.0
+ funty@2.0.0
+ getrandom@0.3.4
+ getrandom@0.4.1
+ half@2.7.1
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ hashbrown@0.17.1
+ heck@0.5.0
+ hex@0.4.3
+ hybrid-array@0.4.12
+ id-arena@2.3.0
+ indexmap@2.13.0
+ itoa@1.0.17
+ jobserver@0.1.34
+ leb128fmt@0.1.0
+ libc@0.2.182
+ log@0.4.29
+ lru@0.18.0
+ memchr@2.8.1
+ once_cell@1.21.3
+ pkg-config@0.3.33
+ portable-atomic@1.13.1
+ prettyplease@0.2.37
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
+ quote@1.0.44
+ r-efi@5.3.0
+ radium@0.7.0
+ rand@0.10.0
+ rand_core@0.10.0
+ semver@1.0.27
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ sha2@0.11.0
+ shlex@1.3.0
+ syn@2.0.117
+ tap@1.0.1
+ target-lexicon@0.13.5
+ typenum@1.20.1
+ unicode-ident@1.0.24
+ unicode-xid@0.2.6
+ wasip2@1.0.2+wasi-0.2.9
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ wyz@0.5.1
+ zerocopy-derive@0.8.40
+ zerocopy@0.8.40
+ zmij@1.0.21
+ zstd-safe@7.2.4
+ zstd-sys@2.0.16+zstd.1.5.7
+ zstd@0.13.3
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="A sleek Python library for your binary data"
+HOMEPAGE="
+ https://github.com/scott-griffiths/tibs/
+ https://pypi.org/project/tibs/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+DEPEND="
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ tests/test_benchmarks.py
+)
+
+QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/tibs/tibs.abi3.*"
+
+# enable system libraries where supported
+export ZSTD_SYS_USE_PKG_CONFIG=1
diff --git a/dev-python/tqdm/tqdm-4.68.3.ebuild b/dev-python/tqdm/tqdm-4.68.3.ebuild
index 30d0ec6fe291..ebfa04953931 100644
--- a/dev-python/tqdm/tqdm-4.68.3.ebuild
+++ b/dev-python/tqdm/tqdm-4.68.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples"
BDEPEND="
diff --git a/dev-python/tzlocal/tzlocal-5.4.3.ebuild b/dev-python/tzlocal/tzlocal-5.4.3.ebuild
index 75762fd11002..1f17b4f63a26 100644
--- a/dev-python/tzlocal/tzlocal-5.4.3.ebuild
+++ b/dev-python/tzlocal/tzlocal-5.4.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
diff --git a/dev-python/uv-build/uv-build-0.11.23.ebuild b/dev-python/uv-build/uv-build-0.11.23.ebuild
index d66584ed2ede..71429631d035 100644
--- a/dev-python/uv-build/uv-build-0.11.23.ebuild
+++ b/dev-python/uv-build/uv-build-0.11.23.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/uv/uv-0.11.23.ebuild b/dev-python/uv/uv-0.11.23.ebuild
index e5931b30ed3e..ff4fd82e1866 100644
--- a/dev-python/uv/uv-0.11.23.ebuild
+++ b/dev-python/uv/uv-0.11.23.ebuild
@@ -39,7 +39,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
diff --git a/dev-python/vcrpy/Manifest b/dev-python/vcrpy/Manifest
index 1b5330873665..974719319687 100644
--- a/dev-python/vcrpy/Manifest
+++ b/dev-python/vcrpy/Manifest
@@ -1,4 +1,2 @@
DIST vcrpy-8.1.1.gh.tar.gz 339641 BLAKE2B 140678b9d8ba38ac6c3492fcfe35ffaa9db17b9e07d52554466a84b5bf0ddb7d932eab8d009f20dd1e74722cf56c330b6bcb3c58245dac04613f480aca8586e2 SHA512 3596c1ca34dc9f9f461579e9f4ec64395d028abd8180388af664078a0cb9dd557aee3b5a654ff6873b63969865f9ac3c6e021ba1ac302c11def090d873ae5bf2
-DIST vcrpy-8.2.0.gh.tar.gz 342891 BLAKE2B 1ac45a640cb8204c666b8f7f1ebc64a17c39abc08551d4d683d25beb1b2ab14723de64beed063b7e8e6e79bd926bbade7f48dc2a49802e404f031d79b9e1aae1 SHA512 97c621e12360f0de7c108b3914ee604d7d9abdf49c435addae687f4b732600a0a77a92b97447a518b6d1c42581781ee91c5cb714cfcdfb94c30afd8439f728da
-DIST vcrpy-8.2.1.gh.tar.gz 344628 BLAKE2B f1f5974b798f4cc9f43059de6afcae5473b605e8be392b876db30068f6a0e95ce8d709aca9d6dd2f05a487d1e567416a6ee5e1a57d6f05343f07bf942dfdb887 SHA512 7e997bced734f6d0379da018596b4f0aa91d3591190f1a1b2ec48516f6bc6085954314f945d242ae510f74d742bf820eff5732495696cfab7849f2011fd8f8ee
DIST vcrpy-8.3.0.gh.tar.gz 350920 BLAKE2B 9651e76d1a418e15348fe92b67d6c70e4b3ec3135da92cc01b12275c9f57d84de418ff327042039b0db2567b69b904fa373c2d495896c071234865df2a2371d0 SHA512 940d929d08dee3415b745ac3aa408ebcf611ecc04274ba9489eb8bb2ad0ad396cd51a4e78b00215287140f63136df2b34a53dd73fc64e5abb3a0e2b9f1eb4dbb
diff --git a/dev-python/vcrpy/vcrpy-8.2.0.ebuild b/dev-python/vcrpy/vcrpy-8.2.0.ebuild
deleted file mode 100644
index 2d2a8bacfbe4..000000000000
--- a/dev-python/vcrpy/vcrpy-8.2.0.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Automatically mock your HTTP interactions to simplify and speed up testing"
-HOMEPAGE="
- https://github.com/kevin1024/vcrpy/
- https://pypi.org/project/vcrpy/
-"
-SRC_URI="
- https://github.com/kevin1024/vcrpy/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc ~x86"
-
-RDEPEND="
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
- dev-python/urllib3[${PYTHON_USEDEP}]
- dev-python/wrapt[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/httpx2[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,httpbin} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # aiohttp incompatibility
- tests/transport/aio/test_aiohttp.py::TestRequest::test_request_clone_with_active_session
- # Internet
- "tests/integration/test_urllib3.py::test_post[https]"
- )
-
- local EPYTEST_IGNORE=(
- # requires boto3
- tests/integration/test_boto3.py
- # Internet
- tests/integration/test_tornado.py
- tests/integration/test_aiohttp.py
- )
-
- local -x REQUESTS_CA_BUNDLE=$("${EPYTHON}" -m pytest_httpbin.certs)
- epytest -m 'not online'
-}
diff --git a/dev-python/vcrpy/vcrpy-8.2.1.ebuild b/dev-python/vcrpy/vcrpy-8.2.1.ebuild
deleted file mode 100644
index 2d2a8bacfbe4..000000000000
--- a/dev-python/vcrpy/vcrpy-8.2.1.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Automatically mock your HTTP interactions to simplify and speed up testing"
-HOMEPAGE="
- https://github.com/kevin1024/vcrpy/
- https://pypi.org/project/vcrpy/
-"
-SRC_URI="
- https://github.com/kevin1024/vcrpy/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc ~x86"
-
-RDEPEND="
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
- dev-python/urllib3[${PYTHON_USEDEP}]
- dev-python/wrapt[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/httpx2[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,httpbin} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # aiohttp incompatibility
- tests/transport/aio/test_aiohttp.py::TestRequest::test_request_clone_with_active_session
- # Internet
- "tests/integration/test_urllib3.py::test_post[https]"
- )
-
- local EPYTEST_IGNORE=(
- # requires boto3
- tests/integration/test_boto3.py
- # Internet
- tests/integration/test_tornado.py
- tests/integration/test_aiohttp.py
- )
-
- local -x REQUESTS_CA_BUNDLE=$("${EPYTHON}" -m pytest_httpbin.certs)
- epytest -m 'not online'
-}
diff --git a/dev-python/zeep/zeep-4.3.3.ebuild b/dev-python/zeep/zeep-4.3.3.ebuild
index c2852c5cb6c1..ba0e7cc4c44d 100644
--- a/dev-python/zeep/zeep-4.3.3.ebuild
+++ b/dev-python/zeep/zeep-4.3.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
IUSE="async"
RDEPEND="