summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-22 07:18:00 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-22 07:18:00 +0000
commit9cdbf4c3e0696ba01563ed61985819786e9ff78b (patch)
treedba1001ce4a3693986c4525ec36208d5c4bb0478 /dev-python
parent2b6af48d12b3f3ea5f672a6cd5ac4f0420abda7c (diff)
downloadbaldeagleos-repo-9cdbf4c3e0696ba01563ed61985819786e9ff78b.tar.gz
baldeagleos-repo-9cdbf4c3e0696ba01563ed61985819786e9ff78b.tar.xz
baldeagleos-repo-9cdbf4c3e0696ba01563ed61985819786e9ff78b.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/Manifest2
-rw-r--r--dev-python/aiohttp/aiohttp-3.13.1.ebuild162
-rw-r--r--dev-python/arpeggio/arpeggio-2.0.3.ebuild2
-rw-r--r--dev-python/array-api-compat/array-api-compat-1.12.0.ebuild2
-rw-r--r--dev-python/backports-zstd/Manifest2
-rw-r--r--dev-python/backports-zstd/backports-zstd-1.0.0-r1.ebuild54
-rw-r--r--dev-python/backports-zstd/files/backports-zstd-1.0.0-py313.patch31
-rw-r--r--dev-python/backports-zstd/metadata.xml9
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.40.56.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.40.56.ebuild67
-rw-r--r--dev-python/bottleneck/bottleneck-1.6.0.ebuild2
-rw-r--r--dev-python/calver/Manifest2
-rw-r--r--dev-python/calver/calver-2025.10.20.ebuild29
-rw-r--r--dev-python/cattrs/cattrs-25.2.0.ebuild2
-rw-r--r--dev-python/cffi/cffi-2.0.0.ebuild2
-rw-r--r--dev-python/clang/Manifest2
-rw-r--r--dev-python/clang/clang-21.1.4.ebuild54
-rw-r--r--dev-python/click/click-8.3.0.ebuild2
-rw-r--r--dev-python/coverage/coverage-7.10.6.ebuild2
-rw-r--r--dev-python/dirty-equals/dirty-equals-0.10.0.ebuild2
-rw-r--r--dev-python/django-otp/Manifest1
-rw-r--r--dev-python/django-otp/django-otp-1.6.2.ebuild43
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-1.4.1.ebuild2
-rw-r--r--dev-python/emoji/emoji-2.15.0.ebuild2
-rw-r--r--dev-python/expandvars/expandvars-1.1.2.ebuild2
-rw-r--r--dev-python/faker/faker-37.8.0.ebuild2
-rw-r--r--dev-python/feedparser/feedparser-6.0.12.ebuild2
-rw-r--r--dev-python/flask-compress/Manifest1
-rw-r--r--dev-python/flask-compress/flask-compress-1.20.ebuild37
-rw-r--r--dev-python/fonttools/fonttools-4.60.0.ebuild2
-rw-r--r--dev-python/freezegun/freezegun-1.5.5.ebuild2
-rw-r--r--dev-python/gfloat/gfloat-0.5.2.ebuild2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.182.0.ebuild2
-rw-r--r--dev-python/googleapis-common-protos/Manifest1
-rw-r--r--dev-python/googleapis-common-protos/googleapis-common-protos-1.71.0.ebuild32
-rw-r--r--dev-python/gssapi/gssapi-1.10.0.ebuild2
-rw-r--r--dev-python/httplib2/httplib2-0.31.0.ebuild2
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.139.2.ebuild2
-rw-r--r--dev-python/hypothesis/hypothesis-6.142.2.ebuild125
-rw-r--r--dev-python/inline-snapshot/Manifest5
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.29.2.ebuild61
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.29.3.ebuild61
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.30.1.ebuild (renamed from dev-python/inline-snapshot/inline-snapshot-0.29.1.ebuild)1
-rw-r--r--dev-python/insipid-sphinx-theme/Manifest2
-rw-r--r--dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.3.ebuild34
-rw-r--r--dev-python/ipykernel/Manifest1
-rw-r--r--dev-python/ipykernel/ipykernel-6.31.0.ebuild91
-rw-r--r--dev-python/isal/isal-1.8.0.ebuild2
-rw-r--r--dev-python/jsonschema-specifications/jsonschema-specifications-2025.9.1.ebuild2
-rw-r--r--dev-python/kombu/Manifest2
-rw-r--r--dev-python/kombu/kombu-5.6.0_rc2.ebuild (renamed from dev-python/kombu/kombu-5.6.0_beta3.ebuild)0
-rw-r--r--dev-python/krb5/krb5-0.8.0.ebuild2
-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/libcst/libcst-1.8.4.ebuild2
-rw-r--r--dev-python/lit/Manifest2
-rw-r--r--dev-python/lit/lit-21.1.4.ebuild46
-rw-r--r--dev-python/logical-unification/Manifest1
-rw-r--r--dev-python/logical-unification/logical-unification-0.4.7.ebuild44
-rw-r--r--dev-python/markdown/markdown-3.9.ebuild2
-rw-r--r--dev-python/mistune/mistune-3.1.4.ebuild2
-rw-r--r--dev-python/moto/moto-5.1.13.ebuild2
-rw-r--r--dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild2
-rw-r--r--dev-python/nanobind/nanobind-2.9.2.ebuild2
-rw-r--r--dev-python/narwhals/Manifest4
-rw-r--r--dev-python/narwhals/narwhals-2.9.0.ebuild (renamed from dev-python/narwhals/narwhals-2.7.0.ebuild)0
-rw-r--r--dev-python/nbclassic/nbclassic-1.3.3.ebuild2
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-2.8.4.ebuild55
-rw-r--r--dev-python/numexpr/numexpr-2.12.1.ebuild2
-rw-r--r--dev-python/oslo-config/oslo-config-10.0.0.ebuild5
-rw-r--r--dev-python/paramiko/paramiko-4.0.0-r1.ebuild2
-rw-r--r--dev-python/patsy/Manifest1
-rw-r--r--dev-python/patsy/patsy-1.0.2.ebuild31
-rw-r--r--dev-python/poetry-core/poetry-core-2.2.1.ebuild2
-rw-r--r--dev-python/prometheus-client/prometheus-client-0.23.1.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.32.1-r1.ebuild2
-rw-r--r--dev-python/psutil/psutil-7.1.0.ebuild2
-rw-r--r--dev-python/pudb/Manifest2
-rw-r--r--dev-python/pudb/pudb-2025.1.3.ebuild38
-rw-r--r--dev-python/pybind11/pybind11-3.0.1.ebuild2
-rw-r--r--dev-python/pycparser/pycparser-2.23.ebuild2
-rw-r--r--dev-python/pyfakefs/pyfakefs-5.9.3.ebuild2
-rw-r--r--dev-python/pyglet/pyglet-2.1.9.ebuild2
-rw-r--r--dev-python/pyicu/pyicu-2.15.3.ebuild2
-rw-r--r--dev-python/pylint/Manifest1
-rw-r--r--dev-python/pylint/pylint-4.0.2.ebuild85
-rw-r--r--dev-python/pyparsing/pyparsing-3.2.5.ebuild2
-rw-r--r--dev-python/pytest-check/pytest-check-2.5.4.ebuild2
-rw-r--r--dev-python/pytest-mock/pytest-mock-3.15.1.ebuild2
-rw-r--r--dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild2
-rw-r--r--dev-python/pytest-subtests/Manifest2
-rw-r--r--dev-python/pytest-subtests/pytest-subtests-0.15.0.ebuild32
-rw-r--r--dev-python/pytest/pytest-8.4.2.ebuild2
-rw-r--r--dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild2
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-5.7.0.ebuild2
-rw-r--r--dev-python/python-novaclient/python-novaclient-18.11.0.ebuild2
-rw-r--r--dev-python/pytools/pytools-2025.2.4.ebuild2
-rw-r--r--dev-python/pyzmq/pyzmq-27.1.0.ebuild2
-rw-r--r--dev-python/rdflib/rdflib-7.2.1.ebuild2
-rw-r--r--dev-python/regex/Manifest2
-rw-r--r--dev-python/regex/regex-2025.8.29.ebuild32
-rw-r--r--dev-python/regex/regex-2025.9.1.ebuild32
-rw-r--r--dev-python/regex/regex-2025.9.18.ebuild2
-rw-r--r--dev-python/reportlab/reportlab-4.4.4.ebuild2
-rw-r--r--dev-python/requests-file/Manifest1
-rw-r--r--dev-python/requests-file/requests-file-3.0.1.ebuild29
-rw-r--r--dev-python/restructuredtext-lint/restructuredtext-lint-1.4.0.ebuild2
-rw-r--r--dev-python/s3transfer/s3transfer-0.14.0.ebuild2
-rw-r--r--dev-python/secretstorage/secretstorage-3.4.0.ebuild2
-rw-r--r--dev-python/selenium/selenium-4.35.0.ebuild2
-rw-r--r--dev-python/smartypants/smartypants-2.0.2.ebuild2
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-27.28.1.ebuild93
-rw-r--r--dev-python/starlette/starlette-0.48.0.ebuild2
-rw-r--r--dev-python/tempest/tempest-45.0.0.ebuild2
-rw-r--r--dev-python/towncrier/towncrier-25.8.0.ebuild2
-rw-r--r--dev-python/tox/tox-4.30.2.ebuild2
-rw-r--r--dev-python/trio/trio-0.31.0.ebuild2
-rw-r--r--dev-python/trove-classifiers/trove-classifiers-2025.9.11.17.ebuild2
-rw-r--r--dev-python/twine/twine-6.2.0.ebuild2
-rw-r--r--dev-python/typer/Manifest4
-rw-r--r--dev-python/typer/typer-0.20.0.ebuild (renamed from dev-python/typer/typer-0.19.1.ebuild)0
-rw-r--r--dev-python/types-gdb/types-gdb-16.3.0.20250920.ebuild2
-rw-r--r--dev-python/urwid/urwid-3.0.3.ebuild2
-rw-r--r--dev-python/uv/uv-0.9.4.ebuild2
-rw-r--r--dev-python/uvicorn/uvicorn-0.36.0.ebuild2
-rw-r--r--dev-python/vector/Manifest3
-rw-r--r--dev-python/vector/vector-1.7.0.ebuild (renamed from dev-python/vector/vector-1.6.2.ebuild)22
-rw-r--r--dev-python/xcffib/xcffib-1.10.0.ebuild2
-rw-r--r--dev-python/xlsxwriter/xlsxwriter-3.2.9.ebuild2
-rw-r--r--dev-python/xvfbwrapper/Manifest1
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild26
-rw-r--r--dev-python/zc-lockfile/zc-lockfile-4.0.ebuild2
-rw-r--r--dev-python/zeep/zeep-4.3.2.ebuild2
-rw-r--r--dev-python/zlib-ng/zlib-ng-1.0.0.ebuild2
-rw-r--r--dev-python/zope-component/zope-component-7.0.ebuild2
-rw-r--r--dev-python/zope-configuration/zope-configuration-7.0.ebuild2
-rw-r--r--dev-python/zope-event/zope-event-6.0.ebuild2
-rw-r--r--dev-python/zope-hookable/zope-hookable-8.0.ebuild2
-rw-r--r--dev-python/zope-interface/zope-interface-8.0.ebuild2
-rw-r--r--dev-python/zope-schema/zope-schema-8.0.ebuild2
-rw-r--r--dev-python/zstandard/zstandard-0.25.0.ebuild2
148 files changed, 1459 insertions, 298 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index d0b06a07cc40..eabfe35fb89a 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,2 +1,4 @@
DIST aiohttp-3.12.15.tar.gz 7823716 BLAKE2B b7e69e24d961cf1897f650987e0214b083ab5557f4fb3b7046ebf3b348138e603bd3dea1fc4c3250b8fef1d966a77665d24af64a600d09b1410b16c467144731 SHA512 055176006825f86dc2b5f31355a4da60e288c844770ac8c6312d00b308f6eba02bc31fee5b0c30f552c0aabf597c8dfa54f485d87b65169f1eb637ea29470d56
DIST aiohttp-3.13.0.tar.gz 7832348 BLAKE2B 14f482a2f72197ebfc4b841b45d73833c0037443706b12fb7b945a0a54a54964019964d500013a1abfe74fbd49f439d936a2628c33401fddce48642f4ee8602f SHA512 9ed39fa35250e40efaee3ce9be0f3cd9a0fd6b4c5ec2a3c67c173e23153307fc958570d8530ea3919a5db3cd452102d0c81bb3fb127d51b224658e1264a5b73c
+DIST aiohttp-3.13.1.tar.gz 7835344 BLAKE2B 5d0d55738a0cb7d0da3f8cc31ea6d5e9817a118e6caa8387ef1eb47e05e4a5e0b0877c8ba1f383c0ce45342f039dd4d20e963f78d51106059fa23fc867c6e542 SHA512 3c990f4a5da60454a61b5907e877ad65ddf928a6bba659a6fb3cc7982ca9b5e6e0f70a050da19e580f32f7744bc29027901c677815c960f151e0c16675d64ff4
+DIST aiohttp-3.13.1.tar.gz.provenance 9289 BLAKE2B a2a68438bc1c5f031e0be251396b0cf4688798d63cf72a8201eccd41c29ecdcc4e3171c0f368019640ffbf92e62e973314645c2493ed942422b52edb91e5e97b SHA512 47dc8a2a0df31d9e280a93268f0bc73d97d80e9f41d2faf9d4fd1117f055fa727ce092e3801e6ce35e2b63d1272dc11a417cb4d68015c43fa2168b873f5f9d3a
diff --git a/dev-python/aiohttp/aiohttp-3.13.1.ebuild b/dev-python/aiohttp/aiohttp-3.13.1.ebuild
new file mode 100644
index 000000000000..391accd5bfd4
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.13.1.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/aio-libs/aiohttp
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="HTTP client/server for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/aiohttp/
+ https://pypi.org/project/aiohttp/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="+native-extensions test-rust"
+
+DEPEND="
+ native-extensions? (
+ $(python_gen_cond_dep '
+ net-libs/llhttp:=
+ ' 'python3*')
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/aiosignal-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ native-extensions? (
+ >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/blockbuster[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/isal[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ dev-python/zlib-ng[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/backports-zstd[${PYTHON_USEDEP}]
+ ' 3.11 3.12 3.13)
+ www-servers/gunicorn[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( pytest-{mock,xdist} )
+EPYTEST_RERUNS=5
+: ${EPYTEST_TIMEOUT:=180}
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # increase the timeout a little
+ sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
+ # xfail_strict fails on py3.10
+ sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die
+ sed -i -e 's:-Werror::' Makefile || die
+ # remove vendored llhttp
+ rm -r vendor || die
+}
+
+python_configure() {
+ # check for .install-cython, so that we do this only once
+ if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] &&
+ use native-extensions
+ then
+ # force rehashing first
+ emake requirements/.hash/cython.txt.hash
+ > .update-pip || die
+ > .install-cython || die
+ emake cythonize
+ fi
+}
+
+python_compile() {
+ local -x AIOHTTP_USE_SYSTEM_DEPS=1
+ # implicitly disabled for pypy3
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # proxy is not packaged
+ tests/test_proxy_functional.py
+ # python_on_whales is not packaged
+ tests/autobahn/test_autobahn.py
+ # benchmarks
+ tests/test_benchmarks_client.py
+ tests/test_benchmarks_client_request.py
+ tests/test_benchmarks_client_ws.py
+ tests/test_benchmarks_cookiejar.py
+ tests/test_benchmarks_http_websocket.py
+ tests/test_benchmarks_http_writer.py
+ tests/test_benchmarks_web_fileresponse.py
+ tests/test_benchmarks_web_middleware.py
+ tests/test_benchmarks_web_response.py
+ tests/test_benchmarks_web_urldispatcher.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_client_session.py::test_client_session_timeout_zero
+ tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_nonzero_passed
+ tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection
+ tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_zero_not_passed
+ tests/test_client_functional.py::test_invalid_idna
+ # broken by irrelevant deprecation warnings
+ tests/test_circular_imports.py::test_no_warnings
+ )
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_cookiejar.py::test_pickle_format
+ # different exception message
+ tests/test_client_functional.py::test_aiohttp_request_coroutine
+ )
+ ;;
+ esac
+
+ # upstream unconditionally blocks building C extensions
+ # on PyPy3 but the test suite needs an explicit switch
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ rm -rf aiohttp || die
+ epytest -m "not internal and not dev_mode"
+}
diff --git a/dev-python/arpeggio/arpeggio-2.0.3.ebuild b/dev-python/arpeggio/arpeggio-2.0.3.ebuild
index 14d2c958d5e3..1e7a2e8f5db4 100644
--- a/dev-python/arpeggio/arpeggio-2.0.3.ebuild
+++ b/dev-python/arpeggio/arpeggio-2.0.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/array-api-compat/array-api-compat-1.12.0.ebuild b/dev-python/array-api-compat/array-api-compat-1.12.0.ebuild
index d7a0bfa2d21a..689683e7b933 100644
--- a/dev-python/array-api-compat/array-api-compat-1.12.0.ebuild
+++ b/dev-python/array-api-compat/array-api-compat-1.12.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 arm64"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/backports-zstd/Manifest b/dev-python/backports-zstd/Manifest
new file mode 100644
index 000000000000..d57e773fbfa9
--- /dev/null
+++ b/dev-python/backports-zstd/Manifest
@@ -0,0 +1,2 @@
+DIST backports_zstd-1.0.0.tar.gz 995991 BLAKE2B 6aa424ac191db255ed93e31a0c23c3645af1c67120f6e3c5757d4f4d8479d4a448e43c4d96d8c8c075307d7e8840f9aa380dd6940574240c86e55a3e96a1f62b SHA512 efeab141279ed2b0ab4eda3a32685c3da0fbc970c34bea63694b0d23c378a2c9661ad29cc6059edf9d89929f70e9b25e0f527b4b58ede0bbb64a24ca369c5fa0
+DIST backports_zstd-1.0.0.tar.gz.provenance 9489 BLAKE2B 6e9d39b29faae7a72934f14070db60b5e8464555cc77005e02088a8c0d53fd870e1c2e1d63eee8658d48ae569dcf6de1fd5ffaa81527fd1317189c06d29397db SHA512 87047ee17a00df0f6173d49131ec033f7811b825c0d95611bfde9a52d4a3248b94a2960f5bb55b4df75ad9b15502294d68d7f3ae0730b33d19e8dd6fa1fee328
diff --git a/dev-python/backports-zstd/backports-zstd-1.0.0-r1.ebuild b/dev-python/backports-zstd/backports-zstd-1.0.0-r1.ebuild
new file mode 100644
index 000000000000..fe106afa50bf
--- /dev/null
+++ b/dev-python/backports-zstd/backports-zstd-1.0.0-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN/-/.}
+PYPI_VERIFY_REPO=https://github.com/Rogdham/backports.zstd
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Backport of PEP-784: adding Zstandard to the standard library"
+HOMEPAGE="
+ https://github.com/Rogdham/backports.zstd/
+ https://pypi.org/project/backports.zstd/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+DEPEND="
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ local PATCHES=(
+ # https://github.com/Rogdham/backports.zstd/pull/54
+ "${FILESDIR}/${P}-py313.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # remove -flto and other forced cflags
+ sed -i -e 's:kwargs\["extra.*:pass:' setup.py || die
+
+ DISTUTILS_ARGS=(
+ --system-zstd
+ )
+
+ # remove namespace file
+ rm src/python/backports/__init__.py || die
+}
+
+python_test() {
+ eunittest tests
+}
diff --git a/dev-python/backports-zstd/files/backports-zstd-1.0.0-py313.patch b/dev-python/backports-zstd/files/backports-zstd-1.0.0-py313.patch
new file mode 100644
index 000000000000..37cbfef8570f
--- /dev/null
+++ b/dev-python/backports-zstd/files/backports-zstd-1.0.0-py313.patch
@@ -0,0 +1,31 @@
+From be7548ac9a08de3ae1a8cf3c47630336d65b656f Mon Sep 17 00:00:00 2001
+From: Rogdham <contact@rogdham.net>
+Date: Sun, 19 Oct 2025 09:06:31 +0200
+Subject: [PATCH] fix: assertions on 3.13
+
+---
+ src/c/compat/backports_zstd_edits.h | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/c/compat/backports_zstd_edits.h b/src/c/compat/backports_zstd_edits.h
+index 1e4b9f7..4cf076c 100644
+--- a/src/c/compat/backports_zstd_edits.h
++++ b/src/c/compat/backports_zstd_edits.h
+@@ -107,12 +107,14 @@ static inline int BACKPORTSZSTD_LOCK_isLocked(PyThread_type_lock *mp)
+ #define BACKPORTSZSTD_LOCK_lock PyMutex_Lock
+ #define BACKPORTSZSTD_LOCK_unlock PyMutex_Unlock
+ #define BACKPORTSZSTD_LOCK_free(l)
++#if PY_VERSION_HEX < 0x030E0000 // Python 3.13 and below
+ static inline int BACKPORTSZSTD_LOCK_isLocked(PyMutex *lp)
+ {
+- // note: this function is only used in asserts
+- // PyMutex_IsLocked is not exposed publicly https://github.com/python/cpython/issues/134009
+- Py_FatalError("Not implemented");
++ return (_Py_atomic_load_uint8(&lp->_bits) & _Py_LOCKED) != 0;
+ }
++#else // Python 3.14 and above
++#define BACKPORTSZSTD_LOCK_isLocked PyMutex_IsLocked
++#endif
+
+ #endif /* !BACKPORTSZSTD_LOCK */
+
diff --git a/dev-python/backports-zstd/metadata.xml b/dev-python/backports-zstd/metadata.xml
new file mode 100644
index 000000000000..7ad11570cc7d
--- /dev/null
+++ b/dev-python/backports-zstd/metadata.xml
@@ -0,0 +1,9 @@
+<?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>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 59d69e323021..384efe420dfc 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -11,3 +11,4 @@ DIST boto3-1.40.52.gh.tar.gz 1010268 BLAKE2B 83b1ca1b5b65bd8e058fea5a97dc37b6bef
DIST boto3-1.40.53.gh.tar.gz 1011133 BLAKE2B c2b93b36d9ed83c442ee2f2f873668947c06f27122b77eec925ca23b52753ac2056dbfb49aed7793b95c8bba7d8bf5b19df85f9bd7160270f72039dd4c61e412 SHA512 b595ec51307c5d218a25fe88cd26f01786d4b0afb7b160f6c42f256f7fdd1789ed9a05d0b2e77c4967384413328caa7fda43981567ad562ba3230e25844f92ae
DIST boto3-1.40.54.gh.tar.gz 1012193 BLAKE2B 11f293c1a8737992b44b152db1ed3589ce76f29b22be5d043f6cced42c3134e0b788b12d1fc1c114c7e8a7a964c56fc06dd46a3356d0fdd899f257fd245e73ee SHA512 1c5162a07d731ca1cea80a2b6a5e1d1484357ad238de8108dd3d66a046f0180d4fce74cf8a2590cd6fc3baa21e4b68b196268bb9ac558e530ea6a2e0fdaaa808
DIST boto3-1.40.55.gh.tar.gz 1013401 BLAKE2B 86de575af2244a1b6ec317dac61a71ba2b5eee42f28ca3b3d1ded552cbad10bb22e96ae6bf49212be0ee5fb220342a8829213fff9ec19ce046aae0262f791ee9 SHA512 b9fe63173e21303d688add1a519b589072313d9f62d474418a0f99eee50a92d595e36e4f1d9cd8259884c9c4c21b29c55242c9583c21b7e8a4f0bdcd76c79841
+DIST boto3-1.40.56.gh.tar.gz 1013934 BLAKE2B 6d98605fd3fcdce094c2fdd9179ea5113cc3d1e159d0f46bc2751ae0799403789a995abdf27ce3c87d4870019d038d9a83317375ed2fb23e7a537403fc104633 SHA512 88b3799ab915fc057ca19279286940f705efeba5a891988bbf6da962e1743b5298f60ef2db6c0a319b75599b3503c0b48beb0dbb6381e6ab430c35b5730c451e
diff --git a/dev-python/boto3/boto3-1.40.56.ebuild b/dev-python/boto3/boto3-1.40.56.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.56.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.14.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index d86ede46fd9b..0dd18332163c 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -11,3 +11,4 @@ DIST botocore-1.40.52.gh.tar.gz 15233376 BLAKE2B 42b98caa71139cc3893a99216caa5eb
DIST botocore-1.40.53.gh.tar.gz 15251620 BLAKE2B ff4e660e6b2ab94e1ddc2f7a8c9a888ebc9be3833f672e49dc7fa9960f51caddf6e1ad5d0a7453a8948bcd016f2bbe995c1a06509341713c863b64e92fef01b0 SHA512 f64a034fa916b7cd49a21a3248b888c63635bafbce3034ca1ee144f80a92ccc94ac7f51cb5a459399449259d2f20d6f39efb126d6c19aa6c8200dd87e190e772
DIST botocore-1.40.54.gh.tar.gz 15251739 BLAKE2B ca4f84e88e76bf2ea9b88833b856b4d6f19b3b973e12bb4b6ffbec2004e6586cf607f410983762d2fefdae9f7d6460abba6362dfcf46887da0acdf249260fc26 SHA512 14b995a497dc77aa8f95a51a77862d6b0a8298f1ff526bc87c4c919a1073c834efd66040ac91279eb3932b81767e09bc360cc11b80951ab3fc2d96b89382fdc2
DIST botocore-1.40.55.gh.tar.gz 15255349 BLAKE2B 22516d43d5737d92bbead967a13b4ce72fc6d35d928f9ac6d9906505412813b1649a5b5e73d14f90d7650682568ca3545e4b4b70b9908570725f4c3e2a4adaee SHA512 175dafe4d80c9283cfd4e81d74e59ad694356438b1a32c765baa78686b2afeb3f7e6083e76cdf488efcec0fbfb26967a408cb9a9cb48d0a0feb37977254a14a6
+DIST botocore-1.40.56.gh.tar.gz 15258987 BLAKE2B a7c859f57d02f303a241e8cde8527fa91b839deeb6696ad59128766a3c1d80a7aadfc4c48c6ffe408a0fcb10062b981987e7cc965f22802e1596479426e7a830 SHA512 40ea7244eaf3c81dc45b2d0999d080b0804382b8b102886e66493d618c84210dffa3d19bc7e2eb246a3523bfc22fefdaf28065d96a34c4d8fcff7354e1c632c1
diff --git a/dev-python/botocore/botocore-1.40.56.ebuild b/dev-python/botocore/botocore-1.40.56.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.56.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/bottleneck/bottleneck-1.6.0.ebuild b/dev-python/bottleneck/bottleneck-1.6.0.ebuild
index 45ccd2de2b68..4645a55afa8e 100644
--- a/dev-python/bottleneck/bottleneck-1.6.0.ebuild
+++ b/dev-python/bottleneck/bottleneck-1.6.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
DEPEND="
>=dev-python/numpy-1.9.1:=[${PYTHON_USEDEP}]
diff --git a/dev-python/calver/Manifest b/dev-python/calver/Manifest
index b3df05ec441e..1165e80c562d 100644
--- a/dev-python/calver/Manifest
+++ b/dev-python/calver/Manifest
@@ -1 +1,3 @@
+DIST calver-2025.10.20.tar.gz 8101 BLAKE2B 6fd52c50abe72a3f985289b5528ef302ba5dae9d51fb7a857e17437210ddd0fd979c7032592fc3dc5963f3078877add0d8f14d2de0dc5dc3b064f9918f3d4db5 SHA512 7fd26bc607328ee62b4bc8f19eb356c2b5f3d604c4ed7ea7a345b48e452e4cb3c64db9100ed8087c00e03b0cb0bee7aa69b93cca0f1ed9fa1dc1150a63799743
+DIST calver-2025.10.20.tar.gz.provenance 9521 BLAKE2B 2a78d4687db73577ece93bcd24be0782b3c85d1f8e2b104322b15ff8ea8473f6d035c704866356231d3281d6ac6d2e4164ace8da5241fbce99d4fddc0180120e SHA512 4058209b299076b546c210636b4abb6a22dbd3c85bc4e4c3710cad4a5e22d7c111f3eb7adb248c29e3966676eba7dc03b0e8b5003071aa6838d94398f1f88034
DIST calver-2025.4.17.tar.gz 8082 BLAKE2B af80804f29bdcafecd65f771da6e5ba7d28b3a47324bc9203984827bc5588ca6222f242cad23d8d67e921141ab5cee3ba00827d88cc85a8817bdcdabbab44b85 SHA512 08e925ce646d1ec64b8992603df5af5c7ff41660ee033c9d4ad7d4a9252493e5578af4cf5e9de40bbc6c17c65e7d37f6b323f8d9821c10e874069f6f16d14ddc
diff --git a/dev-python/calver/calver-2025.10.20.ebuild b/dev-python/calver/calver-2025.10.20.ebuild
new file mode 100644
index 000000000000..ac46a1181e32
--- /dev/null
+++ b/dev-python/calver/calver-2025.10.20.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/di/calver
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Setuptools extension for CalVer package versions"
+HOMEPAGE="
+ https://github.com/di/calver/
+ https://pypi.org/project/calver/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? (
+ dev-python/pretend[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/cattrs/cattrs-25.2.0.ebuild b/dev-python/cattrs/cattrs-25.2.0.ebuild
index 58945b0a316f..62c7fc845f2c 100644
--- a/dev-python/cattrs/cattrs-25.2.0.ebuild
+++ b/dev-python/cattrs/cattrs-25.2.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/cffi/cffi-2.0.0.ebuild b/dev-python/cffi/cffi-2.0.0.ebuild
index 225a2fdb86df..3deba4e9e64f 100644
--- a/dev-python/cffi/cffi-2.0.0.ebuild
+++ b/dev-python/cffi/cffi-2.0.0.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
# Needs recent libffi for HPPA fixes
DEPEND="
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index 0a27b50f01b5..006c05ea3c64 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -14,6 +14,8 @@ DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da09768
DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
DIST llvm-project-21.1.3.src.tar.xz 158943752 BLAKE2B ad9ee083584cb72fea3722feb518f6c933c3a34ba91b1ca8b724f461aa744475a783512dd6f0ab60d533c73b37e42b32a06f905d4869f770a68180649656df44 SHA512 d3058e7c18ada2a6a6192c7e75970406520e0d2ba390dba3b89e99f05959198fd2976d38c200f8e6af37fb569d866b6367bf6e0e249fe4b340dfab74499e5723
DIST llvm-project-21.1.3.src.tar.xz.sig 119 BLAKE2B 675873fb6ce9a6b682d0ecdc5ec6ca8691d7f8f6bc72e6039a90c21f99d753a4b595f06676f9b5c1a23ebce872320cc67bd1687e8324f163ecbc4f22032bdf52 SHA512 d218a4071451e32a77890dd2e7de7a3b8a310ca85c7e6d90b88d85bad128979cf6866c9d772b880b50da2ec117832e77ba162049478c1deb7b0299cae008151a
+DIST llvm-project-21.1.4.src.tar.xz 158939036 BLAKE2B b87eff4e3cb881d86aafcfdb46d85344ad6ae92d5c1e72c05282f375b4b11844756d0e6b4d0da5e522a348170a5da9842917737e272b758d8dde7e1fb2bee135 SHA512 a8c0883abe7c5a3e55ca7ed0fd974fae4351184a0b0df18295a982ca8ddb0f8d167353564204ed00f0cd9a1d8baef7074c0b39a99e0b5c52ced6bbee73dde3da
+DIST llvm-project-21.1.4.src.tar.xz.sig 119 BLAKE2B c74a56448ad3e325234fcbe7d62ea888831e1e7696afb5aa5a185ea76a0880abe2d755f9e69a07760bbf9380534c3bb96c920ed6359ffd0f5f51c962d1494dcf SHA512 4812c2e3861aa3b726d842c3ca259b19ef1aa531fed9f6f47099483de91de2b2a165f40d243f6f40f2eea749741d5f8b7090f394399c56db02053f308921077a
DIST llvm-project-6a0e5b2fd7c340a872ae1e011cfb9de0d188feba.tar.gz 249848364 BLAKE2B 5d8eadfd43e1a131d7c061968c7d306b0537c0983c9366973d5b8d1bab4b384d1319604e12f097e235e077aefcd8b9c8395c3e16b53612f9f06fb11ba358aad6 SHA512 d931218ca1dafab09525f862f4b993cb6dde2f8738092e84b87542318d05c81fd41499098833f8629501c19f4fa741a35fc6447631f1c8830b2bb0b2cb64cc43
DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924
DIST llvm-project-b1e29ec3b73b9dd06656c7e30ace597ff72cde70.tar.gz 248630276 BLAKE2B ea1532ba05661de37f3d6bac6643f2f3000710f4c4b8c508c9b980da64964e60cd46d0b8e18d666b75089f8ad8e2f653ac6098b4054ce8adf7cb0c36220cdf29 SHA512 36471abffd9202c637aa89c53072f0f286beffad2d3908ad50bb4c395a1be0c8138ddcbd67e0c764f59842bcc6c6c31f04a14986c7145c369217a156885ac506
diff --git a/dev-python/clang/clang-21.1.4.ebuild b/dev-python/clang/clang-21.1.4.ebuild
new file mode 100644
index 000000000000..f633fe0eda2f
--- /dev/null
+++ b/dev-python/clang/clang-21.1.4.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/click/click-8.3.0.ebuild b/dev-python/click/click-8.3.0.ebuild
index b84c6a070493..af2848300c8b 100644
--- a/dev-python/click/click-8.3.0.ebuild
+++ b/dev-python/click/click-8.3.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
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="examples"
distutils_enable_sphinx docs \
diff --git a/dev-python/coverage/coverage-7.10.6.ebuild b/dev-python/coverage/coverage-7.10.6.ebuild
index d7179988e088..327235669a93 100644
--- a/dev-python/coverage/coverage-7.10.6.ebuild
+++ b/dev-python/coverage/coverage-7.10.6.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
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"
BDEPEND="
diff --git a/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild
index 0e3551ba7712..08562f507028 100644
--- a/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild
+++ b/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/django-otp/Manifest b/dev-python/django-otp/Manifest
index 4abaeabd0108..15176290ecc2 100644
--- a/dev-python/django-otp/Manifest
+++ b/dev-python/django-otp/Manifest
@@ -1 +1,2 @@
DIST django_otp-1.6.1.tar.gz 74134 BLAKE2B fcd3fcdab38f98cef3330ad36008f74f58134a1ea82440caa56a901575ad63805242969689e0381ae0823d70d4a7790c3e9703b6a8d1e3fa30bf10aa5be1bfc2 SHA512 7fdcbc53e7c210b4d8332b6facfefa7bd3d4f51df30f180be3936474da5a2bc604841e964114d2a8826a85839de2088e0e189779c47f7ab98473e575b5e3ffdf
+DIST django_otp-1.6.2.tar.gz 74228 BLAKE2B b4abf0d0aa9a56632d0d498f3d5006ab7a90c4fff73c431f2c7489b6ad5e6452071fb18ea6b69fb92ffe8e5f0c9a736b30d5b883294769ddee901e7a86b766d8 SHA512 39015bec2c2c306cf247bf12ed33a6b84314f6155f730368c50d5354c09315977cc6cc2653562c0987641cc2820c7a4149b4c85eac53baef8c80f59257c8fdf3
diff --git a/dev-python/django-otp/django-otp-1.6.2.ebuild b/dev-python/django-otp/django-otp-1.6.2.ebuild
new file mode 100644
index 000000000000..e6bf528bf80e
--- /dev/null
+++ b/dev-python/django-otp/django-otp-1.6.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Django framework adding two-factor authentication using one-time passwords"
+HOMEPAGE="
+ https://github.com/django-otp/django-otp/
+ https://pypi.org/project/django-otp/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/django-4.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ || (
+ dev-python/qrcode[${PYTHON_USEDEP}]
+ dev-python/segno[${PYTHON_USEDEP}]
+ )
+ ${RDEPEND}
+ )
+"
+
+python_test() {
+ local -x PYTHONPATH=test:${PYTHONPATH}
+ local -x DJANGO_SETTINGS_MODULE=test_project.settings
+ "${EPYTHON}" -m django test -v 2 django_otp ||
+ die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/dogpile-cache/dogpile-cache-1.4.1.ebuild b/dev-python/dogpile-cache/dogpile-cache-1.4.1.ebuild
index 97ba4ad5c37e..ec42511dc708 100644
--- a/dev-python/dogpile-cache/dogpile-cache-1.4.1.ebuild
+++ b/dev-python/dogpile-cache/dogpile-cache-1.4.1.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/decorator-4.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/emoji/emoji-2.15.0.ebuild b/dev-python/emoji/emoji-2.15.0.ebuild
index cfad6db5486e..f16c08d5ba06 100644
--- a/dev-python/emoji/emoji-2.15.0.ebuild
+++ b/dev-python/emoji/emoji-2.15.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/expandvars/expandvars-1.1.2.ebuild b/dev-python/expandvars/expandvars-1.1.2.ebuild
index 1268f996c616..d98212d21a8f 100644
--- a/dev-python/expandvars/expandvars-1.1.2.ebuild
+++ b/dev-python/expandvars/expandvars-1.1.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/faker/faker-37.8.0.ebuild b/dev-python/faker/faker-37.8.0.ebuild
index 40c6b84d6c57..f0658a4b84b5 100644
--- a/dev-python/faker/faker-37.8.0.ebuild
+++ b/dev-python/faker/faker-37.8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
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/tzdata[${PYTHON_USEDEP}]
diff --git a/dev-python/feedparser/feedparser-6.0.12.ebuild b/dev-python/feedparser/feedparser-6.0.12.ebuild
index 0af316c49ddf..d767126bab1f 100644
--- a/dev-python/feedparser/feedparser-6.0.12.ebuild
+++ b/dev-python/feedparser/feedparser-6.0.12.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/sgmllib3k[${PYTHON_USEDEP}]
diff --git a/dev-python/flask-compress/Manifest b/dev-python/flask-compress/Manifest
index 5de3cb79f54e..95c40387d7e8 100644
--- a/dev-python/flask-compress/Manifest
+++ b/dev-python/flask-compress/Manifest
@@ -1,2 +1,3 @@
DIST flask_compress-1.17.tar.gz 15733 BLAKE2B f548983e03b66cfbec55726ab14b757d3a079842a9de46e294305409bb1f655478567c43b992b79c8e5c46f50f1f044f2bc8602a683f71a944b4c05f0f33df39 SHA512 58d66f7be21117ad2769743c148b7df6981634341d1ffa1c6c71aabd86119364e85a8242297e6f369b02ecf09ccdd3980806e91c869754f917d0bd83ae7b9b5d
DIST flask_compress-1.18.tar.gz 16571 BLAKE2B 82a4fae8551136e20befb4a8cc1f26730629e851a555db941023fa98f45813eb3e1e036121daea8713f669b70aceeb2b795ee6995882f4b3dade6af3db5cfcf6 SHA512 a070fca45d0905dabf336151e3014b8cd6727c5fd7b3f157ab5b6fba1571ca05ac973c97727dc787abe9d35957b51e539b72edde8b291954d8fb7ee8919480a2
+DIST flask_compress-1.20.tar.gz 17574 BLAKE2B d7b7f2d9fccd0eab28cbb75d0349cd690bd2c36e969f0bf089bffac6ce9f65bdf7083a93ba3d83fb8ef998bf171aa1bf36cd37177f35a79e96499fc675bcb6ac SHA512 ebd168d299d7ece251033159b795ec0cb49b4469d9c498d00304c1e43a4fcc74fbab1651d9852aa6a6815e6e10a423c8b6c03202b1c156e639e563296e4b9c28
diff --git a/dev-python/flask-compress/flask-compress-1.20.ebuild b/dev-python/flask-compress/flask-compress-1.20.ebuild
new file mode 100644
index 000000000000..7b2d51f8b87d
--- /dev/null
+++ b/dev-python/flask-compress/flask-compress-1.20.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN="Flask-Compress"
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Compress responses in your Flask app with gzip"
+HOMEPAGE="
+ https://github.com/colour-science/flask-compress/
+ https://pypi.org/project/Flask-Compress/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# brotli on cpython, brotlicffi on pypy3
+RDEPEND="
+ app-arch/brotli[python,${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/backports-zstd[${PYTHON_USEDEP}]
+ ' 3.{11..13})
+"
+BDEPEND="
+ test? (
+ dev-python/flask-caching[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/fonttools/fonttools-4.60.0.ebuild b/dev-python/fonttools/fonttools-4.60.0.ebuild
index 677db2425934..03579088ee95 100644
--- a/dev-python/fonttools/fonttools-4.60.0.ebuild
+++ b/dev-python/fonttools/fonttools-4.60.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/freezegun/freezegun-1.5.5.ebuild b/dev-python/freezegun/freezegun-1.5.5.ebuild
index 81247b80ffb7..87cf8d3291e6 100644
--- a/dev-python/freezegun/freezegun-1.5.5.ebuild
+++ b/dev-python/freezegun/freezegun-1.5.5.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
RDEPEND="
>=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
diff --git a/dev-python/gfloat/gfloat-0.5.2.ebuild b/dev-python/gfloat/gfloat-0.5.2.ebuild
index ef53c69e6fe4..2952ff02f3e2 100644
--- a/dev-python/gfloat/gfloat-0.5.2.ebuild
+++ b/dev-python/gfloat/gfloat-0.5.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 arm64"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.182.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.182.0.ebuild
index c898d6e76ad0..9a86c7b8f670 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.182.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.182.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
diff --git a/dev-python/googleapis-common-protos/Manifest b/dev-python/googleapis-common-protos/Manifest
index 1bf0b3346195..204f5da46d60 100644
--- a/dev-python/googleapis-common-protos/Manifest
+++ b/dev-python/googleapis-common-protos/Manifest
@@ -1 +1,2 @@
DIST googleapis_common_protos-1.70.0.tar.gz 145903 BLAKE2B 6ea31260065b375a95c2a6ea9290fc4089449163b00230692777363edd77ae5aa65c42665309ac785f2831ad58e442a64f22419520cd87fe5ea0fa8d5a3e026f SHA512 02f5883a94ee59876d800b479e711f48367698f885cb3965f542af5f108f4858b7fd20b01c95a76c1cc792b7a3e883e68f8f0c04ef132da388c67576bce89ece
+DIST googleapis_common_protos-1.71.0.tar.gz 146454 BLAKE2B a0e1beed7a2d246371350e416bd949b5d085f9225b529beb72f4f21779932341b26676b5679593038ebc8b6beba31de8971ed6afdb53985c6ccf6b1a24ddb0b1 SHA512 6bfffadcd5119a4d942b4ba0df363d1c16e54da30692d36e9c4bd5cfb777a2388650b453530965ed25fed6de70ace749c1ad6e6c0cd9360e70e27acc9f263f84
diff --git a/dev-python/googleapis-common-protos/googleapis-common-protos-1.71.0.ebuild b/dev-python/googleapis-common-protos/googleapis-common-protos-1.71.0.ebuild
new file mode 100644
index 000000000000..1ced32ca7326
--- /dev/null
+++ b/dev-python/googleapis-common-protos/googleapis-common-protos-1.71.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python classes generated from the common protos in the googleapis repository"
+HOMEPAGE="
+ https://github.com/googleapis/python-api-common-protos/
+ https://pypi.org/project/googleapis-common-protos/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="
+ <dev-python/protobuf-7[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-3.15.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_compile() {
+ distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/gssapi/gssapi-1.10.0.ebuild b/dev-python/gssapi/gssapi-1.10.0.ebuild
index 5990c2ae7a47..ed5019110618 100644
--- a/dev-python/gssapi/gssapi-1.10.0.ebuild
+++ b/dev-python/gssapi/gssapi-1.10.0.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}"/python-${P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
dev-python/decorator[${PYTHON_USEDEP}]
diff --git a/dev-python/httplib2/httplib2-0.31.0.ebuild b/dev-python/httplib2/httplib2-0.31.0.ebuild
index 059f42610389..a2ea64666758 100644
--- a/dev-python/httplib2/httplib2-0.31.0.ebuild
+++ b/dev-python/httplib2/httplib2-0.31.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
RDEPEND="
dev-python/certifi[${PYTHON_USEDEP}]
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 05fb219eb57f..6ceebc696fae 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -8,3 +8,4 @@ DIST hypothesis-6.140.3.gh.tar.gz 9625658 BLAKE2B 4316d4aa5f4b2b2a476c6d978d0934
DIST hypothesis-6.141.0.gh.tar.gz 9626287 BLAKE2B 0bf4fcc59f7212a4ba78e052527eda19937d31bc22d311a72ee1fb934bf28fd2b1d292438e1dcd3177457b17337f6bfa8d06ee275f47cd1ee129e68833ef5f97 SHA512 f1b9125669e163c98f9c95767129d149bdd357db5adba66bb6867feffb14ab26395d1494bdd437ff18ef41e798ecda04952050b570ce9ff2e487387ca7d8d79d
DIST hypothesis-6.141.1.gh.tar.gz 9626528 BLAKE2B f7a45ec59649a616cec57f4ceb4d956a4a3c5bf7bdf264873b5244720118160b6b80309336fd58ca6714e6ba70aa9592f5e68eea4f20cd127840bbadb43d68fe SHA512 efec8874ca2f492f067156b18486deb3930b319d69f04decb99de1c01bd3b9cbcd086243b5be5620711486d94b127043a7311019adaa6b10b597f3d079aecb36
DIST hypothesis-6.142.1.gh.tar.gz 9624401 BLAKE2B 5c736f7af6fa9437699dc85387ee0383e007443b29f16786c86fad056b994d9f5a10142a59098340511f499f02759bf186b542a4522bdb3670672de14b309933 SHA512 ce72892a521ae9d7ae06949efaa04b41ee48d767fb6e8e4b375baa1ed4f9fc77ec0c49b042ccc0f5eff5ca91a60b1f563e7b32ff4f50659ecccab38d4260cca4
+DIST hypothesis-6.142.2.gh.tar.gz 9624421 BLAKE2B b211bf50f2311e8854197a7b9350248885db01efd9d11447f618cf6a4dd89fb7c41de6a3d25485f7152aa04d4e463150253b31580fd3165975f87b97e351f6d3 SHA512 cfd43aafbe45fc575ebd746b8fac4c0932fcf46b78d64f6d9e419f55a1fca05c417915a714ceb57d0e251751cfbc5b1f4db6e91b8227bedf8702b6d095bf1a96
diff --git a/dev-python/hypothesis/hypothesis-6.139.2.ebuild b/dev-python/hypothesis/hypothesis-6.139.2.ebuild
index 69da4112ef36..79d515617895 100644
--- a/dev-python/hypothesis/hypothesis-6.139.2.ebuild
+++ b/dev-python/hypothesis/hypothesis-6.139.2.ebuild
@@ -25,7 +25,7 @@ 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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cli"
RDEPEND="
diff --git a/dev-python/hypothesis/hypothesis-6.142.2.ebuild b/dev-python/hypothesis/hypothesis-6.142.2.ebuild
new file mode 100644
index 000000000000..69da4112ef36
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.142.2.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.13t)
+ EPYTEST_DESELECT+=(
+ # TODO: missing warning
+ 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns'
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]'
+ hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds
+ hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence
+ hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression
+ hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types
+ hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic
+ hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense
+ hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns
+ hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope
+ hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/inline-snapshot/Manifest b/dev-python/inline-snapshot/Manifest
index 473a62cde521..0bcb1f28ae2b 100644
--- a/dev-python/inline-snapshot/Manifest
+++ b/dev-python/inline-snapshot/Manifest
@@ -1,8 +1,7 @@
DIST inline_snapshot-0.28.0.tar.gz 348554 BLAKE2B 2c475505ee76bc79e04f7b5cd5f3ca09f53858a45f31cbd14c8357c3739a13e96b52a815fd8ee94050b72ce45cc347ecc6512ef008081f20da57efddfd7a59df SHA512 144b7987800485ddcfb03f5ed70eb86fa8cdcd0eef6c1fd17d5be05ffb8c3e2cb3b5c86b9701b1dfb126a07a3146801bd9fd97aedaeda50e368e88d243b2beef
-DIST inline_snapshot-0.29.1.tar.gz 350236 BLAKE2B 331d81993a2f06ecc9ec609587e0dfb28c3f8525e5faab09b5962f3cb5bcdf9e442d9908f0039715258bf9b3c0876ab1148738e909f065c04844a9e86e7ad1a3 SHA512 760cdaa4794742753efba8c47c60ecbd08bf2cac61753c3971506a12a81f991fbe3c250aaadba65c7856987de8048a5d6cb432d8909515517faa4621d71b32c4
-DIST inline_snapshot-0.29.2.tar.gz 2596750 BLAKE2B 7aa549af79a6b807dac628a5d7e6ed4e0c9a8b01739db68f843af47b0ca7056d18193fb9fde2f820be7521a3288ae2c16894d07011841ac548e259d83d256427 SHA512 c2197ff1681601d19793d3db0cc577dc26c494398a85a5e08712ecd8208c74d099d7669e66cbde3b1789626331c0eb7fb3d883de31d84ad2eef5bc1d8fa5b771
-DIST inline_snapshot-0.29.3.tar.gz 2596900 BLAKE2B de126916e4413245848d467042dd6cbc79e6d43225204a2df8cb96dae0dffcc822b9e26c3024fed45ea82e90c4ef5db60b6162f073df86d4d978f388685f644f SHA512 d0a6538d1fd192e149aeb68435c2b2e2b56d2ecaba776d43d2ccebb566ab15b32ff57aacfbeaa0d941d54e4a6c1146b514f36742777ccd9636db016ed98e288b
DIST inline_snapshot-0.29.4.tar.gz 2598478 BLAKE2B e9dea3721042b4cee764cc9ea79111dbbf68edc274e2b9ad30d570378b180ff0e3c3d42a914168d879b5757eb429cbd0ea1f8368bb64405ee010cb2a35063d54 SHA512 ce7e8ba83e348d1d078dc1c5d50c86b894b62cbc2c474559ec1460b73d1542aa977f0d6d6487cb3c50f17102d05808e9b579c8e051c8a6e33376a078d04e2f04
DIST inline_snapshot-0.29.4.tar.gz.provenance 9499 BLAKE2B b54184f05942c3b965fffd5cabbaa140b63e9478397bce6d4ba4e6875cb75d3349bc0743fbb05d70e13a6ab0cf85d1909b3169a5c9f4bb82b294fd9463a54d30 SHA512 d3512cb09708b241ab5a8e13f4561ac02ebd565f5c9cab858fd3ba39b805fc53e46f1758cf9a27806d2965bf0bb082f2a0151b7cd2e3d7dadd4d16d13e11accb
DIST inline_snapshot-0.30.0.tar.gz 2598970 BLAKE2B 41d4fef8d3c27037d69b1ab1b411040af2d2a90755996488605323526614811ce5321db9231c9ff8095ab75ed778a71363b4f9a47c54b7479c5d0fe9a1ed4ce2 SHA512 2eb143bd2f1c73bf831a5ad3213958c0f98ea4603dd4315ed51233334923f27c106c8bf0f4c78ed0279c2cdd3dbae8326ccd05dd9ad991375a8f0e6497e9c941
DIST inline_snapshot-0.30.0.tar.gz.provenance 9291 BLAKE2B e5297037e80ec97cea84895d1aca6faa6398be2b5344dbc384f3846a1fd6545f3599a3c05d0eea0c15dc12d9e0d31fc7af0ebdf1720775a2ebcecd1af6b276a3 SHA512 de61f68d54ea64d7dfa491d04d835077ddf6f8f360124fd86f19f18fa00af5adf38d05e33adf1da58b78a2c72747dfda23ae1dbf03e16c6bad240c1e09a08039
+DIST inline_snapshot-0.30.1.tar.gz 2599126 BLAKE2B 34f1ed7e758b908eb91e2018ae3a626016fd3e4b0c2cfb0bbae2eec14b376c1aab36b67ecc1624e5dd48b5bb9f67762215b2420360e40c8b55c60b07c7c5a100 SHA512 44a490c0b544805927554cdfc2760e114fdd11214db3d0bab1652a2861504bd5a375126b08a598a1a6c1a5fb80cf87827f1b70877b72b2006bba0131c7a0ebdb
+DIST inline_snapshot-0.30.1.tar.gz.provenance 9201 BLAKE2B 79fb91a8ad198cb419fc813fecc9d333db6b14edffb7e95ab48c2c05da921f1dba11bb81e9c66bf33604c02fdd3501551a0c84ae8acd5fd071e75826253f9d07 SHA512 d29606090e061ad8eb5539b256c170bb85cb8e7bcd1786438b9db4f4f399a9f6c224791ced9c1cf4510426c7a393c29996f2892bbf7e5455faf90320eff381d0
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.29.2.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.29.2.ebuild
deleted file mode 100644
index 2dbf9680afc3..000000000000
--- a/dev-python/inline-snapshot/inline-snapshot-0.29.2.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2024-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Create and update inline snapshots in your Python tests"
-HOMEPAGE="
- https://15r10nk.github.io/inline-snapshot/
- https://github.com/15r10nk/inline-snapshot/
- https://pypi.org/project/inline-snapshot/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
- >=dev-python/executing-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}]
- >=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/attrs[${PYTHON_USEDEP}]
- >=dev-python/black-23.3.0[${PYTHON_USEDEP}]
- >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/mypy[${PYTHON_USEDEP}]
- ' 'python*')
- >=dev-python/pydantic-2[${PYTHON_USEDEP}]
- >=dev-python/pytest-freezer-0.4.8[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-3.14.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-subtests-0.11.0[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-{freezer,mock,subtests,xdist} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires pyright
- 'tests/test_typing.py::test_typing_args[pyright]'
- 'tests/test_typing.py::test_typing_call[pyright]'
- # TODO
- tests/test_formating.py::test_format_command_fail
- )
-
- local -x COLUMNS=80
- local -x PYTHONPATH=${S}/src
- epytest
-}
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.29.3.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.29.3.ebuild
deleted file mode 100644
index 2dbf9680afc3..000000000000
--- a/dev-python/inline-snapshot/inline-snapshot-0.29.3.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2024-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Create and update inline snapshots in your Python tests"
-HOMEPAGE="
- https://15r10nk.github.io/inline-snapshot/
- https://github.com/15r10nk/inline-snapshot/
- https://pypi.org/project/inline-snapshot/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
- >=dev-python/executing-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}]
- >=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/attrs[${PYTHON_USEDEP}]
- >=dev-python/black-23.3.0[${PYTHON_USEDEP}]
- >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/mypy[${PYTHON_USEDEP}]
- ' 'python*')
- >=dev-python/pydantic-2[${PYTHON_USEDEP}]
- >=dev-python/pytest-freezer-0.4.8[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-3.14.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-subtests-0.11.0[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-{freezer,mock,subtests,xdist} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires pyright
- 'tests/test_typing.py::test_typing_args[pyright]'
- 'tests/test_typing.py::test_typing_call[pyright]'
- # TODO
- tests/test_formating.py::test_format_command_fail
- )
-
- local -x COLUMNS=80
- local -x PYTHONPATH=${S}/src
- epytest
-}
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.29.1.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.30.1.ebuild
index 2dbf9680afc3..0a032b3e9337 100644
--- a/dev-python/inline-snapshot/inline-snapshot-0.29.1.ebuild
+++ b/dev-python/inline-snapshot/inline-snapshot-0.30.1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/15r10nk/inline-snapshot
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/insipid-sphinx-theme/Manifest b/dev-python/insipid-sphinx-theme/Manifest
index 3526152b8a53..9a5dbbbbada9 100644
--- a/dev-python/insipid-sphinx-theme/Manifest
+++ b/dev-python/insipid-sphinx-theme/Manifest
@@ -1 +1,3 @@
DIST insipid-sphinx-theme-0.4.2.tar.gz 73415 BLAKE2B 0f17fc5fec19926ec6e134b716ef36617e0be66d771c76237923b3f77508b1fc1fb39b790d5ac72c1cff61e4f7a484b42bd6b0eec954afac1d758284cc073ed3 SHA512 934208afcc88a72b188c64f147ff0bc6508ad1b8aa5ee061620ec53725d2a9781ea503a16fb42db3f2bcd45774d3a9f611de251f71ca0b6162cf0d6653a1a058
+DIST insipid_sphinx_theme-0.4.3.tar.gz 111846 BLAKE2B b6ae6ae7fc38bc7bf024f7cbdb2ae02eaedfe96567886281d6241034829c1405e94016451f463657f1ea638e5cec57ae04d4d7517e0beb3ba177d889877b7151 SHA512 63b39f082f21cc5f5ee927dab2bb40b36605bce30399e7910927c6106dbf293b33c9e21308b338888b67ef8c823668a479fb1f4ffaeeb62401aca567fc4d8a54
+DIST insipid_sphinx_theme-0.4.3.tar.gz.provenance 9552 BLAKE2B a7fbd3e8aef82372463bb335b86832c50ba0b6381f21e7d5a17d6b7ba593febe4ae2ae3ad93b0467d2e65b39855f4b30bae2a5d399db5619f9bd2c5263e80fb6 SHA512 1b6f231869c7eb8e29010cc4e7e300d99fdceb8f77a49a77474b8fe5193e8e6bd5a1048d68a713d634c8b32ac8ca065e0bd183ba467fba0cd249dfbe9cff578d
diff --git a/dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.3.ebuild b/dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.3.ebuild
new file mode 100644
index 000000000000..87b3a3ba09ed
--- /dev/null
+++ b/dev-python/insipid-sphinx-theme/insipid-sphinx-theme-0.4.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/mgeier/insipid-sphinx-theme
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Insipid Sphinx theme"
+HOMEPAGE="
+ https://pypi.org/project/insipid-sphinx-theme/
+ https://github.com/mgeier/insipid-sphinx-theme/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/jinja2-2.11[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-5[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.18[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+DOCS=( {CONTRIBUTING,NEWS,README}.rst )
+
+# needs sphinx_last_updated_by_git
+#distutils_enable_sphinx "doc"
diff --git a/dev-python/ipykernel/Manifest b/dev-python/ipykernel/Manifest
index 95a6007e5b23..c44538015c06 100644
--- a/dev-python/ipykernel/Manifest
+++ b/dev-python/ipykernel/Manifest
@@ -1,3 +1,4 @@
DIST ipykernel-6.30.1.tar.gz 166260 BLAKE2B 77af93248f25479aae9082ef6e73dcab23b0724e53029a8b52fa99f217ea6482e1a2ed7e21a7b95ea88065acc8530e159d19b2a5c3b2fe5ef72c513059f2a524 SHA512 45bd9e79f3a74d3694034de3f367b913171b027e913e9f7cd1fdcfb17db09927e0ee300253ad9061d668559c5bf353bddbaf01ea52bcf5a9624a0a4a21050759
+DIST ipykernel-6.31.0.tar.gz 167493 BLAKE2B 0cb5f208b5cc1fc2d9da971cdd63158865036006ffbe697a375bf81e7242a99f168e9b6c8cdb1a2e3da46a973a1ed8b9ab2c1455de15a33f010b78db2fd939af SHA512 3ace064d1c78eb55d6f5f201349eb4a5b64eee387ea9adf4b7ad69875e15839eaecfd1940379dee367fbbba01426454ab70dc1526a7dd7cfdb250b31340d5872
DIST ipykernel-7.0.0.tar.gz 173513 BLAKE2B 73f196645c340a22ae8b45e28fccb3c7822be88f9b28f96772a2595f48f1ca261e17560dad654077e23cb42c550d90449f778162f9fa1cb190c6b4901dad9f1d SHA512 6d56ef846f5ca964767cc05bd06100a53eb892e00071265fbaa79f34d1c8ba2645d0617f3e90a738de5432eb4e543fd4a209760351229726ca070cd9df7ad5c0
DIST ipykernel-7.0.1.tar.gz 171460 BLAKE2B 71267840af57f6764888958bea4742e6755f9e0facc9a3fe1aaac7bff83eacc1db7bd473d779a9b3fe154b2c70d0e350a7eccf3d703c94feb16cc49cfedf74a3 SHA512 dfa2f4c2e7122f79cea94b37496108dc2ffbd7f0752e32070a6b8aad50a23a09071e1fb3292d24e77ea18a44396e683bedb06bb30beb70e1b315a02c99d2db17
diff --git a/dev-python/ipykernel/ipykernel-6.31.0.ebuild b/dev-python/ipykernel/ipykernel-6.31.0.ebuild
new file mode 100644
index 000000000000..2ed2496dcf50
--- /dev/null
+++ b/dev-python/ipykernel/ipykernel-6.31.0.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="IPython Kernel for Jupyter"
+HOMEPAGE="
+ https://github.com/ipython/ipykernel/
+ https://pypi.org/project/ipykernel/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/comm-0.1.1[${PYTHON_USEDEP}]
+ >=dev-python/ipython-7.23.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-4.12[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-inline-0.1[${PYTHON_USEDEP}]
+ >=dev-python/nest-asyncio-1.4[${PYTHON_USEDEP}]
+ >=dev-python/packaging-22[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.7[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-25[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.4.0[${PYTHON_USEDEP}]
+"
+# RDEPEND seems specifically needed in BDEPEND, at least jupyter
+# bug #816486
+# pytest-8 runs a small subset of tests, we allow newer for 3.13
+# since a few tests are better than skipping entirely
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/ipyparallel[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( flaky pytest-{asyncio,timeout} )
+distutils_enable_tests pytest
+
+src_prepare() {
+ # debugpy is actually optional
+ sed -i -e '/debugpy/d' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ # Use python3 in kernel.json configuration, bug #784764
+ sed -i -e '/python3.[0-9]\+/s//python3/' \
+ "${BUILD_DIR}/install${EPREFIX}/usr/share/jupyter/kernels/python3/kernel.json" || die
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_debugger.py::test_attach_debug
+ tests/test_debugger.py::test_breakpoint_in_cell_with_leading_empty_lines
+ tests/test_debugger.py::test_rich_inspect_at_breakpoint
+ tests/test_debugger.py::test_rich_inspect_not_at_breakpoint
+ tests/test_debugger.py::test_set_breakpoints
+ tests/test_debugger.py::test_stop_on_breakpoint
+ tests/test_debugger.py::test_copy_to_globals
+ # hangs?
+ tests/test_eventloop.py::test_tk_loop
+ # doesn't like pyside2?
+ tests/test_eventloop.py::test_qt_enable_gui
+ )
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ tests/test_kernel.py::test_subprocess_{error,print}
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/isal/isal-1.8.0.ebuild b/dev-python/isal/isal-1.8.0.ebuild
index af4f8fbab8ed..75902614cda7 100644
--- a/dev-python/isal/isal-1.8.0.ebuild
+++ b/dev-python/isal/isal-1.8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
DEPEND="
dev-libs/isa-l:=
diff --git a/dev-python/jsonschema-specifications/jsonschema-specifications-2025.9.1.ebuild b/dev-python/jsonschema-specifications/jsonschema-specifications-2025.9.1.ebuild
index 76df9913b61d..55da8aad0056 100644
--- a/dev-python/jsonschema-specifications/jsonschema-specifications-2025.9.1.ebuild
+++ b/dev-python/jsonschema-specifications/jsonschema-specifications-2025.9.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
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/referencing-0.31.0[${PYTHON_USEDEP}]
diff --git a/dev-python/kombu/Manifest b/dev-python/kombu/Manifest
index a03155d02d54..e478f2dafbb1 100644
--- a/dev-python/kombu/Manifest
+++ b/dev-python/kombu/Manifest
@@ -1,3 +1,3 @@
DIST kombu-5.5.4.tar.gz 461992 BLAKE2B 7c81ddd2c151b7abd984c2523e7855785796db23de5c1a43348870019de26079fb9b6475a5174ceea6ca461188cff4a8fe4da76d95345ac611a13d29c3a9848f SHA512 f3227303aa7ad1a4bd480c601f99f7b4ae2db6d3790defd02b4a9e4ccd6875630a9e6582f65f334a04a5111c456c489395fc4af5b2dd4a557e6aa47616859668
-DIST kombu-5.6.0b3.tar.gz 470444 BLAKE2B 5de996d63f0a5eb7b722f155ded48f6cdd8aba8e410ef82c10c0a095c14771cf3da1f49da2e9ef52fe3d74c295f1d5107b3ea797d727ff2241f30a5175a67214 SHA512 fba003297fbcba76511577f6ef53e9292d81f3b0b4d09a65dcb08918cd1529560b9635c026b6b8f3d9d4037feb4477ec0b909790772198343dc7a11b6612cf9a
DIST kombu-5.6.0rc1.tar.gz 470754 BLAKE2B 8b059617ff7cc846bcb7800bfd74b2d70637e636369dc47f149dd96d81c40bc2ae32d447c46ea625754d9c2ad2246db82b4c400493d9199e5c09ee8232b4c4d6 SHA512 a1b86d5a2b30d23b40b5eccbb4af4e40965d7da0e4fc793aa3abd733152cd4378002334267a091d27dbf607701ec76764c05c6cf4888817f06e72e6a7e15f7ed
+DIST kombu-5.6.0rc2.tar.gz 470604 BLAKE2B ba02d700cae49e1daab5b1f3cd0a95fdef086a0a4b992c83a0cca0ace0c676fc225f7494392d511ad7fcafeba8bd10b3169be6dd67ac78b411e6bbcf51d4951b SHA512 a1425bb5523a71e185544f4d295caf55b412cf767a5aef65b6783c3dfe9c5af960805675ccb6d09b24bf278ed63afcfee4716e3184eacc98e89fce5207b2c93f
diff --git a/dev-python/kombu/kombu-5.6.0_beta3.ebuild b/dev-python/kombu/kombu-5.6.0_rc2.ebuild
index 8da2e4374862..8da2e4374862 100644
--- a/dev-python/kombu/kombu-5.6.0_beta3.ebuild
+++ b/dev-python/kombu/kombu-5.6.0_rc2.ebuild
diff --git a/dev-python/krb5/krb5-0.8.0.ebuild b/dev-python/krb5/krb5-0.8.0.ebuild
index 881b365a0df5..503f59aedaf0 100644
--- a/dev-python/krb5/krb5-0.8.0.ebuild
+++ b/dev-python/krb5/krb5-0.8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~riscv ~x86"
RDEPEND="
virtual/krb5
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index d12ab8aeaca8..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
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
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+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 271137de443d..7100f5f39dd8 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 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ 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 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/libcst/libcst-1.8.4.ebuild b/dev-python/libcst/libcst-1.8.4.ebuild
index 5efa477b3611..b2dfa7176ee6 100644
--- a/dev-python/libcst/libcst-1.8.4.ebuild
+++ b/dev-python/libcst/libcst-1.8.4.ebuild
@@ -121,7 +121,7 @@ LICENSE="MIT Apache-2.0 PSF-2"
# Dependent crate licenses
LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="~amd64 ~riscv"
+KEYWORDS="amd64 ~riscv"
RDEPEND="
>=dev-python/pyyaml-5.2[${PYTHON_USEDEP}]
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index 0a27b50f01b5..006c05ea3c64 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -14,6 +14,8 @@ DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da09768
DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
DIST llvm-project-21.1.3.src.tar.xz 158943752 BLAKE2B ad9ee083584cb72fea3722feb518f6c933c3a34ba91b1ca8b724f461aa744475a783512dd6f0ab60d533c73b37e42b32a06f905d4869f770a68180649656df44 SHA512 d3058e7c18ada2a6a6192c7e75970406520e0d2ba390dba3b89e99f05959198fd2976d38c200f8e6af37fb569d866b6367bf6e0e249fe4b340dfab74499e5723
DIST llvm-project-21.1.3.src.tar.xz.sig 119 BLAKE2B 675873fb6ce9a6b682d0ecdc5ec6ca8691d7f8f6bc72e6039a90c21f99d753a4b595f06676f9b5c1a23ebce872320cc67bd1687e8324f163ecbc4f22032bdf52 SHA512 d218a4071451e32a77890dd2e7de7a3b8a310ca85c7e6d90b88d85bad128979cf6866c9d772b880b50da2ec117832e77ba162049478c1deb7b0299cae008151a
+DIST llvm-project-21.1.4.src.tar.xz 158939036 BLAKE2B b87eff4e3cb881d86aafcfdb46d85344ad6ae92d5c1e72c05282f375b4b11844756d0e6b4d0da5e522a348170a5da9842917737e272b758d8dde7e1fb2bee135 SHA512 a8c0883abe7c5a3e55ca7ed0fd974fae4351184a0b0df18295a982ca8ddb0f8d167353564204ed00f0cd9a1d8baef7074c0b39a99e0b5c52ced6bbee73dde3da
+DIST llvm-project-21.1.4.src.tar.xz.sig 119 BLAKE2B c74a56448ad3e325234fcbe7d62ea888831e1e7696afb5aa5a185ea76a0880abe2d755f9e69a07760bbf9380534c3bb96c920ed6359ffd0f5f51c962d1494dcf SHA512 4812c2e3861aa3b726d842c3ca259b19ef1aa531fed9f6f47099483de91de2b2a165f40d243f6f40f2eea749741d5f8b7090f394399c56db02053f308921077a
DIST llvm-project-6a0e5b2fd7c340a872ae1e011cfb9de0d188feba.tar.gz 249848364 BLAKE2B 5d8eadfd43e1a131d7c061968c7d306b0537c0983c9366973d5b8d1bab4b384d1319604e12f097e235e077aefcd8b9c8395c3e16b53612f9f06fb11ba358aad6 SHA512 d931218ca1dafab09525f862f4b993cb6dde2f8738092e84b87542318d05c81fd41499098833f8629501c19f4fa741a35fc6447631f1c8830b2bb0b2cb64cc43
DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924
DIST llvm-project-b1e29ec3b73b9dd06656c7e30ace597ff72cde70.tar.gz 248630276 BLAKE2B ea1532ba05661de37f3d6bac6643f2f3000710f4c4b8c508c9b980da64964e60cd46d0b8e18d666b75089f8ad8e2f653ac6098b4054ce8adf7cb0c36220cdf29 SHA512 36471abffd9202c637aa89c53072f0f286beffad2d3908ad50bb4c395a1be0c8138ddcbd67e0c764f59842bcc6c6c31f04a14986c7145c369217a156885ac506
diff --git a/dev-python/lit/lit-21.1.4.ebuild b/dev-python/lit/lit-21.1.4.ebuild
new file mode 100644
index 000000000000..50e339049670
--- /dev/null
+++ b/dev-python/lit/lit-21.1.4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/logical-unification/Manifest b/dev-python/logical-unification/Manifest
index 46ee129a5f44..706e0c2be4eb 100644
--- a/dev-python/logical-unification/Manifest
+++ b/dev-python/logical-unification/Manifest
@@ -1 +1,2 @@
DIST logical-unification-0.4.6.gh.tar.gz 47171 BLAKE2B 894db9bfc94b1b4ed496376bb45dd6f71db89f57ff73ab4bfacd12e991817751c4213b36d6e19d34b239e1335dcbe7b71ab283d419bab92554dacc539355ae7e SHA512 6caf91823acbaf0341d7d515610bbe351882f1b6fdff064fc900adb56387c6023a49743b0ad5f6f1c6af42e79b53ac1d1540a4ce3c42dca5fd79f0abec9f653c
+DIST logical-unification-0.4.7.gh.tar.gz 24199 BLAKE2B be69254f85cfd7ce00624bb34bcfcf888e1a9b1861fd32d0b0072cc43a133f535f4fdd495ab2635769db048ad8568dd2c94fbc3db284a7603d2fc2c1514457df SHA512 77f5633a9d78fa7320a8e23f0fe5132ac33e5ba91601e4e5477ee4b1d363e54aa238312ee0afc49393d6f1aa186b1b9be8e1bc89fbbcefa33a789255f6e67471
diff --git a/dev-python/logical-unification/logical-unification-0.4.7.ebuild b/dev-python/logical-unification/logical-unification-0.4.7.ebuild
new file mode 100644
index 000000000000..accba4d3585b
--- /dev/null
+++ b/dev-python/logical-unification/logical-unification-0.4.7.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Logical unification in Python"
+HOMEPAGE="
+ https://pypi.org/project/logical-unification/
+ https://github.com/pythological/unification/
+"
+# No tests in sdist, as of 0.4.6
+SRC_URI="
+ https://github.com/pythological/unification/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/unification-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+
+RDEPEND="
+ dev-python/multipledispatch[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ tests/test_benchmarks.py
+ # weird test for testing limits of runtime
+ tests/test_core.py::test_reify_recursion_limit
+)
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/markdown/markdown-3.9.ebuild b/dev-python/markdown/markdown-3.9.ebuild
index 1d836b74f109..6455b589363b 100644
--- a/dev-python/markdown/markdown-3.9.ebuild
+++ b/dev-python/markdown/markdown-3.9.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="doc test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/mistune/mistune-3.1.4.ebuild b/dev-python/mistune/mistune-3.1.4.ebuild
index 037b7178cd08..ef57bbe9ec44 100644
--- a/dev-python/mistune/mistune-3.1.4.ebuild
+++ b/dev-python/mistune/mistune-3.1.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/moto/moto-5.1.13.ebuild b/dev-python/moto/moto-5.1.13.ebuild
index da29bd9851e6..1e55ec6eb946 100644
--- a/dev-python/moto/moto-5.1.13.ebuild
+++ b/dev-python/moto/moto-5.1.13.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 arm64 ~riscv ~x86"
RDEPEND="
>=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
diff --git a/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild b/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild
index 22ad5d5983f0..73e010f09b6f 100644
--- a/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild
+++ b/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="test-full"
BDEPEND="
diff --git a/dev-python/nanobind/nanobind-2.9.2.ebuild b/dev-python/nanobind/nanobind-2.9.2.ebuild
index 25b552f7b62d..0b8abfdfbd8d 100644
--- a/dev-python/nanobind/nanobind-2.9.2.ebuild
+++ b/dev-python/nanobind/nanobind-2.9.2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
DEPEND="
>=dev-cpp/robin-map-1.3.0
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index 2214685b6f9d..b6468f86677f 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -1,4 +1,4 @@
-DIST narwhals-2.7.0.tar.gz 569315 BLAKE2B d46de1c1fedd58872adb7104e325b78479837d6bd2eaeef0f290f926b6d78493135267bab3b4a6d698f561fdefb918709f5fe60475bbd126025eaf516c4fe3ba SHA512 fc4334f2dd99b459b3a27698acf514d9c5ac21c753ba4099b371db6a24aff4538f3bc9f67537bc60368f6543c3169947dc120206b04bdd60996cf25bfe2c158a
-DIST narwhals-2.7.0.tar.gz.provenance 9790 BLAKE2B a1a2bf3aaed9864611e9f6bd648df67a6478c5846fb38b1ae30fcd3914305a9f3de7fdc765c821353c99f888e6f7f2504818f4b9d887554406d7757028a9403a SHA512 415b7ce737fb197ccff6340ce42c8d7a0b1005af6817267af46b68e3e517b01602a756f7800f1d48d73e462aa565480245432c3d961e18bc1eb7b9dda37da42b
DIST narwhals-2.8.0.tar.gz 574277 BLAKE2B 6aa0b9d519a5c01a6d0ed05093f2a53771d25d18db106b72499f88ec8ceea23bc6f1d3f62fb6a256ef2aa4a1c8198740125f907b6f0b6c564988faa597087f80 SHA512 2ceeac7723f692f5397e74ce16c1ba293e7686c8e89832548733208e4fa75d2a117f364c2d21504ac9a6f5e097b9178fcc2c87e85bd9db9f80221cdad3013a45
DIST narwhals-2.8.0.tar.gz.provenance 9653 BLAKE2B 90a4af2e5780858f411ba8108b06b71085d9eb0c6fed03738d48b050490bf25286b87be7f41d2468d03b02d2ac12a60aa161d6012a15d77ed943c2695bbe7be8 SHA512 eb7ae5b01d96a99218acb630b5e57db1c7de0809c51b2cde7e48a0c0db86204064877a49d67e4f8c75e3b506d32da61fb7b523839213e4cc3a9427da2392a748
+DIST narwhals-2.9.0.tar.gz 584098 BLAKE2B eb5a2e78e4cbc11de23a3cd758e3e70e51f83fca409964d700ff6d26fd5d403a0445fe01ae74b963ae2dc10d89707ff84276cf0df9b0646352c1e9f89d93ce5a SHA512 8d6adcf5c1f189de4b0bef1ffe87a29769d35f9a11022974104d215a3cfd99cd913d8f128e14b2ff7729b458c67c3b6822257c73c2946efa43db2fef76d5062f
+DIST narwhals-2.9.0.tar.gz.provenance 9657 BLAKE2B 80e388069286c4481bcee98614a9bea360f722db6491de4cbbd594d32cb1f74140c45f2983ebaa9885739c029b11454eae6f58486aeea2c29453c53eae481173 SHA512 8688f4848cb5bd507a6266bba49d8c515c096d8a99952c81c3bdc3ff61b101b71e83f8bb1aaab6fb41c93863c9250eb36a656b9e117c37b7b394f40843db7be6
diff --git a/dev-python/narwhals/narwhals-2.7.0.ebuild b/dev-python/narwhals/narwhals-2.9.0.ebuild
index 449e85db9ce7..449e85db9ce7 100644
--- a/dev-python/narwhals/narwhals-2.7.0.ebuild
+++ b/dev-python/narwhals/narwhals-2.9.0.ebuild
diff --git a/dev-python/nbclassic/nbclassic-1.3.3.ebuild b/dev-python/nbclassic/nbclassic-1.3.3.ebuild
index e85b9cc87be8..37dd149aae93 100644
--- a/dev-python/nbclassic/nbclassic-1.3.3.ebuild
+++ b/dev-python/nbclassic/nbclassic-1.3.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
RDEPEND="
dev-python/ipykernel[${PYTHON_USEDEP}]
diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest
index 2637d67d8b9a..8723bfaf5df8 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1,3 +1,4 @@
DIST Nuitka-2.7.16.tar.gz 3889164 BLAKE2B 1dfdf805e74246d15945fa294910228185796e882f3a34ca0c3706bf172c4aee8b6618ce66a248656fb82f0c9639b251194c1baa6a4e903907eb65d6e95cf77a SHA512 be729f0e749502d8c82a56af6ea5cdd3a7d228f751154af814febccb3c3682b553add61863e7bfb11032c5772dac6c759008f4b430f8dcb9e1769030c9e479b1
DIST Nuitka-2.8.1.tar.gz 3884450 BLAKE2B d6ac886e7854543cca0568a741bfc47379e0d17b9c15e9c877f6f9950b5a0c3d6f048edbfb73fb11df55f3a723ffd8f43624df0b61d8817b88daca783d0e53e4 SHA512 99c1431c29a2da7ac855cd136216b71506b7fc763106d753926c4489365306d7de12ffa9a2ac68b0c42477c3cdfa33e46ac90b246f6956dd9f6d5906b93d511d
DIST Nuitka-2.8.3.tar.gz 3884732 BLAKE2B 9dd543614ee7bc188c0acf24abc217dd89bcb655021ec08ee60ea81d35c7889e9270103a99782c8a637eece26e04e4fffaa870cfa77f3662732c42e4f7dc49d8 SHA512 949c3c567acbd841431bc799bcf33c8f74bbd2460060ee2853c61532db7d9d35b57836d0b481530fe571ecd6b76104e33a9dc2702195c935f4258fbb73ccf28b
+DIST Nuitka-2.8.4.tar.gz 3885111 BLAKE2B f37422341a2ae947fbe39a30b87926efc228bb1917f3aa14d5a808dedab4c0257f2fca490d4e0e671896fd6d8dc7957833dcfd00846e4d2d14172d5b2f32a614 SHA512 32242721b43446496e444f7127245a2cdcca50c10a3ab1a99800facf88757f23ebf78727ae74a59d717ca96dea41bfd1d8169803895db46666de1543e53029af
diff --git a/dev-python/nuitka/nuitka-2.8.4.ebuild b/dev-python/nuitka/nuitka-2.8.4.ebuild
new file mode 100644
index 000000000000..c5ce0a5a81ad
--- /dev/null
+++ b/dev-python/nuitka/nuitka-2.8.4.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 flag-o-matic optfeature pypi
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="
+ https://nuitka.net/
+ https://github.com/Nuitka/Nuitka/
+ https://pypi.org/project/Nuitka/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-build/scons[${PYTHON_USEDEP}]
+ >=dev-python/ordered-set-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.15[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+distutils-r1_src_prepare() {
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka.1 doc/nuitka-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" dev-util/patchelf
+}
diff --git a/dev-python/numexpr/numexpr-2.12.1.ebuild b/dev-python/numexpr/numexpr-2.12.1.ebuild
index 0b0d198991b1..9ca9fc66d7d3 100644
--- a/dev-python/numexpr/numexpr-2.12.1.ebuild
+++ b/dev-python/numexpr/numexpr-2.12.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
DEPEND="
>=dev-python/numpy-2.0.0_rc:=[${PYTHON_USEDEP}]
diff --git a/dev-python/oslo-config/oslo-config-10.0.0.ebuild b/dev-python/oslo-config/oslo-config-10.0.0.ebuild
index f728c6d440f7..bd9295db1a2d 100644
--- a/dev-python/oslo-config/oslo-config-10.0.0.ebuild
+++ b/dev-python/oslo-config/oslo-config-10.0.0.ebuild
@@ -45,8 +45,9 @@ distutils_enable_tests unittest
src_prepare() {
# broken by some dep upgrade
- sed -i -e '/DeprecationWarningTestsNoOsloLog/,$d' \
- oslo_config/tests/test_cfg.py || di
+ sed -i oslo_config/tests/test_cfg.py \
+ -e '/DeprecationWarningTestsNoOsloLog/,$d' \
+ -e 's/test_sub_command_multiple/_&/' || die
distutils-r1_src_prepare
}
diff --git a/dev-python/paramiko/paramiko-4.0.0-r1.ebuild b/dev-python/paramiko/paramiko-4.0.0-r1.ebuild
index dbef374cb2e0..25975a19bded 100644
--- a/dev-python/paramiko/paramiko-4.0.0-r1.ebuild
+++ b/dev-python/paramiko/paramiko-4.0.0-r1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/patsy/Manifest b/dev-python/patsy/Manifest
index ef4d5ed83f43..9bdfc7aaceb5 100644
--- a/dev-python/patsy/Manifest
+++ b/dev-python/patsy/Manifest
@@ -1 +1,2 @@
DIST patsy-1.0.1.tar.gz 396010 BLAKE2B 2982331bebbc09ef33f2650ea07f46eeba9e5fef05f63ca253b3efa7785284eea2ac14df6e9cd6498a0c5b5ba8cdcc094cb8edaa8bda61c80e656d336525cd03 SHA512 94d0d6462eb78fbd9ae07809e5124d5f9f2416d152759dafbb1774bb9644d59d415f7b4121233826b4629b07e9d25254274873916364c366c1723a4f2e195e7e
+DIST patsy-1.0.2.tar.gz 399942 BLAKE2B b0a08d9ac21ffc660e2cc26762c22cfff8ccce86527331ec3ca29c1a126113ab070346407c38a71226f8e923b532c6e3304c9a3fbb05493b79b216c2a0572015 SHA512 2a1d785359e8de364378785dcd00c882ec85b93e1075822b5399466ef7b4b71626725fd43a0fb01ad472aef5488ba0906ef4b5156b59c8a53846040d85866d35
diff --git a/dev-python/patsy/patsy-1.0.2.ebuild b/dev-python/patsy/patsy-1.0.2.ebuild
new file mode 100644
index 000000000000..4384b966cc16
--- /dev/null
+++ b/dev-python/patsy/patsy-1.0.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="
+ https://patsy.readthedocs.io/en/latest/index.html
+ https://github.com/pydata/patsy/
+ https://pypi.org/project/patsy/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ !hppa? (
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/poetry-core/poetry-core-2.2.1.ebuild b/dev-python/poetry-core/poetry-core-2.2.1.ebuild
index d58aeb570aa8..8a25f1c8425a 100644
--- a/dev-python/poetry-core/poetry-core-2.2.1.ebuild
+++ b/dev-python/poetry-core/poetry-core-2.2.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/prometheus-client/prometheus-client-0.23.1.ebuild b/dev-python/prometheus-client/prometheus-client-0.23.1.ebuild
index 1220988648b7..5b0f18fb29c4 100644
--- a/dev-python/prometheus-client/prometheus-client-0.23.1.ebuild
+++ b/dev-python/prometheus-client/prometheus-client-0.23.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/twisted[${PYTHON_USEDEP}]
diff --git a/dev-python/protobuf/protobuf-6.32.1-r1.ebuild b/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
index 5c7a040a674c..d6dee88ffdd4 100644
--- a/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
+++ b/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
@@ -31,7 +31,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0/$(ver_cut 1-3)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
diff --git a/dev-python/psutil/psutil-7.1.0.ebuild b/dev-python/psutil/psutil-7.1.0.ebuild
index eeb98ea5fae2..8a330f3f7a14 100644
--- a/dev-python/psutil/psutil-7.1.0.ebuild
+++ b/dev-python/psutil/psutil-7.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
EPYTEST_PLUGINS=( pytest-subtests )
distutils_enable_tests pytest
diff --git a/dev-python/pudb/Manifest b/dev-python/pudb/Manifest
index 6c2519fa8f3a..597c727e0271 100644
--- a/dev-python/pudb/Manifest
+++ b/dev-python/pudb/Manifest
@@ -1,3 +1,5 @@
DIST pudb-2025.1.1.tar.gz 224765 BLAKE2B 997e1f7b905ad02da01560379de3d7a01f1089e3ec39d7282f78b783fadc2a625147ab6ed2c584cb1a9d6db24098512294d821466cd826f786812e697977006e SHA512 b4d66303226064101efc0809328bf91a7c2d86dae5aab46df128694a68943c128fe390608b774134572e0283aa6f6fc1ed4b4fe2f7ade290f9fbb017fab15a66
DIST pudb-2025.1.2.tar.gz 225444 BLAKE2B 257cf7a72df34a6f80ba18fc79c92739e5714c5dfcba9d42da48591de6fb0289dbaead776db582d2dd47a1a8bed86b1e857946987871bc51593c9b4ba5f9d8f0 SHA512 b7dbf5fe9ab757bf7ba01fda235607eda17a44f33b9585bd48b8ae1c576f969874032dec2513c661564c913b5edf5c6611f4d29818f9a0d156c45a04b3cd05a6
DIST pudb-2025.1.2.tar.gz.provenance 9451 BLAKE2B 91a6febccd0e406fbafc4fe2ae7574d66062b725416364eb097a5fa04faf49e0861f01e11dd15e1a2953a92bc0e44ab1e03f40541fbffa091cd2b86b6afc0785 SHA512 aca765a1a2e90e653120eeaab51f2bec1fde8e09f6884c80fb39cabda27df595936949c1d0fa1feefd76270dec19d5d90348023e2faf889742cbefb708f56e5d
+DIST pudb-2025.1.3.tar.gz 225627 BLAKE2B 64e4cf3fe1fed96fb6bb26339d02f85528bb8ef90a62fafea358f405b8303d3a1783fb507503dac28f390b6d4f891268d51aabe72c05408daefaa7d9388e8ed2 SHA512 68be2941ed57e6116b837049838253f2ec4d4f412ece601e8796ea1e33a29fac565e48abeed1e6e61d5a1532ec0bb3eb52b3d2b77598e6922f4565fea21ed398
+DIST pudb-2025.1.3.tar.gz.provenance 9451 BLAKE2B c0d9c787aee05712c5c081c21155ad9b723fce29c6a4a5ceb5acc9f3f470dac9c52bcf188d628fe409e3882e777810509a5b7473711b18d8f7843d7e78811e5f SHA512 9fa91482449f60d0e46ceb41fb9c485cdde40272f88ef2424b1782fad02d5fcbfe7530865fe422b1d60ca216dd8980a978bbe6a7ac3af0092163d6ae2aa20677
diff --git a/dev-python/pudb/pudb-2025.1.3.ebuild b/dev-python/pudb/pudb-2025.1.3.ebuild
new file mode 100644
index 000000000000..1dbafc331d90
--- /dev/null
+++ b/dev-python/pudb/pudb-2025.1.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/inducer/pudb
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi optfeature
+
+DESCRIPTION="A full-screen, console-based Python debugger"
+HOMEPAGE="
+ https://documen.tician.de/pudb/
+ https://github.com/inducer/pudb/
+ https://pypi.org/project/pudb/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/jedi-0.18[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.7.4[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.13[${PYTHON_USEDEP}]
+ >=dev-python/urwid-2.4[${PYTHON_USEDEP}]
+ dev-python/urwid-readline[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature_header "Install the following packages for additional functionality:"
+ optfeature "Auto-complete support" dev-python/jedi
+}
diff --git a/dev-python/pybind11/pybind11-3.0.1.ebuild b/dev-python/pybind11/pybind11-3.0.1.ebuild
index 2a849fcff2be..b6a006d3ee81 100644
--- a/dev-python/pybind11/pybind11-3.0.1.ebuild
+++ b/dev-python/pybind11/pybind11-3.0.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
dev-cpp/eigen:3
diff --git a/dev-python/pycparser/pycparser-2.23.ebuild b/dev-python/pycparser/pycparser-2.23.ebuild
index b373d6c98968..6cf9a13d2b10 100644
--- a/dev-python/pycparser/pycparser-2.23.ebuild
+++ b/dev-python/pycparser/pycparser-2.23.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
dev-python/ply:=[${PYTHON_USEDEP}]
diff --git a/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild b/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild
index 9d2d4ed78e00..14368a34dfb1 100644
--- a/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild
+++ b/dev-python/pyfakefs/pyfakefs-5.9.3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
EPYTEST_PLUGINS=( "${PN}" )
distutils_enable_tests pytest
diff --git a/dev-python/pyglet/pyglet-2.1.9.ebuild b/dev-python/pyglet/pyglet-2.1.9.ebuild
index 8805ed77e0a1..4a9758d80638 100644
--- a/dev-python/pyglet/pyglet-2.1.9.ebuild
+++ b/dev-python/pyglet/pyglet-2.1.9.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
IUSE="examples image +sound"
RDEPEND="
diff --git a/dev-python/pyicu/pyicu-2.15.3.ebuild b/dev-python/pyicu/pyicu-2.15.3.ebuild
index 5e62930ecb08..12e43e09ef30 100644
--- a/dev-python/pyicu/pyicu-2.15.3.ebuild
+++ b/dev-python/pyicu/pyicu-2.15.3.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86 ~arm64-macos ~x64-macos"
DEPEND="
dev-libs/icu:=
diff --git a/dev-python/pylint/Manifest b/dev-python/pylint/Manifest
index 574be6f73a78..9c41556d24f6 100644
--- a/dev-python/pylint/Manifest
+++ b/dev-python/pylint/Manifest
@@ -2,3 +2,4 @@ DIST pylint-3.3.8.gh.tar.gz 1460704 BLAKE2B 9444f6f98278b300744de27796afc366a53a
DIST pylint-3.3.9.gh.tar.gz 1462472 BLAKE2B b32fcb6c0d910d74c157717aa7c6d43d8edb13aad93e48543a974ce4461f38062acd8033ff390e614bf1388ebe78de004698669d082f51861421667529c71b2b SHA512 c775cfc20540e189f5e11a15eec58687dc6c7fce4e0d75f3c984977404c758d3c6903f176f057234585e6fe2dd36f40ed0e70703d228b99ae465a03d2ccebf19
DIST pylint-4.0.0.gh.tar.gz 1506202 BLAKE2B 4a934202c6dba64e91e011c081d91d2812df720171e1f49e4e5440a8d6f8f17a431df6483f86bd25a593d85e171f8ce1cf936c3f2171c4817733f1067cc6324c SHA512 b6a92bb88d212aef142c686da53443300d9191fc61cd423082d3fb4760ff30ee8639354ec32a121a73c57cf917b7928d6982cfe02c2bdf0dac296593a1837eed
DIST pylint-4.0.1.gh.tar.gz 1506598 BLAKE2B 942368eb242b7992b1bf2ecef059c248f713ce985f453ccd95df7af63a86295b7a1e3b386fcd14c9d442a927e0d41fea6a3a2b97362d2e28df7600992899c0f2 SHA512 120bbf8d5e2379f60625de6186819969cd9fde6745e451084f652bdadd908bf7894689997969eee15842a002fd4775af88bb6810ec84f50f3e275511da00ece2
+DIST pylint-4.0.2.gh.tar.gz 1507187 BLAKE2B d2ae9b5f68a0a6b781d1f46e790f045c0974743cd862a9eb0514b3b243cd55866ab8dae9dcf745f649cd245cee690c9236dff07e402a60383eaf2417a160683a SHA512 7043286b7d7bf1cc99a0ca48d7c0b95e1be77c3ba6ee09d2e6d16836e3aed6da165e1e0c78fcaafa137581e31cebcd0e40a3d6fd7ed7a979d0f5074e3df0ce84
diff --git a/dev-python/pylint/pylint-4.0.2.ebuild b/dev-python/pylint/pylint-4.0.2.ebuild
new file mode 100644
index 000000000000..550c8cddbe0c
--- /dev/null
+++ b/dev-python/pylint/pylint-4.0.2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+MY_P=${P/_beta/b}
+DESCRIPTION="Python code static checker"
+HOMEPAGE="
+ https://pypi.org/project/pylint/
+ https://github.com/pylint-dev/pylint/
+"
+SRC_URI="
+ https://github.com/pylint-dev/pylint/archive/v${PV/_beta/b}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ <dev-python/astroid-4.1[${PYTHON_USEDEP}]
+ >=dev-python/astroid-4.0.1[${PYTHON_USEDEP}]
+ >=dev-python/dill-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/isort-5.14[${PYTHON_USEDEP}]
+ <dev-python/isort-8[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.6[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.8[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.10.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/gitpython-3[${PYTHON_USEDEP}]
+ ' 'python*' )
+ >=dev-python/pytest-8.3[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ 'tests/test_functional.py::test_functional[dataclass_with_field]'
+ 'tests/test_functional.py::test_functional[no_name_in_module]'
+ 'tests/test_functional.py::test_functional[shadowed_import]'
+ 'tests/test_functional.py::test_functional[use_yield_from]'
+ )
+ local EPYTEST_IGNORE=(
+ # No need to run the benchmarks
+ tests/benchmark/test_baseline_benchmarks.py
+ )
+
+ if ! has_version "dev-python/gitpython[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/profile/test_profile_against_externals.py
+ tests/testutils/_primer/test_package_to_lint.py
+ tests/testutils/_primer/test_primer.py
+ )
+ fi
+
+ epytest
+}
+
+python_install_all() {
+ if use examples ; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyparsing/pyparsing-3.2.5.ebuild b/dev-python/pyparsing/pyparsing-3.2.5.ebuild
index 580e662c0992..9e84d00c4e35 100644
--- a/dev-python/pyparsing/pyparsing-3.2.5.ebuild
+++ b/dev-python/pyparsing/pyparsing-3.2.5.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="examples"
EPYTEST_PLUGINS=()
diff --git a/dev-python/pytest-check/pytest-check-2.5.4.ebuild b/dev-python/pytest-check/pytest-check-2.5.4.ebuild
index 5b1414a4ab9b..85ad476dcc3e 100644
--- a/dev-python/pytest-check/pytest-check-2.5.4.ebuild
+++ b/dev-python/pytest-check/pytest-check-2.5.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-mock/pytest-mock-3.15.1.ebuild b/dev-python/pytest-mock/pytest-mock-3.15.1.ebuild
index 9baffb1684f8..26e772ae1826 100644
--- a/dev-python/pytest-mock/pytest-mock-3.15.1.ebuild
+++ b/dev-python/pytest-mock/pytest-mock-3.15.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild
index e056e62f38dd..ddd9233d43e4 100644
--- a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/packaging-17.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-subtests/Manifest b/dev-python/pytest-subtests/Manifest
index c5bffbf41c7a..d6aca34b2dd3 100644
--- a/dev-python/pytest-subtests/Manifest
+++ b/dev-python/pytest-subtests/Manifest
@@ -1 +1,3 @@
DIST pytest_subtests-0.14.2.tar.gz 18083 BLAKE2B f647716e3c8cba94cc28edc14e26c904da65a4a466870f2db0aa835018e03b0c6ff6965e3b8cfb60b50a0bceaac8b031c33abafdb194dfda657bb2d27e211fc9 SHA512 f534cb010ec232bdbe8c1ada93809a2a91e6c91058cd3538a71f6b265563ab332bf13c32af09b67cc9efd45222acbfb75df6a79dec0d6a18bea2fa564ba15625
+DIST pytest_subtests-0.15.0.tar.gz 18525 BLAKE2B 42cb99fd34a60d20ed0d68e4c2f7ec7f7a73345832e4b02513a0fd0c818a051d8fc5262e5dbb58d610aed00b6a09d3d36b70ab60a9fe3e4854b418b890a67cac SHA512 777a4b379fbccbb0a9e697ad5e56a9c15da6c4d832ce94bf37f16adcf96275ac20d3a80185fe40b78fad11a7f652b8f8268af2e0f0af80befdd7a7616293cbb5
+DIST pytest_subtests-0.15.0.tar.gz.provenance 9814 BLAKE2B 6b5c12d372cc0d592e97e1ababb548683a4e4e559f38bc2553e70a23f75552756524ca516a05a0f1420abe79f9881d128ff9ea50b0f9f4b7ec858714e0f5f078 SHA512 c99f73b827bcca11927161c4654e4b46fcb879e6ee6270a388d0fe052ffd71e65399f33b996fcfc591a7bea5eeb8e1bdca77e1daf5d61ccb9ed3c7b5b1b42ed1
diff --git a/dev-python/pytest-subtests/pytest-subtests-0.15.0.ebuild b/dev-python/pytest-subtests/pytest-subtests-0.15.0.ebuild
new file mode 100644
index 000000000000..c0af56be36af
--- /dev/null
+++ b/dev-python/pytest-subtests/pytest-subtests-0.15.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pytest-dev/pytest-subtests
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Unittest subTest() support and subtests fixture"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-subtests/
+ https://pypi.org/project/pytest-subtests/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+distutils_enable_tests pytest
diff --git a/dev-python/pytest/pytest-8.4.2.ebuild b/dev-python/pytest/pytest-8.4.2.ebuild
index 70b398fc1bfd..317c20d5daba 100644
--- a/dev-python/pytest/pytest-8.4.2.ebuild
+++ b/dev-python/pytest/pytest-8.4.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild b/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild
index 79978ebd788f..cfb985a34f7d 100644
--- a/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild
+++ b/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
test? (
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-5.7.0.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-5.7.0.ebuild
index 3f48cc6986e0..cb05cebf209b 100644
--- a/dev-python/python-keystoneclient/python-keystoneclient-5.7.0.ebuild
+++ b/dev-python/python-keystoneclient/python-keystoneclient-5.7.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/pbr-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild b/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild
index ee0d82dfb782..2c12139e2965 100644
--- a/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild
+++ b/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytools/pytools-2025.2.4.ebuild b/dev-python/pytools/pytools-2025.2.4.ebuild
index 0fc5be9be378..6caefdec0bc4 100644
--- a/dev-python/pytools/pytools-2025.2.4.ebuild
+++ b/dev-python/pytools/pytools-2025.2.4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
# NB: numpy are an "extra" (optional) deps
RDEPEND="
diff --git a/dev-python/pyzmq/pyzmq-27.1.0.ebuild b/dev-python/pyzmq/pyzmq-27.1.0.ebuild
index f7eb7611d281..1f952a59d199 100644
--- a/dev-python/pyzmq/pyzmq-27.1.0.ebuild
+++ b/dev-python/pyzmq/pyzmq-27.1.0.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
IUSE="drafts"
# There are additional test failures if zeromq has the draft api enabled, but pyzmq has it disabled.
diff --git a/dev-python/rdflib/rdflib-7.2.1.ebuild b/dev-python/rdflib/rdflib-7.2.1.ebuild
index 9a04e58e3218..64fa11ff1fbb 100644
--- a/dev-python/rdflib/rdflib-7.2.1.ebuild
+++ b/dev-python/rdflib/rdflib-7.2.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
IUSE="examples sqlite"
RDEPEND="
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index 750a0ecb762d..6062c6f9d48f 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,4 +1,2 @@
DIST regex-2025.7.34.tar.gz 400714 BLAKE2B 4eb0c5600b9ef759f1e7511d01d533a3fda7b6010b6c974c0071e7cde2f5bbd9a8c62289b7abb4f2e0d9c251a9421876f6bf0a021892073babffb181d099ae55 SHA512 d30f69559804db12d85ee4c81d7055f3aab70f9a7c86b642932b7a12295ab2a4ca8e2a9bbf3a208b0546b7f7c76c64216cbd0b3ddfb7dfbd3fff7f9d4fa1d9ec
-DIST regex-2025.8.29.tar.gz 400817 BLAKE2B 826f2deb3e94069124e35848f2ef33c4eab60464d548c5cba0e3dc16b09185dad0cfc427dde89d38f04f924bb16fbb539d79ebf34d83bcd7c62f344f9ace208d SHA512 9c17e000145523bdbeeffb9cfe177eab89fd55b2bcd7f74d3c122bfed7c7ce42b92b8f6b407157c3f5c84c32b285d24377d27c228ba52ef804ed432d0cd92623
-DIST regex-2025.9.1.tar.gz 400852 BLAKE2B 31f07a4954cbafc48668424da6b7362f32d76fc3c8027ecd540d759324412f1f5db56aad9a75e212d73284dd05cd2369c17811e1f98ad551b5cc31f3e40c55d0 SHA512 80838c83207e750f986b034594c2460464758e4024fb1e8fcc13d4d3d746b07d00ff9f3226ab83cbd7a07674f9c6373dd1bd56981615017f72dae7ac80366c7f
DIST regex-2025.9.18.tar.gz 400917 BLAKE2B 0239c15afed04de12985576709abcdf294b248d084a9b9126fd3bc734ddb51df83a35578602675af04df82819b9dcf65228b918c4d39fc762106f62b470b96ad SHA512 15fa2b951045cc1fa1d11d95cf6223f33f2d0d5b51637a9e5e99966176aa973deb34cf9a8baf5c6ebe49b26e3edb64bda1432bbf4610aefa3981385a404d1f51
diff --git a/dev-python/regex/regex-2025.8.29.ebuild b/dev-python/regex/regex-2025.8.29.ebuild
deleted file mode 100644
index 78c9fe3c85a7..000000000000
--- a/dev-python/regex/regex-2025.8.29.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-# 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_{10..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
-}
diff --git a/dev-python/regex/regex-2025.9.1.ebuild b/dev-python/regex/regex-2025.9.1.ebuild
deleted file mode 100644
index 78c9fe3c85a7..000000000000
--- a/dev-python/regex/regex-2025.9.1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-# 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_{10..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
-}
diff --git a/dev-python/regex/regex-2025.9.18.ebuild b/dev-python/regex/regex-2025.9.18.ebuild
index 78c9fe3c85a7..7f018049f16b 100644
--- a/dev-python/regex/regex-2025.9.18.ebuild
+++ b/dev-python/regex/regex-2025.9.18.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 ~arm64-macos ~x64-macos"
+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
diff --git a/dev-python/reportlab/reportlab-4.4.4.ebuild b/dev-python/reportlab/reportlab-4.4.4.ebuild
index f780e2b81541..1fbe29a93fe8 100644
--- a/dev-python/reportlab/reportlab-4.4.4.ebuild
+++ b/dev-python/reportlab/reportlab-4.4.4.ebuild
@@ -20,7 +20,7 @@ SRC_URI+="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/charset-normalizer[${PYTHON_USEDEP}]
diff --git a/dev-python/requests-file/Manifest b/dev-python/requests-file/Manifest
index 6090d7952ec4..5949678f7207 100644
--- a/dev-python/requests-file/Manifest
+++ b/dev-python/requests-file/Manifest
@@ -1,2 +1,3 @@
DIST requests_file-2.1.0.tar.gz 6891 BLAKE2B 69d92d836f184b48420ed3a0cdc44905ac0c495e3cbc574a62c1c3b4088770654925a97775fedfdcec25e247ef4d06df82a52f2303d5b29f875f77d8f13c3952 SHA512 1c13ca665797987ad2908ebe0cdff97f03cbbbb110c6fe782a03edb6035575ee8eb89683e197336d6ed8d5868873d88eccac642d45996e88368af234a9318611
DIST requests_file-3.0.0.tar.gz 6897 BLAKE2B f1ff3e72bfd4c1f216acc0792c6d77881e7130aa944e8ed38cb2f477b6d8811e654e898c04bda642edd2c463eb05767887579e2299824582ae44dc58496baedf SHA512 7270ff6eadceadfbb60cc1fcfc4d02749d9d84788d4d6039810e137933207daefbf5419c932e13445a703164ae2e42e8291ccd2e3b79c092c136b84ed468afa7
+DIST requests_file-3.0.1.tar.gz 6967 BLAKE2B 7b9ef82a5656cd2c5cfc6fe611d70756834f394112b92bba487569a7b083e797d26a685c04e146d03f892040ff8da6a083d2d36f5abadca1c9094f8e7dd63824 SHA512 e8f5b128f4ec2ccab80f39e7f5f4c9aef18544985353700371458f35422c225cae157a6cad3b5f72f409e3c39bd5f20eba62d1a23fd00eb281cc9155223058b3
diff --git a/dev-python/requests-file/requests-file-3.0.1.ebuild b/dev-python/requests-file/requests-file-3.0.1.ebuild
new file mode 100644
index 000000000000..ff658e87d13a
--- /dev/null
+++ b/dev-python/requests-file/requests-file-3.0.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="File transport adapter for Requests"
+HOMEPAGE="
+ https://github.com/dashea/requests-file/
+ https://pypi.org/project/requests-file/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/restructuredtext-lint/restructuredtext-lint-1.4.0.ebuild b/dev-python/restructuredtext-lint/restructuredtext-lint-1.4.0.ebuild
index 88dad507d938..ebb5f48b33df 100644
--- a/dev-python/restructuredtext-lint/restructuredtext-lint-1.4.0.ebuild
+++ b/dev-python/restructuredtext-lint/restructuredtext-lint-1.4.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/s3transfer/s3transfer-0.14.0.ebuild b/dev-python/s3transfer/s3transfer-0.14.0.ebuild
index d13d653bd11c..692e46663f39 100644
--- a/dev-python/s3transfer/s3transfer-0.14.0.ebuild
+++ b/dev-python/s3transfer/s3transfer-0.14.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
<dev-python/botocore-2[${PYTHON_USEDEP}]
diff --git a/dev-python/secretstorage/secretstorage-3.4.0.ebuild b/dev-python/secretstorage/secretstorage-3.4.0.ebuild
index 9208c32932de..56e913ec742c 100644
--- a/dev-python/secretstorage/secretstorage-3.4.0.ebuild
+++ b/dev-python/secretstorage/secretstorage-3.4.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/cryptography-2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/selenium/selenium-4.35.0.ebuild b/dev-python/selenium/selenium-4.35.0.ebuild
index cea32db93bbc..d8b35ede8cc8 100644
--- a/dev-python/selenium/selenium-4.35.0.ebuild
+++ b/dev-python/selenium/selenium-4.35.0.ebuild
@@ -29,7 +29,7 @@ SRC_URI+="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/smartypants/smartypants-2.0.2.ebuild b/dev-python/smartypants/smartypants-2.0.2.ebuild
index 7e9eaa8afa09..def9c7b01c9b 100644
--- a/dev-python/smartypants/smartypants-2.0.2.ebuild
+++ b/dev-python/smartypants/smartypants-2.0.2.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
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"
distutils_enable_tests unittest
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index fdd33971eaab..76d80d1a4853 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -3,3 +3,4 @@ DIST sqlglot-26.33.0.tar.gz 5353340 BLAKE2B 18ace866ec89ced24911803497e8cb5c55fc
DIST sqlglot-27.24.2-crates.tar.xz 8973180 BLAKE2B f893ebe4b94d4c2ab94f8fa902e51066e861511f698b24660d5becd31a98837c5a7f23a3d80c0716e8017012ae61f7202440c0092e1417e5f61b62e2e9f4260b SHA512 6a92b1ba2fbb51eac170db7a927927f8a06f184ebf820107a813c9cfa4dcdbea794199090a33986b48f5f00b3f43b404b7e1d26f5bf9663c53cb2b8f134d69af
DIST sqlglot-27.26.0.tar.gz 5490283 BLAKE2B 6492b62b6bef8f1b6c1a756896800429996b873a8b58264224e26c00e6c4fb4ff2f99dd595acb6021320c0fa6fc7838d9ca6a29966ce602797c100ab1cb64ed8 SHA512 2c76505c4c4a61d0f8f3ad294f8b3627bb63458c233d807db2ac89d7b12522b3e1caadef361eef4acc99507c9035a00e873aff9bdf1748b28b5fec3d0d4e8747
DIST sqlglot-27.27.0.tar.gz 5491023 BLAKE2B aa08211b3ee5c695b0f52558c4665a7cbf1dd373d87e15df6fff4828cdb728c2580c44231bd591cab25fb7a1e6a686b6d052b67cae1042911470c34aadaeaa61 SHA512 1346cd22c958f23da326d86f4d1ff425df4150ce51b6e00673b34c2d5cc28d3c32a0eb75dd0793db6ae0f3d37be778bc29c007dd9b348462d0410e941498c159
+DIST sqlglot-27.28.1.tar.gz 5498876 BLAKE2B 7adc2c5fe063f3ba98ad9f37471c2a0d4eed36c4a110cfde2531783dc17118f495d111f0f27eb37f6562c6db7e8b5eb20689d25b71d01edafa51c3bf265ece16 SHA512 e8d2d43622906510dc003c62c074336e19631c679b7c77f7afd527115744a0076c14cf179bf1d3929a15bd8af5e26d125e34cb286274ee047f8b4da19fb0859a
diff --git a/dev-python/sqlglot/sqlglot-27.28.1.ebuild b/dev-python/sqlglot/sqlglot-27.28.1.ebuild
new file mode 100644
index 000000000000..994fd0fba3eb
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-27.28.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+CRATE_PV=27.24.2
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${CRATE_PV}/sqlglot-${CRATE_PV}-crates.tar.xz
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016
+"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/starlette/starlette-0.48.0.ebuild b/dev-python/starlette/starlette-0.48.0.ebuild
index 0910a187ddc6..f40e238f6a90 100644
--- a/dev-python/starlette/starlette-0.48.0.ebuild
+++ b/dev-python/starlette/starlette-0.48.0.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
<dev-python/anyio-5[${PYTHON_USEDEP}]
diff --git a/dev-python/tempest/tempest-45.0.0.ebuild b/dev-python/tempest/tempest-45.0.0.ebuild
index fc671efb4508..62e28958ba2c 100644
--- a/dev-python/tempest/tempest-45.0.0.ebuild
+++ b/dev-python/tempest/tempest-45.0.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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/towncrier/towncrier-25.8.0.ebuild b/dev-python/towncrier/towncrier-25.8.0.ebuild
index 39aa545dd149..11d1dce041e0 100644
--- a/dev-python/towncrier/towncrier-25.8.0.ebuild
+++ b/dev-python/towncrier/towncrier-25.8.0.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/tox/tox-4.30.2.ebuild b/dev-python/tox/tox-4.30.2.ebuild
index fcce8b282959..50a02dc7eb07 100644
--- a/dev-python/tox/tox-4.30.2.ebuild
+++ b/dev-python/tox/tox-4.30.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/cachetools[${PYTHON_USEDEP}]
diff --git a/dev-python/trio/trio-0.31.0.ebuild b/dev-python/trio/trio-0.31.0.ebuild
index 207af67f5c0c..c258eabd72ed 100644
--- a/dev-python/trio/trio-0.31.0.ebuild
+++ b/dev-python/trio/trio-0.31.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="|| ( Apache-2.0 MIT )"
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/attrs-23.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/trove-classifiers/trove-classifiers-2025.9.11.17.ebuild b/dev-python/trove-classifiers/trove-classifiers-2025.9.11.17.ebuild
index e3cdd021772b..b652f961a227 100644
--- a/dev-python/trove-classifiers/trove-classifiers-2025.9.11.17.ebuild
+++ b/dev-python/trove-classifiers/trove-classifiers-2025.9.11.17.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/twine/twine-6.2.0.ebuild b/dev-python/twine/twine-6.2.0.ebuild
index d631670e4a22..cb7ec9fef1f9 100644
--- a/dev-python/twine/twine-6.2.0.ebuild
+++ b/dev-python/twine/twine-6.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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/colorama-0.4.3[${PYTHON_USEDEP}]
diff --git a/dev-python/typer/Manifest b/dev-python/typer/Manifest
index aba0236304db..1b59c21bc8c8 100644
--- a/dev-python/typer/Manifest
+++ b/dev-python/typer/Manifest
@@ -1,4 +1,4 @@
-DIST typer-0.19.1.tar.gz 104802 BLAKE2B 1b9565039ab8ee57ef9317112fbb63b8a27faca6ac558c5dcd08f89e96f42d3461aa9d131ad5afed08d1ab369d7f0ef09664a10f5929fe8d1851214c9ac90c60 SHA512 f1042d6b6a120978c9abdac1531bdb26897a351729a297d0c95daf661c8092d01c7b372381d418e15cec2fdc14d4516bf0331bca04129acd062066bc33fc3f0a
-DIST typer-0.19.1.tar.gz.provenance 9313 BLAKE2B a51b6ea2934e4302c1095c59df697e508a9863a600a63d72e9edbae68cfec6248726827689849e605625d4f03c74b87a973ad167e8ba40c35f4aad2cebb86af7 SHA512 521134cf3bc2046640627135a12b0d35283511bd3e86a2e5b4f1666d31ee3de0ef0ed4d462084d94c20c3489f2f42ea4b369a45a956d49e3751a28b69713c92a
DIST typer-0.19.2.tar.gz 104755 BLAKE2B 7b520b22c2519a1501235a7697695a74b1908e7e628b5a836e2266746cebbc2bbb32ca2a1e6ce4771bd90290a31ed100b40c3d33e4e8f73416280373c18c73da SHA512 d283166b991a70751b0deefba4fd4cff044f9dc6ec60dd249554f7ddc5eb642cd484e207afa0741be584961c7c9b3292cfd83c26eeb94d50ea553a9ee79a6589
DIST typer-0.19.2.tar.gz.provenance 9172 BLAKE2B e45fac477ae8acc3ef4b71337cacf4ffce57150ba7d0ceecdbcceb3e6cbca676df4c812f7d674b4662315763d46973074d41dfc1835a9f5d755e8a362b40d850 SHA512 0e1445f3f926f451e61a974044c1a9e71ff0b75d00bfb4552bef6e8774da12bb5cc10a01df97014d801f226e7fa1bc1ea493b8a00d18543e9cc3e8c43e7a1680
+DIST typer-0.20.0.tar.gz 106492 BLAKE2B 2efc70beced0f7c29e2b31b997cafc27932048d845b902045eb444af14f290395556e10cc42d4ca33032e2f3763c4de03395e61e384b4977f81c846417e4b97d SHA512 441afc25267bb998674e63075a3ff1b3a2835601c4ea8b8693520037b132d34b96c8901fafea58938b7a7d19630c11a8f58ea58d5f36f53fdd9db38636296fe9
+DIST typer-0.20.0.tar.gz.provenance 9125 BLAKE2B a4ad62d4913fd31b565e8ac9e6ad128df8789451341565ae4f4240276074dad4202d5468af3ec7f15e7cf5e099d01b4d357cf06a0294d1a6b28c392da82f66fb SHA512 4c351c9ae252290cfa83cd9ae70ea74f7be9cc3c97fc6bb306d7c678763a50bdda0c34eedbf81246f69be77f0ad1fd28de15730d348c7c0a947efc41db27f50b
diff --git a/dev-python/typer/typer-0.19.1.ebuild b/dev-python/typer/typer-0.20.0.ebuild
index 6c3011a1ea35..6c3011a1ea35 100644
--- a/dev-python/typer/typer-0.19.1.ebuild
+++ b/dev-python/typer/typer-0.20.0.ebuild
diff --git a/dev-python/types-gdb/types-gdb-16.3.0.20250920.ebuild b/dev-python/types-gdb/types-gdb-16.3.0.20250920.ebuild
index 0f07ccfced9b..b9183c9ac756 100644
--- a/dev-python/types-gdb/types-gdb-16.3.0.20250920.ebuild
+++ b/dev-python/types-gdb/types-gdb-16.3.0.20250920.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-gdb/"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 x86"
diff --git a/dev-python/urwid/urwid-3.0.3.ebuild b/dev-python/urwid/urwid-3.0.3.ebuild
index b8a2bc60a4ab..e16c1ccd8464 100644
--- a/dev-python/urwid/urwid-3.0.3.ebuild
+++ b/dev-python/urwid/urwid-3.0.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/uv/uv-0.9.4.ebuild b/dev-python/uv/uv-0.9.4.ebuild
index 31bb8fdcad40..89023c39d789 100644
--- a/dev-python/uv/uv-0.9.4.ebuild
+++ b/dev-python/uv/uv-0.9.4.ebuild
@@ -48,7 +48,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
diff --git a/dev-python/uvicorn/uvicorn-0.36.0.ebuild b/dev-python/uvicorn/uvicorn-0.36.0.ebuild
index 99bfc12921f3..a220c4e838d4 100644
--- a/dev-python/uvicorn/uvicorn-0.36.0.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.36.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/vector/Manifest b/dev-python/vector/Manifest
index 5a4771bd6f76..562a2dd42522 100644
--- a/dev-python/vector/Manifest
+++ b/dev-python/vector/Manifest
@@ -1,2 +1,3 @@
-DIST vector-1.6.2.tar.gz 350018 BLAKE2B 17a8a22a98261b25c12e4c04ab0a4963920edb47f333d66fa21559f55b5019df18aad50a83fc793853f6bd29dc61b5c218029792ddce8a3ca9e02a1d53e26894 SHA512 6dc118fd22db66fb207bd0003b3aa0ce14cfe1a25e684b3b75a1518300cc687e605dea6c0d8d78d61233bc267997a8f62543a19ae1e094a22c387c8c7ec4a3d8
DIST vector-1.6.3.tar.gz 352886 BLAKE2B 52b5bbb88ab3fce6c6feececc159b16f38ce0fbf4c78b2446011ec581c65dd2b50087a58ae39f53ee39263e8c4c1c32bf0594ca2e6cfb33b00f3c541125c4656 SHA512 ebd176f4901c087fe4b8ce91787633c11a59fe9aa3485cde9f06995aa78f14d7b3f8ea6d9cae55a8a5f92fa8c6ab4b90fa4aabc32317c5cc5425b5836f7fdc80
+DIST vector-1.7.0.tar.gz 386607 BLAKE2B 96689863e1e602d64bbbf694b62afeb69f2487d2232178fd5b3352a1d757023d62e2a0e98003d113e34d3eb1794a7fa03701fc2040d353ae5ad6bcede26ab320 SHA512 de2b7c775e8db0d1797d43c2541fb4e8f118e616b1875d48fbc3bd6a1a08013319b0e576bffd8d3178791483468cb690295ed58e3626f16d7a05650e9ddbbb80
+DIST vector-1.7.0.tar.gz.provenance 9150 BLAKE2B b9d5804f99c9df10986e0d92fa09388aa66bf502e9fa4069ec25b7eddff79a69dc8b6fb017c5f6baeaa404a1f8e5d0916d19077846b05f1e7afb3523815cec06 SHA512 13f9a72f0079cd27228d701fa13342546900c05666c97cf821c29c0b750e0a56c94d0121d57b8a4cc474a8a5c4598e36fd5247d7ee9131146574ab1097481496
diff --git a/dev-python/vector/vector-1.6.2.ebuild b/dev-python/vector/vector-1.7.0.ebuild
index 80f6bdac7665..6eb8f5fc7bd0 100644
--- a/dev-python/vector/vector-1.6.2.ebuild
+++ b/dev-python/vector/vector-1.7.0.ebuild
@@ -4,13 +4,14 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..14} )
+PYPI_VERIFY_REPO=https://github.com/scikit-hep/vector
DISTUTILS_USE_PEP517=hatchling
inherit distutils-r1 pypi optfeature
DESCRIPTION="Vector classes and utilities"
HOMEPAGE="
- https://github.com/scikit-hep/vector
+ https://github.com/scikit-hep/vector/
https://pypi.org/project/vector/
https://vector.readthedocs.io/
https://doi.org/10.5281/zenodo.7054478
@@ -21,18 +22,17 @@ SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
- >=dev-python/numpy-1.13.3[${PYTHON_USEDEP}]
- >=dev-python/packaging-19[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.19.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20[${PYTHON_USEDEP}]
"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/awkward[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ )
"
-pkg_postinst() {
- optfeature "awkward array support" dev-python/awkward
- optfeature "sympy support" dev-python/sympy
-}
-
EPYTEST_IGNORE=(
# no module named papermill
tests/test_notebooks.py
@@ -41,4 +41,10 @@ EPYTEST_IGNORE=(
tests/compute/sympy/lorentz/
)
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature "awkward array support" dev-python/awkward
+ optfeature "sympy support" dev-python/sympy
+}
diff --git a/dev-python/xcffib/xcffib-1.10.0.ebuild b/dev-python/xcffib/xcffib-1.10.0.ebuild
index ba2c6fef3c32..52f12cf70bc8 100644
--- a/dev-python/xcffib/xcffib-1.10.0.ebuild
+++ b/dev-python/xcffib/xcffib-1.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
x11-libs/libxcb
diff --git a/dev-python/xlsxwriter/xlsxwriter-3.2.9.ebuild b/dev-python/xlsxwriter/xlsxwriter-3.2.9.ebuild
index 4f8d545704fb..b26ee8e8a1a1 100644
--- a/dev-python/xlsxwriter/xlsxwriter-3.2.9.ebuild
+++ b/dev-python/xlsxwriter/xlsxwriter-3.2.9.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/xvfbwrapper/Manifest b/dev-python/xvfbwrapper/Manifest
index bf88e7930f9b..3cd08277c65f 100644
--- a/dev-python/xvfbwrapper/Manifest
+++ b/dev-python/xvfbwrapper/Manifest
@@ -1,2 +1,3 @@
DIST xvfbwrapper-0.2.13.tar.gz 8383 BLAKE2B 2c1d5e7160199af50c52c0ae5e343b63041f4ec4a0a922705564a0b9c84f481fe8696ae3b20c8b227b25c3cd71496022461441bb59755d22d8913f6d3fcc01d3 SHA512 c8b965df4dbae4dd61ef625ca22c8b965f612f6377262b71fae260558b3c3456f5fe2407f16ec4c16ac6aeb0c39f5e651fff17533e04ef05e46e8aee5786d1c7
DIST xvfbwrapper-0.2.14.tar.gz 8500 BLAKE2B e6e889efd1cf3219382cf8faef789f89e2b01b9589b9f0d6df4d25bf9756c6adcf12655699c270541d633e0123ed84faf9761531f32468e44517adeffaf2ed21 SHA512 580ae17ceeda71a0dbe962c4abd0d06662ffff0d3b58000b9a749e71734d51200b4a30808317ccf1fb9487b10d461b7926f40d8f971ba401f2442e9387fcd4dd
+DIST xvfbwrapper-0.2.15.tar.gz 9027 BLAKE2B d3a28e17889b9ef8bbdfc1c6af3f6be143b7b27f8737e382d2f78a243f0fbde64ef4dc00c3703882e248ae4505d97cea8583658a367291b77fbe6a4f66ea056a SHA512 7706a68159a388e62539a835e202c94c9bc74bb60e8f9b2ec40bb6d0ed5c009829eb429ae63b39c08a23cc4c1fee859a6c7a314f173060904aa90f219455099f
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild
new file mode 100644
index 000000000000..9068d1f6d108
--- /dev/null
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.15.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python wrapper for running a display inside X virtual framebuffer"
+HOMEPAGE="
+ https://github.com/cgoldberg/xvfbwrapper/
+ https://pypi.org/project/xvfbwrapper/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ x11-base/xorg-server[xvfb]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild b/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild
index aef4c584ced8..ce46339d191b 100644
--- a/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild
+++ b/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="ZPL"
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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zeep/zeep-4.3.2.ebuild b/dev-python/zeep/zeep-4.3.2.ebuild
index 249798d9b201..516afe1a2d7f 100644
--- a/dev-python/zeep/zeep-4.3.2.ebuild
+++ b/dev-python/zeep/zeep-4.3.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
IUSE="async"
RDEPEND="
diff --git a/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild b/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild
index 0015fd943753..98e56f71ffc7 100644
--- a/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild
+++ b/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
DEPEND="
sys-libs/zlib-ng:=
diff --git a/dev-python/zope-component/zope-component-7.0.ebuild b/dev-python/zope-component/zope-component-7.0.ebuild
index 8d8a4d8915a5..f28ad95943d0 100644
--- a/dev-python/zope-component/zope-component-7.0.ebuild
+++ b/dev-python/zope-component/zope-component-7.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
dev-python/zope-event[${PYTHON_USEDEP}]
diff --git a/dev-python/zope-configuration/zope-configuration-7.0.ebuild b/dev-python/zope-configuration/zope-configuration-7.0.ebuild
index 77a0787d2139..9dde18508ac5 100644
--- a/dev-python/zope-configuration/zope-configuration-7.0.ebuild
+++ b/dev-python/zope-configuration/zope-configuration-7.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
dev-python/zope-i18nmessageid[${PYTHON_USEDEP}]
diff --git a/dev-python/zope-event/zope-event-6.0.ebuild b/dev-python/zope-event/zope-event-6.0.ebuild
index ac33ed09184a..a29aa0f7d767 100644
--- a/dev-python/zope-event/zope-event-6.0.ebuild
+++ b/dev-python/zope-event/zope-event-6.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
distutils_enable_tests unittest
diff --git a/dev-python/zope-hookable/zope-hookable-8.0.ebuild b/dev-python/zope-hookable/zope-hookable-8.0.ebuild
index 3ed8d45d3919..7253aa7bff9a 100644
--- a/dev-python/zope-hookable/zope-hookable-8.0.ebuild
+++ b/dev-python/zope-hookable/zope-hookable-8.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zope-interface/zope-interface-8.0.ebuild b/dev-python/zope-interface/zope-interface-8.0.ebuild
index 0c3000b480de..fdb05365c7e3 100644
--- a/dev-python/zope-interface/zope-interface-8.0.ebuild
+++ b/dev-python/zope-interface/zope-interface-8.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zope-schema/zope-schema-8.0.ebuild b/dev-python/zope-schema/zope-schema-8.0.ebuild
index 32e2ed504b5d..daa776011cac 100644
--- a/dev-python/zope-schema/zope-schema-8.0.ebuild
+++ b/dev-python/zope-schema/zope-schema-8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
dev-python/zope-event[${PYTHON_USEDEP}]
diff --git a/dev-python/zstandard/zstandard-0.25.0.ebuild b/dev-python/zstandard/zstandard-0.25.0.ebuild
index 783f30a36dcb..3a4e5de653af 100644
--- a/dev-python/zstandard/zstandard-0.25.0.ebuild
+++ b/dev-python/zstandard/zstandard-0.25.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
DEPEND="
>=app-arch/zstd-1.5.7:=