From 3ceeeb71476e4e7c29c37bbd1a2b3a97e34761e2 Mon Sep 17 00:00:00 2001
From: "Liguros - Gitlab CI/CD [develop]"
Date: Fri, 5 Sep 2025 08:13:23 +0000
Subject: Adding metadata
---
dev-python/a2wsgi/a2wsgi-1.10.10.ebuild | 2 +-
.../accessible-pygments-0.0.5.ebuild | 2 +-
dev-python/aiodns/aiodns-3.5.0.ebuild | 2 +-
dev-python/aiofiles/aiofiles-24.1.0.ebuild | 2 +-
.../aiohappyeyeballs/aiohappyeyeballs-2.6.1.ebuild | 14 +-
.../aiohappyeyeballs-2.6.1-pytest-asyncio-1.patch | 30 +++
dev-python/aiohttp-cors/aiohttp-cors-0.8.1.ebuild | 2 +-
.../aiohttp-theme/aiohttp-theme-0.1.7.ebuild | 2 +-
dev-python/aiohttp/aiohttp-3.11.18.ebuild | 2 +-
dev-python/aiohttp/aiohttp-3.12.13.ebuild | 2 +-
dev-python/aiorpcx/aiorpcx-0.23.1.ebuild | 11 +-
dev-python/aiorpcx/aiorpcx-0.24.ebuild | 7 +-
dev-python/aiorpcx/aiorpcx-0.25.0.ebuild | 7 +-
.../aiorpcx-0.23.1-pytest-asyncio-1-more.patch | 73 +++++
.../files/aiorpcx-0.25.0-pytest-asyncio-1.patch | 152 +++++++++++
dev-python/aiosignal/aiosignal-1.4.0.ebuild | 2 +-
dev-python/aiosmtpd/aiosmtpd-1.4.6.ebuild | 2 +-
dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild | 2 +-
dev-python/alabaster/alabaster-1.0.0.ebuild | 2 +-
.../annotated-types/annotated-types-0.7.0.ebuild | 2 +-
dev-python/anyio/anyio-4.10.0.ebuild | 3 +-
dev-python/anyio/anyio-4.8.0-r3.ebuild | 2 +-
dev-python/apipkg/apipkg-3.0.2.ebuild | 2 +-
dev-python/appdirs/appdirs-1.4.4-r3.ebuild | 2 +-
dev-python/apprise/apprise-1.9.4.ebuild | 2 +-
dev-python/apsw/apsw-3.50.3.0.ebuild | 2 +-
dev-python/argcomplete/argcomplete-3.6.2.ebuild | 2 +-
dev-python/argh/argh-0.31.3.ebuild | 2 +-
.../argon2-cffi-bindings-21.2.0-r1.ebuild | 2 +-
.../argon2-cffi-bindings-25.1.0.ebuild | 2 +-
dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild | 2 +-
dev-python/arrow/arrow-1.3.0.ebuild | 2 +-
dev-python/asgiref/asgiref-3.9.1.ebuild | 2 +-
.../asn1crypto/asn1crypto-1.5.1_p20231012.ebuild | 2 +-
dev-python/astor/astor-0.8.1-r2.ebuild | 2 +-
dev-python/astroid/astroid-3.3.11.ebuild | 2 +-
dev-python/asttokens/asttokens-3.0.0-r1.ebuild | 2 +-
.../async-timeout/async-timeout-4.0.3.ebuild | 4 +-
.../async-timeout/async-timeout-5.0.1.ebuild | 2 +-
dev-python/atomicwrites/atomicwrites-1.4.1.ebuild | 2 +-
dev-python/atpublic/atpublic-6.0.1.ebuild | 2 +-
dev-python/attrs/attrs-25.3.0.ebuild | 2 +-
dev-python/autobahn/autobahn-24.4.2.ebuild | 15 +-
.../files/autobahn-24.4.2-pytest-asyncio-1.patch | 298 +++++++++++++++++++++
dev-python/automat/automat-25.4.16.ebuild | 2 +-
dev-python/autopage/autopage-0.5.2.ebuild | 2 +-
dev-python/autopep8/autopep8-2.3.2.ebuild | 2 +-
dev-python/babel/babel-2.17.0.ebuild | 2 +-
.../backports-tarfile-1.2.0.ebuild | 2 +-
dev-python/bcrypt/bcrypt-4.3.0.ebuild | 2 +-
.../beautifulsoup4/beautifulsoup4-4.13.4.ebuild | 2 +-
dev-python/betamax/betamax-0.9.0.ebuild | 2 +-
dev-python/black/black-24.10.0.ebuild | 2 +-
dev-python/black/black-25.1.0.ebuild | 2 +-
dev-python/bleach/bleach-6.2.0.ebuild | 2 +-
dev-python/bleak/Manifest | 1 +
dev-python/bleak/bleak-1.1.0.ebuild | 51 ++++
dev-python/bleak/metadata.xml | 10 +
dev-python/blinker/blinker-1.9.0.ebuild | 2 +-
dev-python/blockbuster/blockbuster-1.5.25.ebuild | 2 +-
dev-python/boltons/boltons-25.0.0.ebuild | 2 +-
dev-python/boolean-py/boolean-py-5.0.ebuild | 2 +-
dev-python/boto3/Manifest | 3 +
dev-python/boto3/boto3-1.39.14.ebuild | 2 +-
dev-python/boto3/boto3-1.40.1.ebuild | 2 +-
dev-python/boto3/boto3-1.40.22.ebuild | 53 ++++
dev-python/boto3/boto3-1.40.23.ebuild | 53 ++++
dev-python/boto3/boto3-1.40.24.ebuild | 53 ++++
dev-python/botocore/Manifest | 3 +
dev-python/botocore/botocore-1.39.14.ebuild | 2 +-
dev-python/botocore/botocore-1.40.1.ebuild | 2 +-
dev-python/botocore/botocore-1.40.22.ebuild | 67 +++++
dev-python/botocore/botocore-1.40.23.ebuild | 67 +++++
dev-python/botocore/botocore-1.40.24.ebuild | 67 +++++
dev-python/bottle/bottle-0.12.25-r1.ebuild | 4 +-
dev-python/bottle/bottle-0.13.3.ebuild | 2 +-
dev-python/bottle/bottle-0.13.4.ebuild | 2 +-
dev-python/bracex/bracex-2.6.ebuild | 2 +-
dev-python/breathe/breathe-4.36.0.ebuild | 2 +-
dev-python/brotlicffi/brotlicffi-1.1.0.0.ebuild | 2 +-
dev-python/build/build-1.2.2_p1-r2.ebuild | 2 +-
dev-python/cachecontrol/cachecontrol-0.14.3.ebuild | 2 +-
dev-python/cachetools/cachetools-6.1.0.ebuild | 2 +-
dev-python/cairocffi/cairocffi-1.7.1.ebuild | 2 +-
dev-python/calver/calver-2025.4.17.ebuild | 2 +-
dev-python/cattrs/cattrs-25.1.1.ebuild | 2 +-
dev-python/cbor2/cbor2-5.6.5.ebuild | 2 +-
dev-python/cerberus/cerberus-1.3.7.ebuild | 2 +-
dev-python/cffi/cffi-1.17.1.ebuild | 2 +-
.../characteristic/characteristic-14.3.0-r4.ebuild | 2 +-
dev-python/chardet/chardet-5.2.0.ebuild | 2 +-
.../charset-normalizer-3.4.2.ebuild | 2 +-
dev-python/cheroot/cheroot-10.0.1.ebuild | 2 +-
dev-python/cherrypy/cherrypy-18.10.0.ebuild | 2 +-
.../click-default-group-1.2.4.ebuild | 2 +-
dev-python/click/click-8.2.1.ebuild | 2 +-
dev-python/cliff/cliff-4.10.0.ebuild | 2 +-
dev-python/cloudpickle/cloudpickle-3.1.1.ebuild | 2 +-
dev-python/cmd2/cmd2-2.6.2.ebuild | 2 +-
dev-python/colorama/colorama-0.4.6.ebuild | 2 +-
dev-python/colorclass/colorclass-2.2.2-r1.ebuild | 2 +-
dev-python/comm/comm-0.2.3.ebuild | 2 +-
dev-python/commentjson/commentjson-0.9.0-r2.ebuild | 2 +-
dev-python/commonmark/commonmark-0.9.1-r1.ebuild | 2 +-
dev-python/configobj/configobj-5.0.9.ebuild | 2 +-
.../configshell-fb/configshell-fb-2.0.2.ebuild | 2 +-
dev-python/configupdater/configupdater-3.2.ebuild | 2 +-
dev-python/constantly/constantly-23.10.4.ebuild | 2 +-
dev-python/contourpy/contourpy-1.3.2.ebuild | 2 +-
dev-python/cookies/cookies-2.2.1-r2.ebuild | 2 +-
dev-python/coverage/coverage-7.9.1.ebuild | 2 +-
dev-python/cppy/cppy-1.3.1.ebuild | 2 +-
dev-python/cryptography/Manifest | 2 +-
dev-python/cryptography/cryptography-45.0.5.ebuild | 130 ---------
dev-python/cryptography/cryptography-45.0.7.ebuild | 130 +++++++++
dev-python/cssselect/cssselect-1.3.0.ebuild | 2 +-
dev-python/cycler/cycler-0.12.1.ebuild | 2 +-
.../cython-test-exception-raiser-1.0.2-r1.ebuild | 2 +-
dev-python/cython/cython-3.1.2-r1.ebuild | 2 +-
dev-python/dbus-fast/dbus-fast-2.44.3.ebuild | 2 +-
dev-python/dbus-python/dbus-python-1.4.0.ebuild | 2 +-
dev-python/ddt/ddt-1.7.2.ebuild | 2 +-
dev-python/decorator/decorator-5.2.1.ebuild | 2 +-
dev-python/deepdiff/Manifest | 2 +-
dev-python/deepdiff/deepdiff-8.6.0.ebuild | 48 ----
dev-python/deepdiff/deepdiff-8.6.1.ebuild | 49 ++++
dev-python/deepmerge/deepmerge-2.0.ebuild | 2 +-
dev-python/defusedxml/defusedxml-0.7.1-r1.ebuild | 2 +-
dev-python/defusedxml/defusedxml-0.8.0_rc2.ebuild | 2 +-
.../dependency-groups-1.3.1.ebuild | 2 +-
dev-python/deprecated/deprecated-1.2.18-r1.ebuild | 2 +-
dev-python/deprecation/deprecation-2.1.0-r1.ebuild | 2 +-
dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild | 2 +-
dev-python/dill/dill-0.4.0.ebuild | 2 +-
dev-python/dirty-equals/dirty-equals-0.9.0.ebuild | 2 +-
dev-python/discid/Manifest | 1 -
dev-python/discid/discid-1.2.0-r1.ebuild | 40 ---
dev-python/diskcache/diskcache-5.6.3.ebuild | 4 +-
dev-python/distlib/distlib-0.4.0.ebuild | 2 +-
dev-python/distro/distro-1.9.0.ebuild | 2 +-
.../dj-database-url/dj-database-url-3.0.1.ebuild | 2 +-
dev-python/dj-email-url/dj-email-url-1.0.6.ebuild | 2 +-
.../dj-search-url/dj-search-url-0.1-r1.ebuild | 2 +-
.../django-cache-url/django-cache-url-3.4.5.ebuild | 2 +-
.../django-configurations-2.5.1.ebuild | 2 +-
dev-python/django/Manifest | 14 +-
dev-python/django/django-4.2.23.ebuild | 106 --------
dev-python/django/django-4.2.24.ebuild | 106 ++++++++
dev-python/django/django-5.1.11.ebuild | 100 -------
dev-python/django/django-5.1.12.ebuild | 100 +++++++
dev-python/django/django-5.2.4.ebuild | 98 -------
dev-python/django/django-5.2.5.ebuild | 100 -------
dev-python/django/django-5.2.6.ebuild | 100 +++++++
.../django/files/django-4.2.24-htmlparser.patch | 15 ++
.../django/files/django-5.2.5-htmlparser.patch | 58 ----
.../django/files/django-5.2.6-htmlparser.patch | 13 +
dev-python/dnspython/Manifest | 1 +
dev-python/dnspython/dnspython-2.7.0-r1.ebuild | 60 +++++
dev-python/dnspython/dnspython-2.7.0.ebuild | 2 +-
dev-python/dnspython/dnspython-2.8.0_rc1.ebuild | 61 +++++
dev-python/dnspython/metadata.xml | 6 +
dev-python/docopt/docopt-0.6.2-r5.ebuild | 2 +-
dev-python/docutils-glep/docutils-glep-1.5.ebuild | 4 +-
dev-python/docutils/docutils-0.21.2.ebuild | 2 +-
dev-python/docutils/docutils-0.22.ebuild | 2 +-
dev-python/ecdsa/ecdsa-0.19.1.ebuild | 2 +-
dev-python/editables/editables-0.5.ebuild | 2 +-
dev-python/elementpath/elementpath-5.0.3.ebuild | 2 +-
.../email-validator/email-validator-2.2.0.ebuild | 2 +-
.../ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild | 2 +-
.../ensurepip-setuptools-79.0.1.ebuild | 2 +-
.../ensurepip-setuptools-80.9.0-r1.ebuild | 2 +-
.../ensurepip-wheel-0.45.1-r1.ebuild | 2 +-
dev-python/entrypoints/entrypoints-0.4.ebuild | 2 +-
.../ephemeral-port-reserve-1.1.4.ebuild | 2 +-
dev-python/eradicate/eradicate-3.0.0.ebuild | 2 +-
.../exceptiongroup/exceptiongroup-1.3.0.ebuild | 2 +-
dev-python/execnet/execnet-2.1.1.ebuild | 2 +-
dev-python/executing/Manifest | 1 +
dev-python/executing/executing-2.2.0.ebuild | 2 +-
dev-python/executing/executing-2.2.1.ebuild | 67 +++++
dev-python/expandvars/expandvars-1.1.1.ebuild | 2 +-
dev-python/extras/extras-1.0.0-r2.ebuild | 2 +-
dev-python/eyed3/eyed3-0.9.8.ebuild | 2 +-
dev-python/faker/faker-37.4.2.ebuild | 2 +-
dev-python/faker/faker-37.4.3.ebuild | 2 +-
dev-python/fakeredis/fakeredis-2.30.3.ebuild | 2 +-
dev-python/fasteners/fasteners-0.19.ebuild | 4 +-
.../fastjsonschema/fastjsonschema-2.21.1.ebuild | 2 +-
dev-python/feedparser/feedparser-6.0.11.ebuild | 2 +-
dev-python/fields/fields-5.0.0-r3.ebuild | 2 +-
dev-python/filelock/filelock-3.18.0.ebuild | 2 +-
dev-python/filetype/filetype-1.2.0.ebuild | 2 +-
dev-python/fixtures/fixtures-4.2.5.ebuild | 2 +-
dev-python/fixtures/fixtures-4.2.6.ebuild | 2 +-
dev-python/flake8/flake8-7.3.0.ebuild | 2 +-
dev-python/flaky/flaky-3.8.1.ebuild | 2 +-
dev-python/flasgger/flasgger-0.9.7.1.ebuild | 2 +-
.../files/flask-restx-fix-flask-compat.patch | 147 ----------
dev-python/flask/flask-3.1.1.ebuild | 2 +-
dev-python/flit-core/flit-core-3.12.0.ebuild | 2 +-
dev-python/flit-scm/flit-scm-1.7.0.ebuild | 2 +-
dev-python/fonttools/fonttools-4.58.4.ebuild | 2 +-
.../forbiddenfruit/forbiddenfruit-0.1.4.ebuild | 2 +-
dev-python/fqdn/fqdn-1.5.1-r2.ebuild | 2 +-
dev-python/freezegun/freezegun-1.5.3.ebuild | 2 +-
dev-python/freezegun/freezegun-1.5.4.ebuild | 2 +-
dev-python/frozenlist/frozenlist-1.7.0.ebuild | 2 +-
dev-python/fs/fs-2.4.16-r1.ebuild | 2 +-
dev-python/fsspec/Manifest | 1 +
dev-python/fsspec/fsspec-2025.9.0.ebuild | 60 +++++
.../funcparserlib/funcparserlib-1.0.1.ebuild | 2 +-
dev-python/furo/furo-2025.7.19.ebuild | 2 +-
dev-python/fuzzywuzzy/fuzzywuzzy-0.18.0-r1.ebuild | 2 +-
dev-python/gentoo-common/gentoo-common-1.ebuild | 4 +-
dev-python/genty/genty-1.3.2-r3.ebuild | 2 +-
dev-python/gitdb/gitdb-4.0.12.ebuild | 2 +-
dev-python/gitpython/gitpython-3.1.45.ebuild | 2 +-
dev-python/gmpy2/gmpy2-2.2.1.ebuild | 2 +-
dev-python/google-api-python-client/Manifest | 1 +
.../google-api-python-client-2.181.0.ebuild | 51 ++++
dev-python/gpep517/gpep517-19.ebuild | 2 +-
dev-python/gpgmepy/gpgmepy-1.24.3.ebuild | 2 +-
dev-python/greenlet/greenlet-3.2.3.ebuild | 2 +-
.../grpcio-status/grpcio-status-1.74.0.ebuild | 2 +-
dev-python/gssapi/Manifest | 1 +
dev-python/gssapi/gssapi-1.10.0.ebuild | 47 ++++
dev-python/h11/h11-0.14.0.ebuild | 2 +-
dev-python/h11/h11-0.16.0.ebuild | 2 +-
dev-python/h2/h2-4.2.0.ebuild | 2 +-
.../hatch-fancy-pypi-readme-25.1.0.ebuild | 2 +-
.../hatch-jupyter-builder-0.9.1.ebuild | 2 +-
.../hatch-nodejs-version-0.4.0.ebuild | 2 +-
dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild | 2 +-
dev-python/hatchling/hatchling-1.27.0.ebuild | 2 +-
dev-python/hpack/hpack-4.1.0.ebuild | 2 +-
dev-python/html5lib/html5lib-1.1-r2.ebuild | 2 +-
dev-python/httpbin/httpbin-0.10.2-r1.ebuild | 2 +-
dev-python/httpcore/httpcore-1.0.9-r1.ebuild | 2 +-
dev-python/httplib2/httplib2-0.22.0.ebuild | 2 +-
dev-python/httpretty/httpretty-1.1.4-r3.ebuild | 2 +-
dev-python/httptools/httptools-0.6.4.ebuild | 2 +-
dev-python/httpx-socks/httpx-socks-0.10.1.ebuild | 2 +-
dev-python/httpx/httpx-0.28.1-r1.ebuild | 2 +-
dev-python/hypercorn/hypercorn-0.17.3.ebuild | 2 +-
dev-python/hyperframe/hyperframe-6.1.0.ebuild | 2 +-
dev-python/hyperlink/hyperlink-21.0.0-r1.ebuild | 2 +-
dev-python/hypothesis/Manifest | 6 +-
dev-python/hypothesis/hypothesis-6.135.25.ebuild | 2 +-
dev-python/hypothesis/hypothesis-6.136.9.ebuild | 2 +-
dev-python/hypothesis/hypothesis-6.138.13.ebuild | 125 +++++++++
dev-python/hypothesis/hypothesis-6.138.14.ebuild | 125 +++++++++
dev-python/hypothesis/hypothesis-6.138.3.ebuild | 125 ---------
dev-python/hypothesis/hypothesis-6.138.6.ebuild | 125 ---------
dev-python/hypothesis/hypothesis-6.138.7.ebuild | 125 ---------
dev-python/hypothesis/hypothesis-6.138.8.ebuild | 125 ---------
dev-python/id/id-1.5.0.ebuild | 2 +-
dev-python/idna/idna-3.10.ebuild | 2 +-
dev-python/imagesize/imagesize-1.4.1.ebuild | 2 +-
dev-python/immutables/immutables-0.21.ebuild | 2 +-
.../importlib-metadata-8.7.0.ebuild | 2 +-
.../importlib-resources-6.5.2.ebuild | 2 +-
dev-python/incremental/incremental-24.7.2.ebuild | 2 +-
dev-python/inflect/inflect-7.5.0.ebuild | 2 +-
dev-python/ini2toml/ini2toml-0.15.ebuild | 2 +-
dev-python/iniconfig/iniconfig-2.1.0.ebuild | 2 +-
.../inline-snapshot/inline-snapshot-0.24.0.ebuild | 2 +-
dev-python/installer/installer-0.7.0.ebuild | 2 +-
dev-python/iocapture/iocapture-0.1.2-r3.ebuild | 2 +-
dev-python/ipykernel/ipykernel-6.29.5-r1.ebuild | 2 +-
dev-python/ipykernel/ipykernel-6.30.0.ebuild | 2 +-
dev-python/ipyparallel/ipyparallel-9.0.1.ebuild | 2 +-
.../ipython-genutils-0.2.0-r4.ebuild | 2 +-
.../ipython-pygments-lexers-1.1.1.ebuild | 2 +-
dev-python/ipython/ipython-8.37.0.ebuild | 2 +-
dev-python/ipython/ipython-9.3.0.ebuild | 2 +-
dev-python/isal/isal-1.7.2-r1.ebuild | 2 +-
dev-python/iso8601/iso8601-2.1.0.ebuild | 2 +-
dev-python/isodate/isodate-0.6.1-r1.ebuild | 4 +-
dev-python/isodate/isodate-0.7.2.ebuild | 2 +-
.../isoduration/isoduration-20.11.0-r1.ebuild | 2 +-
dev-python/isort/isort-6.0.1.ebuild | 2 +-
dev-python/itsdangerous/itsdangerous-2.2.0.ebuild | 2 +-
.../jaraco-classes/jaraco-classes-3.4.0.ebuild | 2 +-
.../jaraco-collections-5.2.1.ebuild | 2 +-
.../jaraco-context/jaraco-context-6.0.1-r1.ebuild | 2 +-
dev-python/jaraco-envs/jaraco-envs-2.6.0.ebuild | 2 +-
.../jaraco-functools/jaraco-functools-4.2.1.ebuild | 2 +-
.../jaraco-itertools/jaraco-itertools-6.4.3.ebuild | 2 +-
dev-python/jaraco-path/jaraco-path-3.7.2.ebuild | 2 +-
dev-python/jaraco-test/jaraco-test-5.5.1.ebuild | 2 +-
dev-python/jaraco-text/jaraco-text-4.0.0.ebuild | 2 +-
dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild | 2 +-
.../jaraco-versioning-1.1.0.ebuild | 2 +-
dev-python/jedi/jedi-0.19.2.ebuild | 2 +-
dev-python/jeepney/jeepney-0.9.0.ebuild | 2 +-
dev-python/jinja2/jinja2-3.1.6.ebuild | 2 +-
dev-python/jmespath/jmespath-1.0.1.ebuild | 2 +-
dev-python/jsonpointer/jsonpointer-2.4.ebuild | 4 +-
dev-python/jsonpointer/jsonpointer-3.0.0.ebuild | 2 +-
.../jsonschema-specifications-2025.4.1.ebuild | 2 +-
dev-python/jsonschema/jsonschema-4.24.0.ebuild | 2 +-
.../jupyter-client/jupyter-client-8.6.3.ebuild | 2 +-
dev-python/jupyter-core/jupyter-core-5.8.1.ebuild | 2 +-
.../jupyter-events/jupyter-events-0.12.0.ebuild | 2 +-
.../jupyter-packaging-0.12.3.ebuild | 2 +-
.../jupyter-server-mathjax-0.2.6.ebuild | 4 +-
.../jupyter-server-terminals-0.5.3.ebuild | 2 +-
.../jupyter-server/jupyter-server-2.16.0.ebuild | 2 +-
.../jupyterlab-pygments-0.3.0.ebuild | 2 +-
dev-python/jupyterlab/Manifest | 1 +
dev-python/jupyterlab/jupyterlab-4.4.7.ebuild | 75 ++++++
dev-python/kerberos/kerberos-1.3.1-r2.ebuild | 2 +-
dev-python/keyring/keyring-25.6.0-r1.ebuild | 2 +-
dev-python/kiwisolver/kiwisolver-1.4.8.ebuild | 2 +-
dev-python/knowit/knowit-0.5.11.ebuild | 2 +-
dev-python/krb5/Manifest | 1 +
dev-python/krb5/krb5-0.8.0.ebuild | 33 +++
dev-python/lark/lark-1.2.2.ebuild | 2 +-
.../lazy-object-proxy-1.11.0.ebuild | 2 +-
dev-python/legacy-cgi/legacy-cgi-2.6.3.ebuild | 2 +-
dev-python/levenshtein/levenshtein-0.27.1.ebuild | 2 +-
dev-python/libevdev/libevdev-0.12.ebuild | 2 +-
.../license-expression-30.4.4.ebuild | 2 +-
.../linkify-it-py/linkify-it-py-2.0.3.ebuild | 2 +-
dev-python/lit/lit-15.0.7.ebuild | 2 +-
dev-python/lit/lit-16.0.6.ebuild | 2 +-
dev-python/lit/lit-17.0.6.ebuild | 2 +-
dev-python/lit/lit-18.1.8.ebuild | 4 +-
dev-python/lit/lit-19.1.7.ebuild | 2 +-
dev-python/lit/lit-20.1.8.ebuild | 2 +-
dev-python/littleutils/littleutils-0.2.4.ebuild | 2 +-
dev-python/lockfile/lockfile-0.12.2-r3.ebuild | 2 +-
dev-python/looseversion/looseversion-1.3.0.ebuild | 2 +-
dev-python/lxml/lxml-6.0.0.ebuild | 2 +-
dev-python/mako/mako-1.3.10.ebuild | 2 +-
dev-python/mando/mando-0.8.2.ebuild | 2 +-
.../markdown-it-py/markdown-it-py-3.0.0.ebuild | 2 +-
dev-python/markdown/Manifest | 1 +
dev-python/markdown/markdown-3.8.2.ebuild | 2 +-
dev-python/markdown/markdown-3.9.ebuild | 39 +++
dev-python/markdown2/markdown2-2.5.3.ebuild | 2 +-
dev-python/markdown2/markdown2-2.5.4.ebuild | 2 +-
dev-python/markupsafe/markupsafe-3.0.2.ebuild | 2 +-
.../matplotlib-inline-0.1.7.ebuild | 2 +-
dev-python/matplotlib/matplotlib-3.10.1.ebuild | 2 +-
dev-python/matplotlib/matplotlib-3.10.3.ebuild | 2 +-
dev-python/mccabe/mccabe-0.7.0.ebuild | 2 +-
.../mdit-py-plugins/mdit-py-plugins-0.4.2.ebuild | 2 +-
dev-python/mdurl/mdurl-0.1.2.ebuild | 2 +-
.../meson-python/meson-python-0.18.0-r1.ebuild | 2 +-
dev-python/mistune/mistune-3.1.3.ebuild | 2 +-
.../mkdocs-material/mkdocs-material-9.6.16.ebuild | 2 +-
dev-python/mock/mock-5.2.0.ebuild | 2 +-
dev-python/more-itertools/Manifest | 1 +
.../more-itertools/more-itertools-10.7.0.ebuild | 2 +-
.../more-itertools/more-itertools-10.8.0.ebuild | 23 ++
dev-python/mpmath/Manifest | 1 +
dev-python/mpmath/mpmath-1.4.0_alpha2.ebuild | 4 +-
dev-python/mpmath/mpmath-1.4.0_alpha5-r1.ebuild | 2 +-
dev-python/mpmath/mpmath-1.4.0_alpha8.ebuild | 56 ++++
dev-python/msgpack/msgpack-1.1.0.ebuild | 2 +-
dev-python/msgpack/msgpack-1.1.1.ebuild | 2 +-
dev-python/multidict/multidict-6.5.1.ebuild | 2 +-
dev-python/multipart/Manifest | 1 -
dev-python/multipart/multipart-1.2.1.ebuild | 21 --
dev-python/munch/munch-4.0.0.ebuild | 2 +-
dev-python/munkres/munkres-1.1.4-r1.ebuild | 2 +-
.../mypy-extensions/mypy-extensions-1.1.0.ebuild | 2 +-
dev-python/mypy/mypy-1.16.1.ebuild | 2 +-
dev-python/mysqlclient/mysqlclient-2.2.6.ebuild | 4 +-
dev-python/mysqlclient/mysqlclient-2.2.7.ebuild | 2 +-
dev-python/myst-parser/myst-parser-4.0.1-r1.ebuild | 2 +-
dev-python/myst-parser/myst-parser-4.0.1.ebuild | 2 +-
dev-python/nanobind/Manifest | 1 +
dev-python/nanobind/nanobind-2.9.2.ebuild | 63 +++++
dev-python/narwhals/Manifest | 1 +
dev-python/narwhals/narwhals-2.3.0.ebuild | 43 +++
dev-python/natsort/natsort-8.4.0.ebuild | 2 +-
dev-python/nbclassic/Manifest | 1 +
dev-python/nbclassic/nbclassic-1.3.2.ebuild | 87 ++++++
dev-python/nbclient/nbclient-0.10.2.ebuild | 2 +-
dev-python/nbconvert/nbconvert-7.16.6.ebuild | 2 +-
dev-python/nbformat/nbformat-5.10.4.ebuild | 2 +-
dev-python/nest-asyncio/nest-asyncio-1.6.0.ebuild | 2 +-
dev-python/nh3/nh3-0.2.21.ebuild | 2 +-
.../notebook-shim/notebook-shim-0.2.4.ebuild | 2 +-
dev-python/numpy/numpy-1.26.4.ebuild | 4 +-
dev-python/numpy/numpy-2.2.6.ebuild | 2 +-
dev-python/numpy/numpy-2.3.1.ebuild | 2 +-
dev-python/numpydoc/numpydoc-1.9.0-r1.ebuild | 2 +-
dev-python/objgraph/objgraph-3.6.2.ebuild | 2 +-
dev-python/olefile/olefile-0.47.ebuild | 2 +-
dev-python/ordered-set/ordered-set-4.1.0-r1.ebuild | 2 +-
dev-python/orjson/orjson-3.10.18.ebuild | 2 +-
dev-python/outcome/outcome-1.3.0_p0.ebuild | 2 +-
dev-python/overrides/overrides-7.7.0-r1.ebuild | 2 +-
dev-python/packaging/packaging-24.2.ebuild | 2 +-
dev-python/packaging/packaging-25.0.ebuild | 2 +-
.../pallets-sphinx-themes-2.3.0.ebuild | 2 +-
.../pandocfilters/pandocfilters-1.5.1.ebuild | 2 +-
.../parameterized/parameterized-0.9.0.ebuild | 2 +-
dev-python/paramiko/paramiko-3.5.1.ebuild | 2 +-
dev-python/parso/parso-0.8.4-r1.ebuild | 2 +-
dev-python/passlib/passlib-1.7.4-r3.ebuild | 2 +-
dev-python/paste/paste-3.10.1.ebuild | 2 +-
dev-python/pastedeploy/pastedeploy-3.1.ebuild | 2 +-
dev-python/path/path-17.1.0.ebuild | 2 +-
dev-python/pathspec/pathspec-0.12.1.ebuild | 2 +-
dev-python/pbr/pbr-6.1.1.ebuild | 2 +-
dev-python/pbs-installer/Manifest | 1 +
.../pbs-installer/pbs-installer-2025.09.02.ebuild | 35 +++
dev-python/pdm-backend/pdm-backend-2.4.5.ebuild | 2 +-
dev-python/pebble/pebble-5.1.3.ebuild | 2 +-
dev-python/pexpect/pexpect-4.9.0.ebuild | 2 +-
dev-python/pickleshare/pickleshare-0.7.5-r1.ebuild | 2 +-
dev-python/picobox/picobox-4.0.0.ebuild | 2 +-
dev-python/pikepdf/pikepdf-9.5.2.ebuild | 2 +-
dev-python/pikepdf/pikepdf-9.9.0.ebuild | 2 +-
dev-python/pillow/pillow-11.2.1.ebuild | 2 +-
dev-python/pip/pip-25.1.1.ebuild | 2 +-
dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild | 2 +-
dev-python/pkginfo/pkginfo-1.12.1.2.ebuild | 2 +-
dev-python/platformdirs/platformdirs-4.3.8.ebuild | 2 +-
dev-python/plexapi/Manifest | 1 +
dev-python/plexapi/plexapi-4.17.1.ebuild | 37 +++
dev-python/pluggy/pluggy-1.6.0.ebuild | 2 +-
dev-python/ply/ply-3.11-r2.ebuild | 2 +-
dev-python/pmw/pmw-2.1.1.ebuild | 4 +-
dev-python/pocketlint/Manifest | 1 +
dev-python/pocketlint/pocketlint-0.25-r1.ebuild | 2 +-
dev-python/pocketlint/pocketlint-0.26.ebuild | 33 +++
dev-python/poetry-core/poetry-core-2.1.3.ebuild | 2 +-
dev-python/polib/polib-1.2.0.ebuild | 4 +-
dev-python/portend/portend-3.2.1.ebuild | 2 +-
dev-python/pretend/pretend-1.0.9-r2.ebuild | 2 +-
dev-python/prettytable/prettytable-3.16.0.ebuild | 2 +-
dev-python/priority/priority-1.3.0-r1.ebuild | 4 +-
dev-python/priority/priority-2.0.0-r1.ebuild | 2 +-
.../process-tests/process-tests-3.0.0.ebuild | 2 +-
dev-python/progress/progress-1.6.1.ebuild | 2 +-
.../prometheus-client-0.22.1.ebuild | 2 +-
.../prompt-toolkit/prompt-toolkit-3.0.51.ebuild | 2 +-
dev-python/propcache/propcache-0.3.2.ebuild | 2 +-
dev-python/protobuf/protobuf-6.31.1.ebuild | 2 +-
dev-python/psutil/psutil-7.0.0.ebuild | 2 +-
dev-python/ptyprocess/ptyprocess-0.7.0-r1.ebuild | 2 +-
dev-python/pure-eval/pure-eval-0.2.3.ebuild | 2 +-
dev-python/py/py-1.11.0-r1.ebuild | 2 +-
dev-python/pyaes/pyaes-1.6.1-r3.ebuild | 2 +-
dev-python/pyalsa/pyalsa-1.2.14.ebuild | 2 +-
.../pyasn1-modules/pyasn1-modules-0.4.2.ebuild | 2 +-
dev-python/pyasn1/pyasn1-0.6.1.ebuild | 2 +-
dev-python/pyasynchat/pyasynchat-1.0.4.ebuild | 2 +-
dev-python/pyasyncore/pyasyncore-1.0.4.ebuild | 2 +-
dev-python/pyatspi/pyatspi-2.46.1.ebuild | 2 +-
dev-python/pybind11/pybind11-2.13.6.ebuild | 2 +-
dev-python/pycairo/pycairo-1.28.0.ebuild | 2 +-
dev-python/pycares/pycares-4.9.0.ebuild | 2 +-
dev-python/pycodestyle/pycodestyle-2.14.0.ebuild | 2 +-
dev-python/pycountry/pycountry-24.6.1.ebuild | 2 +-
dev-python/pycparser/pycparser-2.22.ebuild | 2 +-
dev-python/pycryptodome/pycryptodome-3.22.0.ebuild | 2 +-
dev-python/pycryptodome/pycryptodome-3.23.0.ebuild | 2 +-
dev-python/pycups/pycups-2.0.4.ebuild | 4 +-
dev-python/pycurl/pycurl-7.45.6.ebuild | 2 +-
.../pydantic-core/pydantic-core-2.33.2.ebuild | 2 +-
dev-python/pydantic/pydantic-2.11.7.ebuild | 2 +-
.../pydata-sphinx-theme-0.16.0.ebuild | 2 +-
dev-python/pydecomp/pydecomp-0.3-r3.ebuild | 4 +-
dev-python/pyeclib/Manifest | 1 +
dev-python/pyeclib/pyeclib-1.7.0.ebuild | 40 +++
dev-python/pyelftools/pyelftools-0.32.ebuild | 2 +-
dev-python/pyenchant/pyenchant-3.2.2-r1.ebuild | 2 +-
dev-python/pyfakefs/pyfakefs-5.9.1.ebuild | 2 +-
dev-python/pyflakes/pyflakes-3.4.0.ebuild | 2 +-
dev-python/pyftpdlib/pyftpdlib-2.0.1.ebuild | 4 +-
dev-python/pygithub/Manifest | 1 +
dev-python/pygithub/pygithub-2.7.0.ebuild | 2 +-
dev-python/pygithub/pygithub-2.8.1.ebuild | 39 +++
dev-python/pygments/pygments-2.19.2.ebuild | 2 +-
dev-python/pygobject/pygobject-3.50.0.ebuild | 2 +-
dev-python/pygobject/pygobject-3.50.1.ebuild | 2 +-
dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild | 2 +-
dev-python/pyinotify/pyinotify-0.9.6-r1.ebuild | 4 +-
dev-python/pyjwt/pyjwt-2.10.1.ebuild | 2 +-
dev-python/pylast/pylast-5.5.0.ebuild | 2 +-
dev-python/pylibacl/pylibacl-0.7.2.ebuild | 2 +-
dev-python/pylibmc/pylibmc-1.6.3-r2.ebuild | 2 +-
dev-python/pylint/pylint-3.3.7.ebuild | 2 +-
dev-python/pylsqpack/pylsqpack-0.3.22.ebuild | 2 +-
dev-python/pymongo/pymongo-4.11.3.ebuild | 2 +-
dev-python/pymongo/pymongo-4.13.2.ebuild | 2 +-
dev-python/pynacl/pynacl-1.5.0-r3.ebuild | 2 +-
dev-python/pynacl/pynacl-1.5.0-r4.ebuild | 2 +-
dev-python/pynput/Manifest | 1 +
dev-python/pynput/files/patches/uinput.patch | 37 +++
dev-python/pynput/files/patches/wheel.patch | 11 +
dev-python/pynput/pynput-1.8.1.ebuild | 28 ++
dev-python/pyopenssl/pyopenssl-25.1.0.ebuild | 2 +-
dev-python/pyparsing/pyparsing-3.2.3.ebuild | 2 +-
dev-python/pyparted/pyparted-3.13.0.ebuild | 2 +-
dev-python/pypax/pypax-0.9.5-r2.ebuild | 2 +-
dev-python/pypax/pypax-9999.ebuild | 2 +-
dev-python/pyperclip/pyperclip-1.9.0.ebuild | 2 +-
dev-python/pypiserver/pypiserver-2.3.2-r1.ebuild | 2 +-
.../pyproject-api/pyproject-api-1.9.1.ebuild | 2 +-
.../pyproject-fmt/pyproject-fmt-2.5.1.ebuild | 2 +-
.../pyproject-fmt/pyproject-fmt-2.6.0.ebuild | 2 +-
.../pyproject-hooks/pyproject-hooks-1.2.0.ebuild | 2 +-
.../pyproject-metadata-0.9.1.ebuild | 2 +-
dev-python/pyquery/pyquery-2.0.1.ebuild | 2 +-
dev-python/pyrsistent/pyrsistent-0.20.0.ebuild | 2 +-
dev-python/pyscard/pyscard-2.3.0.ebuild | 2 +-
dev-python/pyserial/pyserial-3.5-r2.ebuild | 2 +-
dev-python/pysocks/pysocks-1.7.1-r2.ebuild | 2 +-
dev-python/pyspnego/Manifest | 1 +
dev-python/pyspnego/pyspnego-0.12.0.ebuild | 38 +++
.../pytest-aiohttp/pytest-aiohttp-1.1.0.ebuild | 2 +-
.../pytest-asyncio/pytest-asyncio-0.26.0.ebuild | 2 +-
.../pytest-asyncio/pytest-asyncio-1.0.0.ebuild | 2 +-
.../pytest-asyncio/pytest-asyncio-1.1.0.ebuild | 2 +-
dev-python/pytest-check/pytest-check-2.5.3.ebuild | 2 +-
.../pytest-console-scripts-1.4.1.ebuild | 2 +-
dev-python/pytest-cov/pytest-cov-6.2.0.ebuild | 2 +-
.../pytest-datadir/pytest-datadir-1.7.2.ebuild | 2 +-
.../pytest-django/pytest-django-4.11.1.ebuild | 2 +-
.../pytest-expect/pytest-expect-1.1.0-r2.ebuild | 2 +-
.../pytest-forked/pytest-forked-1.6.0.ebuild | 2 +-
.../pytest-freezer/pytest-freezer-0.4.9.ebuild | 2 +-
dev-python/pytest-home/pytest-home-0.6.0.ebuild | 2 +-
.../pytest-httpbin/pytest-httpbin-2.1.0.ebuild | 2 +-
.../pytest-httpserver-1.1.3.ebuild | 2 +-
.../pytest-import-check-0.0.4.ebuild | 2 +-
.../pytest-jupyter/pytest-jupyter-0.10.1.ebuild | 2 +-
.../pytest-lazy-fixtures-1.3.2.ebuild | 2 +-
.../pytest-localserver-0.9.0_p0.ebuild | 2 +-
dev-python/pytest-mock/Manifest | 1 +
dev-python/pytest-mock/pytest-mock-3.14.1.ebuild | 2 +-
dev-python/pytest-mock/pytest-mock-3.15.0.ebuild | 53 ++++
.../pytest-ordering/pytest-ordering-0.6-r1.ebuild | 2 +-
.../pytest-param-files-0.6.0.ebuild | 2 +-
.../pytest-regressions-2.8.1.ebuild | 2 +-
dev-python/pytest-rerunfailures/Manifest | 1 +
.../pytest-rerunfailures-15.1.ebuild | 2 +-
.../pytest-rerunfailures-16.0.1.ebuild | 28 ++
.../pytest-services/pytest-services-2.2.2.ebuild | 2 +-
.../pytest-subprocess-1.5.3.ebuild | 2 +-
.../pytest-subtests/pytest-subtests-0.14.2.ebuild | 2 +-
.../pytest-testinfra-10.2.2.ebuild | 6 +-
.../pytest-timeout/pytest-timeout-2.4.0.ebuild | 2 +-
.../pytest-tornasync-0.6.0_p2-r1.ebuild | 2 +-
dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild | 2 +-
dev-python/pytest-xdist/pytest-xdist-3.8.0.ebuild | 2 +-
.../pytest-xprocess/pytest-xprocess-0.23.0.ebuild | 4 +-
.../pytest-xprocess/pytest-xprocess-1.0.2.ebuild | 2 +-
dev-python/pytest/Manifest | 1 +
dev-python/pytest/pytest-7.4.4.ebuild | 2 +-
dev-python/pytest/pytest-8.0.2.ebuild | 2 +-
dev-python/pytest/pytest-8.1.2.ebuild | 2 +-
dev-python/pytest/pytest-8.2.2.ebuild | 2 +-
dev-python/pytest/pytest-8.3.5-r1.ebuild | 2 +-
dev-python/pytest/pytest-8.4.1.ebuild | 2 +-
dev-python/pytest/pytest-8.4.2.ebuild | 120 +++++++++
.../python-bugzilla/python-bugzilla-3.3.0.ebuild | 2 +-
dev-python/python-cinderclient/Manifest | 1 +
.../python-cinderclient-9.8.0.ebuild | 47 ++++
.../python-dateutil-2.9.0_p0.ebuild | 2 +-
.../python-dbusmock/python-dbusmock-0.36.0.ebuild | 2 +-
.../python-dotenv/python-dotenv-1.1.1.ebuild | 2 +-
dev-python/python-gnupg/python-gnupg-0.5.4.ebuild | 2 +-
dev-python/python-ironicclient/Manifest | 1 +
.../python-ironicclient-5.13.0.ebuild | 48 ++++
.../python-json-logger-3.3.0.ebuild | 2 +-
dev-python/python-ldap/python-ldap-3.4.4.ebuild | 2 +-
dev-python/python-magic/python-magic-0.4.27.ebuild | 2 +-
.../python-mimeparse/python-mimeparse-2.0.0.ebuild | 2 +-
.../python-multipart-0.0.20.ebuild | 2 +-
dev-python/python-novaclient/Manifest | 1 +
.../python-novaclient-18.11.0.ebuild | 57 ++++
dev-python/python-socks/python-socks-2.7.1.ebuild | 2 +-
.../python-subunit/python-subunit-1.4.4.ebuild | 2 +-
.../python-systemd/python-systemd-235.ebuild | 4 +-
.../python-tests/python-tests-3.11.13.ebuild | 2 +-
.../python-tests/python-tests-3.12.11.ebuild | 2 +-
dev-python/python-tests/python-tests-3.13.5.ebuild | 2 +-
dev-python/pythondialog/pythondialog-3.5.3.ebuild | 4 +-
dev-python/pytidylib/pytidylib-0.3.2-r2.ebuild | 2 +-
dev-python/pytools/Manifest | 1 +
dev-python/pytools/pytools-2025.2.4.ebuild | 33 +++
dev-python/pytz/pytz-2025.2.ebuild | 2 +-
dev-python/pyudev/pyudev-0.24.3.ebuild | 2 +-
dev-python/pywinrm/pywinrm-0.5.0.ebuild | 5 +-
dev-python/pyxattr/pyxattr-0.8.1.ebuild | 2 +-
dev-python/pyxdg/pyxdg-0.28-r2.ebuild | 2 +-
dev-python/pyyaml/pyyaml-6.0.2.ebuild | 2 +-
dev-python/pyzmq/pyzmq-26.4.0.ebuild | 2 +-
dev-python/pyzmq/pyzmq-27.0.0.ebuild | 2 +-
dev-python/qiskit/Manifest | 2 +
dev-python/qiskit/qiskit-2.2.0_rc1.ebuild | 109 ++++++++
dev-python/quart-trio/quart-trio-0.12.0.ebuild | 2 +-
dev-python/quart/quart-0.20.0.ebuild | 2 +-
dev-python/radon/radon-6.0.1-r2.ebuild | 4 +-
dev-python/rapidfuzz/rapidfuzz-3.13.0.ebuild | 2 +-
dev-python/rdflib/rdflib-7.1.4.ebuild | 2 +-
dev-python/re-assert/re-assert-1.1.0-r3.ebuild | 2 +-
.../readme-renderer/readme-renderer-44.0.ebuild | 2 +-
.../readthedocs-sphinx-ext-2.2.5.ebuild | 2 +-
.../recommonmark/recommonmark-0.7.1-r1.ebuild | 2 +-
.../referencing/referencing-0.36.2-r1.ebuild | 2 +-
dev-python/regex/Manifest | 1 +
dev-python/regex/regex-2024.11.6.ebuild | 2 +-
dev-python/regex/regex-2025.9.1.ebuild | 32 +++
dev-python/reportlab/reportlab-4.4.2.ebuild | 2 +-
dev-python/repoze-lru/repoze-lru-0.7-r3.ebuild | 2 +-
.../requests-credssp/requests-credssp-2.0.0.ebuild | 5 +-
.../requests-kerberos-0.15.0.ebuild | 10 +-
.../requests-ntlm/requests-ntlm-1.3.0.ebuild | 5 +-
.../requests-toolbelt-1.0.0.ebuild | 2 +-
.../requests-unixsocket-0.4.1.ebuild | 2 +-
dev-python/requests/requests-2.32.4.ebuild | 2 +-
dev-python/resolvelib/resolvelib-1.1.0.ebuild | 2 +-
dev-python/resolvelib/resolvelib-1.2.0.ebuild | 2 +-
dev-python/responses/responses-0.25.7.ebuild | 2 +-
dev-python/retrying/retrying-1.4.1.ebuild | 2 +-
dev-python/retrying/retrying-1.4.2.ebuild | 2 +-
.../rfc3339-validator-0.1.4-r1.ebuild | 2 +-
.../rfc3986-validator-0.1.1-r2.ebuild | 2 +-
dev-python/rfc3986/rfc3986-2.0.0-r1.ebuild | 2 +-
dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild | 2 +-
dev-python/rich/rich-14.1.0.ebuild | 2 +-
.../roman-numerals-py-3.1.0.ebuild | 2 +-
dev-python/routes/routes-2.5.1-r2.ebuild | 2 +-
dev-python/rpds-py/rpds-py-0.25.1.ebuild | 4 +-
dev-python/rsa/rsa-4.9.ebuild | 2 +-
dev-python/rst-linker/rst-linker-2.6.0.ebuild | 2 +-
dev-python/rtslib-fb/rtslib-fb-2.1.76.ebuild | 2 +-
dev-python/rtslib-fb/rtslib-fb-2.2.3.ebuild | 2 +-
.../ruamel-yaml-clib-0.2.12.ebuild | 2 +-
dev-python/ruamel-yaml/ruamel-yaml-0.18.14.ebuild | 2 +-
dev-python/s3transfer/s3transfer-0.13.1.ebuild | 2 +-
.../scikit-build-core-0.11.5.ebuild | 2 +-
dev-python/scikit-build/scikit-build-0.17.6.ebuild | 4 +-
dev-python/scikit-build/scikit-build-0.18.0.ebuild | 4 +-
dev-python/scikit-build/scikit-build-0.18.1.ebuild | 2 +-
dev-python/scripttest/scripttest-2.0_p1.ebuild | 2 +-
.../secretstorage/secretstorage-3.3.3.ebuild | 2 +-
dev-python/seedir/seedir-0.5.1.ebuild | 2 +-
dev-python/selenium/selenium-4.26.1.ebuild | 4 +-
dev-python/selenium/selenium-4.31.0.ebuild | 2 +-
dev-python/selenium/selenium-4.33.0-r1.ebuild | 2 +-
.../semantic-version-2.10.0.ebuild | 2 +-
dev-python/send2trash/send2trash-1.8.3.ebuild | 2 +-
.../service-identity-24.2.0.ebuild | 2 +-
dev-python/setproctitle/setproctitle-1.3.5.ebuild | 2 +-
.../setuptools-git/setuptools-git-1.2-r3.ebuild | 2 +-
.../setuptools-rust/setuptools-rust-1.11.1.ebuild | 2 +-
.../setuptools-scm/setuptools-scm-8.3.1.ebuild | 2 +-
dev-python/setuptools/setuptools-79.0.1.ebuild | 2 +-
dev-python/setuptools/setuptools-80.9.0-r1.ebuild | 2 +-
dev-python/sgmllib3k/sgmllib3k-1.0.0-r1.ebuild | 2 +-
dev-python/sh/sh-2.2.2.ebuild | 2 +-
dev-python/simplejson/simplejson-3.20.1.ebuild | 2 +-
dev-python/siphash24/Manifest | 1 +
dev-python/siphash24/siphash24-1.8.ebuild | 29 ++
dev-python/six/six-1.17.0.ebuild | 2 +-
dev-python/slixmpp/Manifest | 30 +++
dev-python/slixmpp/slixmpp-1.11.0.ebuild | 103 +++++++
dev-python/slixmpp/slixmpp-9999.ebuild | 52 ----
dev-python/smartypants/smartypants-2.0.1-r1.ebuild | 2 +-
dev-python/smmap/smmap-6.0.0.ebuild | 2 +-
dev-python/snakeoil/snakeoil-0.10.10.ebuild | 2 +-
dev-python/snakeoil/snakeoil-0.10.11.ebuild | 2 +-
dev-python/sniffio/sniffio-1.3.1.ebuild | 2 +-
.../snowballstemmer/snowballstemmer-3.0.1.ebuild | 2 +-
dev-python/socksio/socksio-1.0.0.ebuild | 2 +-
.../sortedcontainers-2.4.0-r1.ebuild | 2 +-
dev-python/soupsieve/soupsieve-2.7.ebuild | 2 +-
.../sphinx-autodoc-typehints-3.0.1.ebuild | 2 +-
.../sphinx-autodoc-typehints-3.1.0.ebuild | 2 +-
.../sphinx-autodoc-typehints-3.2.0.ebuild | 2 +-
.../sphinx-basic-ng-1.0.0_beta2.ebuild | 2 +-
.../sphinx-bootstrap-theme-0.8.1.ebuild | 2 +-
.../sphinx-epytext/sphinx-epytext-0.0.4-r2.ebuild | 2 +-
.../sphinx-issues/sphinx-issues-5.0.1.ebuild | 2 +-
.../sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild | 2 +-
.../sphinx-notfound-page-1.1.0.ebuild | 2 +-
.../sphinx-prompt/sphinx-prompt-1.10.0.ebuild | 2 +-
.../sphinx-pytest/sphinx-pytest-0.2.0.ebuild | 2 +-
.../sphinx-rtd-theme/sphinx-rtd-theme-3.0.2.ebuild | 2 +-
dev-python/sphinx-tabs/sphinx-tabs-3.4.7.ebuild | 2 +-
.../sphinx-8.2.3-metadata-docutils-0.22.patch | 27 ++
dev-python/sphinx/sphinx-8.1.3.ebuild | 2 +-
dev-python/sphinx/sphinx-8.2.3-r1.ebuild | 145 ----------
dev-python/sphinx/sphinx-8.2.3-r2.ebuild | 146 ++++++++++
.../sphinxcontrib-applehelp-2.0.0-r1.ebuild | 2 +-
.../sphinxcontrib-applehelp-2.0.0.ebuild | 2 +-
.../sphinxcontrib-devhelp-2.0.0-r1.ebuild | 2 +-
.../sphinxcontrib-devhelp-2.0.0.ebuild | 2 +-
.../sphinxcontrib-github-alt-1.2-r3.ebuild | 2 +-
.../sphinxcontrib-htmlhelp-2.1.0-r1.ebuild | 2 +-
.../sphinxcontrib-htmlhelp-2.1.0.ebuild | 2 +-
.../sphinxcontrib-httpdomain-1.8.1.ebuild | 4 +-
.../sphinxcontrib-jquery-4.1.ebuild | 2 +-
.../sphinxcontrib-jsmath-1.0.1-r3.ebuild | 2 +-
.../sphinxcontrib-jsmath-1.0.1-r4.ebuild | 2 +-
.../sphinxcontrib-log-cabinet-1.0.1-r1.ebuild | 2 +-
dev-python/sphinxcontrib-plantuml/Manifest | 1 +
.../sphinxcontrib-plantuml-0.31.ebuild | 47 ++++
.../sphinxcontrib-programoutput-0.18.ebuild | 2 +-
.../sphinxcontrib-qthelp-2.0.0-r1.ebuild | 2 +-
.../sphinxcontrib-qthelp-2.0.0.ebuild | 2 +-
.../sphinxcontrib-serializinghtml-2.0.0-r1.ebuild | 2 +-
.../sphinxcontrib-serializinghtml-2.0.0.ebuild | 2 +-
.../sphinxcontrib-spelling-8.0.1.ebuild | 2 +-
.../sphinxcontrib-trio-1.1.2-r1.ebuild | 2 +-
.../sphinxcontrib-websupport-1.2.7-r1.ebuild | 2 +-
.../sphinxcontrib-websupport-1.2.7.ebuild | 2 +-
dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild | 2 +-
dev-python/sphinxygen/sphinxygen-1.0.10.ebuild | 2 +-
dev-python/sphobjinv/sphobjinv-2.3.1.3.ebuild | 2 +-
dev-python/sqlalchemy/sqlalchemy-1.4.54.ebuild | 4 +-
dev-python/sqlalchemy/sqlalchemy-2.0.40.ebuild | 2 +-
dev-python/sqlalchemy/sqlalchemy-2.0.41.ebuild | 2 +-
dev-python/sqlglot/Manifest | 3 +-
dev-python/sqlglot/sqlglot-27.11.0.ebuild | 175 ++++++++++++
dev-python/sqlglot/sqlglot-27.12.0.ebuild | 175 ++++++++++++
dev-python/sqlglot/sqlglot-27.9.0.ebuild | 180 -------------
dev-python/sqlparse/sqlparse-0.5.3.ebuild | 2 +-
dev-python/stack-data/stack-data-0.6.3.ebuild | 2 +-
dev-python/starlette/starlette-0.47.2.ebuild | 2 +-
dev-python/stdio-mgr/stdio-mgr-1.0.1-r1.ebuild | 2 +-
dev-python/stestr/stestr-4.2.0.ebuild | 2 +-
dev-python/stevedore/stevedore-5.4.1.ebuild | 2 +-
.../strict-rfc3339/strict-rfc3339-0.7-r2.ebuild | 2 +-
dev-python/sure/sure-2.0.1.ebuild | 2 +-
dev-python/sybil/sybil-9.1.0.ebuild | 2 +-
dev-python/tabulate/tabulate-0.9.0-r1.ebuild | 2 +-
dev-python/tap-py/tap-py-3.2.1.ebuild | 2 +-
dev-python/tblib/tblib-3.1.0.ebuild | 2 +-
dev-python/tempora/tempora-5.8.1.ebuild | 2 +-
dev-python/termcolor/termcolor-3.1.0.ebuild | 2 +-
dev-python/terminado/terminado-0.18.1.ebuild | 2 +-
dev-python/test/test-0.ebuild | 2 +-
dev-python/testfixtures/testfixtures-9.1.0.ebuild | 2 +-
dev-python/testpath/testpath-0.6.0.ebuild | 2 +-
.../testresources/testresources-2.0.2.ebuild | 2 +-
.../testscenarios/testscenarios-0.5.0-r3.ebuild | 2 +-
dev-python/testtools/testtools-2.7.2-r1.ebuild | 2 +-
dev-python/textile/textile-4.0.3-r1.ebuild | 2 +-
dev-python/time-machine/time-machine-2.16.0.ebuild | 2 +-
.../timeout-decorator-0.5.0-r1.ebuild | 2 +-
dev-python/tiny-proxy/tiny-proxy-0.2.1.ebuild | 2 +-
dev-python/tinycss2/tinycss2-1.4.0.ebuild | 2 +-
.../toml-fmt-common/toml-fmt-common-1.0.1.ebuild | 2 +-
dev-python/tomli-w/tomli-w-1.2.0.ebuild | 2 +-
dev-python/tomli/tomli-2.2.1.ebuild | 2 +-
dev-python/tomlkit/tomlkit-0.13.3.ebuild | 2 +-
dev-python/tornado/tornado-6.5.1.ebuild | 2 +-
dev-python/towncrier/towncrier-24.8.0.ebuild | 4 +-
dev-python/tox/Manifest | 3 +-
dev-python/tox/tox-4.26.0.ebuild | 94 -------
dev-python/tox/tox-4.28.3.ebuild | 2 +-
dev-python/tox/tox-4.30.1.ebuild | 91 +++++++
dev-python/tox/tox-4.30.2.ebuild | 91 +++++++
dev-python/tqdm/tqdm-4.67.1.ebuild | 2 +-
dev-python/traitlets/traitlets-5.14.3.ebuild | 2 +-
dev-python/translate-toolkit/Manifest | 1 +
.../translate-toolkit-3.16.0.ebuild | 127 +++++++++
.../tree-sitter/tree-sitter-0.23.0-r1.ebuild | 4 +-
.../tree-sitter/tree-sitter-0.23.1-r1.ebuild | 2 +-
dev-python/tree-sitter/tree-sitter-0.24.0.ebuild | 2 +-
dev-python/trimesh/Manifest | 2 +
dev-python/trimesh/trimesh-4.8.0.ebuild | 76 ++++++
dev-python/trimesh/trimesh-4.8.1.ebuild | 77 ++++++
.../trio-websocket/trio-websocket-0.12.2.ebuild | 2 +-
dev-python/trio/trio-0.30.0.ebuild | 2 +-
.../trove-classifiers-2025.5.9.12.ebuild | 2 +-
dev-python/trustme/trustme-1.2.1.ebuild | 2 +-
dev-python/truststore/truststore-0.10.1.ebuild | 2 +-
dev-python/truststore/truststore-0.10.4.ebuild | 2 +-
dev-python/twine/Manifest | 1 +
dev-python/twine/twine-6.0.1.ebuild | 4 +-
dev-python/twine/twine-6.1.0.ebuild | 2 +-
dev-python/twine/twine-6.2.0.ebuild | 76 ++++++
dev-python/twisted/twisted-24.10.0.ebuild | 4 +-
dev-python/twisted/twisted-24.11.0-r1.ebuild | 2 +-
dev-python/twisted/twisted-25.5.0.ebuild | 2 +-
dev-python/typeguard/typeguard-4.4.4.ebuild | 2 +-
.../types-docutils-0.21.0.20250728.ebuild | 2 +-
.../types-gdb/types-gdb-15.0.0.20250801.ebuild | 2 +-
.../types-psutil-7.0.0.20250601.ebuild | 2 +-
.../types-psutil-7.0.0.20250801.ebuild | 2 +-
.../types-setuptools-80.9.0.20250529.ebuild | 2 +-
.../types-setuptools-80.9.0.20250801.ebuild | 2 +-
.../typing-extensions-4.14.1.ebuild | 2 +-
.../typing-inspection-0.4.1.ebuild | 2 +-
dev-python/typogrify/typogrify-2.1.0.ebuild | 2 +-
dev-python/tzdata/tzdata-10001.ebuild | 2 +-
.../u-msgpack-python/u-msgpack-python-2.8.0.ebuild | 2 +-
dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild | 2 +-
dev-python/ujson/ujson-5.10.0.ebuild | 2 +-
dev-python/unidecode/unidecode-1.4.0.ebuild | 2 +-
.../unittest-mixins/unittest-mixins-1.6-r2.ebuild | 2 +-
dev-python/untangle/untangle-1.2.1-r2.ebuild | 2 +-
dev-python/uri-template/uri-template-1.3.0.ebuild | 2 +-
dev-python/uritemplate/uritemplate-4.2.0.ebuild | 2 +-
dev-python/urllib3/urllib3-2.5.0.ebuild | 2 +-
dev-python/urwid/urwid-3.0.2.ebuild | 2 +-
dev-python/uv-build/Manifest | 1 +
dev-python/uv-build/uv-build-0.8.15.ebuild | 99 +++++++
dev-python/uv/Manifest | 3 +
dev-python/uv/uv-0.8.15.ebuild | 182 +++++++++++++
dev-python/uv/uv-9999.ebuild | 145 ++++++++++
dev-python/uvicorn/uvicorn-0.35.0.ebuild | 2 +-
dev-python/uvloop/uvloop-0.21.0.ebuild | 2 +-
dev-python/validators/validators-0.35.0.ebuild | 2 +-
dev-python/vcrpy/vcrpy-7.0.0.ebuild | 2 +-
dev-python/versioneer/versioneer-0.29-r1.ebuild | 2 +-
dev-python/virtualenv/virtualenv-20.32.0.ebuild | 2 +-
dev-python/voluptuous/voluptuous-0.15.2.ebuild | 2 +-
dev-python/waitress/waitress-3.0.2.ebuild | 2 +-
dev-python/watchdog/watchdog-6.0.0.ebuild | 2 +-
dev-python/watchfiles/watchfiles-1.0.4.ebuild | 2 +-
dev-python/watchfiles/watchfiles-1.1.0.ebuild | 2 +-
.../wcag-contrast-ratio-0.9-r1.ebuild | 2 +-
dev-python/wcwidth/wcwidth-0.2.13.ebuild | 2 +-
dev-python/webcolors/webcolors-24.11.1.ebuild | 2 +-
.../webencodings/webencodings-0.5.1-r2.ebuild | 2 +-
dev-python/webob/webob-1.8.9.ebuild | 2 +-
.../websocket-client/websocket-client-1.8.0.ebuild | 2 +-
dev-python/websockets/websockets-15.0.1.ebuild | 2 +-
dev-python/webtest/webtest-3.0.6.ebuild | 2 +-
dev-python/werkzeug/werkzeug-3.1.3.ebuild | 2 +-
dev-python/wheel/wheel-0.45.1.ebuild | 2 +-
dev-python/whoosh/whoosh-2.7.4-r2.ebuild | 2 +-
dev-python/wrapt/wrapt-1.17.2.ebuild | 2 +-
dev-python/wsgiproxy2/wsgiproxy2-0.5.1-r1.ebuild | 2 +-
dev-python/wsproto/wsproto-1.2.0.ebuild | 2 +-
dev-python/wurlitzer/wurlitzer-3.1.1.ebuild | 2 +-
dev-python/xarray/Manifest | 1 +
dev-python/xarray/xarray-2025.9.0.ebuild | 129 +++++++++
dev-python/xcffib/xcffib-1.9.0.ebuild | 2 +-
dev-python/xlwt/xlwt-1.3.0-r2.ebuild | 2 +-
dev-python/xmlschema/xmlschema-4.1.0.ebuild | 2 +-
dev-python/xmltodict/Manifest | 1 +
dev-python/xmltodict/xmltodict-0.14.2.ebuild | 2 +-
dev-python/xmltodict/xmltodict-0.15.0.ebuild | 22 ++
dev-python/yarl/yarl-1.20.1.ebuild | 2 +-
dev-python/ytmusicapi/ytmusicapi-1.11.0.ebuild | 2 +-
.../zc-lockfile/zc-lockfile-3.0_p1-r1.ebuild | 2 +-
dev-python/zipp/zipp-3.23.0.ebuild | 2 +-
dev-python/zlib-ng/zlib-ng-0.5.1.ebuild | 2 +-
dev-python/zope-event/zope-event-5.1.1.ebuild | 2 +-
.../zope-interface/zope-interface-7.2.ebuild | 2 +-
dev-python/zope-testing/zope-testing-5.1.ebuild | 2 +-
dev-python/zstandard/zstandard-0.23.0-r3.ebuild | 2 +-
857 files changed, 6038 insertions(+), 2610 deletions(-)
create mode 100644 dev-python/aiohappyeyeballs/files/aiohappyeyeballs-2.6.1-pytest-asyncio-1.patch
create mode 100644 dev-python/aiorpcx/files/aiorpcx-0.23.1-pytest-asyncio-1-more.patch
create mode 100644 dev-python/aiorpcx/files/aiorpcx-0.25.0-pytest-asyncio-1.patch
create mode 100644 dev-python/autobahn/files/autobahn-24.4.2-pytest-asyncio-1.patch
create mode 100644 dev-python/bleak/Manifest
create mode 100644 dev-python/bleak/bleak-1.1.0.ebuild
create mode 100644 dev-python/bleak/metadata.xml
create mode 100644 dev-python/boto3/boto3-1.40.22.ebuild
create mode 100644 dev-python/boto3/boto3-1.40.23.ebuild
create mode 100644 dev-python/boto3/boto3-1.40.24.ebuild
create mode 100644 dev-python/botocore/botocore-1.40.22.ebuild
create mode 100644 dev-python/botocore/botocore-1.40.23.ebuild
create mode 100644 dev-python/botocore/botocore-1.40.24.ebuild
delete mode 100644 dev-python/cryptography/cryptography-45.0.5.ebuild
create mode 100644 dev-python/cryptography/cryptography-45.0.7.ebuild
delete mode 100644 dev-python/deepdiff/deepdiff-8.6.0.ebuild
create mode 100644 dev-python/deepdiff/deepdiff-8.6.1.ebuild
delete mode 100644 dev-python/discid/discid-1.2.0-r1.ebuild
delete mode 100644 dev-python/django/django-4.2.23.ebuild
create mode 100644 dev-python/django/django-4.2.24.ebuild
delete mode 100644 dev-python/django/django-5.1.11.ebuild
create mode 100644 dev-python/django/django-5.1.12.ebuild
delete mode 100644 dev-python/django/django-5.2.4.ebuild
delete mode 100644 dev-python/django/django-5.2.5.ebuild
create mode 100644 dev-python/django/django-5.2.6.ebuild
create mode 100644 dev-python/django/files/django-4.2.24-htmlparser.patch
delete mode 100644 dev-python/django/files/django-5.2.5-htmlparser.patch
create mode 100644 dev-python/django/files/django-5.2.6-htmlparser.patch
create mode 100644 dev-python/dnspython/dnspython-2.7.0-r1.ebuild
create mode 100644 dev-python/dnspython/dnspython-2.8.0_rc1.ebuild
create mode 100644 dev-python/executing/executing-2.2.1.ebuild
delete mode 100644 dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch
create mode 100644 dev-python/fsspec/fsspec-2025.9.0.ebuild
create mode 100644 dev-python/google-api-python-client/google-api-python-client-2.181.0.ebuild
create mode 100644 dev-python/gssapi/gssapi-1.10.0.ebuild
create mode 100644 dev-python/hypothesis/hypothesis-6.138.13.ebuild
create mode 100644 dev-python/hypothesis/hypothesis-6.138.14.ebuild
delete mode 100644 dev-python/hypothesis/hypothesis-6.138.3.ebuild
delete mode 100644 dev-python/hypothesis/hypothesis-6.138.6.ebuild
delete mode 100644 dev-python/hypothesis/hypothesis-6.138.7.ebuild
delete mode 100644 dev-python/hypothesis/hypothesis-6.138.8.ebuild
create mode 100644 dev-python/jupyterlab/jupyterlab-4.4.7.ebuild
create mode 100644 dev-python/krb5/krb5-0.8.0.ebuild
create mode 100644 dev-python/markdown/markdown-3.9.ebuild
create mode 100644 dev-python/more-itertools/more-itertools-10.8.0.ebuild
create mode 100644 dev-python/mpmath/mpmath-1.4.0_alpha8.ebuild
delete mode 100644 dev-python/multipart/multipart-1.2.1.ebuild
create mode 100644 dev-python/nanobind/nanobind-2.9.2.ebuild
create mode 100644 dev-python/narwhals/narwhals-2.3.0.ebuild
create mode 100644 dev-python/nbclassic/nbclassic-1.3.2.ebuild
create mode 100644 dev-python/pbs-installer/pbs-installer-2025.09.02.ebuild
create mode 100644 dev-python/plexapi/plexapi-4.17.1.ebuild
create mode 100644 dev-python/pocketlint/pocketlint-0.26.ebuild
create mode 100644 dev-python/pyeclib/pyeclib-1.7.0.ebuild
create mode 100644 dev-python/pygithub/pygithub-2.8.1.ebuild
create mode 100644 dev-python/pynput/files/patches/uinput.patch
create mode 100644 dev-python/pynput/files/patches/wheel.patch
create mode 100644 dev-python/pynput/pynput-1.8.1.ebuild
create mode 100644 dev-python/pyspnego/pyspnego-0.12.0.ebuild
create mode 100644 dev-python/pytest-mock/pytest-mock-3.15.0.ebuild
create mode 100644 dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild
create mode 100644 dev-python/pytest/pytest-8.4.2.ebuild
create mode 100644 dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild
create mode 100644 dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild
create mode 100644 dev-python/python-novaclient/python-novaclient-18.11.0.ebuild
create mode 100644 dev-python/pytools/pytools-2025.2.4.ebuild
create mode 100644 dev-python/qiskit/qiskit-2.2.0_rc1.ebuild
create mode 100644 dev-python/regex/regex-2025.9.1.ebuild
create mode 100644 dev-python/siphash24/siphash24-1.8.ebuild
create mode 100644 dev-python/slixmpp/slixmpp-1.11.0.ebuild
delete mode 100644 dev-python/slixmpp/slixmpp-9999.ebuild
create mode 100644 dev-python/sphinx/files/sphinx-8.2.3-metadata-docutils-0.22.patch
delete mode 100644 dev-python/sphinx/sphinx-8.2.3-r1.ebuild
create mode 100644 dev-python/sphinx/sphinx-8.2.3-r2.ebuild
create mode 100644 dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.31.ebuild
create mode 100644 dev-python/sqlglot/sqlglot-27.11.0.ebuild
create mode 100644 dev-python/sqlglot/sqlglot-27.12.0.ebuild
delete mode 100644 dev-python/sqlglot/sqlglot-27.9.0.ebuild
delete mode 100644 dev-python/tox/tox-4.26.0.ebuild
create mode 100644 dev-python/tox/tox-4.30.1.ebuild
create mode 100644 dev-python/tox/tox-4.30.2.ebuild
create mode 100644 dev-python/translate-toolkit/translate-toolkit-3.16.0.ebuild
create mode 100644 dev-python/trimesh/trimesh-4.8.0.ebuild
create mode 100644 dev-python/trimesh/trimesh-4.8.1.ebuild
create mode 100644 dev-python/twine/twine-6.2.0.ebuild
create mode 100644 dev-python/uv-build/uv-build-0.8.15.ebuild
create mode 100644 dev-python/uv/uv-0.8.15.ebuild
create mode 100644 dev-python/uv/uv-9999.ebuild
create mode 100644 dev-python/xarray/xarray-2025.9.0.ebuild
create mode 100644 dev-python/xmltodict/xmltodict-0.15.0.ebuild
(limited to 'dev-python')
diff --git a/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild b/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild
index 39e673944ce2..4ae60979e580 100644
--- a/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild
+++ b/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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="
$(python_gen_cond_dep '
diff --git a/dev-python/accessible-pygments/accessible-pygments-0.0.5.ebuild b/dev-python/accessible-pygments/accessible-pygments-0.0.5.ebuild
index 8b0a72598254..90ee709dd9ac 100644
--- a/dev-python/accessible-pygments/accessible-pygments-0.0.5.ebuild
+++ b/dev-python/accessible-pygments/accessible-pygments-0.0.5.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pygments-1.5[${PYTHON_USEDEP}]
diff --git a/dev-python/aiodns/aiodns-3.5.0.ebuild b/dev-python/aiodns/aiodns-3.5.0.ebuild
index a4896b6ad77c..7ff38dce6761 100644
--- a/dev-python/aiodns/aiodns-3.5.0.ebuild
+++ b/dev-python/aiodns/aiodns-3.5.0.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"
# Tests fail with network-sandbox, since they try to resolve google.com
PROPERTIES="test_network"
RESTRICT="test"
diff --git a/dev-python/aiofiles/aiofiles-24.1.0.ebuild b/dev-python/aiofiles/aiofiles-24.1.0.ebuild
index fa26af2a9aae..271e9e091af2 100644
--- a/dev-python/aiofiles/aiofiles-24.1.0.ebuild
+++ b/dev-python/aiofiles/aiofiles-24.1.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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"
BDEPEND="
test? (
diff --git a/dev-python/aiohappyeyeballs/aiohappyeyeballs-2.6.1.ebuild b/dev-python/aiohappyeyeballs/aiohappyeyeballs-2.6.1.ebuild
index ec29f76b2980..24171864d518 100644
--- a/dev-python/aiohappyeyeballs/aiohappyeyeballs-2.6.1.ebuild
+++ b/dev-python/aiohappyeyeballs/aiohappyeyeballs-2.6.1.ebuild
@@ -20,18 +20,20 @@ SRC_URI="
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"
BDEPEND="
>=dev-python/poetry-core-2.0.0[${PYTHON_USEDEP}]
- test? (
- >=dev-python/pytest-asyncio-0.23.2[${PYTHON_USEDEP}]
- )
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
+PATCHES=(
+ # https://github.com/aio-libs/aiohappyeyeballs/pull/181
+ "${FILESDIR}/${P}-pytest-asyncio-1.patch"
+)
+
python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p asyncio -o addopts=
+ epytest -o addopts=
}
diff --git a/dev-python/aiohappyeyeballs/files/aiohappyeyeballs-2.6.1-pytest-asyncio-1.patch b/dev-python/aiohappyeyeballs/files/aiohappyeyeballs-2.6.1-pytest-asyncio-1.patch
new file mode 100644
index 000000000000..d5750359157a
--- /dev/null
+++ b/dev-python/aiohappyeyeballs/files/aiohappyeyeballs-2.6.1-pytest-asyncio-1.patch
@@ -0,0 +1,30 @@
+From 5f94f4bdc4f7b4b533d6517308a3d33a1a64e3cc Mon Sep 17 00:00:00 2001
+From: "J. Nick Koston"
+Date: Sun, 24 Aug 2025 01:18:33 -0500
+Subject: [PATCH] chore: updates for pytest-asyncio
+
+---
+ tests/conftest.py | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 6db53d2..9f7a4cb 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -41,10 +41,13 @@ def long_repr_strings() -> Generator[None, None, None]:
+
+
+ @pytest.fixture(autouse=True)
+-def verify_no_lingering_tasks(
+- event_loop: asyncio.AbstractEventLoop,
+-) -> Generator[None, None, None]:
++def verify_no_lingering_tasks() -> Generator[None, None, None]:
+ """Verify that all tasks are cleaned up."""
++ try:
++ event_loop = asyncio.get_event_loop()
++ except RuntimeError:
++ yield
++ return
+ tasks_before = asyncio.all_tasks(event_loop)
+ yield
+
diff --git a/dev-python/aiohttp-cors/aiohttp-cors-0.8.1.ebuild b/dev-python/aiohttp-cors/aiohttp-cors-0.8.1.ebuild
index 62ae1be82fc5..999e22aa48f3 100644
--- a/dev-python/aiohttp-cors/aiohttp-cors-0.8.1.ebuild
+++ b/dev-python/aiohttp-cors/aiohttp-cors-0.8.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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/aiohttp-3.9[${PYTHON_USEDEP}]
diff --git a/dev-python/aiohttp-theme/aiohttp-theme-0.1.7.ebuild b/dev-python/aiohttp-theme/aiohttp-theme-0.1.7.ebuild
index 86c6bc4f11d4..8b28766f3c12 100644
--- a/dev-python/aiohttp-theme/aiohttp-theme-0.1.7.ebuild
+++ b/dev-python/aiohttp-theme/aiohttp-theme-0.1.7.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/aiohttp/aiohttp-3.11.18.ebuild b/dev-python/aiohttp/aiohttp-3.11.18.ebuild
index 91989ccacf18..2427dd010609 100644
--- a/dev-python/aiohttp/aiohttp-3.11.18.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.11.18.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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="+native-extensions test-rust"
DEPEND="
diff --git a/dev-python/aiohttp/aiohttp-3.12.13.ebuild b/dev-python/aiohttp/aiohttp-3.12.13.ebuild
index d0dd168bd2e8..70c7eb52f079 100644
--- a/dev-python/aiohttp/aiohttp-3.12.13.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.12.13.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="+native-extensions test-rust"
DEPEND="
diff --git a/dev-python/aiorpcx/aiorpcx-0.23.1.ebuild b/dev-python/aiorpcx/aiorpcx-0.23.1.ebuild
index 80eb2bfe38df..69a91be6d091 100644
--- a/dev-python/aiorpcx/aiorpcx-0.23.1.ebuild
+++ b/dev-python/aiorpcx/aiorpcx-0.23.1.ebuild
@@ -26,15 +26,24 @@ KEYWORDS="amd64 ~arm arm64 x86"
BDEPEND="
test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/uvloop[${PYTHON_USEDEP}]
dev-python/websockets[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
EPYTEST_DESELECT=(
# require Internet
tests/test_socks.py::TestSOCKSProxy::test_create_connection_resolve_good
)
+
+PATCHES=(
+ # https://github.com/kyuupichan/aiorpcX/commit/b8ce32889c45c98b44c4e247ec0b0ae206e9ee91
+ "${FILESDIR}/${PN}-0.25.0-pytest-asyncio-1.patch"
+ # parts of
+ # https://github.com/kyuupichan/aiorpcX/commit/b973b9b5612a47fe6311b43a4a4a2227b179d9b0
+ # https://github.com/kyuupichan/aiorpcX/commit/b3fe21c9ad6f21967b31422174ab648263d6d4d7
+ "${FILESDIR}/${P}-pytest-asyncio-1-more.patch"
+)
diff --git a/dev-python/aiorpcx/aiorpcx-0.24.ebuild b/dev-python/aiorpcx/aiorpcx-0.24.ebuild
index a33696ccbdc8..68d6de0c991f 100644
--- a/dev-python/aiorpcx/aiorpcx-0.24.ebuild
+++ b/dev-python/aiorpcx/aiorpcx-0.24.ebuild
@@ -26,15 +26,20 @@ KEYWORDS="amd64 ~arm arm64 x86"
BDEPEND="
test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/uvloop[${PYTHON_USEDEP}]
>=dev-python/websockets-0.14[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
EPYTEST_DESELECT=(
# require Internet
tests/test_socks.py::TestSOCKSProxy::test_create_connection_resolve_good
)
+
+PATCHES=(
+ # https://github.com/kyuupichan/aiorpcX/commit/b8ce32889c45c98b44c4e247ec0b0ae206e9ee91
+ "${FILESDIR}/${PN}-0.25.0-pytest-asyncio-1.patch"
+)
diff --git a/dev-python/aiorpcx/aiorpcx-0.25.0.ebuild b/dev-python/aiorpcx/aiorpcx-0.25.0.ebuild
index a33696ccbdc8..431ab2b0bf3d 100644
--- a/dev-python/aiorpcx/aiorpcx-0.25.0.ebuild
+++ b/dev-python/aiorpcx/aiorpcx-0.25.0.ebuild
@@ -26,15 +26,20 @@ KEYWORDS="amd64 ~arm arm64 x86"
BDEPEND="
test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/uvloop[${PYTHON_USEDEP}]
>=dev-python/websockets-0.14[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
EPYTEST_DESELECT=(
# require Internet
tests/test_socks.py::TestSOCKSProxy::test_create_connection_resolve_good
)
+
+PATCHES=(
+ # https://github.com/kyuupichan/aiorpcX/commit/b8ce32889c45c98b44c4e247ec0b0ae206e9ee91
+ "${FILESDIR}/${P}-pytest-asyncio-1.patch"
+)
diff --git a/dev-python/aiorpcx/files/aiorpcx-0.23.1-pytest-asyncio-1-more.patch b/dev-python/aiorpcx/files/aiorpcx-0.23.1-pytest-asyncio-1-more.patch
new file mode 100644
index 000000000000..5a0ef6459c67
--- /dev/null
+++ b/dev-python/aiorpcx/files/aiorpcx-0.23.1-pytest-asyncio-1-more.patch
@@ -0,0 +1,73 @@
+From b973b9b5612a47fe6311b43a4a4a2227b179d9b0 Mon Sep 17 00:00:00 2001
+From: f321x
+Date: Thu, 16 Jan 2025 12:04:06 +0100
+Subject: [PATCH 1/2] bump ws version to 14 and python version to 3.9
+
+remove venv
+
+bump ws version to 14 and python version to 3.9
+
+remove .idea
+
+bump ws version to 14 and python version to 3.9
+---
+ tests/test_websocket.py | 17 +++++------------
+ 1 file changed, 5 insertions(+), 12 deletions(-)
+
+diff --git a/tests/test_websocket.py b/tests/test_websocket.py
+index a0d268d..97b049c 100755
+--- a/tests/test_websocket.py
++++ b/tests/test_websocket.py
+@@ -7,19 +7,12 @@ from aiorpcx import connect_ws, NetAddress, serve_ws
+ from test_session import MyServerSession
+
+
+-@pytest.fixture
+-def ws_server(unused_tcp_port, event_loop):
+- coro = serve_ws(MyServerSession, 'localhost', unused_tcp_port)
+- server = event_loop.run_until_complete(coro)
++@pytest.fixture(scope="function")
++async def ws_server(unused_tcp_port, event_loop):
++ server = await serve_ws(MyServerSession, 'localhost', unused_tcp_port)
+ yield f'ws://localhost:{unused_tcp_port}'
+- tasks = asyncio.all_tasks(event_loop)
+-
+- async def close_all():
+- server.close()
+- await server.wait_closed()
+- if tasks:
+- await asyncio.wait(tasks)
+- event_loop.run_until_complete(close_all())
++ server.close()
++ await server.wait_closed()
+
+
+ @pytest.mark.filterwarnings("ignore:'with .*:DeprecationWarning")
+From b3fe21c9ad6f21967b31422174ab648263d6d4d7 Mon Sep 17 00:00:00 2001
+From: Neil Booth
+Date: Thu, 16 Jan 2025 11:51:14 +0000
+Subject: [PATCH 2/2] Further tweaks.
+
+---
+ tests/test_websocket.py | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/tests/test_websocket.py b/tests/test_websocket.py
+index 97b049c..9a8f77a 100755
+--- a/tests/test_websocket.py
++++ b/tests/test_websocket.py
+@@ -1,5 +1,3 @@
+-import asyncio
+-
+ import pytest
+
+ from aiorpcx import connect_ws, NetAddress, serve_ws
+@@ -8,7 +6,7 @@ from test_session import MyServerSession
+
+
+ @pytest.fixture(scope="function")
+-async def ws_server(unused_tcp_port, event_loop):
++async def ws_server(unused_tcp_port):
+ server = await serve_ws(MyServerSession, 'localhost', unused_tcp_port)
+ yield f'ws://localhost:{unused_tcp_port}'
+ server.close()
diff --git a/dev-python/aiorpcx/files/aiorpcx-0.25.0-pytest-asyncio-1.patch b/dev-python/aiorpcx/files/aiorpcx-0.25.0-pytest-asyncio-1.patch
new file mode 100644
index 000000000000..4f8a94d2926c
--- /dev/null
+++ b/dev-python/aiorpcx/files/aiorpcx-0.25.0-pytest-asyncio-1.patch
@@ -0,0 +1,152 @@
+From b8ce32889c45c98b44c4e247ec0b0ae206e9ee91 Mon Sep 17 00:00:00 2001
+From: Neil Booth
+Date: Wed, 30 Jul 2025 14:41:44 -0400
+Subject: [PATCH] Remove event_loop fixture usage from tests
+
+---
+ tests/test_session.py | 43 +++++++++-------------------------------
+ tests/test_socks.py | 6 +++---
+ tests/test_unixsocket.py | 16 +++++----------
+ tests/test_util.py | 3 ++-
+ 4 files changed, 19 insertions(+), 49 deletions(-)
+
+diff --git a/tests/test_session.py b/tests/test_session.py
+index 8877fca..f52ab6b 100755
+--- a/tests/test_session.py
++++ b/tests/test_session.py
+@@ -17,13 +17,6 @@ from aiorpcx.session import Concurrency
+ from util import RaiseTest
+
+
+-if sys.version_info >= (3, 7):
+- from asyncio import all_tasks
+-else:
+- from asyncio import Task
+- all_tasks = Task.all_tasks
+-
+-
+ def raises_method_not_found(message):
+ return RaiseTest(JSONRPC.METHOD_NOT_FOUND, message, RPCError)
+
+@@ -86,21 +79,12 @@ def caplog_count(caplog, message):
+
+
+ @pytest.fixture
+-def server_port(unused_tcp_port, event_loop):
+- coro = serve_rs(MyServerSession, 'localhost', unused_tcp_port, loop=event_loop)
+- server = event_loop.run_until_complete(coro)
++async def server_port(unused_tcp_port):
++ server = await serve_rs(MyServerSession, 'localhost', unused_tcp_port)
+ yield unused_tcp_port
+- if hasattr(asyncio, 'all_tasks'):
+- tasks = asyncio.all_tasks(event_loop)
+- else:
+- tasks = asyncio.Task.all_tasks(loop=event_loop)
+
+- async def close_all():
+- server.close()
+- await server.wait_closed()
+- if tasks:
+- await asyncio.wait(tasks)
+- event_loop.run_until_complete(close_all())
++ server.close()
++ await server.wait_closed()
+
+
+ class TestRPCSession:
+@@ -765,21 +749,12 @@ class MessageServer(MessageSession):
+
+
+ @pytest.fixture
+-def msg_server_port(event_loop, unused_tcp_port):
+- coro = serve_rs(MessageServer, 'localhost', unused_tcp_port, loop=event_loop)
+- server = event_loop.run_until_complete(coro)
++async def msg_server_port(unused_tcp_port):
++ server = await serve_rs(MessageServer, 'localhost', unused_tcp_port)
+ yield unused_tcp_port
+- if hasattr(asyncio, 'all_tasks'):
+- tasks = asyncio.all_tasks(event_loop)
+- else:
+- tasks = asyncio.Task.all_tasks(loop=event_loop)
+-
+- async def close_all():
+- server.close()
+- await server.wait_closed()
+- if tasks:
+- await asyncio.wait(tasks)
+- event_loop.run_until_complete(close_all())
++
++ server.close()
++ await server.wait_closed()
+
+
+ def connect_message_session(host, port, proxy=None, framer=None):
+diff --git a/tests/test_socks.py b/tests/test_socks.py
+index 43ca282..a8d3af2 100755
+--- a/tests/test_socks.py
++++ b/tests/test_socks.py
+@@ -482,10 +482,10 @@ localhosts = ['127.0.0.1', '::1', 'localhost']
+
+
+ @pytest.fixture(params=localhosts)
+-def proxy_address(request, event_loop, unused_tcp_port):
++async def proxy_address(request, unused_tcp_port):
+ host = request.param
+- coro = event_loop.create_server(FakeServer, host=host, port=unused_tcp_port)
+- server = event_loop.run_until_complete(coro)
++ event_loop = asyncio.get_running_loop()
++ server = await event_loop.create_server(FakeServer, host=host, port=unused_tcp_port)
+ yield NetAddress(host, unused_tcp_port)
+ server.close()
+
+diff --git a/tests/test_unixsocket.py b/tests/test_unixsocket.py
+index f75f23d..ae8c27f 100755
+--- a/tests/test_unixsocket.py
++++ b/tests/test_unixsocket.py
+@@ -11,20 +11,14 @@ if sys.platform.startswith("win"):
+
+
+ @pytest.fixture
+-def us_server(event_loop):
++async def us_server():
++ event_loop = asyncio.get_running_loop()
+ with tempfile.TemporaryDirectory() as tmp_folder:
+ socket_path = path.join(tmp_folder, 'test.socket')
+- coro = serve_us(MyServerSession, socket_path, loop=event_loop)
+- server = event_loop.run_until_complete(coro)
++ server = await serve_us(MyServerSession, socket_path)
+ yield socket_path
+- tasks = asyncio.all_tasks(event_loop)
+-
+- async def close_all():
+- server.close()
+- await server.wait_closed()
+- if tasks:
+- await asyncio.wait(tasks)
+- event_loop.run_until_complete(close_all())
++ server.close()
++ await server.wait_closed()
+
+
+ class TestUSTransport:
+diff --git a/tests/test_util.py b/tests/test_util.py
+index 8ce9691..5980607 100755
+--- a/tests/test_util.py
++++ b/tests/test_util.py
+@@ -15,6 +15,7 @@ async def coro(x, y):
+
+
+ def test_is_async_call():
++ event_loop = asyncio.new_event_loop()
+ z = coro(2, 3)
+ assert not is_async_call(z)
+ assert is_async_call(coro)
+@@ -23,7 +24,7 @@ def test_is_async_call():
+ assert not is_async_call(test_is_async_call)
+ assert not is_async_call(partial(is_async_call))
+ # Lose a warning
+- asyncio.get_event_loop().run_until_complete(z)
++ event_loop.run_until_complete(z)
+
+
+ @pytest.mark.parametrize("hostname,answer", (
diff --git a/dev-python/aiosignal/aiosignal-1.4.0.ebuild b/dev-python/aiosignal/aiosignal-1.4.0.ebuild
index 2d0acc76c3ac..b862c2804cf3 100644
--- a/dev-python/aiosignal/aiosignal-1.4.0.ebuild
+++ b/dev-python/aiosignal/aiosignal-1.4.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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/frozenlist-1.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/aiosmtpd/aiosmtpd-1.4.6.ebuild b/dev-python/aiosmtpd/aiosmtpd-1.4.6.ebuild
index 2bb01336afc2..aa36f73223fc 100644
--- a/dev-python/aiosmtpd/aiosmtpd-1.4.6.ebuild
+++ b/dev-python/aiosmtpd/aiosmtpd-1.4.6.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/atpublic-4.0[${PYTHON_USEDEP}]
diff --git a/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild b/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild
index e8fb9d6c93b0..fd0a257b7674 100644
--- a/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild
+++ b/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/wrapt[${PYTHON_USEDEP}]
diff --git a/dev-python/alabaster/alabaster-1.0.0.ebuild b/dev-python/alabaster/alabaster-1.0.0.ebuild
index 7513121221cd..39b87a7f15aa 100644
--- a/dev-python/alabaster/alabaster-1.0.0.ebuild
+++ b/dev-python/alabaster/alabaster-1.0.0.ebuild
@@ -16,4 +16,4 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
diff --git a/dev-python/annotated-types/annotated-types-0.7.0.ebuild b/dev-python/annotated-types/annotated-types-0.7.0.ebuild
index fabce3df02bc..ada0a7fa9965 100644
--- a/dev-python/annotated-types/annotated-types-0.7.0.ebuild
+++ b/dev-python/annotated-types/annotated-types-0.7.0.ebuild
@@ -16,7 +16,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"
BDEPEND="
test? (
diff --git a/dev-python/anyio/anyio-4.10.0.ebuild b/dev-python/anyio/anyio-4.10.0.ebuild
index e2e4b9526ffc..c2a5c01546de 100644
--- a/dev-python/anyio/anyio-4.10.0.ebuild
+++ b/dev-python/anyio/anyio-4.10.0.ebuild
@@ -51,7 +51,8 @@ distutils_enable_tests pytest
distutils_enable_sphinx docs \
'>=dev-python/sphinx-rtd-theme-1.2.2' \
dev-python/sphinxcontrib-jquery \
- dev-python/sphinx-autodoc-typehints
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-tabs
python_test() {
local EPYTEST_DESELECT=(
diff --git a/dev-python/anyio/anyio-4.8.0-r3.ebuild b/dev-python/anyio/anyio-4.8.0-r3.ebuild
index 6c3efe18bc82..5fad1a6b2bf9 100644
--- a/dev-python/anyio/anyio-4.8.0-r3.ebuild
+++ b/dev-python/anyio/anyio-4.8.0-r3.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/idna-2.8[${PYTHON_USEDEP}]
diff --git a/dev-python/apipkg/apipkg-3.0.2.ebuild b/dev-python/apipkg/apipkg-3.0.2.ebuild
index 6c632e09ae63..eacf011c7b30 100644
--- a/dev-python/apipkg/apipkg-3.0.2.ebuild
+++ b/dev-python/apipkg/apipkg-3.0.2.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/appdirs/appdirs-1.4.4-r3.ebuild b/dev-python/appdirs/appdirs-1.4.4-r3.ebuild
index 813284f01777..ac8b8c358979 100644
--- a/dev-python/appdirs/appdirs-1.4.4-r3.ebuild
+++ b/dev-python/appdirs/appdirs-1.4.4-r3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
python_test() {
"${EPYTHON}" test/test_api.py -v || die "Tests fail with ${EPYTHON}"
diff --git a/dev-python/apprise/apprise-1.9.4.ebuild b/dev-python/apprise/apprise-1.9.4.ebuild
index f428a90c9d6c..afb0cdfa9fa2 100644
--- a/dev-python/apprise/apprise-1.9.4.ebuild
+++ b/dev-python/apprise/apprise-1.9.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
+KEYWORDS="amd64 ~arm arm64 ~riscv"
IUSE="+dbus mqtt"
RDEPEND="
diff --git a/dev-python/apsw/apsw-3.50.3.0.ebuild b/dev-python/apsw/apsw-3.50.3.0.ebuild
index bbde61020ea5..50cb142814ae 100644
--- a/dev-python/apsw/apsw-3.50.3.0.ebuild
+++ b/dev-python/apsw/apsw-3.50.3.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
IUSE="doc"
DEPEND="
diff --git a/dev-python/argcomplete/argcomplete-3.6.2.ebuild b/dev-python/argcomplete/argcomplete-3.6.2.ebuild
index 70228217368a..d97a369d8d8c 100644
--- a/dev-python/argcomplete/argcomplete-3.6.2.ebuild
+++ b/dev-python/argcomplete/argcomplete-3.6.2.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/argh/argh-0.31.3.ebuild b/dev-python/argh/argh-0.31.3.ebuild
index 9408881924b5..a736874fed72 100644
--- a/dev-python/argh/argh-0.31.3.ebuild
+++ b/dev-python/argh/argh-0.31.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0-r1.ebuild b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0-r1.ebuild
index 06a850a7bfa6..7097da00b7ae 100644
--- a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0-r1.ebuild
+++ b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0-r1.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cpu_flags_x86_sse2"
DEPEND="
diff --git a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-25.1.0.ebuild b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-25.1.0.ebuild
index 8f13dbb3c5d8..7db871e6dba0 100644
--- a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-25.1.0.ebuild
+++ b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-25.1.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cpu_flags_x86_sse2"
DEPEND="
diff --git a/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild b/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild
index fc846d76960a..caac5c468d2d 100644
--- a/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild
+++ b/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/argon2-cffi-bindings-21.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/arrow/arrow-1.3.0.ebuild b/dev-python/arrow/arrow-1.3.0.ebuild
index 9257445a2f41..8d0d170ffc02 100644
--- a/dev-python/arrow/arrow-1.3.0.ebuild
+++ b/dev-python/arrow/arrow-1.3.0.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 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/python-dateutil-2.7.0[${PYTHON_USEDEP}]
diff --git a/dev-python/asgiref/asgiref-3.9.1.ebuild b/dev-python/asgiref/asgiref-3.9.1.ebuild
index 14c6aac5cf6e..9fbe829aa6dd 100644
--- a/dev-python/asgiref/asgiref-3.9.1.ebuild
+++ b/dev-python/asgiref/asgiref-3.9.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
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"
EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
diff --git a/dev-python/asn1crypto/asn1crypto-1.5.1_p20231012.ebuild b/dev-python/asn1crypto/asn1crypto-1.5.1_p20231012.ebuild
index 036b8ec3e776..081d468bac6c 100644
--- a/dev-python/asn1crypto/asn1crypto-1.5.1_p20231012.ebuild
+++ b/dev-python/asn1crypto/asn1crypto-1.5.1_p20231012.ebuild
@@ -24,6 +24,6 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
distutils_enable_tests unittest
diff --git a/dev-python/astor/astor-0.8.1-r2.ebuild b/dev-python/astor/astor-0.8.1-r2.ebuild
index 259c16affba1..98557745ea9c 100644
--- a/dev-python/astor/astor-0.8.1-r2.ebuild
+++ b/dev-python/astor/astor-0.8.1-r2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
PATCHES=(
"${FILESDIR}/${P}-tests-bigint.patch"
diff --git a/dev-python/astroid/astroid-3.3.11.ebuild b/dev-python/astroid/astroid-3.3.11.ebuild
index 84204defb536..36858cde53f0 100644
--- a/dev-python/astroid/astroid-3.3.11.ebuild
+++ b/dev-python/astroid/astroid-3.3.11.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="LGPL-2.1+"
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"
# dev-python/regex isn't available for pypy
BDEPEND="
diff --git a/dev-python/asttokens/asttokens-3.0.0-r1.ebuild b/dev-python/asttokens/asttokens-3.0.0-r1.ebuild
index a265f0cdedc8..74c3a5389a1f 100644
--- a/dev-python/asttokens/asttokens-3.0.0-r1.ebuild
+++ b/dev-python/asttokens/asttokens-3.0.0-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/async-timeout/async-timeout-4.0.3.ebuild b/dev-python/async-timeout/async-timeout-4.0.3.ebuild
index f314c54dd1d0..8c3ec7cff90a 100644
--- a/dev-python/async-timeout/async-timeout-4.0.3.ebuild
+++ b/dev-python/async-timeout/async-timeout-4.0.3.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
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/async-timeout/async-timeout-5.0.1.ebuild b/dev-python/async-timeout/async-timeout-5.0.1.ebuild
index eccb438e5ed3..8c9a854ea8d8 100644
--- a/dev-python/async-timeout/async-timeout-5.0.1.ebuild
+++ b/dev-python/async-timeout/async-timeout-5.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/atomicwrites/atomicwrites-1.4.1.ebuild b/dev-python/atomicwrites/atomicwrites-1.4.1.ebuild
index af1da2a71edd..2955b18cdab1 100644
--- a/dev-python/atomicwrites/atomicwrites-1.4.1.ebuild
+++ b/dev-python/atomicwrites/atomicwrites-1.4.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
distutils_enable_tests pytest
distutils_enable_sphinx docs \
diff --git a/dev-python/atpublic/atpublic-6.0.1.ebuild b/dev-python/atpublic/atpublic-6.0.1.ebuild
index 3ac8624eebaa..ec825f4fb7c7 100644
--- a/dev-python/atpublic/atpublic-6.0.1.ebuild
+++ b/dev-python/atpublic/atpublic-6.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/attrs/attrs-25.3.0.ebuild b/dev-python/attrs/attrs-25.3.0.ebuild
index e1dfb85c7c46..99e4084e2094 100644
--- a/dev-python/attrs/attrs-25.3.0.ebuild
+++ b/dev-python/attrs/attrs-25.3.0.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"
BDEPEND="
>=dev-python/hatchling-1.26.0[${PYTHON_USEDEP}]
diff --git a/dev-python/autobahn/autobahn-24.4.2.ebuild b/dev-python/autobahn/autobahn-24.4.2.ebuild
index 79ae9c85636d..36e6d45823e1 100644
--- a/dev-python/autobahn/autobahn-24.4.2.ebuild
+++ b/dev-python/autobahn/autobahn-24.4.2.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
@@ -57,6 +57,11 @@ BDEPEND="
"
python_prepare_all() {
+ local PATCHES=(
+ # https://github.com/crossbario/autobahn-python/pull/1661
+ "${FILESDIR}/${P}-pytest-asyncio-1.patch"
+ )
+
if use xbr ; then
eerror "***************"
eerror "Required xbr dependencies are incomplete in Gentoo."
@@ -77,10 +82,6 @@ python_prepare_all() {
# to fix tinderbox sandbox issue
sed -e '/import/s:reactor:__importmustfail__:' \
-i setup.py || die
-
- # https://github.com/crossbario/autobahn-python/issues/1646
- sed -e 's:(forbid_global_loop=True)::' \
- -i autobahn/wamp/test/test_wamp_component_aio.py || die
}
python_test() {
@@ -92,9 +93,9 @@ python_test() {
unset USE_TWISTED
einfo "RE-testing cryptosign and component_aio using asyncio"
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local EPYTEST_PLUGINS=( pytest-asyncio )
local -x USE_ASYNCIO=true
- epytest -p asyncio --pyargs \
+ epytest --pyargs \
autobahn.asyncio.test.test_aio_{raw,web}socket \
autobahn.wamp.test.test_wamp_{cryptosign,component_aio}
unset USE_ASYNCIO
diff --git a/dev-python/autobahn/files/autobahn-24.4.2-pytest-asyncio-1.patch b/dev-python/autobahn/files/autobahn-24.4.2-pytest-asyncio-1.patch
new file mode 100644
index 000000000000..df35281e4121
--- /dev/null
+++ b/dev-python/autobahn/files/autobahn-24.4.2-pytest-asyncio-1.patch
@@ -0,0 +1,298 @@
+From 9a14ae7739524f376d94e075c5a8f2f26e79c674 Mon Sep 17 00:00:00 2001
+From: meejah
+Date: Sat, 21 Jun 2025 22:35:41 -0600
+Subject: [PATCH] Plain twisted utilities are sufficient (#1661)
+
+* Plain twisted utilities are sufficient
+
+* CI fixups
+---
+ autobahn/asyncio/test/test_aio_rawsocket.py | 18 +++++------
+ autobahn/asyncio/test/test_aio_websocket.py | 10 +++---
+ .../twisted/test/test_tx_websocket_agent.py | 5 +--
+ autobahn/twisted/testing/__init__.py | 31 +++----------------
+ autobahn/wamp/test/test_wamp_component_aio.py | 29 ++++++++---------
+ 5 files changed, 36 insertions(+), 57 deletions(-)
+
+diff --git a/autobahn/asyncio/test/test_aio_rawsocket.py b/autobahn/asyncio/test/test_aio_rawsocket.py
+index 726a6242..42c00c30 100644
+--- a/autobahn/asyncio/test/test_aio_rawsocket.py
++++ b/autobahn/asyncio/test/test_aio_rawsocket.py
+@@ -11,7 +11,7 @@ from autobahn.wamp.types import TransportDetails
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_sers(event_loop):
++def test_sers():
+ serializers = get_serializers()
+ assert len(serializers) > 0
+ m = serializers[0]().serialize(message.Abort('close'))
+@@ -19,7 +19,7 @@ def test_sers(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_prefix(event_loop):
++def test_prefix():
+ p = PrefixProtocol()
+ transport = Mock()
+ receiver = Mock()
+@@ -62,7 +62,7 @@ def test_prefix(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_is_closed(event_loop):
++def test_is_closed():
+ class CP(RawSocketClientProtocol):
+ @property
+ def serializer_id(self):
+@@ -83,7 +83,7 @@ def test_is_closed(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_raw_socket_server1(event_loop):
++def test_raw_socket_server1():
+
+ server = RawSocketServerProtocol()
+ ser = Mock(return_value=True)
+@@ -108,7 +108,7 @@ def test_raw_socket_server1(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_raw_socket_server_errors(event_loop):
++def test_raw_socket_server_errors():
+
+ server = RawSocketServerProtocol()
+ ser = Mock(return_value=True)
+@@ -139,7 +139,7 @@ def test_raw_socket_server_errors(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_raw_socket_client1(event_loop):
++def test_raw_socket_client1():
+ class CP(RawSocketClientProtocol):
+ @property
+ def serializer_id(self):
+@@ -162,7 +162,7 @@ def test_raw_socket_client1(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_raw_socket_client_error(event_loop):
++def test_raw_socket_client_error():
+ class CP(RawSocketClientProtocol):
+ @property
+ def serializer_id(self):
+@@ -181,7 +181,7 @@ def test_raw_socket_client_error(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_wamp_server(event_loop):
++def test_wamp_server():
+ transport = Mock(spec_set=('abort', 'close', 'write', 'get_extra_info'))
+ transport.write = Mock(side_effect=lambda m: messages.append(m))
+ server = Mock(spec=['onOpen', 'onMessage'])
+@@ -209,7 +209,7 @@ def test_wamp_server(event_loop):
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_wamp_client(event_loop):
++def test_wamp_client():
+ transport = Mock(spec_set=('abort', 'close', 'write', 'get_extra_info'))
+ transport.write = Mock(side_effect=lambda m: messages.append(m))
+ client = Mock(spec=['onOpen', 'onMessage'])
+diff --git a/autobahn/asyncio/test/test_aio_websocket.py b/autobahn/asyncio/test/test_aio_websocket.py
+index f80cc249..c2299991 100644
+--- a/autobahn/asyncio/test/test_aio_websocket.py
++++ b/autobahn/asyncio/test/test_aio_websocket.py
+@@ -23,16 +23,15 @@ async def test_echo_async():
+
+ # @pytest.mark.asyncio(forbid_global_loop=True)
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-def test_websocket_custom_loop(event_loop):
+- factory = WebSocketServerFactory(loop=event_loop)
++def test_websocket_custom_loop():
++ factory = WebSocketServerFactory(loop=asyncio.new_event_loop())
+ server = factory()
+ transport = Mock()
+ server.connection_made(transport)
+
+
+ @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only')
+-@pytest.mark.asyncio
+-async def test_async_on_connect_server(event_loop):
++def test_async_on_connect_server():
+
+ num = 42
+ done = txaio.create_future()
+@@ -65,7 +64,8 @@ async def test_async_on_connect_server(event_loop):
+ b'\r\n', # last string doesn't get a \r\n from join()
+ ])
+ server.processHandshake()
+- await done
++
++ asyncio.get_event_loop().run_until_complete(done)
+
+ assert len(values) == 1
+ assert values[0] == num * num
+diff --git a/autobahn/twisted/test/test_tx_websocket_agent.py b/autobahn/twisted/test/test_tx_websocket_agent.py
+index c926cbef..d65c3ca8 100644
+--- a/autobahn/twisted/test/test_tx_websocket_agent.py
++++ b/autobahn/twisted/test/test_tx_websocket_agent.py
+@@ -1,12 +1,13 @@
+ from twisted.trial import unittest
+
+ try:
+- from autobahn.twisted.testing import create_memory_agent, MemoryReactorClockResolver, create_pumper
++ from autobahn.twisted.testing import create_memory_agent, create_pumper
+ HAVE_TESTING = True
+ except ImportError:
+ HAVE_TESTING = False
+
+ from twisted.internet.defer import inlineCallbacks
++from twisted.internet.testing import MemoryReactorClock
+ from autobahn.twisted.websocket import WebSocketServerProtocol
+
+
+@@ -16,7 +17,7 @@ class TestAgent(unittest.TestCase):
+
+ def setUp(self):
+ self.pumper = create_pumper()
+- self.reactor = MemoryReactorClockResolver()
++ self.reactor = MemoryReactorClock()
+ return self.pumper.start()
+
+ def tearDown(self):
+diff --git a/autobahn/twisted/testing/__init__.py b/autobahn/twisted/testing/__init__.py
+index 53d5f2d4..e014d350 100644
+--- a/autobahn/twisted/testing/__init__.py
++++ b/autobahn/twisted/testing/__init__.py
+@@ -37,7 +37,7 @@ except ImportError:
+ from twisted.internet.defer import Deferred
+ from twisted.internet.address import IPv4Address
+ from twisted.internet._resolver import HostResolution # "internal" class, but it's simple
+-from twisted.internet.interfaces import ISSLTransport, IReactorPluggableNameResolver
++from twisted.internet.interfaces import ISSLTransport
+ try:
+ from twisted.internet.testing import MemoryReactorClock
+ except ImportError:
+@@ -73,32 +73,9 @@ class _StaticTestResolver(object):
+ receiver.resolutionComplete()
+
+
+-@implementer(IReactorPluggableNameResolver)
+-class _TestNameResolver(object):
+- """
+- A test version of IReactorPluggableNameResolver
+- """
+-
+- _resolver = None
+-
+- @property
+- def nameResolver(self):
+- if self._resolver is None:
+- self._resolver = _StaticTestResolver()
+- return self._resolver
+-
+- def installNameResolver(self, resolver):
+- old = self._resolver
+- self._resolver = resolver
+- return old
+-
+-
+-class MemoryReactorClockResolver(MemoryReactorClock, _TestNameResolver):
+- """
+- Combine MemoryReactor, Clock and an IReactorPluggableNameResolver
+- together.
+- """
+- pass
++# in previous revisions, we exported MemoryReactorClockResolver so
++# this maintains compatibility with any downstream code
++MemoryReactorClockResolver = MemoryReactorClock
+
+
+ class _TwistedWebMemoryAgent(IWebSocketClientAgent):
+diff --git a/autobahn/wamp/test/test_wamp_component_aio.py b/autobahn/wamp/test/test_wamp_component_aio.py
+index 2de9bf35..971f8ddd 100644
+--- a/autobahn/wamp/test/test_wamp_component_aio.py
++++ b/autobahn/wamp/test/test_wamp_component_aio.py
+@@ -29,15 +29,15 @@ import sys
+ import unittest.mock as mock
+ import pytest
+ import txaio
++import asyncio
+
+ if os.environ.get('USE_ASYNCIO', False):
+ from autobahn.asyncio.component import Component
+
+ @pytest.mark.skipif(sys.version_info < (3, 5), reason="requires Python 3.5+")
+- @pytest.mark.asyncio(forbid_global_loop=True)
+- async def test_asyncio_component(event_loop):
++ def test_asyncio_component():
+ orig_loop = txaio.config.loop
+- txaio.config.loop = event_loop
++ txaio.config.loop = asyncio.get_event_loop()
+
+ comp = Component(
+ transports=[
+@@ -52,8 +52,8 @@ if os.environ.get('USE_ASYNCIO', False):
+ # if having trouble, try starting some logging (and use
+ # "py.test -s" to get real-time output)
+ # txaio.start_logging(level="debug")
+- f = comp.start(loop=event_loop)
+- txaio.config.loop = event_loop
++ f = comp.start(loop=asyncio.get_event_loop())
++ txaio.config.loop = asyncio.get_event_loop()
+ finished = txaio.create_future()
+
+ def fail():
+@@ -72,18 +72,18 @@ if os.environ.get('USE_ASYNCIO', False):
+ txaio.config.loop = orig_loop
+ assert comp._done_f is None
+ f.add_done_callback(done)
+- await finished
++
++ asyncio.get_event_loop().run_until_complete(finished)
+
+ @pytest.mark.skipif(sys.version_info < (3, 5), reason="requires Python 3.5+")
+- @pytest.mark.asyncio(forbid_global_loop=True)
+- async def test_asyncio_component_404(event_loop):
++ def test_asyncio_component_404():
+ """
+ If something connects but then gets aborted, it should still try
+ to re-connect (in real cases this could be e.g. wrong path,
+ TLS failure, WebSocket handshake failure, etc)
+ """
+ orig_loop = txaio.config.loop
+- txaio.config.loop = event_loop
++ txaio.config.loop = asyncio.get_event_loop()
+
+ class FakeTransport(object):
+ def close(self):
+@@ -104,8 +104,8 @@ if os.environ.get('USE_ASYNCIO', False):
+ else:
+ return txaio.create_future_error(RuntimeError("second connection fails completely"))
+
+- with mock.patch.object(event_loop, 'create_connection', create_connection):
+- event_loop.create_connection = create_connection
++ with mock.patch.object(txaio.config.loop, 'create_connection', create_connection):
++ txaio.config.loop.create_connection = create_connection
+
+ comp = Component(
+ transports=[
+@@ -120,8 +120,8 @@ if os.environ.get('USE_ASYNCIO', False):
+ # if having trouble, try starting some logging (and use
+ # "py.test -s" to get real-time output)
+ # txaio.start_logging(level="debug")
+- f = comp.start(loop=event_loop)
+- txaio.config.loop = event_loop
++ f = comp.start(loop=asyncio.get_event_loop())
++ txaio.config.loop = asyncio.get_event_loop()
+
+ # now that we've started connecting, we *should* be able
+ # to connetion_lost our transport .. but we do a
+@@ -151,4 +151,5 @@ if os.environ.get('USE_ASYNCIO', False):
+ finished.set_result(None)
+ txaio.config.loop = orig_loop
+ f.add_done_callback(done)
+- await finished
++
++ asyncio.get_event_loop().run_until_complete(finished)
diff --git a/dev-python/automat/automat-25.4.16.ebuild b/dev-python/automat/automat-25.4.16.ebuild
index e153e54bdcbb..bc429d5747b3 100644
--- a/dev-python/automat/automat-25.4.16.ebuild
+++ b/dev-python/automat/automat-25.4.16.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
IUSE="examples"
BDEPEND="
diff --git a/dev-python/autopage/autopage-0.5.2.ebuild b/dev-python/autopage/autopage-0.5.2.ebuild
index ccf6e81b063a..20f55ebcaef6 100644
--- a/dev-python/autopage/autopage-0.5.2.ebuild
+++ b/dev-python/autopage/autopage-0.5.2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/autopep8/autopep8-2.3.2.ebuild b/dev-python/autopep8/autopep8-2.3.2.ebuild
index 5a21fd4f86a2..79255f4e7a80 100644
--- a/dev-python/autopep8/autopep8-2.3.2.ebuild
+++ b/dev-python/autopep8/autopep8-2.3.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm64 ~ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/pycodestyle-2.12.0[${PYTHON_USEDEP}]
diff --git a/dev-python/babel/babel-2.17.0.ebuild b/dev-python/babel/babel-2.17.0.ebuild
index 607afaf4ece2..cf95657a2b39 100644
--- a/dev-python/babel/babel-2.17.0.ebuild
+++ b/dev-python/babel/babel-2.17.0.ebuild
@@ -23,7 +23,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"
# RDEPEND in BDEPEND for import_cldr.py usage, bug #852158
BDEPEND="
diff --git a/dev-python/backports-tarfile/backports-tarfile-1.2.0.ebuild b/dev-python/backports-tarfile/backports-tarfile-1.2.0.ebuild
index b668760e540c..1b81b5d24033 100644
--- a/dev-python/backports-tarfile/backports-tarfile-1.2.0.ebuild
+++ b/dev-python/backports-tarfile/backports-tarfile-1.2.0.ebuild
@@ -19,7 +19,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 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
BDEPEND="
test? (
diff --git a/dev-python/bcrypt/bcrypt-4.3.0.ebuild b/dev-python/bcrypt/bcrypt-4.3.0.ebuild
index 6629c7540da5..ca9e87ce1a81 100644
--- a/dev-python/bcrypt/bcrypt-4.3.0.ebuild
+++ b/dev-python/bcrypt/bcrypt-4.3.0.ebuild
@@ -75,7 +75,7 @@ LICENSE="Apache-2.0"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
>=dev-python/setuptools-rust-1.7.0[${PYTHON_USEDEP}]
diff --git a/dev-python/beautifulsoup4/beautifulsoup4-4.13.4.ebuild b/dev-python/beautifulsoup4/beautifulsoup4-4.13.4.ebuild
index fdbaeddf0109..35e15b324bbd 100644
--- a/dev-python/beautifulsoup4/beautifulsoup4-4.13.4.ebuild
+++ b/dev-python/beautifulsoup4/beautifulsoup4-4.13.4.ebuild
@@ -16,7 +16,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"
RDEPEND="
dev-python/html5lib[${PYTHON_USEDEP}]
diff --git a/dev-python/betamax/betamax-0.9.0.ebuild b/dev-python/betamax/betamax-0.9.0.ebuild
index 0b176b9d66e6..c924e56f6e77 100644
--- a/dev-python/betamax/betamax-0.9.0.ebuild
+++ b/dev-python/betamax/betamax-0.9.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/requests-2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/black/black-24.10.0.ebuild b/dev-python/black/black-24.10.0.ebuild
index be0af76a4a7f..eb80baafa089 100644
--- a/dev-python/black/black-24.10.0.ebuild
+++ b/dev-python/black/black-24.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/click-8.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/black/black-25.1.0.ebuild b/dev-python/black/black-25.1.0.ebuild
index 8de0dd3ccfbb..ce70c6ca8dec 100644
--- a/dev-python/black/black-25.1.0.ebuild
+++ b/dev-python/black/black-25.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/click-8.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/bleach/bleach-6.2.0.ebuild b/dev-python/bleach/bleach-6.2.0.ebuild
index 805dd9d58c97..2afab3d76746 100644
--- a/dev-python/bleach/bleach-6.2.0.ebuild
+++ b/dev-python/bleach/bleach-6.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/bleak/Manifest b/dev-python/bleak/Manifest
new file mode 100644
index 000000000000..835f54cdff05
--- /dev/null
+++ b/dev-python/bleak/Manifest
@@ -0,0 +1 @@
+DIST bleak-1.1.0.tar.gz 116100 BLAKE2B c41e02c7fcf58671d68f9a4d4b94b05546bd656366551948fc7d62c07297754730ff1ab4dc6d45ffdb460aac6f47cf616b5b056c721cebe075521d6b39769ff6 SHA512 4861e999d812b63ce4d85eb8711f9cf226e70b2adc786f87c4be8793c72f9f01cd2572ea46e59315ae7774864b5c5e5ef642e47a0abf145fd8ed2ab48cda61df
diff --git a/dev-python/bleak/bleak-1.1.0.ebuild b/dev-python/bleak/bleak-1.1.0.ebuild
new file mode 100644
index 000000000000..7fafe4780265
--- /dev/null
+++ b/dev-python/bleak/bleak-1.1.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Bluetooth Low Energy platform Agnostic Klient (BLEAK) for Python"
+HOMEPAGE="https://bleak.readthedocs.io"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Dependencies unsurprisingly derive from "pyproject.toml".
+BDEPEND="test? (
+ >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-asyncio-0.19.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-cov-3.0.0[${PYTHON_USEDEP}]
+)"
+RDEPEND="
+ >=dev-python/dbus-fast-1.22.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/async-timeout-3.0.0[${PYTHON_USEDEP}]
+ ' python3_{8..10})
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+#FIXME: Tests currently fail to run and I can't be bothered to resolve. *sigh*
+# distutils_enable_tests pytest
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/hbldh/bleak.git"
+ EGIT_BRANCH="develop"
+else
+ KEYWORDS="~amd64"
+fi
+
+python_install_all() {
+ [[ -d examples ]] && dodoc -r examples
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bleak/metadata.xml b/dev-python/bleak/metadata.xml
new file mode 100644
index 000000000000..567d566ea44b
--- /dev/null
+++ b/dev-python/bleak/metadata.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ zl29ah@gmail.com
+ Sergey Alirzaev
+
+
+ gentoo-guru-overlay
+
\ No newline at end of file
diff --git a/dev-python/blinker/blinker-1.9.0.ebuild b/dev-python/blinker/blinker-1.9.0.ebuild
index cbef14ed7c8b..34b7b05d6568 100644
--- a/dev-python/blinker/blinker-1.9.0.ebuild
+++ b/dev-python/blinker/blinker-1.9.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/blockbuster/blockbuster-1.5.25.ebuild b/dev-python/blockbuster/blockbuster-1.5.25.ebuild
index 84455b303c2d..da308efa1b2b 100644
--- a/dev-python/blockbuster/blockbuster-1.5.25.ebuild
+++ b/dev-python/blockbuster/blockbuster-1.5.25.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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="
$(python_gen_cond_dep '
diff --git a/dev-python/boltons/boltons-25.0.0.ebuild b/dev-python/boltons/boltons-25.0.0.ebuild
index 72ff2c8925c9..e87f89a4fc05 100644
--- a/dev-python/boltons/boltons-25.0.0.ebuild
+++ b/dev-python/boltons/boltons-25.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://boltons.readthedocs.io/"
LICENSE="BSD"
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"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/boolean-py/boolean-py-5.0.ebuild b/dev-python/boolean-py/boolean-py-5.0.ebuild
index 15610a637f4c..bc15f7f253dc 100644
--- a/dev-python/boolean-py/boolean-py-5.0.ebuild
+++ b/dev-python/boolean-py/boolean-py-5.0.ebuild
@@ -22,6 +22,6 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD-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"
distutils_enable_tests pytest
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 6abc066fa95c..137488e2d81b 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -7,4 +7,7 @@ DIST boto3-1.40.18.gh.tar.gz 990535 BLAKE2B b27c45a186cc7982e0fb16e9d7290a8fdab8
DIST boto3-1.40.19.gh.tar.gz 991027 BLAKE2B db84de35539df907e49dc75bc4797a2e452e5ac08bdb1d3e7d1f0badcf28591396f1191f4681a63aa6320783a5a7b390817a424b12f3fe523a606736c33c5996 SHA512 b359ee8cdfcebc5b67bbf28ab05821ab446594f718ecd2fc181062ead9fff5f1b769e7815394c15f7a6f8c93cec7aad6c78459e0caec51e8f035ff2621a1cfc2
DIST boto3-1.40.20.gh.tar.gz 992089 BLAKE2B 23d76464510023244136518b10d4fbcddd31e62dd0b98126309737763b7274635e32e666efc105b54d4e4d076de83980f1f7e33b227d7a79e108d6e999037c7f SHA512 2647ba715e301eedd309dcc4719ab20cfeabeb65daca03e8d43d6352fce079e0c8e9ee83bc4c526e60b82e59ca4c5507d6d8c6d2d7bc605bdb495a272f0e98ed
DIST boto3-1.40.21.gh.tar.gz 992637 BLAKE2B 5c5b716506fef7223c4f49d6d966d43b59d5ae060ac861ecd525ef323821df20b88205d54e07ecb26bf41872a52d82ce2fb28c6b07a20ccbec38fa67d423699d SHA512 1dab07cac68498d3c1d5e60629f868c8f8d4259f0325bb672afdfbffa19988c5bc037cac9c2116f8d7fb4cf72014eada6ee6d7772be12ac8849d6640d7bddecd
+DIST boto3-1.40.22.gh.tar.gz 993220 BLAKE2B 0934e287b1b7919d4503a0698e78d41440a80ce46a326ca3b15638fc618489dea3c952889c6aa15d3c68d0d06f2bbffed4cba0600468063e8732037cf8184d5c SHA512 1a2ad668401198330427a09ff22d91af30cfffb8d8830132a116e6725ca2e5e5eec45747e0668b5105f29ea9bf78a4d74183bdd90aaf5286ccdff08aaf0b914e
+DIST boto3-1.40.23.gh.tar.gz 994090 BLAKE2B 352012f02f25ee3b109340024d2f507852a16c839c74156ee6ce2bde193776abed03566ac1cefc7ffa1d874c3b293f16428c1119ad2ab0894dfb022301f8e688 SHA512 9fd7b0919af7675590d8074cc8908041807343fce06db101fc648055044d744911cfd154c890492a0f1684daa88909e7f862e37acc88777c547f9d612899faaf
+DIST boto3-1.40.24.gh.tar.gz 995134 BLAKE2B a607e1b8fcb5de158538dbea482578d12f55fccc3a01dd3f728f66f1f715665ce06281c1654f1360610b5c0753b9d5fdb32dc31f3c0b082704ca0145750028a2 SHA512 2eccc12fbb9dbcb5497aecff2373f6b47a2a1eeb17491b9c3b0a231dbb249307d3ec6e81e75dd346479bd3577ccbd4389079027c9de8db0c80f719ad07ee48ce
DIST boto3-1.40.6.gh.tar.gz 981330 BLAKE2B 929b4326d8d48e46750128e6236776b86fd5e59f0aab113e3ec797f18f138c7f52b30a79724f97de8083fd8e8baa04169e68e219ef5acf592561dabb838b4374 SHA512 65431a0d084298f51e0eee1753119f811261e9e57fdc5fa0491c9ce8d4fc745e705aed22527c8c06e003227c5c0bccc1a659e04bcc96a68fafb61bc53ec70a84
diff --git a/dev-python/boto3/boto3-1.39.14.ebuild b/dev-python/boto3/boto3-1.39.14.ebuild
index 4ee5ecf7976b..fdafafe7f4f0 100644
--- a/dev-python/boto3/boto3-1.39.14.ebuild
+++ b/dev-python/boto3/boto3-1.39.14.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.40.1.ebuild b/dev-python/boto3/boto3-1.40.1.ebuild
index bd6e26787db4..fdafafe7f4f0 100644
--- a/dev-python/boto3/boto3-1.40.1.ebuild
+++ b/dev-python/boto3/boto3-1.40.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.40.22.ebuild b/dev-python/boto3/boto3-1.40.22.ebuild
new file mode 100644
index 000000000000..bd6e26787db4
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.22.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_{11..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.13.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/boto3/boto3-1.40.23.ebuild b/dev-python/boto3/boto3-1.40.23.ebuild
new file mode 100644
index 000000000000..bd6e26787db4
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.23.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_{11..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.13.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/boto3/boto3-1.40.24.ebuild b/dev-python/boto3/boto3-1.40.24.ebuild
new file mode 100644
index 000000000000..bd6e26787db4
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.24.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_{11..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.13.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 a3b40d3bba9b..fbb7b5cc447a 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -7,4 +7,7 @@ DIST botocore-1.40.18.gh.tar.gz 15162586 BLAKE2B 82f844c792de0f92b5e3e6854758f2d
DIST botocore-1.40.19.gh.tar.gz 15105448 BLAKE2B d02ce1e61516591745d5d4f9941d6656c26f2badcdef96c539ec7be275996bd7dfe80b6211aef10be9a9ffab0fea9034ab794f0731cf0555f73a0847ef1d1ae9 SHA512 176c0a5d9b1147e6a47ca7b3251d04c2abefa5840d28d4235ebfebad08728f9e5ad40123c5ba72248ccf1e7a66b1edb70fcef14d3dc03520afc6a03e1a9b5070
DIST botocore-1.40.20.gh.tar.gz 15109331 BLAKE2B 9e1822c3aad609144aeea2bc4e34965f6849f5a71d0d173e3af67b5bb6af541013d5768eef6c6fb627f26cf58f2ee8d0217f7fe530cd99ca43b1b85eb3bf9b05 SHA512 4d7a47f59b84e4b64299a191c60b9cef020b8aeda69512e9dbcc77cdb2a774bf44560d2550b8578bbddc9189df91c7e39cd2c51d3d57e33727469607c03268ae
DIST botocore-1.40.21.gh.tar.gz 15110941 BLAKE2B 93927041ef8b5b3a6349a766a5f15afb73fece9846c9cbf2ac5c8a45b4513e46549539c8a14b85de36d6ffb5a5999cedd2a97251d16e0a93fc3c7dde8bd73b5f SHA512 bc9eca7f4ff7f0a7e58bd3bb60d95df45a71caf2a98739702b341838a1db31b161e1e0818380a6ab805dcb1e05be2e3e182a456c0e2dd91042b34ed3100aaf22
+DIST botocore-1.40.22.gh.tar.gz 15114103 BLAKE2B 0350411e220c7a22bc0f48742bb2062f9b35b795ccf029f806676c3215a96c966f3907e54f63ccfdae55540d47eaec517734b598e585b242cc8037ebcde41661 SHA512 566a50d640411f4121fe7cc3d2d7887f6a23005e1faa2cfd7fbbde2db41050b37795447ab2686dfe2b6b9bd364d63aa43b776ee4a57ec7d0f734f4c180a7e8f8
+DIST botocore-1.40.23.gh.tar.gz 15118146 BLAKE2B 78cd29470e51d04f53a8fabd61cee61248dbe738e64f0979e816949ae9aed959adf4de4f0870a0564e17fcdd6b8ed7c869baf27d6d983cee8bfcd7f8d2878699 SHA512 db070ac47cccb9af6f77c625a5397f5097f59bd8b2ae4806443b471e7f97a4e7c38c7d4bce6ea9cbcc62e34f81abf076c57300ae705816a7b74c0fae2bd9bcdd
+DIST botocore-1.40.24.gh.tar.gz 15121130 BLAKE2B 8e6b73ded0b9fcb20f86a36debfe92e04eb48725ace1af64890ad42b411d7fa6aaae45bae58f3db22cf28d50eee2c634b0bb0ed5353e604e12a3451928a8522a SHA512 e09624f5e210ca7f24352766c5665b9716ff3bdd9501bd61978796b32c7e86ca9e2fb63bd681d6e8147e4af015957fe781bad20454d2f57931ae0e1a0c470353
DIST botocore-1.40.6.gh.tar.gz 15096678 BLAKE2B fb76ace4058c814bb8ef17bb216f5f7355eec401e4108d8a6569e07f97b14becb9e99652364dacb7e46e62f3ffaea2e5e1cd241ae832fe0a359ed58bbcfe3500 SHA512 faa311f29da484083f49a9ae7beda844b8878750c7474916ff7200b4a5fdc01e26295923c7a0f0bc4e4b1c22e5381f69546b8685fdeb2112f1c61810d3c9b58d
diff --git a/dev-python/botocore/botocore-1.39.14.ebuild b/dev-python/botocore/botocore-1.39.14.ebuild
index 1d8d6070cb92..5d6a29be5655 100644
--- a/dev-python/botocore/botocore-1.39.14.ebuild
+++ b/dev-python/botocore/botocore-1.39.14.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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="
${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/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/botocore/botocore-1.40.23.ebuild b/dev-python/botocore/botocore-1.40.23.ebuild
new file mode 100644
index 000000000000..a931fcaefec4
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.23.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_{11..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/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/botocore/botocore-1.40.24.ebuild b/dev-python/botocore/botocore-1.40.24.ebuild
new file mode 100644
index 000000000000..a931fcaefec4
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.24.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_{11..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/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/bottle/bottle-0.12.25-r1.ebuild b/dev-python/bottle/bottle-0.12.25-r1.ebuild
index 1726749a12c6..d6ef13abe00d 100644
--- a/dev-python/bottle/bottle-0.12.25-r1.ebuild
+++ b/dev-python/bottle/bottle-0.12.25-r1.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
@@ -17,7 +17,7 @@ HOMEPAGE="
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"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/bottle/bottle-0.13.3.ebuild b/dev-python/bottle/bottle-0.13.3.ebuild
index 603af5eedf50..d468f1533016 100644
--- a/dev-python/bottle/bottle-0.13.3.ebuild
+++ b/dev-python/bottle/bottle-0.13.3.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"
+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/bottle/bottle-0.13.4.ebuild b/dev-python/bottle/bottle-0.13.4.ebuild
index 603af5eedf50..d468f1533016 100644
--- a/dev-python/bottle/bottle-0.13.4.ebuild
+++ b/dev-python/bottle/bottle-0.13.4.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"
+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/bracex/bracex-2.6.ebuild b/dev-python/bracex/bracex-2.6.ebuild
index 5b3db8d6595f..ac97650fd7d2 100644
--- a/dev-python/bracex/bracex-2.6.ebuild
+++ b/dev-python/bracex/bracex-2.6.ebuild
@@ -25,7 +25,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/breathe/breathe-4.36.0.ebuild b/dev-python/breathe/breathe-4.36.0.ebuild
index 843c246d5784..219c3a0e1a34 100644
--- a/dev-python/breathe/breathe-4.36.0.ebuild
+++ b/dev-python/breathe/breathe-4.36.0.ebuild
@@ -21,7 +21,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="
app-text/doxygen
diff --git a/dev-python/brotlicffi/brotlicffi-1.1.0.0.ebuild b/dev-python/brotlicffi/brotlicffi-1.1.0.0.ebuild
index 9f60e4aa75e9..260b59c64198 100644
--- a/dev-python/brotlicffi/brotlicffi-1.1.0.0.ebuild
+++ b/dev-python/brotlicffi/brotlicffi-1.1.0.0.ebuild
@@ -30,7 +30,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
app-arch/brotli:=
diff --git a/dev-python/build/build-1.2.2_p1-r2.ebuild b/dev-python/build/build-1.2.2_p1-r2.ebuild
index 116ae736c9fe..cb866296ee8b 100644
--- a/dev-python/build/build-1.2.2_p1-r2.ebuild
+++ b/dev-python/build/build-1.2.2_p1-r2.ebuild
@@ -23,7 +23,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"
IUSE="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild b/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild
index faeb1f2de6e8..7f3ed6e18f48 100644
--- a/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild
+++ b/dev-python/cachecontrol/cachecontrol-0.14.3.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
${P}.tar.gz
- $(cargo_crate_uris ${CRATES})"
-
-LICENSE="|| ( Apache-2.0 BSD ) PSF-2"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016
-"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 sparc ~x86"
-IUSE="libressl"
-
-RDEPEND="
- !libressl? ( >=dev-libs/openssl-1.0.2o-r6:0= )
- libressl? ( =dev-python/cffi-1.8:=[${PYTHON_USEDEP}]
- ' 'python*')
-"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- ${RUST_DEPEND}
- >=dev-python/setuptools-rust-1.7.0[${PYTHON_USEDEP}]
- test? (
- dev-python/certifi[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-1.11.4[${PYTHON_USEDEP}]
- dev-python/iso8601[${PYTHON_USEDEP}]
- dev-python/pretend[${PYTHON_USEDEP}]
- dev-python/pyasn1-modules[${PYTHON_USEDEP}]
- dev-python/pytest-subtests[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-# Files built without CFLAGS/LDFLAGS, acceptable for rust
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so"
-
-distutils_enable_tests pytest
-
-src_unpack() {
- cargo_src_unpack
-}
-
-src_prepare() {
- default
-
- sed -i -e 's:--benchmark-disable::' pyproject.toml || die
-
- # work around availability macros not supported in GCC (yet)
- if [[ ${CHOST} == *-darwin* ]] ; then
- local darwinok=0
- if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
- darwinok=1
- fi
- sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
- src/_cffi_src/openssl/src/osrandom_engine.c || die
- fi
-}
-
-python_configure_all() {
- filter-lto # bug #903908
-}
-
-python_test() {
- local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/cryptography_vectors-${PV}"
- local EPYTEST_IGNORE=(
- tests/bench
- )
- epytest -n "$(makeopts_jobs)"
-}
diff --git a/dev-python/cryptography/cryptography-45.0.7.ebuild b/dev-python/cryptography/cryptography-45.0.7.ebuild
new file mode 100644
index 000000000000..55b3873cde21
--- /dev/null
+++ b/dev-python/cryptography/cryptography-45.0.7.ebuild
@@ -0,0 +1,130 @@
+# Copyright 2021-2025 Liguros Authors
+# Distributed under the terms of the GNU General Public License v2
+EAPI=8
+
+CARGO_OPTIONAL=yes
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_REQ_USE="threads(+)"
+
+CRATES="
+ asn1@0.21.3
+ asn1_derive@0.21.3
+ autocfg@1.4.0
+ base64@0.22.1
+ bitflags@2.9.1
+ cc@1.2.23
+ cfg-if@1.0.0
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ heck@0.5.0
+ indoc@2.0.6
+ itoa@1.0.15
+ libc@0.2.172
+ memoffset@0.9.1
+ once_cell@1.21.3
+ openssl-macros@0.1.1
+ openssl-sys@0.9.108
+ openssl@0.10.72
+ pem@3.0.5
+ pkg-config@0.3.32
+ portable-atomic@1.11.0
+ proc-macro2@1.0.95
+ pyo3-build-config@0.25.0
+ pyo3-ffi@0.25.0
+ pyo3-macros-backend@0.25.0
+ pyo3-macros@0.25.0
+ pyo3@0.25.0
+ quote@1.0.40
+ self_cell@1.2.0
+ shlex@1.3.0
+ syn@2.0.101
+ target-lexicon@0.13.2
+ unicode-ident@1.0.18
+ unindent@0.2.4
+ vcpkg@0.2.15
+"
+
+inherit cargo distutils-r1 multiprocessing
+
+VEC_P=cryptography_vectors-$(ver_cut 1-3)
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="
+ https://github.com/pyca/cryptography/
+ https://pypi.org/project/cryptography/
+"
+SRC_URI="
+ https://github.com/pyca/cryptography/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+ $(cargo_crate_uris ${CRATES})"
+
+LICENSE="|| ( Apache-2.0 BSD ) PSF-2"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016
+"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 sparc ~x86"
+IUSE="libressl"
+
+RDEPEND="
+ !libressl? ( >=dev-libs/openssl-1.0.2o-r6:0= )
+ libressl? ( =dev-python/cffi-1.8:=[${PYTHON_USEDEP}]
+ ' 'python*')
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${RUST_DEPEND}
+ >=dev-python/setuptools-rust-1.7.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-1.11.4[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+# Files built without CFLAGS/LDFLAGS, acceptable for rust
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so"
+
+distutils_enable_tests pytest
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ default
+
+ sed -i -e 's:--benchmark-disable::' pyproject.toml || die
+
+ # work around availability macros not supported in GCC (yet)
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local darwinok=0
+ if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
+ darwinok=1
+ fi
+ sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
+ src/_cffi_src/openssl/src/osrandom_engine.c || die
+ fi
+}
+
+python_configure_all() {
+ filter-lto # bug #903908
+}
+
+python_test() {
+ local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/cryptography_vectors-${PV}"
+ local EPYTEST_IGNORE=(
+ tests/bench
+ )
+ epytest -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/cssselect/cssselect-1.3.0.ebuild b/dev-python/cssselect/cssselect-1.3.0.ebuild
index 63ce36f4be4f..1308d45926bf 100644
--- a/dev-python/cssselect/cssselect-1.3.0.ebuild
+++ b/dev-python/cssselect/cssselect-1.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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/cycler/cycler-0.12.1.ebuild b/dev-python/cycler/cycler-0.12.1.ebuild
index 787e661dbc52..31b6a612d3a7 100644
--- a/dev-python/cycler/cycler-0.12.1.ebuild
+++ b/dev-python/cycler/cycler-0.12.1.ebuild
@@ -21,6 +21,6 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/cython-test-exception-raiser/cython-test-exception-raiser-1.0.2-r1.ebuild b/dev-python/cython-test-exception-raiser/cython-test-exception-raiser-1.0.2-r1.ebuild
index 43734d850760..a142531ed4a5 100644
--- a/dev-python/cython-test-exception-raiser/cython-test-exception-raiser-1.0.2-r1.ebuild
+++ b/dev-python/cython-test-exception-raiser/cython-test-exception-raiser-1.0.2-r1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
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"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
diff --git a/dev-python/cython/cython-3.1.2-r1.ebuild b/dev-python/cython/cython-3.1.2-r1.ebuild
index fcfd7e70acd5..b52b7418f526 100644
--- a/dev-python/cython/cython-3.1.2-r1.ebuild
+++ b/dev-python/cython/cython-3.1.2-r1.ebuild
@@ -21,7 +21,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"
IUSE="test test-full"
RESTRICT="!test? ( test )"
diff --git a/dev-python/dbus-fast/dbus-fast-2.44.3.ebuild b/dev-python/dbus-fast/dbus-fast-2.44.3.ebuild
index 1ab3c5d3ca76..6a1892472136 100644
--- a/dev-python/dbus-fast/dbus-fast-2.44.3.ebuild
+++ b/dev-python/dbus-fast/dbus-fast-2.44.3.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~riscv"
+KEYWORDS="amd64 ~riscv"
BDEPEND="
>=dev-python/cython-3[${PYTHON_USEDEP}]
diff --git a/dev-python/dbus-python/dbus-python-1.4.0.ebuild b/dev-python/dbus-python/dbus-python-1.4.0.ebuild
index 299305c86ce0..efbb640bcef5 100644
--- a/dev-python/dbus-python/dbus-python-1.4.0.ebuild
+++ b/dev-python/dbus-python/dbus-python-1.4.0.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://dbus.freedesktop.org/releases/${PN}/${P}.tar.xz"
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="doc examples test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
diff --git a/dev-python/ddt/ddt-1.7.2.ebuild b/dev-python/ddt/ddt-1.7.2.ebuild
index e3f737caab5f..c2986bbf6eaf 100644
--- a/dev-python/ddt/ddt-1.7.2.ebuild
+++ b/dev-python/ddt/ddt-1.7.2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
BDEPEND="
test? (
diff --git a/dev-python/decorator/decorator-5.2.1.ebuild b/dev-python/decorator/decorator-5.2.1.ebuild
index 489a614dd2a3..edfa4912f5a0 100644
--- a/dev-python/decorator/decorator-5.2.1.ebuild
+++ b/dev-python/decorator/decorator-5.2.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
python_test() {
"${EPYTHON}" tests/test.py -v || die "Tests failed with ${EPYTHON}"
diff --git a/dev-python/deepdiff/Manifest b/dev-python/deepdiff/Manifest
index 807f23e34ba1..12dd829afa44 100644
--- a/dev-python/deepdiff/Manifest
+++ b/dev-python/deepdiff/Manifest
@@ -1,2 +1,2 @@
DIST deepdiff-8.5.0.tar.gz 538517 BLAKE2B 27bcac8a511961540c6d285c03a8011c6075776cf795971d9fa03be4a9029909750da327c72505ba736703d95d790bae76b27f9a662d551108e12ec8227bbebf SHA512 7898b9eee9e7d7ec441adaa4f306f304df3e922e85cb58601daec530e61da1f7dd79fb34395620df1015aedd646eed1fd203d14a65397b0cc7b708722e68582b
-DIST deepdiff-8.6.0.tar.gz 631801 BLAKE2B 059ceffd6fd544e28542717939079601ef669fade75f3f1f21daf1766b56c8cfb7c6b16fd81ac45e2fe7894e454a33d0e85d74f992f7c45c90b2335fee2503d5 SHA512 f4b648b6b0181c48e6fff4d7d46c76bea9a1b86e14ec444cf53c8630a9dd2bdeb93c48330093cf58290150c4a179ca69bc8e59c8bba531cfa23b3db33aa111a7
+DIST deepdiff-8.6.1.tar.gz 634054 BLAKE2B 3b4d0bf068216d6713ab868b2b7a86d092dd978136298ae061906b0c4706dd54b9029db9573d937f564c00ebc0be7f27c87d03fd863d009f2713a133306e420a SHA512 385eeda89c5c1fbc0734abdbbeb14647d97f151e0de09e07f0c202453c6fb0e53996b25e642aebd6d9bdbdf98591962f397c62c64c173474faaaf04651317fc9
diff --git a/dev-python/deepdiff/deepdiff-8.6.0.ebuild b/dev-python/deepdiff/deepdiff-8.6.0.ebuild
deleted file mode 100644
index a675eef7ddc3..000000000000
--- a/dev-python/deepdiff/deepdiff-8.6.0.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2023-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A library for comparing dictionaries, iterables, strings and other objects"
-HOMEPAGE="
- https://github.com/seperman/deepdiff/
- https://pypi.org/project/deepdiff/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- >=dev-python/click-8.1.3[${PYTHON_USEDEP}]
- =dev-python/orderly-set-5.4.1[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
-"
-
-DEPEND="
- test? (
- >=dev-python/jsonpickle-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/numpy-2.2.0[${PYTHON_USEDEP}]
- dev-python/pydantic[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/tomli-w[${PYTHON_USEDEP}]
- dev-python/uuid6[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # benchmarks
- tests/test_lfucache.py::TestLFUcache::test_lfu
- # requires polars
- tests/test_hash.py::TestDeepHashPrep::test_polars
-)
diff --git a/dev-python/deepdiff/deepdiff-8.6.1.ebuild b/dev-python/deepdiff/deepdiff-8.6.1.ebuild
new file mode 100644
index 000000000000..5e5ff8d13500
--- /dev/null
+++ b/dev-python/deepdiff/deepdiff-8.6.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A library for comparing dictionaries, iterables, strings and other objects"
+HOMEPAGE="
+ https://github.com/seperman/deepdiff/
+ https://pypi.org/project/deepdiff/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/click-8.1.3[${PYTHON_USEDEP}]
+ =dev-python/orderly-set-5.4.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+"
+
+DEPEND="
+ test? (
+ >=dev-python/jsonpickle-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.10.0[${PYTHON_USEDEP}]
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/uuid6[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # benchmarks
+ tests/test_lfucache.py::TestLFUcache::test_lfu
+ # requires polars
+ tests/test_hash.py::TestDeepHashPrep::test_polars
+)
diff --git a/dev-python/deepmerge/deepmerge-2.0.ebuild b/dev-python/deepmerge/deepmerge-2.0.ebuild
index 106e4c3b7d9a..8b6f534f5e06 100644
--- a/dev-python/deepmerge/deepmerge-2.0.ebuild
+++ b/dev-python/deepmerge/deepmerge-2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/defusedxml/defusedxml-0.7.1-r1.ebuild b/dev-python/defusedxml/defusedxml-0.7.1-r1.ebuild
index 7939c88eea66..45e5b536aefb 100644
--- a/dev-python/defusedxml/defusedxml-0.7.1-r1.ebuild
+++ b/dev-python/defusedxml/defusedxml-0.7.1-r1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
src_prepare() {
diff --git a/dev-python/defusedxml/defusedxml-0.8.0_rc2.ebuild b/dev-python/defusedxml/defusedxml-0.8.0_rc2.ebuild
index 89faa0b0facd..bb5f43211a6c 100644
--- a/dev-python/defusedxml/defusedxml-0.8.0_rc2.ebuild
+++ b/dev-python/defusedxml/defusedxml-0.8.0_rc2.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="PSF-2"
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"
IUSE="examples"
src_prepare() {
diff --git a/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild b/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild
index 2600a43b7a9f..cec5523e43eb 100644
--- a/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild
+++ b/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/deprecated/deprecated-1.2.18-r1.ebuild b/dev-python/deprecated/deprecated-1.2.18-r1.ebuild
index 15d98662e35a..fb59b6900a6a 100644
--- a/dev-python/deprecated/deprecated-1.2.18-r1.ebuild
+++ b/dev-python/deprecated/deprecated-1.2.18-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/wrapt[${PYTHON_USEDEP}]
diff --git a/dev-python/deprecation/deprecation-2.1.0-r1.ebuild b/dev-python/deprecation/deprecation-2.1.0-r1.ebuild
index 5d711d3c9ed6..210dd4a03766 100644
--- a/dev-python/deprecation/deprecation-2.1.0-r1.ebuild
+++ b/dev-python/deprecation/deprecation-2.1.0-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="dev-python/packaging[${PYTHON_USEDEP}]"
diff --git a/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild b/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild
index c7ea069c891e..2ae5148e4456 100644
--- a/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild
+++ b/dev-python/dictdiffer/dictdiffer-0.9.0-r1.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"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/dill/dill-0.4.0.ebuild b/dev-python/dill/dill-0.4.0.ebuild
index d9a81b9b58d0..67561ef0ca6a 100644
--- a/dev-python/dill/dill-0.4.0.ebuild
+++ b/dev-python/dill/dill-0.4.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
python_test() {
"${EPYTHON}" -m dill.tests || die
diff --git a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild
index 53efadf15818..bac4d84579d8 100644
--- a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild
+++ b/dev-python/dirty-equals/dirty-equals-0.9.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/discid/Manifest b/dev-python/discid/Manifest
index 6b8fe43b6e99..d2998d460e85 100644
--- a/dev-python/discid/Manifest
+++ b/dev-python/discid/Manifest
@@ -1,2 +1 @@
-DIST python-discid-1.2.0.gh.tar.gz 30756 BLAKE2B 616613de23b66adfc92227a9f36b710649f2a419ffd83443766ebcf1dbfaf528b7d933011bcbdcd19f5092726b81e40d905a62a64262a528dfad89e561210992 SHA512 239cb608508e94109aa9b8b582bc3de1fb9408b508d56698d7f17ec9ebb0d37c1fb76557d98b6d194c1532e3047efcde3adc5d6e9634bc87533d331423a7f19f
DIST python-discid-1.3.0.gh.tar.gz 31864 BLAKE2B ca51b5c40babc4f13ac849e2570a104de55cfc30fbf83ebcc2693dae182ae61285d4579aa7a8417f0cabe8beba7dfa78c5bd4e3da2fdda7fae6152a5715a5350 SHA512 1556d3cb40a6397583702a41cc41e9506cee848edc4b05c0ced32dd9197464c0c68b2f6cd1770245a9737449a313f9985cbce30956d98f21691ce48b32929770
diff --git a/dev-python/discid/discid-1.2.0-r1.ebuild b/dev-python/discid/discid-1.2.0-r1.ebuild
deleted file mode 100644
index 02d0911d6eef..000000000000
--- a/dev-python/discid/discid-1.2.0-r1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2021-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1
-
-MY_P=python-discid-${PV}
-DESCRIPTION="Python bindings for libdiscid"
-HOMEPAGE="
- https://python-discid.readthedocs.io/en/latest/
- https://github.com/JonnyJD/python-discid/
- https://pypi.org/project/discid/
-"
-SRC_URI="
- https://github.com/JonnyJD/python-discid/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc x86"
-
-DEPEND="
- >=media-libs/libdiscid-0.2.2
-"
-RDEPEND="
- ${DEPEND}
-"
-
-distutils_enable_sphinx doc
-
-python_test() {
- "${EPYTHON}" -m unittest -v test_discid.TestModule{Private,} ||
- die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/diskcache/diskcache-5.6.3.ebuild b/dev-python/diskcache/diskcache-5.6.3.ebuild
index ab687ab93a2f..e80de0cbd23b 100644
--- a/dev-python/diskcache/diskcache-5.6.3.ebuild
+++ b/dev-python/diskcache/diskcache-5.6.3.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
@@ -23,7 +23,7 @@ S=${WORKDIR}/python-diskcache-${PV}
LICENSE="Apache-2.0"
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"
BDEPEND="
test? (
diff --git a/dev-python/distlib/distlib-0.4.0.ebuild b/dev-python/distlib/distlib-0.4.0.ebuild
index d076a8a82d00..66208ad22557 100644
--- a/dev-python/distlib/distlib-0.4.0.ebuild
+++ b/dev-python/distlib/distlib-0.4.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="PSF-2"
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/distro/distro-1.9.0.ebuild b/dev-python/distro/distro-1.9.0.ebuild
index 180bef007601..713609fee4e6 100644
--- a/dev-python/distro/distro-1.9.0.ebuild
+++ b/dev-python/distro/distro-1.9.0.ebuild
@@ -17,6 +17,6 @@ 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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_tests pytest
diff --git a/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild b/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild
index a0aff0ef9a94..d198b4b8963b 100644
--- a/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild
+++ b/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/django-4.2[${PYTHON_USEDEP}]
diff --git a/dev-python/dj-email-url/dj-email-url-1.0.6.ebuild b/dev-python/dj-email-url/dj-email-url-1.0.6.ebuild
index 43a149dd8242..d0b6382dea31 100644
--- a/dev-python/dj-email-url/dj-email-url-1.0.6.ebuild
+++ b/dev-python/dj-email-url/dj-email-url-1.0.6.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
DOCS=( CHANGELOG.rst README.rst )
diff --git a/dev-python/dj-search-url/dj-search-url-0.1-r1.ebuild b/dev-python/dj-search-url/dj-search-url-0.1-r1.ebuild
index 3f55ff58256e..ddc44a9e3cd3 100644
--- a/dev-python/dj-search-url/dj-search-url-0.1-r1.ebuild
+++ b/dev-python/dj-search-url/dj-search-url-0.1-r1.ebuild
@@ -17,4 +17,4 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
diff --git a/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild b/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild
index 4262b8e5a734..a7cd48dae4d5 100644
--- a/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild
+++ b/dev-python/django-cache-url/django-cache-url-3.4.5.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/django[${PYTHON_USEDEP}]
diff --git a/dev-python/django-configurations/django-configurations-2.5.1.ebuild b/dev-python/django-configurations/django-configurations-2.5.1.ebuild
index 5a9e5ca39cc6..0c5ba0660791 100644
--- a/dev-python/django-configurations/django-configurations-2.5.1.ebuild
+++ b/dev-python/django-configurations/django-configurations-2.5.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index 753b477de68a..752eb5850519 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -1,9 +1,7 @@
-DIST Django-4.2.23.checksum.txt 2384 BLAKE2B b14eedfea3253c3f3e3a96e124fe942bfdcfd5013876fd2ab7a693c5cf9190652869ef9093b1650c968bd2ecf097566cb404984645dbb3e28423a4a47f747c05 SHA512 8393fb7e21b5ea0db8fc909588e1ce40ce18f405f2d53470f75237889509e4606e3a1aa7168e9defe4c790446dee12084a779c275d6290dcd6f7db285ec3c045
-DIST Django-5.1.11.checksum.txt 2384 BLAKE2B 8a8c2528bf0453d9da92cd5c6929b59f5e942840e17fd15dac00c1979d92f46b21c318f0d5d0426dd3cf0fd2c99799eb24eb2e50c4af906ad330d8fa1acd40df SHA512 748b3f4987ef0854cb3cbb501a7ee0c71acb5fbd2a3b4b07eef581db8ba31ad481aef4465a75fc42dcd4e75148568700101d169329373d3208b76aa6b90602f3
-DIST Django-5.2.4.checksum.txt 2536 BLAKE2B 112467d2065f70700ee7f52e672f9208a4b96d8015ef8f11ec15f06fd62f8dd90e08690099a4ab859a2056ce16b033bd04162dbcbd590fa33f64af617bf225d8 SHA512 e8f1b971c4097996e3513d088a93b6bfc89280fc400aa908324041691f1f794d2e329d5e8ccadbbddfa7cba31823376651ea157b031efe5e2b74b38177ed7a6b
-DIST Django-5.2.5.checksum.txt 2375 BLAKE2B f3a3efcfb301ff20c949f48d6eeae53fb509c4a1ed4296d9d61f087e1fc7c6584d140e25446cdf39630ef35f957493ea1acf415e69e7aecc6314a2a10811c27e SHA512 7e5118e68c16bc18fed842040babea4428865fe24ae7d9571cfd195473b583be79fc0beed6b921735ccfa9711ad016df613c9882fe34305aa22070a6cc6af0cd
+DIST Django-4.2.24.checksum.txt 2388 BLAKE2B 849cba0c02d0c9ad39aa05cb075cfcb734358d183a048a2020310838dc103ee9aaef3b8186da4403d47fdf92b0d1ce3e2e0f3d4fdf537ba348283d71221f7ca9 SHA512 cef61a0092cb8a17cb581ebc1f9d20e898e4c65d20aa32740bbd41761d1d3004aab737337fd249f1ab21b6161a02c781682295d3f45d0102844819eda3d253b6
+DIST Django-5.1.12.checksum.txt 2388 BLAKE2B a4e676cfc68c9f1b9a3582cc1c3875aacb81171c459021874522e5d902a831372112bf730fb9ec3fc0d41645af0d7f64d50009a2a4beb2fddb43b114f83ea594 SHA512 87b32f9861840ea7df64cebb74d840e006b6329707c4b25957316f2840a789bff5c7a42b55484c9829d67be5cd0d5cf69dc69558637361ace7ec87850014028d
+DIST Django-5.2.6.checksum.txt 2378 BLAKE2B f8516d76dabcef3cbc9b4fa93af8c18f1e835d684319dbbfd56d4b659b642607a5f72a0386fe371daa1b4e2d64d61d3561fd9557de51ef9fdd7a6bac5bf12ddd SHA512 9b499f591d05fbadcb070a8d95dd8a585d485f89f91074c77e1baf3f9909aa26d785a57de5aeb03f0b9027e6567b0852c2c98e2907ab43c650ef8cc99a3fbfa7
DIST django-4.2.17-pypy3.patch.xz 5900 BLAKE2B 2a564fc31d8e2f3def5a532d3bca1a4426a496c659192f602d659e0c1a5f5882978baedb384cc3b67fda8c836513ce43aece80db1528c8e8b6e9ca420f7572ce SHA512 9c9d935aff6db7230a26931b5e7f5f94f3b5ff4fc8f7d4201178571de9d9c7929a0e1e558cc2d9b54b8ee91f85819a5680d24fad6251620515a4a020e3b2d66d
-DIST django-4.2.23.tar.gz 10448384 BLAKE2B 7ac537b279c3ff3e530c8a3a8c2884e30b8771e7bc86fa9086c5149aa9c2c0bf98b90b572e607e7c38c6dbfa95a06783e93a157ee6cdcd24a5285d4e9d700901 SHA512 3461a83b5c6cad1db8b1a54fa44735c6ec6d1aadb476973f3a76f8c1c3ffc49549ad8aded28baf05be439bdf8f9890f79b4908f16655804eb805a74dbb0e6ab3
-DIST django-5.1.11.tar.gz 10734926 BLAKE2B 2fd387f356e3bafd3569ae0dd24c540970f5bcd465ebbf8726950fd92f4a85563ec6f79e5bbe69ba430eceab46cca50f631c9027a0e5abb024c906d42e69354e SHA512 dc9cb8e16242c6276cedccb639443d3f4b2d3805f52a74310fddb761ffc3ff9ad6be3863a4a14574ae9bf19342304afc0733497b4b584cb6cbe59e9b394d9a59
-DIST django-5.2.4.tar.gz 10831909 BLAKE2B 3dac27659b23698142b4b9163fe3a916a2352ab9f079ade10cdf0304229ab1109818befdf29f42864fed2409b1af5b777836c2f63cbbf98f7af09920507fcdc6 SHA512 af2ec6cfa6e17c6b348c165947ac76287f51e5ab6edc90682b57f8412ec22aaa0cd326516f65b63438d2ef48a70d306a59bfb7a235adeae0e753b654a3b0059c
-DIST django-5.2.5.tar.gz 10859748 BLAKE2B a721e6199bd1c386098536a62a652bbad14268fd79f56a1235d0c0377e511a5c5ddc7646549389c72994bc1019a15ddb0b38a237a4ef4a5cc83caa8d248cec11 SHA512 b65e59596a2c3b4d219d0b37b54bbcead10b1f9760d499cb5cd603b0025995415f3883531f3274ca56a66f3c809933859a079d829403ca8160e6f6cadf7591a4
+DIST django-4.2.24.tar.gz 10452798 BLAKE2B 8879aab564b89429244edd496f8bc2e93a47c7b337e3e280c386c45c9e33be5d2e129913d7684456a18b3772113f1715aea259df1cf56af28947516f49974e42 SHA512 b43b3c73301d60d19681d98b63f6f58a09af6bafb6166419d561f0c0236d2aa1a7c715d86e029ad942997e36868661e606a4a305bada0367383b27d660b8dc26
+DIST django-5.1.12.tar.gz 10737777 BLAKE2B 8f13429abf76b748936b93e28395df694b1763527e55c3cc29b5c493c084e0213d98bc10a3cf1ee1fe42963be05191dba4d34e9503a5729ab26addcd0f68b865 SHA512 01f707690efbc9ae7c9c826136c6ce2dddc12e567f37a4c90c709ccab25825aeff124df23d9c75b772e20cf1c21e5ca474044096e3c54f979bd3d8c34b463a68
+DIST django-5.2.6.tar.gz 10858861 BLAKE2B c44949b5f27c04e4dbdbd84aa3f7865b404e122e2b427a8fb8d926de0f100b04abd44a1dfb63a74b6a6547884abfd0b8e93c166b0561784d5004b5ceff68b61f SHA512 f2780e72ab6b54503a2ccee2fb2139399c175d8704a9b7fa4308f7688ad7b3a5fd744850ec6f702e0696ac190bc510e8d91584858381f7fd41eb89f1d7619e2c
diff --git a/dev-python/django/django-4.2.23.ebuild b/dev-python/django/django-4.2.23.ebuild
deleted file mode 100644
index a53665ac9c20..000000000000
--- a/dev-python/django/django-4.2.23.ebuild
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
- https://dev.gentoo.org/~mgorny/dist/python/django-4.2.17-pypy3.patch.xz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- =dev-python/asgiref-3.6.0[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/jinja2[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/selenium[${PYTHON_USEDEP}]
- dev-python/tblib[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
-"
-
-PATCHES=(
- "${FILESDIR}"/django-4.0-bashcomp.patch
- "${WORKDIR}"/django-4.2.17-pypy3.patch
- # https://code.djangoproject.com/ticket/35661
- "${FILESDIR}"/django-5.1-more-pypy3.patch
- # https://code.djangoproject.com/ticket/34900
- "${FILESDIR}"/django-4.2.21-py313.patch
- # https://github.com/django/django/pull/19639
- "${FILESDIR}"/django-5.2.5-htmlparser.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_test() {
- # Tests have non-standard assumptions about PYTHONPATH,
- # and don't work with ${BUILD_DIR}/lib.
- PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
- -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp extras/django_bash_completion ${PN}-admin
- bashcomp_alias ${PN}-admin django-admin.py
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature_header "Additional Backend support can be enabled via:"
- optfeature "MySQL backend support" dev-python/mysqlclient
- optfeature "PostgreSQL backend support" dev-python/psycopg:0
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-4.2.24.ebuild b/dev-python/django/django-4.2.24.ebuild
new file mode 100644
index 000000000000..ffc36a351a1e
--- /dev/null
+++ b/dev-python/django/django-4.2.24.ebuild
@@ -0,0 +1,106 @@
+# 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_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
+ https://dev.gentoo.org/~mgorny/dist/python/django-4.2.17-pypy3.patch.xz
+ verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
+"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ =dev-python/asgiref-3.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ dev-python/tblib[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ "${WORKDIR}"/django-4.2.17-pypy3.patch
+ # https://code.djangoproject.com/ticket/35661
+ "${FILESDIR}"/django-5.1-more-pypy3.patch
+ # https://code.djangoproject.com/ticket/34900
+ "${FILESDIR}"/django-4.2.21-py313.patch
+ # upstream hardcodes fixed versions, we backported the fixes
+ "${FILESDIR}"/django-4.2.24-htmlparser.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${P^}.checksum.txt" sha256 "${P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/django/django-5.1.11.ebuild b/dev-python/django/django-5.1.11.ebuild
deleted file mode 100644
index dca4e653d71a..000000000000
--- a/dev-python/django/django-5.1.11.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- =dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
- >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
-"
-
-PATCHES=(
- "${FILESDIR}"/django-4.0-bashcomp.patch
- # https://github.com/django/django/pull/19639
- "${FILESDIR}"/django-5.2.5-htmlparser.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_test() {
- # Tests have non-standard assumptions about PYTHONPATH,
- # and don't work with ${BUILD_DIR}/lib.
- PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
- -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp extras/django_bash_completion ${PN}-admin
- bashcomp_alias ${PN}-admin django-admin.py
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature_header "Additional Backend support can be enabled via:"
- optfeature "MySQL backend support" dev-python/mysqlclient
- optfeature "PostgreSQL backend support" dev-python/psycopg:0
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-5.1.12.ebuild b/dev-python/django/django-5.1.12.ebuild
new file mode 100644
index 000000000000..cb681e34b0b9
--- /dev/null
+++ b/dev-python/django/django-5.1.12.ebuild
@@ -0,0 +1,100 @@
+# 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_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
+"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ =dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ # upstream hardcodes fixed versions, we backported the fixes
+ "${FILESDIR}"/django-5.2.6-htmlparser.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${P^}.checksum.txt" sha256 "${P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/django/django-5.2.4.ebuild b/dev-python/django/django-5.2.4.ebuild
deleted file mode 100644
index f69cc5e4f756..000000000000
--- a/dev-python/django/django-5.2.4.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- =dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
- >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
-"
-
-PATCHES=(
- "${FILESDIR}"/django-4.0-bashcomp.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_test() {
- # Tests have non-standard assumptions about PYTHONPATH,
- # and don't work with ${BUILD_DIR}/lib.
- PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
- -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp extras/django_bash_completion ${PN}-admin
- bashcomp_alias ${PN}-admin django-admin.py
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature_header "Additional Backend support can be enabled via:"
- optfeature "MySQL backend support" dev-python/mysqlclient
- optfeature "PostgreSQL backend support" dev-python/psycopg:0
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-5.2.5.ebuild b/dev-python/django/django-5.2.5.ebuild
deleted file mode 100644
index 6ff7b0f60264..000000000000
--- a/dev-python/django/django-5.2.5.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- =dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
- >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
-"
-
-PATCHES=(
- "${FILESDIR}"/django-4.0-bashcomp.patch
- # https://github.com/django/django/pull/19639
- "${FILESDIR}"/django-5.2.5-htmlparser.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_test() {
- # Tests have non-standard assumptions about PYTHONPATH,
- # and don't work with ${BUILD_DIR}/lib.
- PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
- -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp extras/django_bash_completion ${PN}-admin
- bashcomp_alias ${PN}-admin django-admin.py
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature_header "Additional Backend support can be enabled via:"
- optfeature "MySQL backend support" dev-python/mysqlclient
- optfeature "PostgreSQL backend support" dev-python/psycopg:0
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-5.2.6.ebuild b/dev-python/django/django-5.2.6.ebuild
new file mode 100644
index 000000000000..cb681e34b0b9
--- /dev/null
+++ b/dev-python/django/django-5.2.6.ebuild
@@ -0,0 +1,100 @@
+# 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_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
+"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ =dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ # upstream hardcodes fixed versions, we backported the fixes
+ "${FILESDIR}"/django-5.2.6-htmlparser.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${P^}.checksum.txt" sha256 "${P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/django/files/django-4.2.24-htmlparser.patch b/dev-python/django/files/django-4.2.24-htmlparser.patch
new file mode 100644
index 000000000000..b439a81eb408
--- /dev/null
+++ b/dev-python/django/files/django-4.2.24-htmlparser.patch
@@ -0,0 +1,15 @@
+diff --git a/tests/utils_tests/test_html.py b/tests/utils_tests/test_html.py
+index f755b8cebc..ef5fe77951 100644
+--- a/tests/utils_tests/test_html.py
++++ b/tests/utils_tests/test_html.py
+@@ -101,9 +101,7 @@ class TestUtilsHtml(SimpleTestCase):
+ (3, 9): (3, 9, 24),
+ }
+ py_version = sys.version_info[:2]
+- htmlparser_fixed = (
+- py_version in min_fixed and sys.version_info >= min_fixed[py_version]
+- )
++ htmlparser_fixed = True
+ items = (
+ (
+ "See: 'é is an apostrophe followed by e acute
",
diff --git a/dev-python/django/files/django-5.2.5-htmlparser.patch b/dev-python/django/files/django-5.2.5-htmlparser.patch
deleted file mode 100644
index 6d986be38478..000000000000
--- a/dev-python/django/files/django-5.2.5-htmlparser.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From e0a1e8d549e7be25960b8ad060c63def3dc35d1d Mon Sep 17 00:00:00 2001
-From: Natalia <124304+nessita@users.noreply.github.com>
-Date: Mon, 21 Jul 2025 15:23:32 -0300
-Subject: [PATCH 1/2] Fixed test_utils.tests.HTMLEqualTests.test_parsing_errors
- following Python's HTMLParser fixed parsing.
-
-Further details about Python changes can be found in:
-https://github.com/python/cpython/commit/0243f97cbadec8d985e63b1daec5d1cbc850cae3.
-
-Thank you Clifford Gama for the thorough review!
----
- tests/test_utils/tests.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py
-index 37e87aa1022c..9c22b61b4ff2 100644
---- a/tests/test_utils/tests.py
-+++ b/tests/test_utils/tests.py
-@@ -962,7 +962,7 @@ def test_parsing_errors(self):
- "('Unexpected end tag `div` (Line 1, Column 6)', (1, 6))"
- )
- with self.assertRaisesMessage(AssertionError, error_msg):
-- self.assertHTMLEqual("< div> div>", "")
-+ self.assertHTMLEqual("< div>", "")
- with self.assertRaises(HTMLParseError):
- parse_html("
")
-
-
-From e8afcf0e644553bcba3e5f931266963bffc46748 Mon Sep 17 00:00:00 2001
-From: Natalia <124304+nessita@users.noreply.github.com>
-Date: Mon, 14 Jul 2025 14:45:03 -0300
-Subject: [PATCH 2/2] Fixed #36499 -- Adjusted
- utils_tests.test_html.TestUtilsHtml.test_strip_tags following Python's
- HTMLParser new behavior.
-
-Python fixed a quadratic complexity processing for HTMLParser in:
-https://github.com/python/cpython/commit/6eb6c5dbfb528bd07d77b60fd71fd05d81d45c41.
----
- tests/utils_tests/test_html.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/utils_tests/test_html.py b/tests/utils_tests/test_html.py
-index 284f33aedcfb..51573b81eb9d 100644
---- a/tests/utils_tests/test_html.py
-+++ b/tests/utils_tests/test_html.py
-@@ -142,10 +142,10 @@ def test_strip_tags(self):
- ("&gotcha<>", "&gotcha<>"),
- ("ript>test</script>", "ript>test"),
- ("&h", "alert()h"),
-- (">"),
- ("X<<<
br>br>br>X", "XX"),
- ("<" * 50 + "a>" * 50, ""),
-- (">" + "" + "" + ""),
- ("= min_fixed[sys.version_info[:2]]
++ htmlparser_fixed = True
+ items = (
+ (
+ "See: 'é is an apostrophe followed by e acute
",
diff --git a/dev-python/dnspython/Manifest b/dev-python/dnspython/Manifest
index 34778c41971a..a0c89d260fe2 100644
--- a/dev-python/dnspython/Manifest
+++ b/dev-python/dnspython/Manifest
@@ -1 +1,2 @@
DIST dnspython-2.7.0.gh.tar.gz 386890 BLAKE2B 209bbb761cff2e39f86fb94458976766f3cac93e47f2c25294c359c98126aa4670b8157fad6c2bbf67ef250150310b31068690cec43ef148bbaf541873c37f38 SHA512 d73b90a06fa4c731393f719a79ec1339c3f8010b0ef4e58d8aa1aa5e0f2804dff8a79e20d9c9175b41b66bc9cf1712c33f4e2ed14820afc74d988096a42488b5
+DIST dnspython-2.8.0rc1.gh.tar.gz 410118 BLAKE2B 716f2d801173a72476df15060246da3f7260740768190b0bab4cccb0b40e339ccd50a1ebf5d80333707dfe138cb736db0b8ffc804f3da511abdb7ebfaac6151f SHA512 72bec723f514b0f4d21d1b2a226b5a28392dad5ae7a650ee3d298bd0a029b07fc67d03f228228e3209ae8fdf7d1b7fe143bd492e42f523e4df26c43aea5a1eac
diff --git a/dev-python/dnspython/dnspython-2.7.0-r1.ebuild b/dev-python/dnspython/dnspython-2.7.0-r1.ebuild
new file mode 100644
index 000000000000..9844d58a460d
--- /dev/null
+++ b/dev-python/dnspython/dnspython-2.7.0-r1.ebuild
@@ -0,0 +1,60 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="DNS toolkit for Python"
+HOMEPAGE="
+ https://www.dnspython.org/
+ https://github.com/rthalley/dnspython/
+ https://pypi.org/project/dnspython/
+"
+SRC_URI="
+ https://github.com/rthalley/dnspython/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~x86"
+IUSE="dnssec examples https quic"
+
+RDEPEND="
+ dnssec? (
+ >=dev-python/cryptography-41[${PYTHON_USEDEP}]
+ )
+ >=dev-python/idna-2.1[${PYTHON_USEDEP}]
+ https? (
+ >=dev-python/httpx-0.26.0[${PYTHON_USEDEP}]
+ >=dev-python/h2-4.1.0[${PYTHON_USEDEP}]
+ )
+ quic? ( >=dev-python/aioquic-0.9.25[${PYTHON_USEDEP}] )
+"
+# note: skipping DoH test deps because they require Internet anyway
+BDEPEND="
+ test? (
+ >=dev-python/cryptography-41[${PYTHON_USEDEP}]
+ >=dev-python/quart-trio-0.11.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local -x NO_INTERNET=1
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/dnspython/dnspython-2.7.0.ebuild b/dev-python/dnspython/dnspython-2.7.0.ebuild
index c0d702bd0ab2..2a16076fcf50 100644
--- a/dev-python/dnspython/dnspython-2.7.0.ebuild
+++ b/dev-python/dnspython/dnspython-2.7.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="ISC"
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="dnssec examples"
RDEPEND="
diff --git a/dev-python/dnspython/dnspython-2.8.0_rc1.ebuild b/dev-python/dnspython/dnspython-2.8.0_rc1.ebuild
new file mode 100644
index 000000000000..6bcf6bc5636d
--- /dev/null
+++ b/dev-python/dnspython/dnspython-2.8.0_rc1.ebuild
@@ -0,0 +1,61 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="DNS toolkit for Python"
+HOMEPAGE="
+ https://www.dnspython.org/
+ https://github.com/rthalley/dnspython/
+ https://pypi.org/project/dnspython/
+"
+SRC_URI="
+ https://github.com/rthalley/dnspython/archive/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="ISC"
+SLOT="0"
+IUSE="dnssec examples https quic"
+
+RDEPEND="
+ dnssec? (
+ >=dev-python/cryptography-45[${PYTHON_USEDEP}]
+ )
+ >=dev-python/idna-2.1[${PYTHON_USEDEP}]
+ https? (
+ >=dev-python/httpx-0.26.0[${PYTHON_USEDEP}]
+ >=dev-python/h2-4.1.0[${PYTHON_USEDEP}]
+ )
+ quic? ( >=dev-python/aioquic-0.9.25[${PYTHON_USEDEP}] )
+"
+# note: skipping DoH test deps because they require Internet anyway
+BDEPEND="
+ test? (
+ >=dev-python/cryptography-45[${PYTHON_USEDEP}]
+ >=dev-python/quart-trio-0.11.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local -x NO_INTERNET=1
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-python/dnspython/metadata.xml b/dev-python/dnspython/metadata.xml
index ee435af06636..271397bd6a21 100644
--- a/dev-python/dnspython/metadata.xml
+++ b/dev-python/dnspython/metadata.xml
@@ -27,6 +27,12 @@ DNSPythonはPython言語用のDNSツールキットです。ほとんどのレ
Use dev-python/cryptography to enable low-level
DNSSEC RSA, DSA, ECDSA and EdDSA signature validation.
+
+ Enable DNS-over-HTTPS.
+
+
+ Enable DNS-over-QUIC.
+
gentoo-staging
diff --git a/dev-python/docopt/docopt-0.6.2-r5.ebuild b/dev-python/docopt/docopt-0.6.2-r5.ebuild
index e3bf0ec0f549..9e35194b58dc 100644
--- a/dev-python/docopt/docopt-0.6.2-r5.ebuild
+++ b/dev-python/docopt/docopt-0.6.2-r5.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 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
PATCHES=(
"${FILESDIR}"/${PN}-0.6.2-pytest_node_from_parent.patch
diff --git a/dev-python/docutils-glep/docutils-glep-1.5.ebuild b/dev-python/docutils-glep/docutils-glep-1.5.ebuild
index 06c86aa08a8f..6697dbb6ac25 100644
--- a/dev-python/docutils-glep/docutils-glep-1.5.ebuild
+++ b/dev-python/docutils-glep/docutils-glep-1.5.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
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="public-domain"
SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
>=dev-python/docutils-0.10[${PYTHON_USEDEP}]
diff --git a/dev-python/docutils/docutils-0.21.2.ebuild b/dev-python/docutils/docutils-0.21.2.ebuild
index b669c7439d30..53405e012067 100644
--- a/dev-python/docutils/docutils-0.21.2.ebuild
+++ b/dev-python/docutils/docutils-0.21.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
# GPL-3+ only for emacs/rst.el
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
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/pillow[${PYTHON_USEDEP}]
diff --git a/dev-python/docutils/docutils-0.22.ebuild b/dev-python/docutils/docutils-0.22.ebuild
index 220f42af1ffa..a72a8ccb55f2 100644
--- a/dev-python/docutils/docutils-0.22.ebuild
+++ b/dev-python/docutils/docutils-0.22.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
# GPL-3+ only for emacs/rst.el
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
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/pillow[${PYTHON_USEDEP}]
diff --git a/dev-python/ecdsa/ecdsa-0.19.1.ebuild b/dev-python/ecdsa/ecdsa-0.19.1.ebuild
index 37b46e25919b..b716e1862c47 100644
--- a/dev-python/ecdsa/ecdsa-0.19.1.ebuild
+++ b/dev-python/ecdsa/ecdsa-0.19.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv sparc x86 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~ppc-macos ~x64-macos"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/editables/editables-0.5.ebuild b/dev-python/editables/editables-0.5.ebuild
index 4758da7a85e2..bfb9274d7ade 100644
--- a/dev-python/editables/editables-0.5.ebuild
+++ b/dev-python/editables/editables-0.5.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
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"
distutils_enable_tests pytest
diff --git a/dev-python/elementpath/elementpath-5.0.3.ebuild b/dev-python/elementpath/elementpath-5.0.3.ebuild
index a15ed59b4074..3033a3b30834 100644
--- a/dev-python/elementpath/elementpath-5.0.3.ebuild
+++ b/dev-python/elementpath/elementpath-5.0.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/email-validator/email-validator-2.2.0.ebuild b/dev-python/email-validator/email-validator-2.2.0.ebuild
index e681777dbb71..bbedb01ba49f 100644
--- a/dev-python/email-validator/email-validator-2.2.0.ebuild
+++ b/dev-python/email-validator/email-validator-2.2.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="CC0-1.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"
RDEPEND="
>=dev-python/idna-2.8[${PYTHON_USEDEP}]
diff --git a/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild
index 410347b24055..063189102a88 100644
--- a/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild
+++ b/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
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="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-79.0.1.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-79.0.1.ebuild
index 473fddfd3ccc..8861c39b3706 100644
--- a/dev-python/ensurepip-setuptools/ensurepip-setuptools-79.0.1.ebuild
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-79.0.1.ebuild
@@ -12,7 +12,7 @@ S=${DISTDIR}
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"
src_install() {
insinto /usr/lib/python/ensurepip
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild
index a8243666e827..a1b82ebb0b81 100644
--- a/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild
@@ -19,7 +19,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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.ebuild b/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.ebuild
index e5f46b8b2fb1..b976aee60d37 100644
--- a/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.ebuild
+++ b/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/entrypoints/entrypoints-0.4.ebuild b/dev-python/entrypoints/entrypoints-0.4.ebuild
index f1761f0bb807..4ee398e8ba93 100644
--- a/dev-python/entrypoints/entrypoints-0.4.ebuild
+++ b/dev-python/entrypoints/entrypoints-0.4.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/ephemeral-port-reserve/ephemeral-port-reserve-1.1.4.ebuild b/dev-python/ephemeral-port-reserve/ephemeral-port-reserve-1.1.4.ebuild
index e31bde3194de..6f2a980448a1 100644
--- a/dev-python/ephemeral-port-reserve/ephemeral-port-reserve-1.1.4.ebuild
+++ b/dev-python/ephemeral-port-reserve/ephemeral-port-reserve-1.1.4.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
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 pytest
diff --git a/dev-python/eradicate/eradicate-3.0.0.ebuild b/dev-python/eradicate/eradicate-3.0.0.ebuild
index 215de175cd16..ff66355a0e6e 100644
--- a/dev-python/eradicate/eradicate-3.0.0.ebuild
+++ b/dev-python/eradicate/eradicate-3.0.0.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_tests unittest
diff --git a/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild b/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild
index 97a04750af61..f10dae090af7 100644
--- a/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild
+++ b/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT PSF-2.4"
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"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/execnet/execnet-2.1.1.ebuild b/dev-python/execnet/execnet-2.1.1.ebuild
index 4c38d9740dad..e178bdfb63da 100644
--- a/dev-python/execnet/execnet-2.1.1.ebuild
+++ b/dev-python/execnet/execnet-2.1.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/executing/Manifest b/dev-python/executing/Manifest
index d8f41c63d5b8..b97f49890a72 100644
--- a/dev-python/executing/Manifest
+++ b/dev-python/executing/Manifest
@@ -1 +1,2 @@
DIST executing-2.2.0.gh.tar.gz 981774 BLAKE2B 81fb081f3835b8d389ac90fd91db769d0e7171e99b05a3e7ba0edb2910fed0fcd26ff24c6b84bece138de93166571df09c85d47eeec816806c47b816d7b12b96 SHA512 e8f6a399e57519149a15ae84c1d4a01c7cd6fdb81415939ef66f19a4abd9bf2ddbb156a9f59e95328a26504b8f8775a48e8da44af2027dd4763071b1997b8b84
+DIST executing-2.2.1.gh.tar.gz 1135347 BLAKE2B 532d3b8a1801227436e7fd9460732c735b51b1e5841f43090ba56e91d9a5ba8c248bcafbc4ae9f1c6c49ee262d67748f7350364efa9830089f366e07a269bb65 SHA512 59d2ad7cf36279dd36df36355ad3252d32df21a4732fece8f1975be142604ee4646bee2a1fb52ff8ae4f3b155b34334dc92d5a05240cb5be169913e065d2fb23
diff --git a/dev-python/executing/executing-2.2.0.ebuild b/dev-python/executing/executing-2.2.0.ebuild
index f802ff717bd1..3b4198b84d5f 100644
--- a/dev-python/executing/executing-2.2.0.ebuild
+++ b/dev-python/executing/executing-2.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/executing/executing-2.2.1.ebuild b/dev-python/executing/executing-2.2.1.ebuild
new file mode 100644
index 000000000000..2a443a93def6
--- /dev/null
+++ b/dev-python/executing/executing-2.2.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{11..14} )
+# pypy3.11: https://github.com/alexmojaki/executing/issues/92
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Get information about what a Python frame is currently doing"
+HOMEPAGE="
+ https://github.com/alexmojaki/executing/
+ https://pypi.org/project/executing/
+"
+SRC_URI="
+ https://github.com/alexmojaki/executing/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/asttokens-2.1.0[${PYTHON_USEDEP}]
+ dev-python/littleutils[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ "tests/test_main.py::test_small_samples[22bc344a43584c051d8962116e8fd149d72e7e68bcb54caf201ee6e78986b167.py]"
+ "tests/test_main.py::test_small_samples[46597f8f896f11c5d7f432236344cc7e5645c2a39836eb6abdd2437c0422f0f4.py]"
+ )
+ ;;
+ esac
+ if ! has_version "dev-python/ipython[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_ipython.py
+ )
+ fi
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "getting node's source code" dev-python/asttokens
+}
diff --git a/dev-python/expandvars/expandvars-1.1.1.ebuild b/dev-python/expandvars/expandvars-1.1.1.ebuild
index 795123a12ac3..3fc12e4efdb6 100644
--- a/dev-python/expandvars/expandvars-1.1.1.ebuild
+++ b/dev-python/expandvars/expandvars-1.1.1.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/extras/extras-1.0.0-r2.ebuild b/dev-python/extras/extras-1.0.0-r2.ebuild
index 3263ac5eb258..ad08383212ca 100644
--- a/dev-python/extras/extras-1.0.0-r2.ebuild
+++ b/dev-python/extras/extras-1.0.0-r2.ebuild
@@ -16,7 +16,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/eyed3/eyed3-0.9.8.ebuild b/dev-python/eyed3/eyed3-0.9.8.ebuild
index 652aad7383a1..057678333d6b 100644
--- a/dev-python/eyed3/eyed3-0.9.8.ebuild
+++ b/dev-python/eyed3/eyed3-0.9.8.ebuild
@@ -27,7 +27,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="GPL-3+"
SLOT="0.7"
-KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/deprecation-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/faker/faker-37.4.2.ebuild b/dev-python/faker/faker-37.4.2.ebuild
index 4f44a1ce78c8..5ab0dbedd276 100644
--- a/dev-python/faker/faker-37.4.2.ebuild
+++ b/dev-python/faker/faker-37.4.2.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/faker/faker-37.4.3.ebuild b/dev-python/faker/faker-37.4.3.ebuild
index 439a870eb1bf..9a32ad5dc9e1 100644
--- a/dev-python/faker/faker-37.4.3.ebuild
+++ b/dev-python/faker/faker-37.4.3.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/fakeredis/fakeredis-2.30.3.ebuild b/dev-python/fakeredis/fakeredis-2.30.3.ebuild
index 139502f2df55..74e13925f1f3 100644
--- a/dev-python/fakeredis/fakeredis-2.30.3.ebuild
+++ b/dev-python/fakeredis/fakeredis-2.30.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/redis-4.3[${PYTHON_USEDEP}]
diff --git a/dev-python/fasteners/fasteners-0.19.ebuild b/dev-python/fasteners/fasteners-0.19.ebuild
index bab936abcd5e..f2a71ed3db90 100644
--- a/dev-python/fasteners/fasteners-0.19.ebuild
+++ b/dev-python/fasteners/fasteners-0.19.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
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/fastjsonschema/fastjsonschema-2.21.1.ebuild b/dev-python/fastjsonschema/fastjsonschema-2.21.1.ebuild
index a0b206590f1b..1b1879ff6768 100644
--- a/dev-python/fastjsonschema/fastjsonschema-2.21.1.ebuild
+++ b/dev-python/fastjsonschema/fastjsonschema-2.21.1.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_tests pytest
diff --git a/dev-python/feedparser/feedparser-6.0.11.ebuild b/dev-python/feedparser/feedparser-6.0.11.ebuild
index 35e35fe0cf17..2f6b0b612459 100644
--- a/dev-python/feedparser/feedparser-6.0.11.ebuild
+++ b/dev-python/feedparser/feedparser-6.0.11.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/fields/fields-5.0.0-r3.ebuild b/dev-python/fields/fields-5.0.0-r3.ebuild
index a485fe2d6e19..ea20c9360a18 100644
--- a/dev-python/fields/fields-5.0.0-r3.ebuild
+++ b/dev-python/fields/fields-5.0.0-r3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/filelock/filelock-3.18.0.ebuild b/dev-python/filelock/filelock-3.18.0.ebuild
index 7065b304bf8c..caaf85e66b3f 100644
--- a/dev-python/filelock/filelock-3.18.0.ebuild
+++ b/dev-python/filelock/filelock-3.18.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Unlicense"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/filetype/filetype-1.2.0.ebuild b/dev-python/filetype/filetype-1.2.0.ebuild
index 383a980df05a..69c764427d3a 100644
--- a/dev-python/filetype/filetype-1.2.0.ebuild
+++ b/dev-python/filetype/filetype-1.2.0.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_tests unittest
diff --git a/dev-python/fixtures/fixtures-4.2.5.ebuild b/dev-python/fixtures/fixtures-4.2.5.ebuild
index 75fc5cc972d5..ad0c91ccb937 100644
--- a/dev-python/fixtures/fixtures-4.2.5.ebuild
+++ b/dev-python/fixtures/fixtures-4.2.5.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 BSD )"
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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/fixtures/fixtures-4.2.6.ebuild b/dev-python/fixtures/fixtures-4.2.6.ebuild
index 68e3080eb6af..ad0c91ccb937 100644
--- a/dev-python/fixtures/fixtures-4.2.6.ebuild
+++ b/dev-python/fixtures/fixtures-4.2.6.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 BSD )"
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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/flake8/flake8-7.3.0.ebuild b/dev-python/flake8/flake8-7.3.0.ebuild
index a7c6a170aa55..3b11607d792e 100644
--- a/dev-python/flake8/flake8-7.3.0.ebuild
+++ b/dev-python/flake8/flake8-7.3.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
=dev-python/pyflakes-3.4*[${PYTHON_USEDEP}]
diff --git a/dev-python/flaky/flaky-3.8.1.ebuild b/dev-python/flaky/flaky-3.8.1.ebuild
index 76a16d606254..5bf7b4061991 100644
--- a/dev-python/flaky/flaky-3.8.1.ebuild
+++ b/dev-python/flaky/flaky-3.8.1.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 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/flasgger/flasgger-0.9.7.1.ebuild b/dev-python/flasgger/flasgger-0.9.7.1.ebuild
index 19b9552c9e12..a92764eac766 100644
--- a/dev-python/flasgger/flasgger-0.9.7.1.ebuild
+++ b/dev-python/flasgger/flasgger-0.9.7.1.ebuild
@@ -16,7 +16,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/flask-0.10[${PYTHON_USEDEP}]
diff --git a/dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch b/dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch
deleted file mode 100644
index 759bb5f63e03..000000000000
--- a/dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-diff --git a/flask_restx/api.py b/flask_restx/api.py
-index 5996dd59..bd0413dd 100644
---- a/flask_restx/api.py
-+++ b/flask_restx/api.py
-@@ -14,10 +14,6 @@
- from flask import url_for, request, current_app
- from flask import make_response as original_flask_make_response
-
--try:
-- from flask.helpers import _endpoint_from_view_func
--except ImportError:
-- from flask.scaffold import _endpoint_from_view_func
- from flask.signals import got_request_exception
-
- from jsonschema import RefResolver
-@@ -45,10 +41,13 @@
- from .postman import PostmanCollectionV1
- from .resource import Resource
- from .swagger import Swagger
--from .utils import default_id, camel_to_dash, unpack
-+from .utils import default_id, camel_to_dash, unpack, import_check_view_func
- from .representations import output_json
- from ._http import HTTPStatus
-
-+endpoint_from_view_func = import_check_view_func()
-+
-+
- RE_RULES = re.compile("(<.*>)")
-
- # List headers that should never be handled by Flask-RESTX
-@@ -850,7 +849,7 @@ def _blueprint_setup_add_url_rule_patch(
- rule = blueprint_setup.url_prefix + rule
- options.setdefault("subdomain", blueprint_setup.subdomain)
- if endpoint is None:
-- endpoint = _endpoint_from_view_func(view_func)
-+ endpoint = endpoint_from_view_func(view_func)
- defaults = blueprint_setup.url_defaults
- if "defaults" in options:
- defaults = dict(defaults, **options.pop("defaults"))
-diff --git a/flask_restx/utils.py b/flask_restx/utils.py
-index 809a29b3..35dec2ae 100644
---- a/flask_restx/utils.py
-+++ b/flask_restx/utils.py
-@@ -1,4 +1,6 @@
- import re
-+import warnings
-+import typing
-
- from collections import OrderedDict
- from copy import deepcopy
-@@ -20,6 +22,10 @@
- )
-
-
-+class FlaskCompatibilityWarning(DeprecationWarning):
-+ pass
-+
-+
- def merge(first, second):
- """
- Recursively merges two dictionaries.
-@@ -118,3 +124,43 @@ def unpack(response, default_code=HTTPStatus.OK):
- return data, code or default_code, headers
- else:
- raise ValueError("Too many response values")
-+
-+
-+def to_view_name(view_func: typing.Callable) -> str:
-+ """Helper that returns the default endpoint for a given
-+ function. This always is the function name.
-+
-+ Note: copy of simple flask internal helper
-+ """
-+ assert view_func is not None, "expected view func if endpoint is not provided."
-+ return view_func.__name__
-+
-+
-+def import_check_view_func():
-+ """
-+ Resolve import flask _endpoint_from_view_func.
-+
-+ Show warning if function cannot be found and provide copy of last known implementation.
-+
-+ Note: This helper method exists because reoccurring problem with flask function, but
-+ actual method body remaining the same in each flask version.
-+ """
-+ import importlib.metadata
-+
-+ flask_version = importlib.metadata.version("flask").split(".")
-+ try:
-+ if flask_version[0] == "1":
-+ from flask.helpers import _endpoint_from_view_func
-+ elif flask_version[0] == "2":
-+ from flask.scaffold import _endpoint_from_view_func
-+ elif flask_version[0] == "3":
-+ from flask.sansio.scaffold import _endpoint_from_view_func
-+ else:
-+ warnings.simplefilter("once", FlaskCompatibilityWarning)
-+ _endpoint_from_view_func = None
-+ except ImportError:
-+ warnings.simplefilter("once", FlaskCompatibilityWarning)
-+ _endpoint_from_view_func = None
-+ if _endpoint_from_view_func is None:
-+ _endpoint_from_view_func = to_view_name
-+ return _endpoint_from_view_func
-diff --git a/tests/test_utils.py b/tests/test_utils.py
-index d98d68d0..fe3a1adb 100644
---- a/tests/test_utils.py
-+++ b/tests/test_utils.py
-@@ -98,3 +98,14 @@ def test_value_headers_default_code(self):
- def test_too_many_values(self):
- with pytest.raises(ValueError):
- utils.unpack((None, None, None, None))
-+
-+
-+class ToViewNameTest(object):
-+ def test_none(self):
-+ with pytest.raises(AssertionError):
-+ _ = utils.to_view_name(None)
-+
-+
-+class ImportCheckViewFuncTest(object):
-+ def test_callable(self):
-+ assert callable(utils.import_check_view_func())
-
-From 13ac54e4ba513c01ec8e4a23b4e88b7b555cf2f1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Trval?=
-Date: Fri, 6 Oct 2023 15:46:13 +0200
-Subject: [PATCH 2/2] modify: include new import_check_view_func in
- utils.__all__ to keep nice static checks
-
----
- flask_restx/utils.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/flask_restx/utils.py b/flask_restx/utils.py
-index 35dec2ae..367527a5 100644
---- a/flask_restx/utils.py
-+++ b/flask_restx/utils.py
-@@ -19,6 +19,7 @@
- "not_none",
- "not_none_sorted",
- "unpack",
-+ "import_check_view_func",
- )
-
-
diff --git a/dev-python/flask/flask-3.1.1.ebuild b/dev-python/flask/flask-3.1.1.ebuild
index 45dfb2581f19..8ecccae87512 100644
--- a/dev-python/flask/flask-3.1.1.ebuild
+++ b/dev-python/flask/flask-3.1.1.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
else
inherit pypi
- 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"
fi
LICENSE="BSD"
diff --git a/dev-python/flit-core/flit-core-3.12.0.ebuild b/dev-python/flit-core/flit-core-3.12.0.ebuild
index 301ec1c859d5..835ecadb1941 100644
--- a/dev-python/flit-core/flit-core-3.12.0.ebuild
+++ b/dev-python/flit-core/flit-core-3.12.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"
BDEPEND="
test? ( dev-python/testpath[${PYTHON_USEDEP}] )
diff --git a/dev-python/flit-scm/flit-scm-1.7.0.ebuild b/dev-python/flit-scm/flit-scm-1.7.0.ebuild
index 39a12959162e..b58f30f0e217 100644
--- a/dev-python/flit-scm/flit-scm-1.7.0.ebuild
+++ b/dev-python/flit-scm/flit-scm-1.7.0.ebuild
@@ -21,7 +21,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"
RDEPEND="
>=dev-python/flit-core-3.5.0[${PYTHON_USEDEP}]
diff --git a/dev-python/fonttools/fonttools-4.58.4.ebuild b/dev-python/fonttools/fonttools-4.58.4.ebuild
index 844b4b1fa2cc..9b7b4d1906c8 100644
--- a/dev-python/fonttools/fonttools-4.58.4.ebuild
+++ b/dev-python/fonttools/fonttools-4.58.4.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"
RDEPEND="
diff --git a/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild b/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
index 57dd38ea0ee7..0b195dd1ee37 100644
--- a/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
+++ b/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( GPL-3 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"
RESTRICT="!test? ( test )"
diff --git a/dev-python/fqdn/fqdn-1.5.1-r2.ebuild b/dev-python/fqdn/fqdn-1.5.1-r2.ebuild
index 9bd9e21d3205..25a7ae3da145 100644
--- a/dev-python/fqdn/fqdn-1.5.1-r2.ebuild
+++ b/dev-python/fqdn/fqdn-1.5.1-r2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MPL-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"
distutils_enable_tests pytest
distutils_enable_sphinx docs
diff --git a/dev-python/freezegun/freezegun-1.5.3.ebuild b/dev-python/freezegun/freezegun-1.5.3.ebuild
index 8d1a6fa061f0..8f339efc9ed1 100644
--- a/dev-python/freezegun/freezegun-1.5.3.ebuild
+++ b/dev-python/freezegun/freezegun-1.5.3.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/freezegun/freezegun-1.5.4.ebuild b/dev-python/freezegun/freezegun-1.5.4.ebuild
index 3bf113710b8b..97c2f73f2ba0 100644
--- a/dev-python/freezegun/freezegun-1.5.4.ebuild
+++ b/dev-python/freezegun/freezegun-1.5.4.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/frozenlist/frozenlist-1.7.0.ebuild b/dev-python/frozenlist/frozenlist-1.7.0.ebuild
index 04f5a5d2b877..4891ed1543ce 100644
--- a/dev-python/frozenlist/frozenlist-1.7.0.ebuild
+++ b/dev-python/frozenlist/frozenlist-1.7.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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="+native-extensions"
BDEPEND="
diff --git a/dev-python/fs/fs-2.4.16-r1.ebuild b/dev-python/fs/fs-2.4.16-r1.ebuild
index 01f37cbeb97a..0dc9a90b13c3 100644
--- a/dev-python/fs/fs-2.4.16-r1.ebuild
+++ b/dev-python/fs/fs-2.4.16-r1.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/appdirs-1.4.3[${PYTHON_USEDEP}]
diff --git a/dev-python/fsspec/Manifest b/dev-python/fsspec/Manifest
index 0d9f1df4a75f..eecadd940502 100644
--- a/dev-python/fsspec/Manifest
+++ b/dev-python/fsspec/Manifest
@@ -1 +1,2 @@
DIST filesystem_spec-2025.7.0.gh.tar.gz 439666 BLAKE2B 9405d29fc9c9cf573966d3a1a46d94611fbc7874589862c7ad2e96c64c9c3e7b30b8ce2206f6723c94f1a4918e8763badc786f444de2c2386c9d83b615f5479c SHA512 662bbd67941cbccde26fc69f444c6566233b03bcb22b0fc219efc7bd3fb6a08d75beeea044414e8a6e2a3d3e82522f0fc13057d4be1660305a2271aee7d46c40
+DIST filesystem_spec-2025.9.0.gh.tar.gz 442812 BLAKE2B 83ff3f4f9b58fb38803dd3eae7a3307a41af8fd7385f097bade053106633c40dd20edcf4ef8610d99cf0a6e8f2906711777b3abd96afe59047f9ab0692eb9a7e SHA512 cb972b9c9d3c8f6f899665337581164da14fbdb5bf3422268468bf0cc1ff2b0a1cad66fe2a048eea9cdff95fc6f34361a5ccdc11802e84b558989d4744c7f3d9
diff --git a/dev-python/fsspec/fsspec-2025.9.0.ebuild b/dev-python/fsspec/fsspec-2025.9.0.ebuild
new file mode 100644
index 000000000000..1aba00c18ebe
--- /dev/null
+++ b/dev-python/fsspec/fsspec-2025.9.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+MY_P=filesystem_spec-${PV}
+DESCRIPTION="A specification that python filesystems should adhere to"
+HOMEPAGE="
+ https://github.com/fsspec/filesystem_spec/
+ https://pypi.org/project/fsspec/
+"
+# upstream removed tests in 2024.6.0
+SRC_URI="
+ https://github.com/fsspec/filesystem_spec/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+# Note: this package is not xdist-friendly
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,rerunfailures} )
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+src_test() {
+ git config --global user.email "you@example.com" || die
+ git config --global user.name "Your Name" || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ fsspec/implementations/tests/test_reference.py::test_async_cat_file_ranges
+ fsspec/implementations/tests/test_github.py
+ fsspec/implementations/tests/test_gist.py
+ )
+
+ epytest -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/funcparserlib/funcparserlib-1.0.1.ebuild b/dev-python/funcparserlib/funcparserlib-1.0.1.ebuild
index 0e1f43033e22..a93ece6def1d 100644
--- a/dev-python/funcparserlib/funcparserlib-1.0.1.ebuild
+++ b/dev-python/funcparserlib/funcparserlib-1.0.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/furo/furo-2025.7.19.ebuild b/dev-python/furo/furo-2025.7.19.ebuild
index 42a39d7a8187..4517295fd7ba 100644
--- a/dev-python/furo/furo-2025.7.19.ebuild
+++ b/dev-python/furo/furo-2025.7.19.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
diff --git a/dev-python/fuzzywuzzy/fuzzywuzzy-0.18.0-r1.ebuild b/dev-python/fuzzywuzzy/fuzzywuzzy-0.18.0-r1.ebuild
index 17bc7ad4ce83..a2fe0bc6560b 100644
--- a/dev-python/fuzzywuzzy/fuzzywuzzy-0.18.0-r1.ebuild
+++ b/dev-python/fuzzywuzzy/fuzzywuzzy-0.18.0-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/levenshtein[${PYTHON_USEDEP}]
diff --git a/dev-python/gentoo-common/gentoo-common-1.ebuild b/dev-python/gentoo-common/gentoo-common-1.ebuild
index 07bae10057c6..bf3d0da96fa0 100644
--- a/dev-python/gentoo-common/gentoo-common-1.ebuild
+++ b/dev-python/gentoo-common/gentoo-common-1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -9,7 +9,7 @@ S=${WORKDIR}
LICENSE="GPL-2"
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"
src_install() {
insinto /usr/lib/python
diff --git a/dev-python/genty/genty-1.3.2-r3.ebuild b/dev-python/genty/genty-1.3.2-r3.ebuild
index 5727aad905a3..ddcb8c489bdf 100644
--- a/dev-python/genty/genty-1.3.2-r3.ebuild
+++ b/dev-python/genty/genty-1.3.2-r3.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
diff --git a/dev-python/gitdb/gitdb-4.0.12.ebuild b/dev-python/gitdb/gitdb-4.0.12.ebuild
index 26ed2ebd5ee6..9e316d269fab 100644
--- a/dev-python/gitdb/gitdb-4.0.12.ebuild
+++ b/dev-python/gitdb/gitdb-4.0.12.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/smmap-3.0.1[${PYTHON_USEDEP}]
diff --git a/dev-python/gitpython/gitpython-3.1.45.ebuild b/dev-python/gitpython/gitpython-3.1.45.ebuild
index d40cd4ed2159..f88281d4c13c 100644
--- a/dev-python/gitpython/gitpython-3.1.45.ebuild
+++ b/dev-python/gitpython/gitpython-3.1.45.ebuild
@@ -29,7 +29,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"
RDEPEND="
dev-vcs/git
diff --git a/dev-python/gmpy2/gmpy2-2.2.1.ebuild b/dev-python/gmpy2/gmpy2-2.2.1.ebuild
index f4d00ee44013..c16c321b697a 100644
--- a/dev-python/gmpy2/gmpy2-2.2.1.ebuild
+++ b/dev-python/gmpy2/gmpy2-2.2.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="2"
-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"
DEPEND="
>=dev-libs/mpc-1.0.2:=
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 1ec814eb60c0..2fece3669e84 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,3 +1,4 @@
DIST google_api_python_client-2.177.0.tar.gz 13184405 BLAKE2B d3aca5b038ada6556c8697d87f6907386412c7e0ae8fbbe7c45cdc17b2d2f37b5e61ae7b541b92519c46a1a3d6770cf158e27ebdc3712d6eaf2995eabdf14ef3 SHA512 e3ece581c2c4005671b2f03de92b1d775d500e2c0ad565e711c5ecd52c327dda495fe39d7f4f0b62ef35afd99ffbf8c63449f9e9051b63784946bd4204bd6e85
DIST google_api_python_client-2.178.0.tar.gz 13282628 BLAKE2B 3ba2eb05b940bb01a47ad735b5d8f0ca4a01fa77e9d3603698ef03b34177f85b2a2a8068b82ef0c6a64c7fb36fa3220ef2b29246ebcfe9dee539ca57929976fe SHA512 574c656ba6b62f2ebae08ea6b4e0d34e320e00f83ea6ed899c0a5b64ad3d025133ad357c3450c479359210b56b04675c7554b6a903ca4fe84fa32a5b03e278b4
DIST google_api_python_client-2.179.0.tar.gz 13397672 BLAKE2B 6e1064aa6fadf3fe896a8ea3f4847c5e41a44e6a8a599b66cec0e0a65926f38c88be88fadccb439afeff942073736ffc765591941efd8a891d48a2345152198d SHA512 d82134dced76100be8b1547401bb1d546620f42ca0eb12aeff50703ce6c87f8c2560ccf971a7301eae03fe030471a703560c541bbb375bb5bc3e31567b011481
+DIST google_api_python_client-2.181.0.tar.gz 13545438 BLAKE2B dd661f2c7d82d695b585e5278dc1857acd920989430ce4cec30594fe6b83617bf6681710cc41fdba4aff2ffcb0c3300ae1233a98847456cd1f7f34017489b8af SHA512 0a7ce53fd22d3c6f06bffd4e9268f944238a6293c3818f6a4d8e0144b4188c51cb2aa4cc1e58cb8380ccb3db6f485dbbbb9dc93016211da23f22acae77ac5df7
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.181.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.181.0.ebuild
new file mode 100644
index 000000000000..83f75ed3d688
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.181.0.ebuild
@@ -0,0 +1,51 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="
+ https://github.com/googleapis/google-api-python-client/
+ https://pypi.org/project/google-api-python-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
+ =dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+ ${P}.gh.tar.gz
+"
+S="${WORKDIR}"/python-${P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ virtual/krb5
+"
+
+BDEPEND="
+ >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
+ virtual/krb5
+ test? (
+ dev-python/k5test[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ cd "${T}" || die
+ epytest --pyargs gssapi
+}
diff --git a/dev-python/h11/h11-0.14.0.ebuild b/dev-python/h11/h11-0.14.0.ebuild
index 51116c48b0e1..182713686761 100644
--- a/dev-python/h11/h11-0.14.0.ebuild
+++ b/dev-python/h11/h11-0.14.0.ebuild
@@ -17,6 +17,6 @@ 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"
distutils_enable_tests pytest
diff --git a/dev-python/h11/h11-0.16.0.ebuild b/dev-python/h11/h11-0.16.0.ebuild
index 51116c48b0e1..182713686761 100644
--- a/dev-python/h11/h11-0.16.0.ebuild
+++ b/dev-python/h11/h11-0.16.0.ebuild
@@ -17,6 +17,6 @@ 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"
distutils_enable_tests pytest
diff --git a/dev-python/h2/h2-4.2.0.ebuild b/dev-python/h2/h2-4.2.0.ebuild
index dbf6049ea22a..20f580d73d15 100644
--- a/dev-python/h2/h2-4.2.0.ebuild
+++ b/dev-python/h2/h2-4.2.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/hyperframe-6.1[${PYTHON_USEDEP}]
diff --git a/dev-python/hatch-fancy-pypi-readme/hatch-fancy-pypi-readme-25.1.0.ebuild b/dev-python/hatch-fancy-pypi-readme/hatch-fancy-pypi-readme-25.1.0.ebuild
index 196ac0b03a44..c8eb868a1232 100644
--- a/dev-python/hatch-fancy-pypi-readme/hatch-fancy-pypi-readme-25.1.0.ebuild
+++ b/dev-python/hatch-fancy-pypi-readme/hatch-fancy-pypi-readme-25.1.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/hatchling[${PYTHON_USEDEP}]
diff --git a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1.ebuild b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1.ebuild
index b18f2342b72f..7ed4e0558f2a 100644
--- a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1.ebuild
+++ b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/hatchling-1.17[${PYTHON_USEDEP}]
diff --git a/dev-python/hatch-nodejs-version/hatch-nodejs-version-0.4.0.ebuild b/dev-python/hatch-nodejs-version/hatch-nodejs-version-0.4.0.ebuild
index 7cab3bfff812..34650c9ae09e 100644
--- a/dev-python/hatch-nodejs-version/hatch-nodejs-version-0.4.0.ebuild
+++ b/dev-python/hatch-nodejs-version/hatch-nodejs-version-0.4.0.ebuild
@@ -16,7 +16,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/hatchling-0.21.0[${PYTHON_USEDEP}]
diff --git a/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild b/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild
index 8644a94b768c..312f95c86862 100644
--- a/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild
+++ b/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND="
>=dev-python/setuptools-scm-8.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/hatchling/hatchling-1.27.0.ebuild b/dev-python/hatchling/hatchling-1.27.0.ebuild
index 570539d2dfe3..414c7d185ac4 100644
--- a/dev-python/hatchling/hatchling-1.27.0.ebuild
+++ b/dev-python/hatchling/hatchling-1.27.0.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}/backend
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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/hpack/hpack-4.1.0.ebuild b/dev-python/hpack/hpack-4.1.0.ebuild
index c2d75b55b107..4c4f3a5010d0 100644
--- a/dev-python/hpack/hpack-4.1.0.ebuild
+++ b/dev-python/hpack/hpack-4.1.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
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"
BDEPEND="
test? (
diff --git a/dev-python/html5lib/html5lib-1.1-r2.ebuild b/dev-python/html5lib/html5lib-1.1-r2.ebuild
index 2fb1f797766f..decad35efc24 100644
--- a/dev-python/html5lib/html5lib-1.1-r2.ebuild
+++ b/dev-python/html5lib/html5lib-1.1-r2.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
PATCHES=(
"${FILESDIR}"/${P}-pytest6.patch
diff --git a/dev-python/httpbin/httpbin-0.10.2-r1.ebuild b/dev-python/httpbin/httpbin-0.10.2-r1.ebuild
index 5b4326f89d6a..43d355de74ff 100644
--- a/dev-python/httpbin/httpbin-0.10.2-r1.ebuild
+++ b/dev-python/httpbin/httpbin-0.10.2-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="|| ( MIT ISC )"
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/httpcore/httpcore-1.0.9-r1.ebuild b/dev-python/httpcore/httpcore-1.0.9-r1.ebuild
index 9eb4db8b9fed..19ec857e84e7 100644
--- a/dev-python/httpcore/httpcore-1.0.9-r1.ebuild
+++ b/dev-python/httpcore/httpcore-1.0.9-r1.ebuild
@@ -21,7 +21,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"
RDEPEND="
${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/hypothesis/hypothesis-6.138.14.ebuild b/dev-python/hypothesis/hypothesis-6.138.14.ebuild
new file mode 100644
index 000000000000..7a7443937da6
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.138.14.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_{9,10,11,12,13} pypy3 )
+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/hypothesis/hypothesis-6.138.3.ebuild b/dev-python/hypothesis/hypothesis-6.138.3.ebuild
deleted file mode 100644
index 7a7443937da6..000000000000
--- a/dev-python/hypothesis/hypothesis-6.138.3.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-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/hypothesis/hypothesis-6.138.6.ebuild b/dev-python/hypothesis/hypothesis-6.138.6.ebuild
deleted file mode 100644
index 7a7443937da6..000000000000
--- a/dev-python/hypothesis/hypothesis-6.138.6.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-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/hypothesis/hypothesis-6.138.7.ebuild b/dev-python/hypothesis/hypothesis-6.138.7.ebuild
deleted file mode 100644
index 7a7443937da6..000000000000
--- a/dev-python/hypothesis/hypothesis-6.138.7.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-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/hypothesis/hypothesis-6.138.8.ebuild b/dev-python/hypothesis/hypothesis-6.138.8.ebuild
deleted file mode 100644
index 7a7443937da6..000000000000
--- a/dev-python/hypothesis/hypothesis-6.138.8.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-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/id/id-1.5.0.ebuild b/dev-python/id/id-1.5.0.ebuild
index 3787d9323b24..4ac62c2e8217 100644
--- a/dev-python/id/id-1.5.0.ebuild
+++ b/dev-python/id/id-1.5.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/requests[${PYTHON_USEDEP}]
diff --git a/dev-python/idna/idna-3.10.ebuild b/dev-python/idna/idna-3.10.ebuild
index 3487f3465f40..36ed10d4adbe 100644
--- a/dev-python/idna/idna-3.10.ebuild
+++ b/dev-python/idna/idna-3.10.ebuild
@@ -17,6 +17,6 @@ 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"
distutils_enable_tests unittest
diff --git a/dev-python/imagesize/imagesize-1.4.1.ebuild b/dev-python/imagesize/imagesize-1.4.1.ebuild
index c52b00806fb6..7e0356cc0748 100644
--- a/dev-python/imagesize/imagesize-1.4.1.ebuild
+++ b/dev-python/imagesize/imagesize-1.4.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
distutils_enable_tests pytest
diff --git a/dev-python/immutables/immutables-0.21.ebuild b/dev-python/immutables/immutables-0.21.ebuild
index 24b4c12e8a3c..0611f6ed6a8a 100644
--- a/dev-python/immutables/immutables-0.21.ebuild
+++ b/dev-python/immutables/immutables-0.21.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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="+native-extensions"
distutils_enable_tests pytest
diff --git a/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild b/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild
index fc076eb1cb63..48b29d3e3521 100644
--- a/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild
+++ b/dev-python/importlib-metadata/importlib-metadata-8.7.0.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 ~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"
RDEPEND="
>=dev-python/zipp-3.20[${PYTHON_USEDEP}]
diff --git a/dev-python/importlib-resources/importlib-resources-6.5.2.ebuild b/dev-python/importlib-resources/importlib-resources-6.5.2.ebuild
index 72577465e356..1ebbde6579c5 100644
--- a/dev-python/importlib-resources/importlib-resources-6.5.2.ebuild
+++ b/dev-python/importlib-resources/importlib-resources-6.5.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/incremental/incremental-24.7.2.ebuild b/dev-python/incremental/incremental-24.7.2.ebuild
index 220c4142b7e3..da80889113cb 100644
--- a/dev-python/incremental/incremental-24.7.2.ebuild
+++ b/dev-python/incremental/incremental-24.7.2.ebuild
@@ -16,7 +16,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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/inflect/inflect-7.5.0.ebuild b/dev-python/inflect/inflect-7.5.0.ebuild
index 872f8cc50a7e..90d18278e5a5 100644
--- a/dev-python/inflect/inflect-7.5.0.ebuild
+++ b/dev-python/inflect/inflect-7.5.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
>=dev-python/typeguard-4.0.1[${PYTHON_USEDEP}]
diff --git a/dev-python/ini2toml/ini2toml-0.15.ebuild b/dev-python/ini2toml/ini2toml-0.15.ebuild
index 075e46c0f44f..af0a54fd19a8 100644
--- a/dev-python/ini2toml/ini2toml-0.15.ebuild
+++ b/dev-python/ini2toml/ini2toml-0.15.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/packaging-20.7[${PYTHON_USEDEP}]
diff --git a/dev-python/iniconfig/iniconfig-2.1.0.ebuild b/dev-python/iniconfig/iniconfig-2.1.0.ebuild
index 0359802dfb2c..e4339e8014bb 100644
--- a/dev-python/iniconfig/iniconfig-2.1.0.ebuild
+++ b/dev-python/iniconfig/iniconfig-2.1.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.24.0.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.24.0.ebuild
index f203c4a6f6f1..df0cff095bff 100644
--- a/dev-python/inline-snapshot/inline-snapshot-0.24.0.ebuild
+++ b/dev-python/inline-snapshot/inline-snapshot-0.24.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
diff --git a/dev-python/installer/installer-0.7.0.ebuild b/dev-python/installer/installer-0.7.0.ebuild
index 18a50caf175e..ad53a146b00d 100644
--- a/dev-python/installer/installer-0.7.0.ebuild
+++ b/dev-python/installer/installer-0.7.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI+="
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"
BDEPEND="
app-arch/unzip
diff --git a/dev-python/iocapture/iocapture-0.1.2-r3.ebuild b/dev-python/iocapture/iocapture-0.1.2-r3.ebuild
index cc7324a82f2e..162ca8aa3197 100644
--- a/dev-python/iocapture/iocapture-0.1.2-r3.ebuild
+++ b/dev-python/iocapture/iocapture-0.1.2-r3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/ipykernel/ipykernel-6.29.5-r1.ebuild b/dev-python/ipykernel/ipykernel-6.29.5-r1.ebuild
index 67225f8ef24d..79d0d360181c 100644
--- a/dev-python/ipykernel/ipykernel-6.29.5-r1.ebuild
+++ b/dev-python/ipykernel/ipykernel-6.29.5-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/comm-0.1.1[${PYTHON_USEDEP}]
diff --git a/dev-python/ipykernel/ipykernel-6.30.0.ebuild b/dev-python/ipykernel/ipykernel-6.30.0.ebuild
index d0e3b51ea8d0..6d9984c4b9ed 100644
--- a/dev-python/ipykernel/ipykernel-6.30.0.ebuild
+++ b/dev-python/ipykernel/ipykernel-6.30.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/comm-0.1.1[${PYTHON_USEDEP}]
diff --git a/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild b/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild
index 4c8cca66ddea..b817f70d6c2c 100644
--- a/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild
+++ b/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/decorator[${PYTHON_USEDEP}]
diff --git a/dev-python/ipython-genutils/ipython-genutils-0.2.0-r4.ebuild b/dev-python/ipython-genutils/ipython-genutils-0.2.0-r4.ebuild
index 75cecace2546..262627e6eb02 100644
--- a/dev-python/ipython-genutils/ipython-genutils-0.2.0-r4.ebuild
+++ b/dev-python/ipython-genutils/ipython-genutils-0.2.0-r4.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
# Needed because package provides decorators which use pytest (after patch)
RDEPEND="
diff --git a/dev-python/ipython-pygments-lexers/ipython-pygments-lexers-1.1.1.ebuild b/dev-python/ipython-pygments-lexers/ipython-pygments-lexers-1.1.1.ebuild
index d18f28323775..425dde03cc8b 100644
--- a/dev-python/ipython-pygments-lexers/ipython-pygments-lexers-1.1.1.ebuild
+++ b/dev-python/ipython-pygments-lexers/ipython-pygments-lexers-1.1.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~ppc ppc64 ~riscv ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
dev-python/pygments[${PYTHON_USEDEP}]
diff --git a/dev-python/ipython/ipython-8.37.0.ebuild b/dev-python/ipython/ipython-8.37.0.ebuild
index fde1f400be99..c9de83001578 100644
--- a/dev-python/ipython/ipython-8.37.0.ebuild
+++ b/dev-python/ipython/ipython-8.37.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/ipython/ipython-9.3.0.ebuild b/dev-python/ipython/ipython-9.3.0.ebuild
index 3dab8013bc6b..ff330888120a 100644
--- a/dev-python/ipython/ipython-9.3.0.ebuild
+++ b/dev-python/ipython/ipython-9.3.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~ppc ppc64 ~riscv ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="examples notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/isal/isal-1.7.2-r1.ebuild b/dev-python/isal/isal-1.7.2-r1.ebuild
index 24461dd24867..10259cc19203 100644
--- a/dev-python/isal/isal-1.7.2-r1.ebuild
+++ b/dev-python/isal/isal-1.7.2-r1.ebuild
@@ -25,7 +25,7 @@ S=${WORKDIR}/${MY_P}
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/iso8601/iso8601-2.1.0.ebuild b/dev-python/iso8601/iso8601-2.1.0.ebuild
index 394d1b371aae..e76c7132c4ea 100644
--- a/dev-python/iso8601/iso8601-2.1.0.ebuild
+++ b/dev-python/iso8601/iso8601-2.1.0.ebuild
@@ -16,7 +16,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"
BDEPEND="
test? (
diff --git a/dev-python/isodate/isodate-0.6.1-r1.ebuild b/dev-python/isodate/isodate-0.6.1-r1.ebuild
index 5d968f985328..aeae9b7bd002 100644
--- a/dev-python/isodate/isodate-0.6.1-r1.ebuild
+++ b/dev-python/isodate/isodate-0.6.1-r1.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
@@ -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 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
diff --git a/dev-python/isodate/isodate-0.7.2.ebuild b/dev-python/isodate/isodate-0.7.2.ebuild
index c749d798b898..d52a3f13a374 100644
--- a/dev-python/isodate/isodate-0.7.2.ebuild
+++ b/dev-python/isodate/isodate-0.7.2.ebuild
@@ -16,6 +16,6 @@ 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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/isoduration/isoduration-20.11.0-r1.ebuild b/dev-python/isoduration/isoduration-20.11.0-r1.ebuild
index 99680329c85f..62add8fb28eb 100644
--- a/dev-python/isoduration/isoduration-20.11.0-r1.ebuild
+++ b/dev-python/isoduration/isoduration-20.11.0-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="ISC"
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"
RDEPEND="
>=dev-python/arrow-0.15.0[${PYTHON_USEDEP}]
diff --git a/dev-python/isort/isort-6.0.1.ebuild b/dev-python/isort/isort-6.0.1.ebuild
index 9047d453d432..993801ce31ce 100644
--- a/dev-python/isort/isort-6.0.1.ebuild
+++ b/dev-python/isort/isort-6.0.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild b/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild
index f27b6bd2d506..31bf4fb3166c 100644
--- a/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild
+++ b/dev-python/itsdangerous/itsdangerous-2.2.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/jaraco-classes/jaraco-classes-3.4.0.ebuild b/dev-python/jaraco-classes/jaraco-classes-3.4.0.ebuild
index af5eec6226d3..12b9d2c0fc5d 100644
--- a/dev-python/jaraco-classes/jaraco-classes-3.4.0.ebuild
+++ b/dev-python/jaraco-classes/jaraco-classes-3.4.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild b/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild
index 3a57b4ab1d7e..8c927dde495c 100644
--- a/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild
+++ b/dev-python/jaraco-collections/jaraco-collections-5.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 ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
dev-python/jaraco-text[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-context/jaraco-context-6.0.1-r1.ebuild b/dev-python/jaraco-context/jaraco-context-6.0.1-r1.ebuild
index 212154fda3de..bd9bf1ca5edb 100644
--- a/dev-python/jaraco-context/jaraco-context-6.0.1-r1.ebuild
+++ b/dev-python/jaraco-context/jaraco-context-6.0.1-r1.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 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/jaraco-envs/jaraco-envs-2.6.0.ebuild b/dev-python/jaraco-envs/jaraco-envs-2.6.0.ebuild
index 7c9cef219600..fae255abf058 100644
--- a/dev-python/jaraco-envs/jaraco-envs-2.6.0.ebuild
+++ b/dev-python/jaraco-envs/jaraco-envs-2.6.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
dev-python/path[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-functools/jaraco-functools-4.2.1.ebuild b/dev-python/jaraco-functools/jaraco-functools-4.2.1.ebuild
index 8846af015d0d..85d20d8f8b09 100644
--- a/dev-python/jaraco-functools/jaraco-functools-4.2.1.ebuild
+++ b/dev-python/jaraco-functools/jaraco-functools-4.2.1.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 ~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/more-itertools-0.12.0-r1[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild b/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild
index 73e2656335a6..f6a4d406f791 100644
--- a/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild
+++ b/dev-python/jaraco-itertools/jaraco-itertools-6.4.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
dev-python/inflect[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-path/jaraco-path-3.7.2.ebuild b/dev-python/jaraco-path/jaraco-path-3.7.2.ebuild
index 45ca5f339253..422d6fbd8d7e 100644
--- a/dev-python/jaraco-path/jaraco-path-3.7.2.ebuild
+++ b/dev-python/jaraco-path/jaraco-path-3.7.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-test/jaraco-test-5.5.1.ebuild b/dev-python/jaraco-test/jaraco-test-5.5.1.ebuild
index ef2db7eccb0c..52a31bd1a34f 100644
--- a/dev-python/jaraco-test/jaraco-test-5.5.1.ebuild
+++ b/dev-python/jaraco-test/jaraco-test-5.5.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/jaraco-collections[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-text/jaraco-text-4.0.0.ebuild b/dev-python/jaraco-text/jaraco-text-4.0.0.ebuild
index bbd84649db63..783544bfb772 100644
--- a/dev-python/jaraco-text/jaraco-text-4.0.0.ebuild
+++ b/dev-python/jaraco-text/jaraco-text-4.0.0.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 ~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/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild b/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild
index a5db8d0fe380..a45e2ab221fa 100644
--- a/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild
+++ b/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/jaraco-classes[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild b/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild
index 596941bf5d96..4ccc2c0e2a34 100644
--- a/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild
+++ b/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/jedi/jedi-0.19.2.ebuild b/dev-python/jedi/jedi-0.19.2.ebuild
index f4ed9a1e3d4b..06020d6ef7f5 100644
--- a/dev-python/jedi/jedi-0.19.2.ebuild
+++ b/dev-python/jedi/jedi-0.19.2.ebuild
@@ -31,7 +31,7 @@ LICENSE="
test? ( Apache-2.0 )
"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.5.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ =dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ =dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-41.1.0[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+ net-libs/nodejs[npm]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-cache[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # These tests call npm and want internet
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_uninstall_core_extension
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned_folder
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom_minimal_core_config
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_check
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_clear
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_build
+)
+
+EPYTEST_IGNORE=(
+ jupyterlab/tests/test_announcements.py
+)
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,tornasync,timeout} )
+distutils_enable_tests pytest
+# TODO: package sphinx_copybutton
+#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/kerberos/kerberos-1.3.1-r2.ebuild b/dev-python/kerberos/kerberos-1.3.1-r2.ebuild
index c4e65b65656e..cf345709caea 100644
--- a/dev-python/kerberos/kerberos-1.3.1-r2.ebuild
+++ b/dev-python/kerberos/kerberos-1.3.1-r2.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
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"
# test environment is non-trivial to set up, so just use docker
# (see python_test below)
# also for alpha/beta Python releases support:
diff --git a/dev-python/keyring/keyring-25.6.0-r1.ebuild b/dev-python/keyring/keyring-25.6.0-r1.ebuild
index b469acd96968..cb457ea9c591 100644
--- a/dev-python/keyring/keyring-25.6.0-r1.ebuild
+++ b/dev-python/keyring/keyring-25.6.0-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/secretstorage-3.2[${PYTHON_USEDEP}]
diff --git a/dev-python/kiwisolver/kiwisolver-1.4.8.ebuild b/dev-python/kiwisolver/kiwisolver-1.4.8.ebuild
index fe6cff5a7d24..4be00598f797 100644
--- a/dev-python/kiwisolver/kiwisolver-1.4.8.ebuild
+++ b/dev-python/kiwisolver/kiwisolver-1.4.8.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Clear-BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
COMMON_DEPEND="
>=dev-python/cppy-1.3.0[${PYTHON_USEDEP}]
diff --git a/dev-python/knowit/knowit-0.5.11.ebuild b/dev-python/knowit/knowit-0.5.11.ebuild
index 0fea987d108e..e6aeb6132c02 100644
--- a/dev-python/knowit/knowit-0.5.11.ebuild
+++ b/dev-python/knowit/knowit-0.5.11.ebuild
@@ -21,7 +21,7 @@ SRC_URI+="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
# https://github.com/ratoaq2/knowit/blob/d7135a4797440838bca94e76326fc9d4019d8f9a/README.md?plain=1#L224
RDEPEND="
diff --git a/dev-python/krb5/Manifest b/dev-python/krb5/Manifest
index a230d4b658ca..a812468db31b 100644
--- a/dev-python/krb5/Manifest
+++ b/dev-python/krb5/Manifest
@@ -1 +1,2 @@
DIST krb5-0.7.1.tar.gz 235732 BLAKE2B ea3a984fddf4fe17a06cebeacaeefbb8523f58453178c2f302f58cb3035197b7965f6c5e6aa60473e85102701fc314ff83d6ef450027820301dc2f5a492fffa9 SHA512 63ed8e2ae8afb2ea5c6f6ac0604085da813f11e84f12a45fd4bf936af70d1c931eca2f81d52cc44c20dd91db7c2f65fb2985df837bd328e7966030e2403a80a9
+DIST krb5-0.8.0.tar.gz 235540 BLAKE2B f36c1ceedcd7187ea0562789aaf6a147df0078a669729b1e165cb060871f9b45fc594b85bb975d818820cb1203e048abec7a169ca9b8ed1c5b84d830193731d0 SHA512 de4ea8b86acc31b88de5c47454be0901614cb9fe0f53516b96616e46324f689723beee56c49c4fb0bbff97ea7b85a15a0874c69670b5e8bf741a9963439af712
diff --git a/dev-python/krb5/krb5-0.8.0.ebuild b/dev-python/krb5/krb5-0.8.0.ebuild
new file mode 100644
index 000000000000..32c762f6da84
--- /dev/null
+++ b/dev-python/krb5/krb5-0.8.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Kerberos API bindings for Python"
+HOMEPAGE="
+ https://github.com/jborean93/pykrb5/
+ https://pypi.org/project/krb5/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ virtual/krb5
+"
+BDEPEND="
+ >=dev-python/cython-3.1.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/k5test[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/lark/lark-1.2.2.ebuild b/dev-python/lark/lark-1.2.2.ebuild
index ed8430b1143c..caed83e4d209 100644
--- a/dev-python/lark/lark-1.2.2.ebuild
+++ b/dev-python/lark/lark-1.2.2.ebuild
@@ -16,7 +16,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"
# dev-python/regex doesn't support pypy
BDEPEND="
diff --git a/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.ebuild b/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.ebuild
index 1da28ae9bcfc..18026fd0b972 100644
--- a/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.ebuild
+++ b/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/legacy-cgi/legacy-cgi-2.6.3.ebuild b/dev-python/legacy-cgi/legacy-cgi-2.6.3.ebuild
index 96ae7f5566fb..b30d7ca60a34 100644
--- a/dev-python/legacy-cgi/legacy-cgi-2.6.3.ebuild
+++ b/dev-python/legacy-cgi/legacy-cgi-2.6.3.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_tests pytest
diff --git a/dev-python/levenshtein/levenshtein-0.27.1.ebuild b/dev-python/levenshtein/levenshtein-0.27.1.ebuild
index faad9ec029e0..7f304eaf10e9 100644
--- a/dev-python/levenshtein/levenshtein-0.27.1.ebuild
+++ b/dev-python/levenshtein/levenshtein-0.27.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
=dev-python/gmpy2-2.3.0_alpha1[${PYTHON_USEDEP}]
+ ' 'python3*')
+ test-full? (
+ $(python_gen_cond_dep '
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ ' "${PYTHON_FULLY_TESTED[@]}")
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-timeout )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Slow and often needs a re-run to pass
+ mpmath/tests/test_cli.py::test_bare_console_bare_division
+ mpmath/tests/test_cli.py::test_bare_console_no_bare_division
+ mpmath/tests/test_cli.py::test_bare_console_pretty
+ mpmath/tests/test_cli.py::test_bare_console_without_ipython
+ mpmath/tests/test_cli.py::test_bare_console_wrap_floats
+)
+
+pkg_postinst() {
+ optfeature "gmp support" dev-python/gmpy2
+ optfeature "matplotlib support" dev-python/matplotlib
+}
diff --git a/dev-python/msgpack/msgpack-1.1.0.ebuild b/dev-python/msgpack/msgpack-1.1.0.ebuild
index c89877d58560..71de9cadcae5 100644
--- a/dev-python/msgpack/msgpack-1.1.0.ebuild
+++ b/dev-python/msgpack/msgpack-1.1.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
# extension code is relying on CPython implementation details
diff --git a/dev-python/msgpack/msgpack-1.1.1.ebuild b/dev-python/msgpack/msgpack-1.1.1.ebuild
index c89877d58560..71de9cadcae5 100644
--- a/dev-python/msgpack/msgpack-1.1.1.ebuild
+++ b/dev-python/msgpack/msgpack-1.1.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
# extension code is relying on CPython implementation details
diff --git a/dev-python/multidict/multidict-6.5.1.ebuild b/dev-python/multidict/multidict-6.5.1.ebuild
index 3c043cade12f..6b1a876d9f26 100644
--- a/dev-python/multidict/multidict-6.5.1.ebuild
+++ b/dev-python/multidict/multidict-6.5.1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/multipart/Manifest b/dev-python/multipart/Manifest
index ca35baa311f4..1d5d744db1fd 100644
--- a/dev-python/multipart/Manifest
+++ b/dev-python/multipart/Manifest
@@ -1,2 +1 @@
-DIST multipart-1.2.1.tar.gz 36507 BLAKE2B 62f62aec8708e0fa9ded96cc7c72b5e575cf98e4521cf163e4fa5ec650fa6becc4378ea4c5b9776b95e4fe6caf7775fb16485676fb446c904e8c641f40fb1feb SHA512 755e41a388d16315a90bf9d3a6c340a887d9ece860b09c703771f788c9b2d491aa3dc401e444bf2d558ef81e9afaf498cff140dff8b1ed05341148244f6685d9
DIST multipart-1.3.0.tar.gz 38816 BLAKE2B 60d07adcb8a8ae4c165a3449377e64adc2000e936a0e51b4e8d26794a11800a8c66d1ff5582f66b2096eccb2e16718d009bcedf8f8660ded2cff161def6cd24f SHA512 da7cb2743d9cb6102f064da8313561478083bf3b1a711ec82cad13ec1a1319703d0d72aba9d122ef79a8dd6539ac459189c278978fa2d1e55c131f938fb42a00
diff --git a/dev-python/multipart/multipart-1.2.1.ebuild b/dev-python/multipart/multipart-1.2.1.ebuild
deleted file mode 100644
index d3bc41e7fd7f..000000000000
--- a/dev-python/multipart/multipart-1.2.1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2024-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Parser for multipart/form-data"
-HOMEPAGE="
- https://github.com/defnull/multipart/
- https://pypi.org/project/multipart/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
-
-distutils_enable_tests pytest
diff --git a/dev-python/munch/munch-4.0.0.ebuild b/dev-python/munch/munch-4.0.0.ebuild
index a89908b49869..a1ebc707bca1 100644
--- a/dev-python/munch/munch-4.0.0.ebuild
+++ b/dev-python/munch/munch-4.0.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
dev-python/pbr[${PYTHON_USEDEP}]
diff --git a/dev-python/munkres/munkres-1.1.4-r1.ebuild b/dev-python/munkres/munkres-1.1.4-r1.ebuild
index 6a7eb0e11656..265b8c8df343 100644
--- a/dev-python/munkres/munkres-1.1.4-r1.ebuild
+++ b/dev-python/munkres/munkres-1.1.4-r1.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
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"
distutils_enable_tests pytest
diff --git a/dev-python/mypy-extensions/mypy-extensions-1.1.0.ebuild b/dev-python/mypy-extensions/mypy-extensions-1.1.0.ebuild
index ff13934f9a39..d4648e9497d9 100644
--- a/dev-python/mypy-extensions/mypy-extensions-1.1.0.ebuild
+++ b/dev-python/mypy-extensions/mypy-extensions-1.1.0.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/mypy/mypy-1.16.1.ebuild b/dev-python/mypy/mypy-1.16.1.ebuild
index 0d2f00fae59e..68709b570e62 100644
--- a/dev-python/mypy/mypy-1.16.1.ebuild
+++ b/dev-python/mypy/mypy-1.16.1.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"
IUSE="+native-extensions"
# stubgen collides with this package: https://bugs.gentoo.org/585594
diff --git a/dev-python/mysqlclient/mysqlclient-2.2.6.ebuild b/dev-python/mysqlclient/mysqlclient-2.2.6.ebuild
index 8421ac00d217..77302e6e9e45 100644
--- a/dev-python/mysqlclient/mysqlclient-2.2.6.ebuild
+++ b/dev-python/mysqlclient/mysqlclient-2.2.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-db/mysql-connector-c:0=
diff --git a/dev-python/mysqlclient/mysqlclient-2.2.7.ebuild b/dev-python/mysqlclient/mysqlclient-2.2.7.ebuild
index af1cfe875489..b7b4a65c81e3 100644
--- a/dev-python/mysqlclient/mysqlclient-2.2.7.ebuild
+++ b/dev-python/mysqlclient/mysqlclient-2.2.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-db/mysql-connector-c:0=
diff --git a/dev-python/myst-parser/myst-parser-4.0.1-r1.ebuild b/dev-python/myst-parser/myst-parser-4.0.1-r1.ebuild
index 200e3453416e..4540e9eb6efc 100644
--- a/dev-python/myst-parser/myst-parser-4.0.1-r1.ebuild
+++ b/dev-python/myst-parser/myst-parser-4.0.1-r1.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"
RDEPEND="
>=dev-python/docutils-0.18[${PYTHON_USEDEP}]
diff --git a/dev-python/myst-parser/myst-parser-4.0.1.ebuild b/dev-python/myst-parser/myst-parser-4.0.1.ebuild
index e7c0b4859c87..caac657d0b1f 100644
--- a/dev-python/myst-parser/myst-parser-4.0.1.ebuild
+++ b/dev-python/myst-parser/myst-parser-4.0.1.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"
RDEPEND="
>=dev-python/docutils-0.18[${PYTHON_USEDEP}]
diff --git a/dev-python/nanobind/Manifest b/dev-python/nanobind/Manifest
index a1dd465b1235..5c9c33157084 100644
--- a/dev-python/nanobind/Manifest
+++ b/dev-python/nanobind/Manifest
@@ -1 +1,2 @@
DIST nanobind-2.8.0.gh.tar.gz 916326 BLAKE2B 3925f261f3c8563d597b9d3e603c539bd589c5b3a581e85e91b013e7d2ec71864ee6cb0806b2d73a08b3ba3c8949f09e62da755521cd5998cdffefaa7bb07c75 SHA512 777436b5136d0e7e59e095d1e067b94f608cd949ec59e497fcab2de16c8c7687e734cc0df1606b5dba40484c4f39ba1014c731cef6ec6a4c5c84d0c33166af70
+DIST nanobind-2.9.2.gh.tar.gz 922360 BLAKE2B 0f8685698e61e72e2b939c0646da0e71ee12af33a2e61c17edc9eb8fcb74f2e47bbb55d34cafff2c0f0175416ff4b4ea66f36cacd32a1ebf4cb93248533c81c4 SHA512 05b2541896e64bb513f915ebc09820b2d3659efa9a1a4bdda9da79a761a23d84e41db22031c02ae816b1f729dab95efcb7c888e926dbb89fb4b34c8a329d59bf
diff --git a/dev-python/nanobind/nanobind-2.9.2.ebuild b/dev-python/nanobind/nanobind-2.9.2.ebuild
new file mode 100644
index 000000000000..9a77fc8442ce
--- /dev/null
+++ b/dev-python/nanobind/nanobind-2.9.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=scikit-build-core
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit cmake distutils-r1
+
+DESCRIPTION="Tiny and efficient C++/Python bindings"
+HOMEPAGE="
+ https://github.com/wjakob/nanobind/
+ https://pypi.org/project/nanobind/
+"
+SRC_URI="
+ https://github.com/wjakob/nanobind/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+DEPEND="
+ >=dev-cpp/robin-map-1.3.0
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ cmake_src_prepare
+ distutils-r1_src_prepare
+}
+
+src_configure() {
+ # XXX: nanobind installs a CMake config file which by default passes -Os
+ # We currently patch around it in dev-python/pyopencl. In future, we
+ # may want to add some override with Gentoo specific environment vars.
+ DISTUTILS_ARGS=(
+ -DNB_CREATE_INSTALL_RULES=ON
+ -DNB_USE_SUBMODULE_DEPS=OFF
+ -DNB_TEST=OFF
+ )
+}
+
+python_test() {
+ local mycmakeargs=(
+ -DNB_CREATE_INSTALL_RULES=OFF
+ -DNB_USE_SUBMODULE_DEPS=OFF
+ -DNB_TEST=ON
+ )
+ cmake_src_configure
+ cmake_src_compile
+
+ cd "${BUILD_DIR}/tests" || die
+ epytest
+}
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index 88fd3edcc009..eafccbc46c82 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -1,2 +1,3 @@
DIST narwhals-2.1.2.tar.gz 533772 BLAKE2B 3a2d4508c1c50625484e0d5a056e5a11445a31a209ed485896b9b25f6c88b5cdd288382659caa1a508496de7e2214e775aac2f8c71e38c35957b6c7cfff7859c SHA512 3ad8b45b6187fea5c0ad10563818583a2e4bad72865deb5fb8f9134bacfdb304a41b0be43095a36830db0c01793bc4c13900242ca5191c5a0518fe481f74ebb7
DIST narwhals-2.2.0.tar.gz 547070 BLAKE2B 6edf4d94f79a3ee643bd9a16ad320a825ef693ba3f791dc0cbcf3d55c9212fbfde53a4f5482855de31554693b06170f97dc6af295f31838d1a4274f392710f69 SHA512 5999feb61590743ca1359ce6c38785dea90b48757a037985578b981322a5456a79e613649556f1d5d4fd92caa0bdd561d14e82281166be39b21eee87143979c5
+DIST narwhals-2.3.0.tar.gz 552774 BLAKE2B 31577fff0dd9351bc74eeccd829e5c69ab0f2b0ad7da671019a48724add5f299c87b5afab90db63af8f053a385d4ff30f285f8315d867b77b7e922b6476323b1 SHA512 aa6a299511f3afa7a1c206df68b852aea877cef6603226e0899aac04bb2f7e1a3a4dfcd51ddfc619e6589648a37d61068a1eb54b09f92abc0da50feb6f5948b6
diff --git a/dev-python/narwhals/narwhals-2.3.0.ebuild b/dev-python/narwhals/narwhals-2.3.0.ebuild
new file mode 100644
index 000000000000..3438ae88552e
--- /dev/null
+++ b/dev-python/narwhals/narwhals-2.3.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extremely lightweight compatibility layer between dataframe libraries"
+HOMEPAGE="
+ https://github.com/narwhals-dev/narwhals/
+ https://pypi.org/project/narwhals/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+BDEPEND="
+ test? (
+ >=dev-python/pandas-1.1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-13.0.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-env )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # segfaults
+ # https://github.com/apache/arrow/issues/47252
+ 'tests/modern_polars/unpivot_test.py::test_unpivot[pyarrow]'
+ # fragile to parallel merges that can cause non-atomic .dist-info
+ # changes
+ tests/system_info_test.py::test_get_sys_info
+ )
+
+ epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow"
+}
diff --git a/dev-python/natsort/natsort-8.4.0.ebuild b/dev-python/natsort/natsort-8.4.0.ebuild
index 337f844d2b6e..ae43944a6d4b 100644
--- a/dev-python/natsort/natsort-8.4.0.ebuild
+++ b/dev-python/natsort/natsort-8.4.0.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"
BDEPEND="
test? (
diff --git a/dev-python/nbclassic/Manifest b/dev-python/nbclassic/Manifest
index a78580fe2490..3f10efab1f2c 100644
--- a/dev-python/nbclassic/Manifest
+++ b/dev-python/nbclassic/Manifest
@@ -1 +1,2 @@
DIST nbclassic-1.3.1.tar.gz 81488343 BLAKE2B c10a1feb4a6987c163f8e8356fd80fe6be9e4958950e748e0bfd8ed1772237b909cbea623f01c052389f8721d6a2b7e710a907e91fe5c67b14197bf1a4f1b8c5 SHA512 9c9b45d15c68587e2147f50615b814106505f68a3255539769a78826c63abb85bd9e4b89ee663be609c210e904e9fd34a18a27687526753f9c06a726b6446f0e
+DIST nbclassic-1.3.2.tar.gz 63500110 BLAKE2B 755875fa142ce084c1d8525ec0ae607bc9b9de40298949e40ed1c93390de7c113f988355d67b34da9f0c170654f639b32907fd6fb623c0112622259ba0f0034b SHA512 4c090cf518616d2b485b00c63fe2d2a4c11418e58b4582eed15b84695997ba05181a09042c17482301f53423d84ffc4fceb847a697ccd9a77882e96c73cf1df5
diff --git a/dev-python/nbclassic/nbclassic-1.3.2.ebuild b/dev-python/nbclassic/nbclassic-1.3.2.ebuild
new file mode 100644
index 000000000000..22abf0ffaa96
--- /dev/null
+++ b/dev-python/nbclassic/nbclassic-1.3.2.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+DISTUTILS_USE_PEP517=hatchling
+
+inherit distutils-r1 pypi xdg-utils
+
+DESCRIPTION="Jupyter Notebook as a Jupyter Server Extension"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/nbclassic/
+ https://pypi.org/project/nbclassic/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/ipython-genutils[${PYTHON_USEDEP}]
+ >=dev-python/nest-asyncio-1.5[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2.3[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nbval[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-unixsocket[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ virtual/pandoc
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{jupyter,tornasync} )
+distutils_enable_tests pytest
+distutils_enable_sphinx docs/source \
+ dev-python/pydata-sphinx-theme \
+ dev-python/nbsphinx \
+ dev-python/sphinxcontrib-github-alt \
+ dev-python/myst-parser \
+ dev-python/ipython-genutils
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # Confuses hatchling sometimes, resulting in partial install.
+ # https://github.com/jupyter/nbclassic/issues/336
+ rm .gitignore || die
+
+ # Let's save some space at build-time, we're not using them anyway.
+ rm -r node_modules || die
+
+ # Dead symlinks that trip up hatchling sometimes, depending
+ # on the phase of the moon.
+ rm -r nbclassic/static/components/*/node_modules || die
+}
+
+python_test() {
+ # Notebook interferes with our tests, pretend it does not exist
+ echo "raise ImportError" > notebook.py || die
+
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # move /usr/etc stuff to /etc
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/dev-python/nbclient/nbclient-0.10.2.ebuild b/dev-python/nbclient/nbclient-0.10.2.ebuild
index 6dd89587c1c1..0c93f3e54e0e 100644
--- a/dev-python/nbclient/nbclient-0.10.2.ebuild
+++ b/dev-python/nbclient/nbclient-0.10.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/jupyter-client-6.1.12[${PYTHON_USEDEP}]
diff --git a/dev-python/nbconvert/nbconvert-7.16.6.ebuild b/dev-python/nbconvert/nbconvert-7.16.6.ebuild
index 469b25744ef2..a032dfbd447a 100644
--- a/dev-python/nbconvert/nbconvert-7.16.6.ebuild
+++ b/dev-python/nbconvert/nbconvert-7.16.6.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
diff --git a/dev-python/nbformat/nbformat-5.10.4.ebuild b/dev-python/nbformat/nbformat-5.10.4.ebuild
index a3d83f4ee744..8a2d21de17d8 100644
--- a/dev-python/nbformat/nbformat-5.10.4.ebuild
+++ b/dev-python/nbformat/nbformat-5.10.4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
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/fastjsonschema-2.15[${PYTHON_USEDEP}]
diff --git a/dev-python/nest-asyncio/nest-asyncio-1.6.0.ebuild b/dev-python/nest-asyncio/nest-asyncio-1.6.0.ebuild
index d0cc682145b4..57e4485d423f 100644
--- a/dev-python/nest-asyncio/nest-asyncio-1.6.0.ebuild
+++ b/dev-python/nest-asyncio/nest-asyncio-1.6.0.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
distutils_enable_tests pytest
diff --git a/dev-python/nh3/nh3-0.2.21.ebuild b/dev-python/nh3/nh3-0.2.21.ebuild
index e4725fb3e17b..a3d9c47a55ea 100644
--- a/dev-python/nh3/nh3-0.2.21.ebuild
+++ b/dev-python/nh3/nh3-0.2.21.ebuild
@@ -115,7 +115,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.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"
distutils_enable_tests pytest
diff --git a/dev-python/notebook-shim/notebook-shim-0.2.4.ebuild b/dev-python/notebook-shim/notebook-shim-0.2.4.ebuild
index 7bda5a44c3c1..7dd1206d39ec 100644
--- a/dev-python/notebook-shim/notebook-shim-0.2.4.ebuild
+++ b/dev-python/notebook-shim/notebook-shim-0.2.4.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ dev-python/zstandard[${PYTHON_USEDEP}]
+"
+
+# upstream does not provide any tests
+RESTRICT=test
+
+python_configure_all() {
+ export PDM_BUILD_SCM_VERSION=${PV}
+}
diff --git a/dev-python/pdm-backend/pdm-backend-2.4.5.ebuild b/dev-python/pdm-backend/pdm-backend-2.4.5.ebuild
index e782a597d5a1..6b70980d895b 100644
--- a/dev-python/pdm-backend/pdm-backend-2.4.5.ebuild
+++ b/dev-python/pdm-backend/pdm-backend-2.4.5.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"
# see src/pdm/backend/_vendor/vendor.txt
RDEPEND="
diff --git a/dev-python/pebble/pebble-5.1.3.ebuild b/dev-python/pebble/pebble-5.1.3.ebuild
index 16f108112ad0..d50d3f85cc89 100644
--- a/dev-python/pebble/pebble-5.1.3.ebuild
+++ b/dev-python/pebble/pebble-5.1.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
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"
EPYTEST_PLUGINS=()
EPYTEST_RERUNS=5
diff --git a/dev-python/pexpect/pexpect-4.9.0.ebuild b/dev-python/pexpect/pexpect-4.9.0.ebuild
index 0d4b717fc629..68ff6f5abd85 100644
--- a/dev-python/pexpect/pexpect-4.9.0.ebuild
+++ b/dev-python/pexpect/pexpect-4.9.0.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 ~arm64-macos ~ppc-macos ~x64-macos"
+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"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/pickleshare/pickleshare-0.7.5-r1.ebuild b/dev-python/pickleshare/pickleshare-0.7.5-r1.ebuild
index 781f4c9d9767..fd72fb166954 100644
--- a/dev-python/pickleshare/pickleshare-0.7.5-r1.ebuild
+++ b/dev-python/pickleshare/pickleshare-0.7.5-r1.ebuild
@@ -15,7 +15,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"
RDEPEND="
>=dev-python/path-6.2[${PYTHON_USEDEP}]
diff --git a/dev-python/picobox/picobox-4.0.0.ebuild b/dev-python/picobox/picobox-4.0.0.ebuild
index 91214ea65726..ee3efa8e5294 100644
--- a/dev-python/picobox/picobox-4.0.0.ebuild
+++ b/dev-python/picobox/picobox-4.0.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/pikepdf/pikepdf-9.5.2.ebuild b/dev-python/pikepdf/pikepdf-9.5.2.ebuild
index b3eb24b5b08b..aeb374738268 100644
--- a/dev-python/pikepdf/pikepdf-9.5.2.ebuild
+++ b/dev-python/pikepdf/pikepdf-9.5.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="big-endian"
# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
diff --git a/dev-python/pikepdf/pikepdf-9.9.0.ebuild b/dev-python/pikepdf/pikepdf-9.9.0.ebuild
index 65030f24b0be..9d74582c02e5 100644
--- a/dev-python/pikepdf/pikepdf-9.9.0.ebuild
+++ b/dev-python/pikepdf/pikepdf-9.9.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~ppc ~ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
IUSE="big-endian"
# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
diff --git a/dev-python/pillow/pillow-11.2.1.ebuild b/dev-python/pillow/pillow-11.2.1.ebuild
index 318ca8986bfd..e7a87802abd5 100644
--- a/dev-python/pillow/pillow-11.2.1.ebuild
+++ b/dev-python/pillow/pillow-11.2.1.ebuild
@@ -35,7 +35,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="HPND"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
IUSE="avif examples imagequant +jpeg jpeg2k lcms test tiff tk truetype webp xcb zlib"
REQUIRED_USE="test? ( jpeg jpeg2k lcms tiff truetype )"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pip/pip-25.1.1.ebuild b/dev-python/pip/pip-25.1.1.ebuild
index 884674df6ad8..3cdb65190c6c 100644
--- a/dev-python/pip/pip-25.1.1.ebuild
+++ b/dev-python/pip/pip-25.1.1.ebuild
@@ -24,7 +24,7 @@ SRC_URI="
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"
IUSE="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild b/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild
index dc11f4efa0f8..631ccff40e38 100644
--- a/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild
+++ b/dev-python/pkgconfig/pkgconfig-1.5.5-r1.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 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
RDEPEND="
virtual/pkgconfig
diff --git a/dev-python/pkginfo/pkginfo-1.12.1.2.ebuild b/dev-python/pkginfo/pkginfo-1.12.1.2.ebuild
index bc526bfca027..480ca8a3f3b1 100644
--- a/dev-python/pkginfo/pkginfo-1.12.1.2.ebuild
+++ b/dev-python/pkginfo/pkginfo-1.12.1.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/platformdirs/platformdirs-4.3.8.ebuild b/dev-python/platformdirs/platformdirs-4.3.8.ebuild
index ae69f32aa977..a132440891e1 100644
--- a/dev-python/platformdirs/platformdirs-4.3.8.ebuild
+++ b/dev-python/platformdirs/platformdirs-4.3.8.ebuild
@@ -16,7 +16,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 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
BDEPEND="
test? (
diff --git a/dev-python/plexapi/Manifest b/dev-python/plexapi/Manifest
index 65089706e901..c67eaa1d6e98 100644
--- a/dev-python/plexapi/Manifest
+++ b/dev-python/plexapi/Manifest
@@ -1,2 +1,3 @@
DIST plexapi-4.16.1.gh.tar.gz 22524979 BLAKE2B f8a83fc395aed0648f4b5e357934c0efaedb13d15c38cdb1740d0ed3e3fd78e0165b7958ca71b589893170cdebda2a1b1239e91df91095b9f9722f6e3b04b510 SHA512 719a2c6942d4e7b0a4aedbba05fe83ec7e4070db90e6bdb7331698c7c3ae621f96539aa89b548bc57dbb7eaf97a562b7a015746f86609ddbed09ccd5569f8ede
DIST plexapi-4.17.0.gh.tar.gz 22526751 BLAKE2B 675c26c044d5b9114d6547ae6cc1cc3647a4aec61796024cda6c3abecfa0207c5e3858e37bef0c8209942dbc8996628f27424f9a04e70d8df8a03dabdcb0eaba SHA512 6125ab436d4514a5fef9cd733f493778911309f79577e81633f1e2f2f04b81e6c2533c5f7eeb4b0e15b1ecd7a99f9319f6580e421b5a9c7ae8356b5217721867
+DIST plexapi-4.17.1.gh.tar.gz 22527237 BLAKE2B f48d777b5d00e27afd505e44e35284ca70187c433893b17e9d1eecfe1a70c2b3485b585362383e7a8df3ac3c47667edfcc5af07f3721c7cf8fea9731fa5ae486 SHA512 741a1806bd52a9ce85fb34bf7a2a42594e4205e7a7dacc827cc8bf5a9da69290af1e79145b912472ded0aff0478c56d996144ef441a8d5bc3c0f7fec82be8358
diff --git a/dev-python/plexapi/plexapi-4.17.1.ebuild b/dev-python/plexapi/plexapi-4.17.1.ebuild
new file mode 100644
index 000000000000..cb90823a43f9
--- /dev/null
+++ b/dev-python/plexapi/plexapi-4.17.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# left here in case we switch to pypi
+PYPI_PN="PlexAPI"
+PYPI_NO_NORMALIZE=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the Plex API."
+HOMEPAGE="
+ https://pypi.org/project/PlexAPI/
+ https://github.com/pkkid/python-plexapi
+"
+
+# pypi release don't have docs
+SRC_URI="https://github.com/pkkid/python-plexapi/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+S="${WORKDIR}/python-${P}"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# almost all tests requires a running server
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+
+BDEPEND="doc? ( dev-python/sphinx-rtd-theme )"
+
+distutils_enable_sphinx docs
diff --git a/dev-python/pluggy/pluggy-1.6.0.ebuild b/dev-python/pluggy/pluggy-1.6.0.ebuild
index c0ef421c46e0..c00f6b3ccd49 100644
--- a/dev-python/pluggy/pluggy-1.6.0.ebuild
+++ b/dev-python/pluggy/pluggy-1.6.0.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"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/ply/ply-3.11-r2.ebuild b/dev-python/ply/ply-3.11-r2.ebuild
index 3db9696b1d3f..69382b076749 100644
--- a/dev-python/ply/ply-3.11-r2.ebuild
+++ b/dev-python/ply/ply-3.11-r2.ebuild
@@ -18,7 +18,7 @@ SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-py3.12-a
LICENSE="BSD"
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"
IUSE="examples"
DOCS=( ANNOUNCE CHANGES TODO )
diff --git a/dev-python/pmw/pmw-2.1.1.ebuild b/dev-python/pmw/pmw-2.1.1.ebuild
index 6680a9607cd5..871657c1bb39 100644
--- a/dev-python/pmw/pmw-2.1.1.ebuild
+++ b/dev-python/pmw/pmw-2.1.1.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
@@ -16,7 +16,7 @@ HOMEPAGE="https://pypi.org/project/Pmw/"
LICENSE="BSD"
SLOT="py3"
-KEYWORDS="~alpha amd64 ppc sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 ppc ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="doc test"
# https://sourceforge.net/p/pmw/bugs/39/
RESTRICT="test"
diff --git a/dev-python/pocketlint/Manifest b/dev-python/pocketlint/Manifest
index c7f40bfeab45..69621ccea8fe 100644
--- a/dev-python/pocketlint/Manifest
+++ b/dev-python/pocketlint/Manifest
@@ -1 +1,2 @@
DIST pocketlint-0.25.gh.tar.gz 23931 BLAKE2B e8254477223ea0e631129778cc760ef57d34adb78f783258c8c097f7eac1acfe4cb00d21bc9aff576fbfab2bb3f7b687de33b3bc1f02c8d083d690a2e392bbac SHA512 dcb21ee147839a606520370f948594fc695c779a03d9edfb054dd6c07f4dd1c4ad0b64ccaad504da01e3b6c572ce27db8813ac8b61468d43e3745b5053a4edb7
+DIST pocketlint-0.26.gh.tar.gz 24471 BLAKE2B 608cbb35ae8d4dccc80aa2d50fafa0bdc8e6c08eb89521ceb166a794624784d39709451b628c5c262db5597c2f6a2766ad7f5ce4ec8b85bde14b76a72b7808b5 SHA512 91c8e7a063af008be04a734d265feb0efb6cd701bf29acf890d7a9c1b12d62256cb6930488bc57f4506aa1445e8edaae8b6d6169b730f11b7775f18379e51678
diff --git a/dev-python/pocketlint/pocketlint-0.25-r1.ebuild b/dev-python/pocketlint/pocketlint-0.25-r1.ebuild
index 034aa16d9279..e18e8ba11c23 100644
--- a/dev-python/pocketlint/pocketlint-0.25-r1.ebuild
+++ b/dev-python/pocketlint/pocketlint-0.25-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/pocketlint/pocketlint-0.26.ebuild b/dev-python/pocketlint/pocketlint-0.26.ebuild
new file mode 100644
index 000000000000..39c0ed84c2b9
--- /dev/null
+++ b/dev-python/pocketlint/pocketlint-0.26.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Shared code for running pylint against rhinstaller projects"
+HOMEPAGE="
+ https://github.com/rhinstaller/pocketlint/
+ https://pypi.org/project/pocketlint/
+"
+SRC_URI="
+ https://github.com/rhinstaller/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/polib[${PYTHON_USEDEP}]
+ dev-python/pylint[${PYTHON_USEDEP}]
+"
+
+python_test() {
+ "${EPYTHON}" tests/pylint/runpylint.py || die "test failed with ${EPYTHON}"
+}
diff --git a/dev-python/poetry-core/poetry-core-2.1.3.ebuild b/dev-python/poetry-core/poetry-core-2.1.3.ebuild
index d7e4db466791..b1756309da87 100644
--- a/dev-python/poetry-core/poetry-core-2.1.3.ebuild
+++ b/dev-python/poetry-core/poetry-core-2.1.3.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"
# check inside vendors/pyproject.toml
# (note that some are indirect deps)
diff --git a/dev-python/polib/polib-1.2.0.ebuild b/dev-python/polib/polib-1.2.0.ebuild
index 85023dcbec23..f635ff289712 100644
--- a/dev-python/polib/polib-1.2.0.ebuild
+++ b/dev-python/polib/polib-1.2.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
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/portend/portend-3.2.1.ebuild b/dev-python/portend/portend-3.2.1.ebuild
index f5f198c13525..1884a05a7002 100644
--- a/dev-python/portend/portend-3.2.1.ebuild
+++ b/dev-python/portend/portend-3.2.1.ebuild
@@ -16,7 +16,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"
RDEPEND="
>=dev-python/tempora-1.8[${PYTHON_USEDEP}]
diff --git a/dev-python/pretend/pretend-1.0.9-r2.ebuild b/dev-python/pretend/pretend-1.0.9-r2.ebuild
index 78449ad519ec..7975ed0c94d7 100644
--- a/dev-python/pretend/pretend-1.0.9-r2.ebuild
+++ b/dev-python/pretend/pretend-1.0.9-r2.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
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"
distutils_enable_tests pytest
diff --git a/dev-python/prettytable/prettytable-3.16.0.ebuild b/dev-python/prettytable/prettytable-3.16.0.ebuild
index 7037a1f4d100..aa5b5ed1caa7 100644
--- a/dev-python/prettytable/prettytable-3.16.0.ebuild
+++ b/dev-python/prettytable/prettytable-3.16.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/wcwidth[${PYTHON_USEDEP}]
diff --git a/dev-python/priority/priority-1.3.0-r1.ebuild b/dev-python/priority/priority-1.3.0-r1.ebuild
index a4550735ff22..805378e715b0 100644
--- a/dev-python/priority/priority-1.3.0-r1.ebuild
+++ b/dev-python/priority/priority-1.3.0-r1.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
@@ -18,7 +18,7 @@ HOMEPAGE="
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"
BDEPEND="
test? (
diff --git a/dev-python/priority/priority-2.0.0-r1.ebuild b/dev-python/priority/priority-2.0.0-r1.ebuild
index 477c0ba55aef..a51d4b0c5b0a 100644
--- a/dev-python/priority/priority-2.0.0-r1.ebuild
+++ b/dev-python/priority/priority-2.0.0-r1.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/process-tests/process-tests-3.0.0.ebuild b/dev-python/process-tests/process-tests-3.0.0.ebuild
index 7690c121d782..4768279edf6f 100644
--- a/dev-python/process-tests/process-tests-3.0.0.ebuild
+++ b/dev-python/process-tests/process-tests-3.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/progress/progress-1.6.1.ebuild b/dev-python/progress/progress-1.6.1.ebuild
index ab5e9dd0d7a0..9e9f9dadcf38 100644
--- a/dev-python/progress/progress-1.6.1.ebuild
+++ b/dev-python/progress/progress-1.6.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
python_test() {
"${EPYTHON}" test_progress.py || die "Tests fail with ${EPYTHON}"
diff --git a/dev-python/prometheus-client/prometheus-client-0.22.1.ebuild b/dev-python/prometheus-client/prometheus-client-0.22.1.ebuild
index 4a371d544934..8640487758b1 100644
--- a/dev-python/prometheus-client/prometheus-client-0.22.1.ebuild
+++ b/dev-python/prometheus-client/prometheus-client-0.22.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/prompt-toolkit/prompt-toolkit-3.0.51.ebuild b/dev-python/prompt-toolkit/prompt-toolkit-3.0.51.ebuild
index 5b37f8ec5ffc..2b40d6509dc8 100644
--- a/dev-python/prompt-toolkit/prompt-toolkit-3.0.51.ebuild
+++ b/dev-python/prompt-toolkit/prompt-toolkit-3.0.51.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 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
dev-python/wcwidth[${PYTHON_USEDEP}]
diff --git a/dev-python/propcache/propcache-0.3.2.ebuild b/dev-python/propcache/propcache-0.3.2.ebuild
index 5437ff88585c..e820f656c39e 100644
--- a/dev-python/propcache/propcache-0.3.2.ebuild
+++ b/dev-python/propcache/propcache-0.3.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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="+native-extensions"
BDEPEND="
diff --git a/dev-python/protobuf/protobuf-6.31.1.ebuild b/dev-python/protobuf/protobuf-6.31.1.ebuild
index 4599e9f5e956..1c27a4a9b2c4 100644
--- a/dev-python/protobuf/protobuf-6.31.1.ebuild
+++ b/dev-python/protobuf/protobuf-6.31.1.ebuild
@@ -28,7 +28,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.0.0.ebuild b/dev-python/psutil/psutil-7.0.0.ebuild
index 47a8c75eba4e..bd4db2e67277 100644
--- a/dev-python/psutil/psutil-7.0.0.ebuild
+++ b/dev-python/psutil/psutil-7.0.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"
distutils_enable_tests pytest
diff --git a/dev-python/ptyprocess/ptyprocess-0.7.0-r1.ebuild b/dev-python/ptyprocess/ptyprocess-0.7.0-r1.ebuild
index 4a689f956e26..cf8cd8b6ae8d 100644
--- a/dev-python/ptyprocess/ptyprocess-0.7.0-r1.ebuild
+++ b/dev-python/ptyprocess/ptyprocess-0.7.0-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
distutils_enable_tests unittest
diff --git a/dev-python/pure-eval/pure-eval-0.2.3.ebuild b/dev-python/pure-eval/pure-eval-0.2.3.ebuild
index 97cda75a923c..0491ab52d89b 100644
--- a/dev-python/pure-eval/pure-eval-0.2.3.ebuild
+++ b/dev-python/pure-eval/pure-eval-0.2.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/py/py-1.11.0-r1.ebuild b/dev-python/py/py-1.11.0-r1.ebuild
index d1c5007209a7..c10adb0dd707 100644
--- a/dev-python/py/py-1.11.0-r1.ebuild
+++ b/dev-python/py/py-1.11.0-r1.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 ~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"
# This package is unmaintained and keeps being broken periodically.
RESTRICT=test
diff --git a/dev-python/pyaes/pyaes-1.6.1-r3.ebuild b/dev-python/pyaes/pyaes-1.6.1-r3.ebuild
index 1e47f23d1b7f..7339eed04d39 100644
--- a/dev-python/pyaes/pyaes-1.6.1-r3.ebuild
+++ b/dev-python/pyaes/pyaes-1.6.1-r3.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://pypi.org/project/pyaes/"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pyalsa/pyalsa-1.2.14.ebuild b/dev-python/pyalsa/pyalsa-1.2.14.ebuild
index 5d9e162a4d30..b50d68d7fef0 100644
--- a/dev-python/pyalsa/pyalsa-1.2.14.ebuild
+++ b/dev-python/pyalsa/pyalsa-1.2.14.ebuild
@@ -15,7 +15,7 @@ SRC_URI="https://www.alsa-project.org/files/pub/pyalsa/${P}.tar.bz2"
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm64 ~hppa ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
# Needs access to system's alsa configuration/devices
RESTRICT="test"
diff --git a/dev-python/pyasn1-modules/pyasn1-modules-0.4.2.ebuild b/dev-python/pyasn1-modules/pyasn1-modules-0.4.2.ebuild
index 250819e24efa..f3c76fe164ad 100644
--- a/dev-python/pyasn1-modules/pyasn1-modules-0.4.2.ebuild
+++ b/dev-python/pyasn1-modules/pyasn1-modules-0.4.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
RDEPEND="
=dev-python/pyjwt-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-subtests )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/pygments/pygments-2.19.2.ebuild b/dev-python/pygments/pygments-2.19.2.ebuild
index 08eb6d0adfc3..e9aece22d4a6 100644
--- a/dev-python/pygments/pygments-2.19.2.ebuild
+++ b/dev-python/pygments/pygments-2.19.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
BDEPEND="
test? (
diff --git a/dev-python/pygobject/pygobject-3.50.0.ebuild b/dev-python/pygobject/pygobject-3.50.0.ebuild
index 530a1abb604f..39c93938bd9d 100644
--- a/dev-python/pygobject/pygobject-3.50.0.ebuild
+++ b/dev-python/pygobject/pygobject-3.50.0.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="https://pygobject.gnome.org"
LICENSE="LGPL-2.1+"
SLOT="3"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+cairo test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pygobject/pygobject-3.50.1.ebuild b/dev-python/pygobject/pygobject-3.50.1.ebuild
index 9ff496735cba..a7355c38afb1 100644
--- a/dev-python/pygobject/pygobject-3.50.1.ebuild
+++ b/dev-python/pygobject/pygobject-3.50.1.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="https://pygobject.gnome.org"
LICENSE="LGPL-2.1+"
SLOT="3"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+cairo test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild b/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild
index 11a3788668bb..0c62126c82b4 100644
--- a/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild
+++ b/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild
@@ -22,7 +22,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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="examples"
BDEPEND="
diff --git a/dev-python/pyinotify/pyinotify-0.9.6-r1.ebuild b/dev-python/pyinotify/pyinotify-0.9.6-r1.ebuild
index 8e750ad8473b..bfdd44f6d120 100644
--- a/dev-python/pyinotify/pyinotify-0.9.6-r1.ebuild
+++ b/dev-python/pyinotify/pyinotify-0.9.6-r1.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
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
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"
IUSE="examples"
PATCHES=(
diff --git a/dev-python/pyjwt/pyjwt-2.10.1.ebuild b/dev-python/pyjwt/pyjwt-2.10.1.ebuild
index d828c1c7cf4b..a044f80599e5 100644
--- a/dev-python/pyjwt/pyjwt-2.10.1.ebuild
+++ b/dev-python/pyjwt/pyjwt-2.10.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
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/python-jwt
diff --git a/dev-python/pylast/pylast-5.5.0.ebuild b/dev-python/pylast/pylast-5.5.0.ebuild
index 75f3a9d20c06..08eee4003f6a 100644
--- a/dev-python/pylast/pylast-5.5.0.ebuild
+++ b/dev-python/pylast/pylast-5.5.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/httpx[${PYTHON_USEDEP}]
diff --git a/dev-python/pylibacl/pylibacl-0.7.2.ebuild b/dev-python/pylibacl/pylibacl-0.7.2.ebuild
index 0594f4ce7948..4b3e37d72d75 100644
--- a/dev-python/pylibacl/pylibacl-0.7.2.ebuild
+++ b/dev-python/pylibacl/pylibacl-0.7.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~mips ppc ppc64 sparc x86"
+KEYWORDS="~alpha amd64 arm ~arm64 ~mips ppc ppc64 ~sparc x86"
DEPEND="
sys-apps/acl
diff --git a/dev-python/pylibmc/pylibmc-1.6.3-r2.ebuild b/dev-python/pylibmc/pylibmc-1.6.3-r2.ebuild
index 534bf111cd39..405761c6c908 100644
--- a/dev-python/pylibmc/pylibmc-1.6.3-r2.ebuild
+++ b/dev-python/pylibmc/pylibmc-1.6.3-r2.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 x86"
IUSE="sasl"
DEPEND="
diff --git a/dev-python/pylint/pylint-3.3.7.ebuild b/dev-python/pylint/pylint-3.3.7.ebuild
index d9b8ba91fa2f..49f3d31e481e 100644
--- a/dev-python/pylint/pylint-3.3.7.ebuild
+++ b/dev-python/pylint/pylint-3.3.7.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild b/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
index 6cab0cf2ca6b..169d6659d6fe 100644
--- a/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
+++ b/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm64"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
distutils_enable_tests pytest
diff --git a/dev-python/pymongo/pymongo-4.11.3.ebuild b/dev-python/pymongo/pymongo-4.11.3.ebuild
index ee78c1cfaf3e..c09f77ca58f9 100644
--- a/dev-python/pymongo/pymongo-4.11.3.ebuild
+++ b/dev-python/pymongo/pymongo-4.11.3.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
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="doc kerberos +native-extensions +test-full"
RDEPEND="
diff --git a/dev-python/pymongo/pymongo-4.13.2.ebuild b/dev-python/pymongo/pymongo-4.13.2.ebuild
index 46a440660996..7386e92320bf 100644
--- a/dev-python/pymongo/pymongo-4.13.2.ebuild
+++ b/dev-python/pymongo/pymongo-4.13.2.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
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="doc kerberos +native-extensions +test-full"
RDEPEND="
diff --git a/dev-python/pynacl/pynacl-1.5.0-r3.ebuild b/dev-python/pynacl/pynacl-1.5.0-r3.ebuild
index f739647615e5..e035079f85ff 100644
--- a/dev-python/pynacl/pynacl-1.5.0-r3.ebuild
+++ b/dev-python/pynacl/pynacl-1.5.0-r3.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-libs/libsodium:=
diff --git a/dev-python/pynacl/pynacl-1.5.0-r4.ebuild b/dev-python/pynacl/pynacl-1.5.0-r4.ebuild
index 692af2fc650c..3a25fa213869 100644
--- a/dev-python/pynacl/pynacl-1.5.0-r4.ebuild
+++ b/dev-python/pynacl/pynacl-1.5.0-r4.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-libs/libsodium:=
diff --git a/dev-python/pynput/Manifest b/dev-python/pynput/Manifest
index 42a186bc9f38..b5e74eac5ab4 100644
--- a/dev-python/pynput/Manifest
+++ b/dev-python/pynput/Manifest
@@ -1 +1,2 @@
DIST pynput-1.7.6.tar.gz 79501 BLAKE2B cb356271ef0688ff6532fb79b858c10fb3a52abc4f6db5f4758948cb16f01e96e9377894ea211952b58f5ff6d997ceeec9ba51a29aef866e65cd83900a9894ae SHA512 66639096a83b7ea7c926bfab67ef6c54b913fc4ffe5814bbc4ace6e4d298237a3623066f4f5c08a2bcf1cc5e40d18dc35b77c18afbd0d00b7b4bf4ed2233d9ff
+DIST pynput-1.8.1.tar.gz 82289 BLAKE2B 07338c7d3f755af103d0f61874d536a0444cdddf0c3a450e51cf87e1375943fffcf20a747f25b2ca53365250e8e09d403421cf658077603b7c86a9e5794d3bd6 SHA512 4f28bbc908a4ecbfb8ef1d5b222ddc36269fe2f6361a45609afd60196eb05474569efd2267ae2028abfb85eae6825cea6215351974419ca640c7e069e6983132
diff --git a/dev-python/pynput/files/patches/uinput.patch b/dev-python/pynput/files/patches/uinput.patch
new file mode 100644
index 000000000000..a464b02af0c9
--- /dev/null
+++ b/dev-python/pynput/files/patches/uinput.patch
@@ -0,0 +1,37 @@
+diff --git a/lib/pynput/_util/uinput.py b/lib/pynput/_util/uinput.py
+index b0a6a78..c891b83 100644
+--- a/lib/pynput/_util/uinput.py
++++ b/lib/pynput/_util/uinput.py
+@@ -72,6 +72,14 @@ def _device(self, paths):
+ except OSError:
+ continue
+
++ # Some programmable mouse devices report each programmable input as
++ # a separate capability, so it is possible for a mouse to exceed
++ # keyboards in capability count; for this reason we will prefer a
++ # device with "keyboard" in its name
++ if 'keyboard' in next_dev.name.lower():
++ dev = next_dev
++ break
++
+ # Does this device provide more handled event codes?
+ capabilities = next_dev.capabilities()
+ next_count = sum(
+diff --git a/lib/pynput/keyboard/_uinput.py b/lib/pynput/keyboard/_uinput.py
+index 2f63dd3..747d19d 100644
+--- a/lib/pynput/keyboard/_uinput.py
++++ b/lib/pynput/keyboard/_uinput.py
+@@ -204,10 +204,10 @@ def as_char(k):
+ as_char(key): (
+ vk,
+ set()
+- | {Key.shift} if i & 1 else set()
+- | {Key.alt_gr} if i & 2 else set())
++ | ({Key.shift} if i & 1 else set())
++ | ({Key.alt_gr} if i & 2 else set()))
+ for vk, keys in self._vk_table.items()
+- for i, key in enumerate(keys)
++ for i, key in reversed(list(enumerate(keys)))
+ if key is not None and as_char(key) is not None}
+
+ def for_vk(self, vk, modifiers):
diff --git a/dev-python/pynput/files/patches/wheel.patch b/dev-python/pynput/files/patches/wheel.patch
new file mode 100644
index 000000000000..064b21ce5fe9
--- /dev/null
+++ b/dev-python/pynput/files/patches/wheel.patch
@@ -0,0 +1,11 @@
+diff --git a/setup.cfg b/setup.cfg
+index 99723b7..8ae701e 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -1,6 +1,3 @@
+-[bdist_wheel]
+-universal = 1
+-
+ [build_sphinx]
+ source-dir = docs
+ build-dir = build/docs
diff --git a/dev-python/pynput/pynput-1.8.1.ebuild b/dev-python/pynput/pynput-1.8.1.ebuild
new file mode 100644
index 000000000000..21ac12c2c518
--- /dev/null
+++ b/dev-python/pynput/pynput-1.8.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 pypi
+
+DESCRIPTION="Sends virtual input commands"
+HOMEPAGE="https://github.com/moses-palmer/pynput https://pypi.org/project/pynput"
+RDEPEND="
+ dev-python/evdev[${PYTHON_USEDEP}]
+ X? ( dev-python/python-xlib[${PYTHON_USEDEP}] )
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="X"
+
+PATCHES=(
+ # issue # 657
+ "${FILESDIR}/patches/uinput.patch"
+ # Remove deprecated bdist_wheel.universal
+ "${FILESDIR}/patches/wheel.patch"
+)
diff --git a/dev-python/pyopenssl/pyopenssl-25.1.0.ebuild b/dev-python/pyopenssl/pyopenssl-25.1.0.ebuild
index 203b12568aa2..4bc13b6bca48 100644
--- a/dev-python/pyopenssl/pyopenssl-25.1.0.ebuild
+++ b/dev-python/pyopenssl/pyopenssl-25.1.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
=dev-python/krb5-0.3.0[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature "Kerberos authentication" "dev-python/gssapi >=dev-python/krb5-0.3.0"
+ optfeature "YAML output support" "dev-python/ruamel-yaml"
+}
diff --git a/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0.ebuild b/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0.ebuild
index 2b4d03453683..23ded425c963 100644
--- a/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0.ebuild
+++ b/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/aiohttp-3.11.0_beta1[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-asyncio/pytest-asyncio-0.26.0.ebuild b/dev-python/pytest-asyncio/pytest-asyncio-0.26.0.ebuild
index 090866164ab2..a17969b0a2b9 100644
--- a/dev-python/pytest-asyncio/pytest-asyncio-0.26.0.ebuild
+++ b/dev-python/pytest-asyncio/pytest-asyncio-0.26.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/pytest-8.2[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-asyncio/pytest-asyncio-1.0.0.ebuild b/dev-python/pytest-asyncio/pytest-asyncio-1.0.0.ebuild
index 5b3429ea01bb..0db39772cdbb 100644
--- a/dev-python/pytest-asyncio/pytest-asyncio-1.0.0.ebuild
+++ b/dev-python/pytest-asyncio/pytest-asyncio-1.0.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/pytest-8.2[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-asyncio/pytest-asyncio-1.1.0.ebuild b/dev-python/pytest-asyncio/pytest-asyncio-1.1.0.ebuild
index 555734406b95..ef6dc9aca676 100644
--- a/dev-python/pytest-asyncio/pytest-asyncio-1.1.0.ebuild
+++ b/dev-python/pytest-asyncio/pytest-asyncio-1.1.0.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/pytest-8.2[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-check/pytest-check-2.5.3.ebuild b/dev-python/pytest-check/pytest-check-2.5.3.ebuild
index 81e4b9debfca..52ac58fb3032 100644
--- a/dev-python/pytest-check/pytest-check-2.5.3.ebuild
+++ b/dev-python/pytest-check/pytest-check-2.5.3.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-console-scripts/pytest-console-scripts-1.4.1.ebuild b/dev-python/pytest-console-scripts/pytest-console-scripts-1.4.1.ebuild
index f4a2c01a390c..6958cbd30eb6 100644
--- a/dev-python/pytest-console-scripts/pytest-console-scripts-1.4.1.ebuild
+++ b/dev-python/pytest-console-scripts/pytest-console-scripts-1.4.1.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://github.com/kvas-it/pytest-console-scripts"
LICENSE="MIT"
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"
RDEPEND="
>=dev-python/pytest-4.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-cov/pytest-cov-6.2.0.ebuild b/dev-python/pytest-cov/pytest-cov-6.2.0.ebuild
index ba4830f81b58..272b55eb62e0 100644
--- a/dev-python/pytest-cov/pytest-cov-6.2.0.ebuild
+++ b/dev-python/pytest-cov/pytest-cov-6.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/py-1.4.22[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-datadir/pytest-datadir-1.7.2.ebuild b/dev-python/pytest-datadir/pytest-datadir-1.7.2.ebuild
index 57698d91c52f..9e3eb91b3ef6 100644
--- a/dev-python/pytest-datadir/pytest-datadir-1.7.2.ebuild
+++ b/dev-python/pytest-datadir/pytest-datadir-1.7.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-django/pytest-django-4.11.1.ebuild b/dev-python/pytest-django/pytest-django-4.11.1.ebuild
index 2b5deeaa9f07..eef01d722bfb 100644
--- a/dev-python/pytest-django/pytest-django-4.11.1.ebuild
+++ b/dev-python/pytest-django/pytest-django-4.11.1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-expect/pytest-expect-1.1.0-r2.ebuild b/dev-python/pytest-expect/pytest-expect-1.1.0-r2.ebuild
index 5a0e90a8eb81..00240341b226 100644
--- a/dev-python/pytest-expect/pytest-expect-1.1.0-r2.ebuild
+++ b/dev-python/pytest-expect/pytest-expect-1.1.0-r2.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# no tests
RESTRICT="test"
diff --git a/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild b/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild
index 4fdc8de18a5d..8e80fb8ab9f9 100644
--- a/dev-python/pytest-forked/pytest-forked-1.6.0.ebuild
+++ b/dev-python/pytest-forked/pytest-forked-1.6.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# Please do not RDEPEND on pytest; this package won't do anything
# without pytest installed, and there is no reason to force older
diff --git a/dev-python/pytest-freezer/pytest-freezer-0.4.9.ebuild b/dev-python/pytest-freezer/pytest-freezer-0.4.9.ebuild
index c63eaf86ad4c..6d9acae41650 100644
--- a/dev-python/pytest-freezer/pytest-freezer-0.4.9.ebuild
+++ b/dev-python/pytest-freezer/pytest-freezer-0.4.9.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/freezegun-1.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-home/pytest-home-0.6.0.ebuild b/dev-python/pytest-home/pytest-home-0.6.0.ebuild
index b400556c962a..137f85e5dd44 100644
--- a/dev-python/pytest-home/pytest-home-0.6.0.ebuild
+++ b/dev-python/pytest-home/pytest-home-0.6.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
dev-python/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-httpbin/pytest-httpbin-2.1.0.ebuild b/dev-python/pytest-httpbin/pytest-httpbin-2.1.0.ebuild
index 87a67a29add7..a93c4d2d4ac1 100644
--- a/dev-python/pytest-httpbin/pytest-httpbin-2.1.0.ebuild
+++ b/dev-python/pytest-httpbin/pytest-httpbin-2.1.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 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
RDEPEND="
dev-python/httpbin[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-httpserver/pytest-httpserver-1.1.3.ebuild b/dev-python/pytest-httpserver/pytest-httpserver-1.1.3.ebuild
index 3afe80995b1a..25f33589b043 100644
--- a/dev-python/pytest-httpserver/pytest-httpserver-1.1.3.ebuild
+++ b/dev-python/pytest-httpserver/pytest-httpserver-1.1.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
dev-python/werkzeug[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-import-check/pytest-import-check-0.0.4.ebuild b/dev-python/pytest-import-check/pytest-import-check-0.0.4.ebuild
index a788b589de26..7c2838731b56 100644
--- a/dev-python/pytest-import-check/pytest-import-check-0.0.4.ebuild
+++ b/dev-python/pytest-import-check/pytest-import-check-0.0.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pytest-8.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild b/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild
index 650ddc8caa43..32460e3686a9 100644
--- a/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild
+++ b/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/ipykernel-6.14[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.3.2.ebuild b/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.3.2.ebuild
index 619ad526f22e..e54b203144b0 100644
--- a/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.3.2.ebuild
+++ b/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.3.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pytest-7[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-localserver/pytest-localserver-0.9.0_p0.ebuild b/dev-python/pytest-localserver/pytest-localserver-0.9.0_p0.ebuild
index 78f346ec5d2e..c1e3925bf87b 100644
--- a/dev-python/pytest-localserver/pytest-localserver-0.9.0_p0.ebuild
+++ b/dev-python/pytest-localserver/pytest-localserver-0.9.0_p0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/werkzeug-0.10[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-mock/Manifest b/dev-python/pytest-mock/Manifest
index cdbfe857e5b0..d0ad20fa7ccc 100644
--- a/dev-python/pytest-mock/Manifest
+++ b/dev-python/pytest-mock/Manifest
@@ -1 +1,2 @@
DIST pytest_mock-3.14.1.tar.gz 33241 BLAKE2B bfc638313f3169e2eb5ed69d6eaa89742cc43a39b51c2d41860848f03bbdcd062749294526cb555fafb99fadc4c566ed6cf96baf2491b74d0aec69f9d793c9ff SHA512 fff44e9520ce5cb55f259f60af5a9cc2c114e0b94d9493cd87381fc0939cfa89a6370304369ab2e5b06b3437c7525175860d35e526c2e9c84f01c0e47bab9cf9
+DIST pytest_mock-3.15.0.tar.gz 33838 BLAKE2B 3830a747e7e35fbf4a696ce131406606808d230547ffbdc0dbaf8c4aac2e05ee7a73143c6b364deaa017cf70b2be04c44ccd9755f49fec195f2ec87d31a75409 SHA512 4687b94b6e68e18c2f44244b7200a80689fffca94f8d5f18aa75541496e20fd547c8f8b530af3cfffd3872c3c7b386a1070a2a16d2d11c4ce5504e65e30795ca
diff --git a/dev-python/pytest-mock/pytest-mock-3.14.1.ebuild b/dev-python/pytest-mock/pytest-mock-3.14.1.ebuild
index e588e28a3c10..f7d0f447f756 100644
--- a/dev-python/pytest-mock/pytest-mock-3.14.1.ebuild
+++ b/dev-python/pytest-mock/pytest-mock-3.14.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"
RDEPEND="
>=dev-python/pytest-6.2.5[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-mock/pytest-mock-3.15.0.ebuild b/dev-python/pytest-mock/pytest-mock-3.15.0.ebuild
new file mode 100644
index 000000000000..46eacc1f462d
--- /dev/null
+++ b/dev-python/pytest-mock/pytest-mock-3.15.0.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_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Thin-wrapper around the mock package for easier use with pytest"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-mock/
+ https://pypi.org/project/pytest-mock/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/pytest-6.2.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_PLUGINS=( "${PN}" pytest-asyncio )
+ local EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+ local EPYTEST_DESELECT=()
+
+ if has_version dev-python/mock; then
+ EPYTEST_DESELECT+=(
+ tests/test_pytest_mock.py::test_standalone_mock
+ )
+ fi
+
+ epytest --assert=plain
+}
diff --git a/dev-python/pytest-ordering/pytest-ordering-0.6-r1.ebuild b/dev-python/pytest-ordering/pytest-ordering-0.6-r1.ebuild
index 37b8bc39ef96..56fbba173af6 100644
--- a/dev-python/pytest-ordering/pytest-ordering-0.6-r1.ebuild
+++ b/dev-python/pytest-ordering/pytest-ordering-0.6-r1.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"
RDEPEND="
dev-python/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild b/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild
index a16ad52c8fe1..01b01ec64c4e 100644
--- a/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild
+++ b/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-regressions/pytest-regressions-2.8.1.ebuild b/dev-python/pytest-regressions/pytest-regressions-2.8.1.ebuild
index e33e8dfeb36c..82d24b8fbe33 100644
--- a/dev-python/pytest-regressions/pytest-regressions-2.8.1.ebuild
+++ b/dev-python/pytest-regressions/pytest-regressions-2.8.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
dev-python/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-rerunfailures/Manifest b/dev-python/pytest-rerunfailures/Manifest
index cad53a470734..bdc227c4cb28 100644
--- a/dev-python/pytest-rerunfailures/Manifest
+++ b/dev-python/pytest-rerunfailures/Manifest
@@ -1,2 +1,3 @@
DIST pytest_rerunfailures-15.1.tar.gz 26981 BLAKE2B 78413183180edccbd9be6ca85ef05be7a1cce96470cf086a056b21231f84a9c7af4a3923fcb18f2081f14e53f6aea7a97807f7c311323cd5b99ff740c9aefedd SHA512 6344d625829038978f9cf224d59d3de07b1afcc6dcea578b22cdff8faefdbcacfaa54d6fc142351f9f5af6bacf6c2bda0e3f62013439b0276e1d48d6c30e8fe0
+DIST pytest_rerunfailures-16.0.1.tar.gz 27612 BLAKE2B 4b0271ae5158fbc44d770c5fc46d9e27cf456a70fa54c1f194fce71b97b786c625a56f5cbb2c3e74a14207b1817e1e026ac0f2743f4d7a75d39d467763eb97bb SHA512 2c8c95c451ffbf86f99ff5862c75bf45b754e68e1e41d5cdd65ceead4e7619637ad1ec75c0c7c0efab1f842ee8544ea7d68b17912acfccf8da573a9365d88bd5
DIST pytest_rerunfailures-16.0.tar.gz 28338 BLAKE2B ea90b0fb1fc3aee61f58b475b6ad53f646fcd5fe27233073104124f71e2d44d32381cb130563c3766c7b446328b12c5602b7130ce3b513436bd856d982074126 SHA512 30eb96a1cd442544a99653c4f0291909f330c5beb6a8b29e115bb63db68a35dda1587d093f641b253535503e41bb6282808e8e9583741861dbd27b36d0f1339a
diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.1.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.1.ebuild
index 14d3e96857e3..320326dfd4fc 100644
--- a/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.1.ebuild
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.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-rerunfailures/pytest-rerunfailures-16.0.1.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild
new file mode 100644
index 000000000000..6741207a6414
--- /dev/null
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.0.1.ebuild
@@ -0,0 +1,28 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin to re-run tests to eliminate flaky failures"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-rerunfailures/
+ https://pypi.org/project/pytest-rerunfailures/
+"
+
+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"
+
+RDEPEND="
+ >=dev-python/packaging-17.1[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-services/pytest-services-2.2.2.ebuild b/dev-python/pytest-services/pytest-services-2.2.2.ebuild
index e2eb8ca323c9..a03a4db591af 100644
--- a/dev-python/pytest-services/pytest-services-2.2.2.ebuild
+++ b/dev-python/pytest-services/pytest-services-2.2.2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-subprocess/pytest-subprocess-1.5.3.ebuild b/dev-python/pytest-subprocess/pytest-subprocess-1.5.3.ebuild
index 56741328b7b3..b38923dafe63 100644
--- a/dev-python/pytest-subprocess/pytest-subprocess-1.5.3.ebuild
+++ b/dev-python/pytest-subprocess/pytest-subprocess-1.5.3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
>=dev-python/pytest-4.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-subtests/pytest-subtests-0.14.2.ebuild b/dev-python/pytest-subtests/pytest-subtests-0.14.2.ebuild
index 051dad30f3ec..d8bc2dce1d8c 100644
--- a/dev-python/pytest-subtests/pytest-subtests-0.14.2.ebuild
+++ b/dev-python/pytest-subtests/pytest-subtests-0.14.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-testinfra/pytest-testinfra-10.2.2.ebuild b/dev-python/pytest-testinfra/pytest-testinfra-10.2.2.ebuild
index 6770d7f50ea6..787fcfbded89 100644
--- a/dev-python/pytest-testinfra/pytest-testinfra-10.2.2.ebuild
+++ b/dev-python/pytest-testinfra/pytest-testinfra-10.2.2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 pypi
@@ -31,13 +31,13 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x EPYTEST_DESELECT=()
+ local EPYTEST_DESELECT=()
# This is the only test which actually fails if salt cannot be imported
if ! has_version "dev-python/salt[${PYTHON_USEDEP}]"; then
diff --git a/dev-python/pytest-timeout/pytest-timeout-2.4.0.ebuild b/dev-python/pytest-timeout/pytest-timeout-2.4.0.ebuild
index e36012915295..7eb564510c08 100644
--- a/dev-python/pytest-timeout/pytest-timeout-2.4.0.ebuild
+++ b/dev-python/pytest-timeout/pytest-timeout-2.4.0.ebuild
@@ -16,7 +16,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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
# do not rdepend on pytest, it won't be used without it anyway
# pytest-cov used to test compatibility
diff --git a/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild b/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild
index 5f7d9a7b432a..39faff3040d6 100644
--- a/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild
+++ b/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pytest-3.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild b/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild
index 85418d326b9c..fcbfa8295a23 100644
--- a/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild
+++ b/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="|| ( MIT Apache-2.0 )"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/outcome-1.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-xdist/pytest-xdist-3.8.0.ebuild b/dev-python/pytest-xdist/pytest-xdist-3.8.0.ebuild
index 8e6db84e867b..2f29ff10d4ea 100644
--- a/dev-python/pytest-xdist/pytest-xdist-3.8.0.ebuild
+++ b/dev-python/pytest-xdist/pytest-xdist-3.8.0.ebuild
@@ -16,7 +16,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"
RDEPEND="
>=dev-python/execnet-2.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-xprocess/pytest-xprocess-0.23.0.ebuild b/dev-python/pytest-xprocess/pytest-xprocess-0.23.0.ebuild
index 2805d6a5495b..b15ae91eb115 100644
--- a/dev-python/pytest-xprocess/pytest-xprocess-0.23.0.ebuild
+++ b/dev-python/pytest-xprocess/pytest-xprocess-0.23.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,7 +17,7 @@ HOMEPAGE="
SLOT="0"
LICENSE="MIT"
-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/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-xprocess/pytest-xprocess-1.0.2.ebuild b/dev-python/pytest-xprocess/pytest-xprocess-1.0.2.ebuild
index c0bc71e6bb49..80c6e985739a 100644
--- a/dev-python/pytest-xprocess/pytest-xprocess-1.0.2.ebuild
+++ b/dev-python/pytest-xprocess/pytest-xprocess-1.0.2.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest
index 2d8805980375..605ec6b6e574 100644
--- a/dev-python/pytest/Manifest
+++ b/dev-python/pytest/Manifest
@@ -4,3 +4,4 @@ DIST pytest-8.1.2.tar.gz 1410060 BLAKE2B 1379047c5ba434e98a383756c53a9cf31dc3bd3
DIST pytest-8.2.2.tar.gz 1427980 BLAKE2B 7f343e5ff05e4d26f816595ad1c52ee2b79d38029e75e3641ed0bbb7477e0a47e5ae48ebc3058a8e9f374cd1a391d360d9eda73eca2e41d8b533eda7948aedcb SHA512 896192f0d41f3fef49915dfea6ae33dbb939f6bbe54de27861bf1554bf87f910702169293e923af9bc40466e7f806aa19ca54cbe41a848c233f70b52bb86a63c
DIST pytest-8.3.5.tar.gz 1450891 BLAKE2B 7a5fb565eb13041f6513bef344ec6caa24464cb3e9a335c4a196ae12e47a51692cff658e839ad139f88965098831ec5ede7d32fd6bf3b29c51205d4dfe50ed9b SHA512 386573a40f78c1dc864a0af7d765d49e9e91a38dd61bef95b07631bffba0806b34264622a998e849727f50fb220ada7b8242f7f7dbd501408e7bf4701d36589d
DIST pytest-8.4.1.tar.gz 1517714 BLAKE2B 1122694101de967a16f3103aa54e02baf28e03ad231f8e3cd93a559d1d9c9249046e95cfcf5708821a4b843b6474e4d30793a454e93e5167b1ff7ddc4514f71b SHA512 1ed64a70e6b49f52364f4d08ca179a47bcd0a709c327c1666f6e5f909c723ce1e2ba56abe08cf1348f75c1fa447da71c4faac8e3e76adb0c563cf66267c8633a
+DIST pytest-8.4.2.tar.gz 1519618 BLAKE2B 0676b8a3510dc740d94e96eaa6312574ed0058baec13f161c4f1ab85872ac69ebabaa707032becb068fc128662d931b6b05f92dec9bdf6c268553b956bf43003 SHA512 a6732666e7b59b2c28b47b1020a8381d31073cf9113086c562295429fddfa6b4ef2afda3cdcce0ec60bf60d038ad2bf8e921a2a409f3d56e31d94ca39e5ea81b
diff --git a/dev-python/pytest/pytest-7.4.4.ebuild b/dev-python/pytest/pytest-7.4.4.ebuild
index 989e6a31cf80..fd618813c7af 100644
--- a/dev-python/pytest/pytest-7.4.4.ebuild
+++ b/dev-python/pytest/pytest-7.4.4.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/pytest/pytest-8.0.2.ebuild b/dev-python/pytest/pytest-8.0.2.ebuild
index 9b1f87deeff3..d2af11ef1da3 100644
--- a/dev-python/pytest/pytest-8.0.2.ebuild
+++ b/dev-python/pytest/pytest-8.0.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/pytest/pytest-8.1.2.ebuild b/dev-python/pytest/pytest-8.1.2.ebuild
index 48292aea1690..ac9fdf79b395 100644
--- a/dev-python/pytest/pytest-8.1.2.ebuild
+++ b/dev-python/pytest/pytest-8.1.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/pytest/pytest-8.2.2.ebuild b/dev-python/pytest/pytest-8.2.2.ebuild
index 05a1d8aa73ec..dde17b2a5cb1 100644
--- a/dev-python/pytest/pytest-8.2.2.ebuild
+++ b/dev-python/pytest/pytest-8.2.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/pytest/pytest-8.3.5-r1.ebuild b/dev-python/pytest/pytest-8.3.5-r1.ebuild
index c2e0895b6f18..d6c69a394ad5 100644
--- a/dev-python/pytest/pytest-8.3.5-r1.ebuild
+++ b/dev-python/pytest/pytest-8.3.5-r1.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/pytest/pytest-8.4.1.ebuild b/dev-python/pytest/pytest-8.4.1.ebuild
index 04ff365ced21..c09df7600ae9 100644
--- a/dev-python/pytest/pytest-8.4.1.ebuild
+++ b/dev-python/pytest/pytest-8.4.1.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/pytest/pytest-8.4.2.ebuild b/dev-python/pytest/pytest-8.4.2.ebuild
new file mode 100644
index 000000000000..572e22fb8143
--- /dev/null
+++ b/dev-python/pytest/pytest-8.4.2.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple powerful testing with Python"
+HOMEPAGE="
+ https://pytest.org/
+ https://github.com/pytest-dev/pytest/
+ https://pypi.org/project/pytest/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/iniconfig[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ =dev-python/pluggy-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ >=dev-python/attrs-19.2[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmlschema[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_test() {
+ # workaround new readline defaults
+ echo "set enable-bracketed-paste off" > "${T}"/inputrc || die
+ local -x INPUTRC="${T}"/inputrc
+ distutils-r1_src_test
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x COLUMNS=80
+
+ local EPYTEST_DESELECT=(
+ # broken by epytest args
+ testing/test_warnings.py::test_works_with_filterwarnings
+ testing/test_threadexception.py::test_unhandled_thread_exception_after_teardown
+ testing/test_unraisableexception.py::test_refcycle_unraisable
+
+ # does not like verbosity
+ testing/test_assertrewrite.py::TestAssertionRewrite::test_len
+
+ # tend to be broken by random pytest plugins
+ # (these tests patch PYTEST_DISABLE_PLUGIN_AUTOLOAD out)
+ testing/test_helpconfig.py::test_version_less_verbose
+ testing/test_helpconfig.py::test_version_verbose
+ testing/test_junitxml.py::test_random_report_log_xdist
+ testing/test_junitxml.py::test_runs_twice_xdist
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal_count
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_verbose
+ testing/test_terminal.py::TestProgressWithTeardown::test_xdist_normal
+ testing/test_terminal.py::TestTerminalFunctional::test_header_trailer_info
+ testing/test_terminal.py::TestTerminalFunctional::test_no_header_trailer_info
+
+ # unstable with xdist
+ testing/test_terminal.py::TestTerminalFunctional::test_verbose_reporting_xdist
+
+ # TODO (XPASS)
+ testing/test_debugging.py::TestDebuggingBreakpoints::test_pdb_not_altered
+ testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_simple
+ testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_twice
+ testing/test_debugging.py::TestPDB::test_pdb_with_injected_do_debug
+ testing/test_debugging.py::test_pdb_suspends_fixture_capturing
+
+ # setuptools warnings
+ testing/acceptance_test.py::TestInvocationVariants::test_cmdline_python_namespace_package
+
+ # PDB tests seem quite flaky (they time out often)
+ testing/test_debugging.py::TestPDB
+ )
+
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # regressions on pypy3.9
+ # https://github.com/pytest-dev/pytest/issues/9787
+ testing/test_skipping.py::test_errors_in_xfail_skip_expressions
+ )
+ ;;
+ python3.14)
+ EPYTEST_DESELECT+=(
+ testing/test_doctest.py::TestDoctests::test_doctest_unexpected_exception
+ )
+ ;;
+ esac
+
+ local EPYTEST_PLUGINS=()
+ local EPYTEST_XDIST=1
+ epytest
+}
diff --git a/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild b/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild
index 155096a008e5..609fc172640b 100644
--- a/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild
+++ b/dev-python/python-bugzilla/python-bugzilla-3.3.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
|| (
diff --git a/dev-python/python-cinderclient/Manifest b/dev-python/python-cinderclient/Manifest
index 5b5903114835..59f2bb8cb16f 100644
--- a/dev-python/python-cinderclient/Manifest
+++ b/dev-python/python-cinderclient/Manifest
@@ -1 +1,2 @@
DIST python_cinderclient-9.7.0.tar.gz 236901 BLAKE2B 9cf188fd8960a99dfee68ec943b0e4124a78c2a8d9bc990f8bbe98646886e462e3bdd3449772492d07a1d8697423f57ae06d55daba5ce2ac44205407dc554d3b SHA512 b1a0222b7d67cda221086c469f76dc757905ca2b92645389603b0ba28c1a6b5eedd0049dbc09b6da1fc097e4ab7826c11927c88cf7c314757cdde1826cf55d1c
+DIST python_cinderclient-9.8.0.tar.gz 237057 BLAKE2B ade3ad6adddb11e5b82039228e2b1251d576bd4d5cda530dd8a3a44d58c04a1585afd17e53fe73281b9155584caf8ee6bda8f5f5826823c4872fd95e904f7878 SHA512 1bd29ad5a8ebd176a2d537d9935570676e8300bd4cbf38c61b16ac7d2b833a25a39467c1c659be48d22fbf8fcd6a514ab18733154a15ca6884df65a4d9f188e9
diff --git a/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild b/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild
new file mode 100644
index 000000000000..6aa843002894
--- /dev/null
+++ b/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild
@@ -0,0 +1,47 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack Cinder API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-cinderclient/
+ https://github.com/openstack/python-cinderclient/
+ https://pypi.org/project/python-cinderclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/keystoneauth1-5.9.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-5.0.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pbr-5.5.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.25.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-3.3.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ddt[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/oslo-serialization[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b cinderclient/tests/unit
+}
diff --git a/dev-python/python-dateutil/python-dateutil-2.9.0_p0.ebuild b/dev-python/python-dateutil/python-dateutil-2.9.0_p0.ebuild
index 468a90a5c714..5d2d63e74e35 100644
--- a/dev-python/python-dateutil/python-dateutil-2.9.0_p0.ebuild
+++ b/dev-python/python-dateutil/python-dateutil-2.9.0_p0.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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos"
+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"
RDEPEND="
>=dev-python/six-1.5[${PYTHON_USEDEP}]
diff --git a/dev-python/python-dbusmock/python-dbusmock-0.36.0.ebuild b/dev-python/python-dbusmock/python-dbusmock-0.36.0.ebuild
index f18e55d1c7c3..b49d59ee89d5 100644
--- a/dev-python/python-dbusmock/python-dbusmock-0.36.0.ebuild
+++ b/dev-python/python-dbusmock/python-dbusmock-0.36.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
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/dbus-python[${PYTHON_USEDEP}]
diff --git a/dev-python/python-dotenv/python-dotenv-1.1.1.ebuild b/dev-python/python-dotenv/python-dotenv-1.1.1.ebuild
index 9d2a15ffa23b..eaa1bb0a5b3c 100644
--- a/dev-python/python-dotenv/python-dotenv-1.1.1.ebuild
+++ b/dev-python/python-dotenv/python-dotenv-1.1.1.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/python-gnupg/python-gnupg-0.5.4.ebuild b/dev-python/python-gnupg/python-gnupg-0.5.4.ebuild
index f0e1c6340ba1..2a9cb38ed05b 100644
--- a/dev-python/python-gnupg/python-gnupg-0.5.4.ebuild
+++ b/dev-python/python-gnupg/python-gnupg-0.5.4.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~sparc x86"
# Need gnupg[nls] for avoiding decode errors and possible hangs
# w/ e.g. sec-keys/openpgp-keys-gentoo-developers but other pkgs too.
diff --git a/dev-python/python-ironicclient/Manifest b/dev-python/python-ironicclient/Manifest
index 7a508bbd16d6..4ac6b224bf62 100644
--- a/dev-python/python-ironicclient/Manifest
+++ b/dev-python/python-ironicclient/Manifest
@@ -1 +1,2 @@
DIST python_ironicclient-5.12.0.tar.gz 225775 BLAKE2B 6068b55887e1ede35a9a2ee0df0aa894ed5d64e49f65bbe2138bbac8ef17992461f42737fb6f296a8e90e14aa250e50b602731db34038eb3f2db698bdee11d53 SHA512 921cc1a925e8a4bf7b57be14054f7f4064574b259d4768da262adee94e0f997e845f576210bccbc48752b2273cf9cc7471d3cc9ea9391b3e47220f7754a12814
+DIST python_ironicclient-5.13.0.tar.gz 225872 BLAKE2B 528827c20507b23a2d4fe2c2bb158ccca5bff1c269b9b58b0293b772942c7fb30460a3f933eed554f848c8e58453e4a9024111fec2c7fe5107099c5326d409a1 SHA512 2c9bfeea82df5156a283baf182bf21f46e56bec555ec64849d12b540f269f5f5a421e5949e86070eeeb79d26295e20556596a896710f9f3fe9e7bd7fd67ad458
diff --git a/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild b/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild
new file mode 100644
index 000000000000..e06777f8031d
--- /dev/null
+++ b/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for the Ironic API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-ironicclient/
+ https://github.com/openstack/python-ironicclient/
+ https://pypi.org/project/python-ironicclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.11.0[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-0.18.0[${PYTHON_USEDEP}]
+ >=dev-python/osc-lib-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/python-openstackclient-3.12.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/python-json-logger/python-json-logger-3.3.0.ebuild b/dev-python/python-json-logger/python-json-logger-3.3.0.ebuild
index 19bcbcca23aa..d871d3095f83 100644
--- a/dev-python/python-json-logger/python-json-logger-3.3.0.ebuild
+++ b/dev-python/python-json-logger/python-json-logger-3.3.0.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-ldap/python-ldap-3.4.4.ebuild b/dev-python/python-ldap/python-ldap-3.4.4.ebuild
index 123173df5a9a..8e50a177a131 100644
--- a/dev-python/python-ldap/python-ldap-3.4.4.ebuild
+++ b/dev-python/python-ldap/python-ldap-3.4.4.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${PN}-${P}
LICENSE="MIT PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~sparc x86"
IUSE="examples sasl ssl"
RDEPEND="
diff --git a/dev-python/python-magic/python-magic-0.4.27.ebuild b/dev-python/python-magic/python-magic-0.4.27.ebuild
index 2cce5ae807d5..da727f2812ea 100644
--- a/dev-python/python-magic/python-magic-0.4.27.ebuild
+++ b/dev-python/python-magic/python-magic-0.4.27.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD-2 MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux"
RDEPEND="
sys-apps/file[-python]
diff --git a/dev-python/python-mimeparse/python-mimeparse-2.0.0.ebuild b/dev-python/python-mimeparse/python-mimeparse-2.0.0.ebuild
index d51de9fd189b..a0345a30c735 100644
--- a/dev-python/python-mimeparse/python-mimeparse-2.0.0.ebuild
+++ b/dev-python/python-mimeparse/python-mimeparse-2.0.0.ebuild
@@ -16,7 +16,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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
python_test() {
"${EPYTHON}" mimeparse_test.py -v || die "Tests fail with ${EPYTHON}"
diff --git a/dev-python/python-multipart/python-multipart-0.0.20.ebuild b/dev-python/python-multipart/python-multipart-0.0.20.ebuild
index 429486534a16..33db66e8645d 100644
--- a/dev-python/python-multipart/python-multipart-0.0.20.ebuild
+++ b/dev-python/python-multipart/python-multipart-0.0.20.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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"
BDEPEND="
test? (
diff --git a/dev-python/python-novaclient/Manifest b/dev-python/python-novaclient/Manifest
index 1da1fde28b24..42f74aee9f6c 100644
--- a/dev-python/python-novaclient/Manifest
+++ b/dev-python/python-novaclient/Manifest
@@ -1 +1,2 @@
DIST python_novaclient-18.10.0.tar.gz 340630 BLAKE2B 6457e951ae338f5bd2af95e9db59dc7587c19ecb2a927c4e53c523410f7f2b5de2b1a575242a41b06c6db075e29a45f00825645a79b7ad241ab682303b7ed038 SHA512 d5a8ee3751e7f258204afec4a60db3947522c6fd016ab3166d234f5fad6ef7303fcda27159357ca65a2b5ea5d62a112088f6cd489c86963068d61ca6b4ffcf3b
+DIST python_novaclient-18.11.0.tar.gz 340209 BLAKE2B 0845630883e2924b07748911e662b53bfbf0312cc6cd91c98a31f20991db73739526f66d8345c00d681276b1bd5557d54a0e91d4ac59a4405df57a12633bc1e3 SHA512 870251052beb88e7e47ef88a386583d6710f1fa40d934f70552e9333de394c70efbe510191e69871ff60e0f634ca42fd3d358d1900e8892c1164eb2f9cc33b80
diff --git a/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild b/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild
new file mode 100644
index 000000000000..6eb1a6b56b2d
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-18.11.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-novaclient/
+ https://github.com/openstack/python-novaclient/
+ https://pypi.org/project/python-novaclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.12.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-2.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/bandit[${PYTHON_USEDEP}]
+ dev-python/ddt[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/openstacksdk[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/tempest[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ sed -e 's/test_osprofiler/_&/' -i novaclient/tests/unit/test_shell.py || die
+ sed -e 's/novaclient\.tests\.unit\.//' -i novaclient/tests/unit/test_api_versions.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b novaclient/tests/unit
+}
diff --git a/dev-python/python-socks/python-socks-2.7.1.ebuild b/dev-python/python-socks/python-socks-2.7.1.ebuild
index fa8e8b3687b3..1d3dac4fb066 100644
--- a/dev-python/python-socks/python-socks-2.7.1.ebuild
+++ b/dev-python/python-socks/python-socks-2.7.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
# curio is not packaged
# asyncio is the only backend we have, so dep on its deps unconditionally
diff --git a/dev-python/python-subunit/python-subunit-1.4.4.ebuild b/dev-python/python-subunit/python-subunit-1.4.4.ebuild
index 9b144ac05f49..98f710173780 100644
--- a/dev-python/python-subunit/python-subunit-1.4.4.ebuild
+++ b/dev-python/python-subunit/python-subunit-1.4.4.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0 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="static-libs test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/python-systemd/python-systemd-235.ebuild b/dev-python/python-systemd/python-systemd-235.ebuild
index 6afe24da537b..abdde0a1949e 100644
--- a/dev-python/python-systemd/python-systemd-235.ebuild
+++ b/dev-python/python-systemd/python-systemd-235.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Gentoo Authors
+# Copyright 2015-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -15,7 +15,7 @@ SRC_URI="https://github.com/systemd/python-systemd/archive/v${PV}.tar.gz -> ${P}
LICENSE="LGPL-2.1"
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-apps/systemd:="
RDEPEND="${DEPEND}
diff --git a/dev-python/python-tests/python-tests-3.11.13.ebuild b/dev-python/python-tests/python-tests-3.11.13.ebuild
index 1d3b71369371..2efeceea3f68 100644
--- a/dev-python/python-tests/python-tests-3.11.13.ebuild
+++ b/dev-python/python-tests/python-tests-3.11.13.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}/Lib"
LICENSE="PSF-2"
SLOT="${PYVER}"
-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"
# enable by default to help CI handle it (we have no additional deps)
IUSE="+python_targets_${PYTHON_COMPAT[0]}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/python-tests/python-tests-3.12.11.ebuild b/dev-python/python-tests/python-tests-3.12.11.ebuild
index d23e0d912367..e0939ea6e83c 100644
--- a/dev-python/python-tests/python-tests-3.12.11.ebuild
+++ b/dev-python/python-tests/python-tests-3.12.11.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}/Lib"
LICENSE="PSF-2"
SLOT="${PYVER}"
-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"
# enable by default to help CI handle it (we have no additional deps)
IUSE="+python_targets_${PYTHON_COMPAT[0]}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/python-tests/python-tests-3.13.5.ebuild b/dev-python/python-tests/python-tests-3.13.5.ebuild
index d1f1977b8fe7..1641a285b2af 100644
--- a/dev-python/python-tests/python-tests-3.13.5.ebuild
+++ b/dev-python/python-tests/python-tests-3.13.5.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}/Lib"
LICENSE="PSF-2"
SLOT="${PYVER}"
-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"
# enable by default to help CI handle it (we have no additional deps)
IUSE="+python_targets_${PYTHON_COMPAT[0]}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/pythondialog/pythondialog-3.5.3.ebuild b/dev-python/pythondialog/pythondialog-3.5.3.ebuild
index c02a59263ae0..10d371b8e4a4 100644
--- a/dev-python/pythondialog/pythondialog-3.5.3.ebuild
+++ b/dev-python/pythondialog/pythondialog-3.5.3.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
@@ -14,7 +14,7 @@ SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/python3-${P
LICENSE="LGPL-2"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ppc ~riscv sparc x86"
+KEYWORDS="~alpha amd64 ~arm ppc ~riscv ~sparc x86"
RDEPEND="dev-util/dialog"
diff --git a/dev-python/pytidylib/pytidylib-0.3.2-r2.ebuild b/dev-python/pytidylib/pytidylib-0.3.2-r2.ebuild
index ba90dc877e3b..5eef420b9aee 100644
--- a/dev-python/pytidylib/pytidylib-0.3.2-r2.ebuild
+++ b/dev-python/pytidylib/pytidylib-0.3.2-r2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="app-text/htmltidy"
DEPEND=${RDEPEND}
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index 51677cdb7e34..0b340f731401 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -1,2 +1,3 @@
DIST pytools-2025.2.2.tar.gz 84641 BLAKE2B 942b949ee3d6c0ad27300cd35bb6b8ae44e352943fb7213769e73295cf337164a028a6f58e5f1b4fd427a68b5e877fcb2ce8086cc44f73d0987ffa29c24518d2 SHA512 eaef09ffedec7d73fe9d397502c0f28ad1383f07d68aa8b317c641cc274148a19ea17e1bc07387d4990fce5783031d4040059f0131aaf8660420096a96e27954
DIST pytools-2025.2.3.tar.gz 85860 BLAKE2B d76daad77e500e1a531f0720ea3b7a7b2b1fb46173df85a852c4eaedf0bc192377aaa308be3d38c32da842d58543b876624b9f84238e836570dc0d048f80cd43 SHA512 4aac187d61c82e7bc871b5fe64e0a3438afb42838ac2f72072caac51f409fb7776230cde672ff9543be5b388407975cdd1a6bce13df7e8e0b1eb3e11371e7b11
+DIST pytools-2025.2.4.tar.gz 85878 BLAKE2B 4618f89842762b52355522ce6c6be79dbb7d693140420003b91acae1a1e46464e7d76d520d7f438fb813f99d87dcd8b18b0e2c16a401d4e68a4b12a9d6835b2f SHA512 bdbff20bc828117fddabde4b71bd166a94381d913c98e1cf49eace165a4440faf9ecb68ed5b0e5be429127423cf532a70f6edd13cf18d8cede833c1fb0d6d08d
diff --git a/dev-python/pytools/pytools-2025.2.4.ebuild b/dev-python/pytools/pytools-2025.2.4.ebuild
new file mode 100644
index 000000000000..4d847634cb6a
--- /dev/null
+++ b/dev-python/pytools/pytools-2025.2.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+# NB: numpy are an "extra" (optional) deps
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/siphash24-1.6[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/pytz/pytz-2025.2.ebuild b/dev-python/pytz/pytz-2025.2.ebuild
index 09d078384ede..e95e2282868b 100644
--- a/dev-python/pytz/pytz-2025.2.ebuild
+++ b/dev-python/pytz/pytz-2025.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 ~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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pyudev/pyudev-0.24.3.ebuild b/dev-python/pyudev/pyudev-0.24.3.ebuild
index b4189ad1e7d2..5717ce9196cb 100644
--- a/dev-python/pyudev/pyudev-0.24.3.ebuild
+++ b/dev-python/pyudev/pyudev-0.24.3.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/pyudev/pyudev/archive/refs/tags/v${PV}.tar.gz -> ${P
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
# Known to fail on test system that aren't exactly the same devices as on CI
#RESTRICT="test"
diff --git a/dev-python/pywinrm/pywinrm-0.5.0.ebuild b/dev-python/pywinrm/pywinrm-0.5.0.ebuild
index f12ae2510bd8..701220363e11 100644
--- a/dev-python/pywinrm/pywinrm-0.5.0.ebuild
+++ b/dev-python/pywinrm/pywinrm-0.5.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# 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_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 pypi
@@ -35,6 +35,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/pyxattr/pyxattr-0.8.1.ebuild b/dev-python/pyxattr/pyxattr-0.8.1.ebuild
index 97341e34831a..901234342d27 100644
--- a/dev-python/pyxattr/pyxattr-0.8.1.ebuild
+++ b/dev-python/pyxattr/pyxattr-0.8.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
sys-apps/attr:=
diff --git a/dev-python/pyxdg/pyxdg-0.28-r2.ebuild b/dev-python/pyxdg/pyxdg-0.28-r2.ebuild
index cba39bfc7515..aad84a326cdc 100644
--- a/dev-python/pyxdg/pyxdg-0.28-r2.ebuild
+++ b/dev-python/pyxdg/pyxdg-0.28-r2.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="LGPL-2"
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"
PATCHES=(
"${FILESDIR}"/${PN}-0.28-py3.12.patch
diff --git a/dev-python/pyyaml/pyyaml-6.0.2.ebuild b/dev-python/pyyaml/pyyaml-6.0.2.ebuild
index 05837c058f97..1cf18f174cfb 100644
--- a/dev-python/pyyaml/pyyaml-6.0.2.ebuild
+++ b/dev-python/pyyaml/pyyaml-6.0.2.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
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"
DEPEND="
diff --git a/dev-python/pyzmq/pyzmq-26.4.0.ebuild b/dev-python/pyzmq/pyzmq-26.4.0.ebuild
index 8ae4a9af7da1..5c9441bd3409 100644
--- a/dev-python/pyzmq/pyzmq-26.4.0.ebuild
+++ b/dev-python/pyzmq/pyzmq-26.4.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/pyzmq/pyzmq-27.0.0.ebuild b/dev-python/pyzmq/pyzmq-27.0.0.ebuild
index 169939117403..2d11a1a0692b 100644
--- a/dev-python/pyzmq/pyzmq-27.0.0.ebuild
+++ b/dev-python/pyzmq/pyzmq-27.0.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/qiskit/Manifest b/dev-python/qiskit/Manifest
index 9a331227f027..3f8ac4f9bf78 100644
--- a/dev-python/qiskit/Manifest
+++ b/dev-python/qiskit/Manifest
@@ -3,3 +3,5 @@ DIST qiskit-2.1.1.gh.tar.gz 7095152 BLAKE2B fa611f4a5e772ba66bc58bc2832f6779dee5
DIST qiskit-2.1.2.gh.tar.gz 7100760 BLAKE2B 01f5789f20d1c73e73000ec87579981380d201b4d614dbfd7974d603c031de2a567e42c41f4552442805eb38b729784442a1e04e36054ba0c0a44a68b7410ad4 SHA512 a2e435f2523f538c922c868bf1fb303143f2efe4f3f70fe286d25fe467c454888f4fe7dc81b94e30e134e15446c6f3364a9ee932b5229952cb178e5db019ac1d
DIST qiskit-2.2.0b1-crates.tar.xz 16206228 BLAKE2B 2b654513fb78ae35e9179c094ea0ff05bafbd3ae226b6665034ad396c64ccf6a7d539a5e89a2815a241fe4a081b09cd43fd5779b0854ad6638c5f0a9b2bed7c7 SHA512 6a1550163808579adeaff9524fd494c153524d1780f459629943d95c0e712c310b8c0cf0325497c47caacf5a08ee0cdbe09c42e40329b305953aee2fa147b349
DIST qiskit-2.2.0b1.gh.tar.gz 7242652 BLAKE2B ab708fcf06294ad3d218768ebde618d43efe23460ea4ba52ceacee1bb562c331e356c1620fdebb2c8b6eb265e84cbe4a258bcbec9474112c891a8db6e3262fac SHA512 b98e04655cf6ebc9a3591a8fa50c1afdc653bb352ea91ce93f6bcda311cedb450da1947785d5b68088a04a0fa295c5df6358b4b3fe67d89d47e242d4d606442a
+DIST qiskit-2.2.0rc1-crates.tar.xz 16224208 BLAKE2B 5e218dd807216b0164680c9d0be0f8ca821ddd0d959a3401f3613f5264a35d4fd6d0c9c99fa55d6875606a9a956e5e6639cdc5ed0060dca2cf8ea8739e1fd608 SHA512 fb0fb3bdcfae60fe045c8214dc22619b15d961e169b9f28d3036b29d001bfe1fde07c33c20250088707502feebdc1d43f2d4d215353b562d3d4d553fae26099d
+DIST qiskit-2.2.0rc1.gh.tar.gz 7315424 BLAKE2B c89dc4fcfbe316b6f79f714f889a9b4a9e10a6c86e3c31ae557d94305826024bb04a3c1f6f25faec4e4b19deab6c004752d1ee9066562a46cc2a0c1951c0970e SHA512 1742b4e73eda2d8d6eca6a5f33bae360a084c2debbbbc441a4ab8036a1ead76b64850b949ec1dd4db3b7109951817a6a6dce7e4655d7f77d728c7bdb97545428
diff --git a/dev-python/qiskit/qiskit-2.2.0_rc1.ebuild b/dev-python/qiskit/qiskit-2.2.0_rc1.ebuild
new file mode 100644
index 000000000000..79c53538a42f
--- /dev/null
+++ b/dev-python/qiskit/qiskit-2.2.0_rc1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+CRATES=""
+RUST_MIN_VER="1.84.0"
+
+inherit cargo distutils-r1
+
+MY_P=${P/_}
+CRATE_PV=2.2.0rc1
+DESCRIPTION="An open-source SDK for working with quantum computers"
+HOMEPAGE="
+ https://github.com/Qiskit/qiskit/
+ https://pypi.org/project/qiskit/
+"
+SRC_URI="
+ https://github.com/Qiskit/qiskit/archive/${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+ https://github.com/gentoo-crate-dist/qiskit/releases/download/${CRATE_PV/_}/${PN}-${CRATE_PV}-crates.tar.xz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 MIT MPL-2.0
+ Unicode-3.0 ZLIB
+"
+SLOT="0"
+IUSE="+visualization"
+
+RDEPEND="
+ >=dev-python/dill-0.3[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.17[${PYTHON_USEDEP}]
+ >=dev-python/python-constraint-1.4[${PYTHON_USEDEP}]
+ >=dev-python/rustworkx-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.5[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-3.0.0[${PYTHON_USEDEP}]
+ visualization? (
+ >=dev-python/matplotlib-3.3[${PYTHON_USEDEP}]
+ dev-python/pydot[${PYTHON_USEDEP}]
+ >=dev-python/pillow-4.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pylatexenc-1.4[${PYTHON_USEDEP}]
+ >=dev-python/seaborn-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/symengine-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.3[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ >=dev-python/cython-0.27.1[${PYTHON_USEDEP}]
+ test? (
+ app-text/poppler[png]
+ >=dev-python/ddt-1.4.4[${PYTHON_USEDEP}]
+ >=dev-python/networkx-2.2[${PYTHON_USEDEP}]
+ >=dev-python/qiskit-aer-0.14[${PYTHON_USEDEP}]
+ >=dev-python/scikit-learn-0.20.0[${PYTHON_USEDEP}]
+ )
+"
+
+# Files built without CFLAGS/LDFLAGS, acceptable for rust
+QA_FLAGS_IGNORED="
+ usr/lib.*/py.*/site-packages/qiskit/_accelerate.*.so
+ usr/lib.*/py.*/site-packages/qiskit/_qasm2.*.so
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip forcing -Werror from tests that also leaks to other packages
+ sed -i -e '/filterwarnings.*error/d' test/utils/base.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/python/circuit/test_equivalence.py::TestEquivalenceLibraryVisualization::test_equivalence_draw
+ test/python/transpiler/test_unitary_synthesis_plugin.py::TestUnitarySynthesisPlugin
+ test/python/visualization/test_dag_drawer.py::TestDagDrawer::test_dag_drawer_no_register
+ # tiny image differences, sigh
+ test/python/visualization/test_gate_map.py::TestGateMap::test_plot_error_map_over_100_qubit
+ # TODO: failures from dill
+ test/python/circuit/test_parameters.py::TestParameters::test_transpiling_multiple_parameterized_circuits
+ test/python/compiler/test_transpiler.py::TestTranspile::test_delay_converts_expr_to_dt
+ test/python/compiler/test_transpiler.py::TestTranspile::test_transpile_two
+ test/python/transpiler/test_naming_transpiled_circuits.py::TestNamingTranspiledCircuits::test_multiple_circuits_name_list
+ )
+
+ local EPYTEST_IGNORE=(
+ # Breaks xdist
+ test/python/qasm2/test_parse_errors.py
+ test/python/transpiler/test_preset_passmanagers.py
+ )
+
+ rm -rf qiskit || die
+ # Run the Python test suite rather than everything under test/ which
+ # includes the 'randomized' suite. Upstream run that in a separate CI job.
+ epytest test/python
+}
diff --git a/dev-python/quart-trio/quart-trio-0.12.0.ebuild b/dev-python/quart-trio/quart-trio-0.12.0.ebuild
index e8a9a82d8444..6d7e3e09322e 100644
--- a/dev-python/quart-trio/quart-trio-0.12.0.ebuild
+++ b/dev-python/quart-trio/quart-trio-0.12.0.ebuild
@@ -16,7 +16,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="
$(python_gen_cond_dep '
diff --git a/dev-python/quart/quart-0.20.0.ebuild b/dev-python/quart/quart-0.20.0.ebuild
index 2786afc3679d..52133ce2ec91 100644
--- a/dev-python/quart/quart-0.20.0.ebuild
+++ b/dev-python/quart/quart-0.20.0.ebuild
@@ -21,7 +21,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"
RDEPEND="
dev-python/aiofiles[${PYTHON_USEDEP}]
diff --git a/dev-python/radon/radon-6.0.1-r2.ebuild b/dev-python/radon/radon-6.0.1-r2.ebuild
index a64d93f681d4..facbab545399 100644
--- a/dev-python/radon/radon-6.0.1-r2.ebuild
+++ b/dev-python/radon/radon-6.0.1-r2.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
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/colorama-0.4.1[${PYTHON_USEDEP}]
diff --git a/dev-python/rapidfuzz/rapidfuzz-3.13.0.ebuild b/dev-python/rapidfuzz/rapidfuzz-3.13.0.ebuild
index b00eeb39c879..40c9b9aaa6d2 100644
--- a/dev-python/rapidfuzz/rapidfuzz-3.13.0.ebuild
+++ b/dev-python/rapidfuzz/rapidfuzz-3.13.0.ebuild
@@ -18,7 +18,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"
# all these are header-only libraries
DEPEND="
diff --git a/dev-python/rdflib/rdflib-7.1.4.ebuild b/dev-python/rdflib/rdflib-7.1.4.ebuild
index b24a522dd038..4f30a6895d00 100644
--- a/dev-python/rdflib/rdflib-7.1.4.ebuild
+++ b/dev-python/rdflib/rdflib-7.1.4.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/re-assert/re-assert-1.1.0-r3.ebuild b/dev-python/re-assert/re-assert-1.1.0-r3.ebuild
index 311d318daed2..3b68b900ad65 100644
--- a/dev-python/re-assert/re-assert-1.1.0-r3.ebuild
+++ b/dev-python/re-assert/re-assert-1.1.0-r3.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/readme-renderer/readme-renderer-44.0.ebuild b/dev-python/readme-renderer/readme-renderer-44.0.ebuild
index 8cbccf7ea1cd..bdf76af615d4 100644
--- a/dev-python/readme-renderer/readme-renderer-44.0.ebuild
+++ b/dev-python/readme-renderer/readme-renderer-44.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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/docutils-0.21.2[${PYTHON_USEDEP}]
diff --git a/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.5.ebuild b/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.5.ebuild
index 30ace5aed263..3d438b32b24c 100644
--- a/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.5.ebuild
+++ b/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/jinja2-2.9[${PYTHON_USEDEP}]
diff --git a/dev-python/recommonmark/recommonmark-0.7.1-r1.ebuild b/dev-python/recommonmark/recommonmark-0.7.1-r1.ebuild
index 8763de87bdcf..a1cae8ca887d 100644
--- a/dev-python/recommonmark/recommonmark-0.7.1-r1.ebuild
+++ b/dev-python/recommonmark/recommonmark-0.7.1-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/commonmark-0.8.1[${PYTHON_USEDEP}]
diff --git a/dev-python/referencing/referencing-0.36.2-r1.ebuild b/dev-python/referencing/referencing-0.36.2-r1.ebuild
index d72829230a99..a2c6dffcdc66 100644
--- a/dev-python/referencing/referencing-0.36.2-r1.ebuild
+++ b/dev-python/referencing/referencing-0.36.2-r1.ebuild
@@ -16,7 +16,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/attrs-22.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index e23210381b58..b366988b575b 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -2,3 +2,4 @@ DIST regex-2024.11.6.tar.gz 399494 BLAKE2B 5b805e71d505516f1b1454d5198591c902ead
DIST regex-2025.7.31.tar.gz 407354 BLAKE2B 76ff46c4d745c6710faeb2745b7e97260c07093d697dfc26c25118d988d3cb34efdb456417296de8bc3372c2c6e55dc7bb0407a2043ca418ebd1d8cb19a80a18 SHA512 d30a07dee87612efd743eee687c158a886d19de34bcf98183ccbf0c72f911c6f6534875312c46c77506e7897894bf96b6fb42fa7309825e12ea4855045896c3a
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
diff --git a/dev-python/regex/regex-2024.11.6.ebuild b/dev-python/regex/regex-2024.11.6.ebuild
index c620c5aaf5ed..1d170ecafed6 100644
--- a/dev-python/regex/regex-2024.11.6.ebuild
+++ b/dev-python/regex/regex-2024.11.6.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/regex/regex-2025.9.1.ebuild b/dev-python/regex/regex-2025.9.1.ebuild
new file mode 100644
index 000000000000..f59db819ba31
--- /dev/null
+++ b/dev-python/regex/regex-2025.9.1.ebuild
@@ -0,0 +1,32 @@
+# 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_{11..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/reportlab/reportlab-4.4.2.ebuild b/dev-python/reportlab/reportlab-4.4.2.ebuild
index 11e062983fb4..847d9681fdba 100644
--- a/dev-python/reportlab/reportlab-4.4.2.ebuild
+++ b/dev-python/reportlab/reportlab-4.4.2.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/repoze-lru/repoze-lru-0.7-r3.ebuild b/dev-python/repoze-lru/repoze-lru-0.7-r3.ebuild
index 4da6b7907ed6..e6116cd42c14 100644
--- a/dev-python/repoze-lru/repoze-lru-0.7-r3.ebuild
+++ b/dev-python/repoze-lru/repoze-lru-0.7-r3.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="repoze"
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/requests-credssp/requests-credssp-2.0.0.ebuild b/dev-python/requests-credssp/requests-credssp-2.0.0.ebuild
index 77c6d59c7c7c..d98a4bfdf7a8 100644
--- a/dev-python/requests-credssp/requests-credssp-2.0.0.ebuild
+++ b/dev-python/requests-credssp/requests-credssp-2.0.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# 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_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
@@ -30,4 +30,5 @@ RDEPEND="
>=dev-python/requests-2.0.0[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild b/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild
index b18961fe4d17..4633f95d3e5e 100644
--- a/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild
+++ b/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# 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_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
@@ -29,10 +29,6 @@ RDEPEND="
dev-python/gssapi[${PYTHON_USEDEP}]
dev-python/krb5[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
diff --git a/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild b/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild
index 52dd1c30ac8a..ded0359a6c02 100644
--- a/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild
+++ b/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# 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_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
@@ -34,6 +34,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/requests-toolbelt/requests-toolbelt-1.0.0.ebuild b/dev-python/requests-toolbelt/requests-toolbelt-1.0.0.ebuild
index c80316374252..cddcef2bee96 100644
--- a/dev-python/requests-toolbelt/requests-toolbelt-1.0.0.ebuild
+++ b/dev-python/requests-toolbelt/requests-toolbelt-1.0.0.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${P#requests-}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/requests-unixsocket/requests-unixsocket-0.4.1.ebuild b/dev-python/requests-unixsocket/requests-unixsocket-0.4.1.ebuild
index bfca730d9399..059895da2000 100644
--- a/dev-python/requests-unixsocket/requests-unixsocket-0.4.1.ebuild
+++ b/dev-python/requests-unixsocket/requests-unixsocket-0.4.1.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
diff --git a/dev-python/requests/requests-2.32.4.ebuild b/dev-python/requests/requests-2.32.4.ebuild
index 6dc19173f27d..3231d97f46d2 100644
--- a/dev-python/requests/requests-2.32.4.ebuild
+++ b/dev-python/requests/requests-2.32.4.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="socks5 test-rust"
RDEPEND="
diff --git a/dev-python/resolvelib/resolvelib-1.1.0.ebuild b/dev-python/resolvelib/resolvelib-1.1.0.ebuild
index 2bdeeb958895..e2100dc02680 100644
--- a/dev-python/resolvelib/resolvelib-1.1.0.ebuild
+++ b/dev-python/resolvelib/resolvelib-1.1.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="ISC"
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"
BDEPEND="
test? (
diff --git a/dev-python/resolvelib/resolvelib-1.2.0.ebuild b/dev-python/resolvelib/resolvelib-1.2.0.ebuild
index 369858845b7c..0d7034efde3d 100644
--- a/dev-python/resolvelib/resolvelib-1.2.0.ebuild
+++ b/dev-python/resolvelib/resolvelib-1.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="ISC"
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"
BDEPEND="
test? (
diff --git a/dev-python/responses/responses-0.25.7.ebuild b/dev-python/responses/responses-0.25.7.ebuild
index 582f274f5cb6..f8e13027367b 100644
--- a/dev-python/responses/responses-0.25.7.ebuild
+++ b/dev-python/responses/responses-0.25.7.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# tomli backend is optional now, with pyyaml being the new default.
# However, keeping it unconditional here for backwards compatibility.
diff --git a/dev-python/retrying/retrying-1.4.1.ebuild b/dev-python/retrying/retrying-1.4.1.ebuild
index a9beb3cd6da2..bd47e51db297 100644
--- a/dev-python/retrying/retrying-1.4.1.ebuild
+++ b/dev-python/retrying/retrying-1.4.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 ~sparc x86"
EPYTEST_PLUGINS=( pytest-rerunfailures )
distutils_enable_tests pytest
diff --git a/dev-python/retrying/retrying-1.4.2.ebuild b/dev-python/retrying/retrying-1.4.2.ebuild
index 90bb01a53d0d..d0171410ddaf 100644
--- a/dev-python/retrying/retrying-1.4.2.ebuild
+++ b/dev-python/retrying/retrying-1.4.2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~s390 ~sparc x86"
# this package is very flaky
EPYTEST_RERUNS=10
diff --git a/dev-python/rfc3339-validator/rfc3339-validator-0.1.4-r1.ebuild b/dev-python/rfc3339-validator/rfc3339-validator-0.1.4-r1.ebuild
index c340b339b0da..12cc04d42cd9 100644
--- a/dev-python/rfc3339-validator/rfc3339-validator-0.1.4-r1.ebuild
+++ b/dev-python/rfc3339-validator/rfc3339-validator-0.1.4-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
diff --git a/dev-python/rfc3986-validator/rfc3986-validator-0.1.1-r2.ebuild b/dev-python/rfc3986-validator/rfc3986-validator-0.1.1-r2.ebuild
index 26869aef7c2e..2dd28742f6d0 100644
--- a/dev-python/rfc3986-validator/rfc3986-validator-0.1.1-r2.ebuild
+++ b/dev-python/rfc3986-validator/rfc3986-validator-0.1.1-r2.ebuild
@@ -16,7 +16,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"
# not a typo, it actually test-depends on rfc3987, and not rfc3986
BDEPEND="
diff --git a/dev-python/rfc3986/rfc3986-2.0.0-r1.ebuild b/dev-python/rfc3986/rfc3986-2.0.0-r1.ebuild
index b64d40505951..752db59bef7f 100644
--- a/dev-python/rfc3986/rfc3986-2.0.0-r1.ebuild
+++ b/dev-python/rfc3986/rfc3986-2.0.0-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="idna"
RDEPEND="
diff --git a/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild b/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild
index d4ebfd426b72..25984a88b42a 100644
--- a/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild
+++ b/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
# dev-python/regex doesn't support pypy. The package falls back to re and has most
# functionality without it.
diff --git a/dev-python/rich/rich-14.1.0.ebuild b/dev-python/rich/rich-14.1.0.ebuild
index 6a3105ec78b8..02f75e769c99 100644
--- a/dev-python/rich/rich-14.1.0.ebuild
+++ b/dev-python/rich/rich-14.1.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/colorama[${PYTHON_USEDEP}]
diff --git a/dev-python/roman-numerals-py/roman-numerals-py-3.1.0.ebuild b/dev-python/roman-numerals-py/roman-numerals-py-3.1.0.ebuild
index e897e80de6c2..235dc720a362 100644
--- a/dev-python/roman-numerals-py/roman-numerals-py-3.1.0.ebuild
+++ b/dev-python/roman-numerals-py/roman-numerals-py-3.1.0.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="|| ( 0BSD CC0-1.0 )"
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"
distutils_enable_tests pytest
diff --git a/dev-python/routes/routes-2.5.1-r2.ebuild b/dev-python/routes/routes-2.5.1-r2.ebuild
index b76efbca9396..8efb18f1c9dd 100644
--- a/dev-python/routes/routes-2.5.1-r2.ebuild
+++ b/dev-python/routes/routes-2.5.1-r2.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
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"
RDEPEND="
>=dev-python/repoze-lru-0.3[${PYTHON_USEDEP}]
diff --git a/dev-python/rpds-py/rpds-py-0.25.1.ebuild b/dev-python/rpds-py/rpds-py-0.25.1.ebuild
index 2db25d8cab22..223a52721c96 100644
--- a/dev-python/rpds-py/rpds-py-0.25.1.ebuild
+++ b/dev-python/rpds-py/rpds-py-0.25.1.ebuild
@@ -34,7 +34,7 @@ CRATES="
unindent@0.2.4
"
-RUST_MIN_VER="1.77.1"
+RUST_MIN_VER="1.85.0"
inherit cargo distutils-r1 pypi
@@ -51,7 +51,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT MPL-2.0 Unicode-3.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
diff --git a/dev-python/rsa/rsa-4.9.ebuild b/dev-python/rsa/rsa-4.9.ebuild
index 151a5ad6ce51..20875d519ee5 100644
--- a/dev-python/rsa/rsa-4.9.ebuild
+++ b/dev-python/rsa/rsa-4.9.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/pyasn1-0.1.3[${PYTHON_USEDEP}]
diff --git a/dev-python/rst-linker/rst-linker-2.6.0.ebuild b/dev-python/rst-linker/rst-linker-2.6.0.ebuild
index 4baee484c08a..344e68f44f17 100644
--- a/dev-python/rst-linker/rst-linker-2.6.0.ebuild
+++ b/dev-python/rst-linker/rst-linker-2.6.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/jaraco-context[${PYTHON_USEDEP}]
diff --git a/dev-python/rtslib-fb/rtslib-fb-2.1.76.ebuild b/dev-python/rtslib-fb/rtslib-fb-2.1.76.ebuild
index 4d1397b014d3..173b3cb20a62 100644
--- a/dev-python/rtslib-fb/rtslib-fb-2.1.76.ebuild
+++ b/dev-python/rtslib-fb/rtslib-fb-2.1.76.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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"
RDEPEND="
dev-python/pyudev[${PYTHON_USEDEP}]
diff --git a/dev-python/rtslib-fb/rtslib-fb-2.2.3.ebuild b/dev-python/rtslib-fb/rtslib-fb-2.2.3.ebuild
index 7944ab7209c3..916b21cb61cf 100644
--- a/dev-python/rtslib-fb/rtslib-fb-2.2.3.ebuild
+++ b/dev-python/rtslib-fb/rtslib-fb-2.2.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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"
RDEPEND="
dev-python/pyudev[${PYTHON_USEDEP}]
diff --git a/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild b/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
index a617f800735e..394d3629230b 100644
--- a/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
+++ b/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
@@ -21,7 +21,7 @@ S=${WORKDIR}/ruamel_yaml_clib
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"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
diff --git a/dev-python/ruamel-yaml/ruamel-yaml-0.18.14.ebuild b/dev-python/ruamel-yaml/ruamel-yaml-0.18.14.ebuild
index f0f2c827b878..f55e1ab446b8 100644
--- a/dev-python/ruamel-yaml/ruamel-yaml-0.18.14.ebuild
+++ b/dev-python/ruamel-yaml/ruamel-yaml-0.18.14.ebuild
@@ -20,7 +20,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"
RDEPEND="
dev-python/ruamel-yaml-clib[${PYTHON_USEDEP}]
diff --git a/dev-python/s3transfer/s3transfer-0.13.1.ebuild b/dev-python/s3transfer/s3transfer-0.13.1.ebuild
index 9aebe8bf5887..a7ef4b7a61d1 100644
--- a/dev-python/s3transfer/s3transfer-0.13.1.ebuild
+++ b/dev-python/s3transfer/s3transfer-0.13.1.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/cython-3.1.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/six/six-1.17.0.ebuild b/dev-python/six/six-1.17.0.ebuild
index 9cde8b68b37b..cf38e5940350 100644
--- a/dev-python/six/six-1.17.0.ebuild
+++ b/dev-python/six/six-1.17.0.ebuild
@@ -16,7 +16,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"
distutils_enable_sphinx documentation --no-autodoc
distutils_enable_tests pytest
diff --git a/dev-python/slixmpp/Manifest b/dev-python/slixmpp/Manifest
index 070875026463..4d9ae2ce7548 100644
--- a/dev-python/slixmpp/Manifest
+++ b/dev-python/slixmpp/Manifest
@@ -1,27 +1,45 @@
DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST cfg-if-1.0.3.crate 8719 BLAKE2B 5cd0ac122110740895b45cdf8e0f738f2de1882d5a06c696d08e906765e4ddcd72a866dcc115da52d9fece205c9ad15dc25ad98dff36b32517012a7586e986ee SHA512 afe424a191c2aaaffec3d114e0116d0324d12117aeb22df78e47ad6752444bc5acb074ab0a174476b71e584a37743f9dcc2b0e8036d590fcc5afc7c55f86122b
DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST icu_collections-1.5.0.crate 82762 BLAKE2B ab89336790ceafe62dd72f0aaef16a6eb47fa5e41424ed990e6c059ad431cdb3dcea943436aed0bf9c6eabd7aba12d255a2233fbbcf9cf5f666ef1dfd5b79a16 SHA512 127f1c91101ba69405b10a2590579606df766166fcf1fe6aa9a74c4900296425cba5c47a391a53a01b02026af5581f068fce4a7a400179809f7ed9922b94c0db
+DIST icu_collections-2.0.0.crate 83033 BLAKE2B a67f95177d820ab3b0f9d5ede716551aece974545c1fa6654e27b923c85b43fbdb9fb73bcf2dab2bf9a0d5b0bad4acd953fcb3418bc73261ef2f6e3407ab155b SHA512 646f41881cc2861504ee9753795e596b85f90f108c2d509563bb007fe52b08e9bb6dbc7b762b8ec60012ec53bd51e25a1e16f9fea2ed2c11355ae619c49c5034
+DIST icu_locale_core-2.0.0.crate 74430 BLAKE2B b01a63614fd91840cbaf00285ecfdec7f90eb9e23066a6c3b1a477574aeb8da1ba0b7f9115f8e5fde8454022cddfb54a25b2791ae33ec827f98fd1daf28a8ffc SHA512 cdebcb5e434b606da9fa24ef741a63d2cc2e6c20a2e47276aaf8923a578f6449bd319baabfd847640a65dac38858734554fc00474511d02c7145dd5d3f10e150
DIST icu_locid-1.5.0.crate 55131 BLAKE2B cde2b988f0af200b8e7851a66b8ae08881670ad6ff79c5caf5135a04c200e5ecd0acf27d8856fb0fce46d502527d506095f469c28f325b9b9d21d2a3657149be SHA512 4b85f0e7cc73166a542b2e502b3ffae1f30d2a9609ab83acf98e90b0edb37fa8ae4592f61ecf48a0ae0779fdd376abeff59e1d5cb97475012eda99ce2a97da57
DIST icu_locid_transform-1.5.0.crate 29094 BLAKE2B c7bb5c5ed273a6a97279d4599f612dccdd796f3ae717411aa5b21949721989986d8b766041b9c7e49a91cdd42a48fc965effb8d7fb6d33554926d203a6535953 SHA512 1779078e2ef9859bee2bfd5414ad7e4b0f0a40e6813f4ccf8de2bbe8c764fac7f99ef001cce22332a8b3840af22e9c7fb7cc0341cf8ba61303794ebe87071e63
DIST icu_locid_transform_data-1.5.1.crate 42937 BLAKE2B d9d1d66a556ba5383abe07c23cb96765312fe9637aeea50d030488faa9431cdeccfe42a5367d84c8fddb7a3fd2550fef106876798a1f020821ebc1cb6d32cbbc SHA512 fe5b5563248ea0c78f63b8f5fa19b7298776e0d6dca062af108e388565c932d098b98f1e7eba1469c705184684a369e9d142b3123b24451bf5084bc7b83245db
DIST icu_normalizer-1.5.0.crate 53113 BLAKE2B ccd58f24469da1f237ed9a349f0b3bdbb49b8f5b1995d6254c6e3eab53a71208ff4a0b09bdc68082cdbd288df66499efb19555f41d12a19205d724af22fb504c SHA512 22612b86a24e3ea222469392763ae9d40dcbb37191dd8b9fa1c64332463a4299a53275a1cd3deb7e0f057d137f4312d990762f9925d0ceafbc8839d67c425a13
+DIST icu_normalizer-2.0.0.crate 61543 BLAKE2B c91b1c26e0bc995ca3bc32c743a53074955079de642dba1982816218b38a175af297f3adc4cf0048c354e9bbad813aed817d124fc0bf7f95aeab5c1ea005a22d SHA512 7947a3b7132860935b1f8d77cc02be402933be7c2728b815a455bec3533f5d52f8ef02f762ef5ca3d9fa615677527326fc3dfb0cce0590da0ab44a5ae5f7c84e
DIST icu_normalizer_data-1.5.1.crate 50737 BLAKE2B 3beba44344a525220cb64bed28c1d869d2df0cd7091c92841ed08b1a82b958e61d388653ffce6dbc49781a8a157d427f7ff89f0b5a3bf874d1dd3f4461a1f00f SHA512 372ea6d0ed10bbba7392cb563997dca1601b3799c5c9ae585602629cd064461d096bbb0c624f14e43ccbeb6186d28d2d75e7f2ae98bc3a5ccbc0893b15dce7f2
+DIST icu_normalizer_data-2.0.0.crate 68101 BLAKE2B c129699813d651acc32b900d4d9fb052f352635925b13b33095ec8b66c841654bcd6d0c4cf3389c70587e31e4c1d0368c4d59e7263b8b8a366d6a544cfbee2be SHA512 20e443013977d65441366ca680c923760992ebed24171e87b62e4caf87bd2f52ef9a2a4537fbc1feaf1768a7ed1ece889b0b88449a0dbe025f6567b17996c0f5
DIST icu_properties-1.5.1.crate 64479 BLAKE2B be7d3a1663664095f4af654723ebc74f385a6423fbd3acad325ba0d6188dce9d9321eb323c1b1d8e6d75fc9aaef3d873b609d7049525d2402456c6331bcbf486 SHA512 7e347c0a02a41a3add950290bee90a339091a713546d4369c2995022e64f127f54204b0d46cbb88f396b3bccbd4cf12720a93d8551b73926f78fd5ec01829cac
+DIST icu_properties-2.0.1.crate 58165 BLAKE2B 265ffe58e96b7d3a1cbf56c3208ceb8ff73edb5dd82e719eaaff52c351c07f4a8b019bdeec52d1fb0a646d57f125d54783001545c7384ebf580521b11552bd70 SHA512 a963a6777a72ee044b33b284de95d6031dfdb56c72bfd535769d9c66d7a2cdd9e5734553f9d92708b53db46d1cc008680b6e1ea0ea1f598c2e29b025a5893bb8
DIST icu_properties_data-1.5.1.crate 229231 BLAKE2B 9bf61185e1e99f213fda4e28e0fe196e9884de0bf00783357607ee9d055d43c4303e611248b174e7cce0df3978f028d15188503160ae2b08ef9696f9dc835d35 SHA512 f37bb469d33f6a0d5126a37469783bdbd268dee081cdcaa8d18461c8bcbf91b08a75ecabe6df8c47e532838c95816778ae7aa36a22571fbba452d84fa6d63228
+DIST icu_properties_data-2.0.1.crate 159735 BLAKE2B d9b10e303614d1b380126daf43d36e858aa99740da6fd1ed416afff0f2c3b48ca49791ac5ebe098ee4c931b9d6b33b8598209b8294f54f72a5a6987be6c33f78 SHA512 f503b84491c77e2616f6b5a076acbe117832e5fd924df613389f06a6a479de1aa3d2106d1795692bc2818920c3d2d7005e1911787ae20e194a2fc11c175fa15f
DIST icu_provider-1.5.0.crate 52722 BLAKE2B b1e53ac677e2db5870df0a91de405ebbc635c3f7931960f3bd744b57350c7536116f3861d4177faed2145b79c1c957d79815fadc2dc85faa656a1f0bb338a16d SHA512 6c11d89c7d2b788a44757f02b0e298b558ebe174fe917664401d91109cdc7bd1aba5526b3cdcee1f066018de1b775bc9dfc294bdfb40476c53d552bd6f29d6a1
+DIST icu_provider-2.0.0.crate 50966 BLAKE2B 3e6f00e8c98df2a239a4c9b5c322d0ea9784b4f4401e3a62219fd5ec68a3f5f3c8714bf8c91c2a97b038956b013aacc24c55827138ac5f7b25d6807499766b0e SHA512 9353cfeacb76cfffa3132a77529c8a4cafd4fc943b0d9616d6ec80f04e67677e3cdd9369eaba1e655ecaa3af4433d82e12c1dd45dc190a4cdaeffcb2886ae6e2
DIST icu_provider_macros-1.5.0.crate 6436 BLAKE2B 7405924dca41db72ce422437434a4affece69f888e5c18d2a92f761a8d83b180f40c8de9a34ec15d0e107b63b2fe0502cebd0a0ae6f98d9d6ee37d197e754703 SHA512 a0dd58d731556a010428fe4aebbc9dbcd626b46d380cf28ba5236ec8824045a20f6f2ec986e0c1e791bc8bc2b692a10306f448279f079b4c37237e4a3c3cef63
DIST idna-1.0.3.crate 142515 BLAKE2B 6835a64772e5d301c2456a94f8f5f40ebe6828aaeb1d48e3fbe015917dc3ef95ac7cfd0e1f1763e23950482f4b46ef7987928c8dfddebab63947d5a29fb490ac SHA512 e75ab18297878df11d82bf3623b005a3dbf7a6fa38c8f78830c219adc7d6f4ac07dce24a5f1186de69035ec316421319e487396cfacb053674137342d72a4126
+DIST idna-1.1.0.crate 148747 BLAKE2B 89c6bec54cc2717741ddb5cff2939c08823189a490b79ec0e9c7acb3aa2b4fee472e33f36d7c345fb6658c863d3c174577aa1f1a10c9bba7558fca9f76b8ae82 SHA512 1d49993145fe694f33f7c71ebe62face416f2229b12690cec23ae2e4be2fc1c5aa5ad5651d815ab70057b68edc450ef6004306a775b920b8773c221c0fe6c106
DIST idna_adapter-1.2.0.crate 8206 BLAKE2B 5e8d7dbfea699584542cde53039df9d8c3dd408efa2534f11fce7086f679872c45d9905d6b2cfe523148eda3bb0cd4820a7b14317f91725f3d9cdb475aafbd57 SHA512 1d8b54c19878645749a1bae768dacf353b07d266f2cb3bfa1071a7afb56ca68f534dc1d54cae277b777bc97e5986f297cbe2051a82e14f553ea73cd723d9da7e
+DIST idna_adapter-1.2.1.crate 10389 BLAKE2B 464a9a20da73aad657cb7c0d573d92bd21159032daa8e28fbe61a980b44e59d1a2b2e076d30ca35a49abcaf1bb71ec51f774ee137792dcddc81086a1b6c2eb61 SHA512 e94555b58646c596fe64006ee6f4458962987ceedc3341a12694d809cc298c38799fb56b382adaa966e3171b1f62b7835fbb2e688251e742deb7067975bf1aba
DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
DIST jid-0.12.0.crate 28603 BLAKE2B ae0e6b4b73a08892cc93c7e11814fcdd6e2b1c8b76ce17c5c602ff1f750226b14add7d376d8362cb7b91cb7a6976796023f11aef1a93268eb5a48640bf108b4a SHA512 b41b022dd5f830b63871a60ba36842f0a9ab3582c401748116b9977585f44d866d4a23c042809e973bcf44d99a63cd921095974f0fde6fabc7f71a38e01d0f74
DIST libc-0.2.171.crate 785246 BLAKE2B 2bfbb3146d63444632b924520bc3d8af4adc6bbc38f4a7c6e8a003365430372ac1c05246684b54f0a98c36c8a7f02c325e1a6dd7fec44adeff41767e427ea77f SHA512 aca8b5f769dff18d9b3d73cae2c496f64a9828edfb0b57412da01a89158e770a5dcbb74bd83612870f9a08eb31647c1a2c92463189f16b01be8cdfc76fe0bacd
+DIST libc-0.2.175.crate 788728 BLAKE2B dfbcc891a6da7d327916883deec54dbcb0ee5e7fda0b805926f06088dbbbef0520a838c07a62ea075d6a5a035994ea8130efbbc88e08b928c13b06bc5cf75bb9 SHA512 02fa1b6e61ecec3b626f3c802b53e7f46c98558f6e8c810b46d7322c2e4825f1be87068942ac81c07a2188356c6e2b6836b0dddd784396e43ab3712a62cd17ea
DIST litemap-0.7.5.crate 29962 BLAKE2B c94ddff0b5f6fb99d6adf31ee7c953bb1bb3741e5a68cfa598c75f58f6f426a53d19423e40b0b3ae2010e1533b4d46eefeeb7e86fdfc72289748cac897ba99c9 SHA512 722345f73b4ec2e91a9407dafd3951f1aad0acfb66e0adfed8b0a83dc1ea71d513fa5570bf960ef51409c9d50aeac23f85410ec6392f5620dc1f1e1e1f884659
+DIST litemap-0.8.0.crate 34344 BLAKE2B 0f083fa9ecb78ef6de4c094db8a7cebe2ff47af6e46414c06cc0dd0e92ecca06c941dca6ea0ac1b4982f14f6027cad979fd37d19db6631e3952dffb6e33c8798 SHA512 61162bd55b28540ec2d61262698045a78efbfadc7e2fa248d9e0215fd7d3ce53a8c50ea0487f2f7df41149e41c0131849e507737e3bbae29cb69ea41dcb8e2d9
DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST memchr-2.7.5.crate 97603 BLAKE2B ee41ef722d90265064db3ffe22d52eff8f7627ac1ae9b0bad6ca9fa06c1027dca8d67e594e03b03c944dbf85930d2dbf030c5aaed369020ca1a1ba00f153d91a SHA512 2606ee16a7dc02db95dac17cebd2cac9deb2e23d7ea62972cdb19145c06eaf75631347a49c4e6ceeff89fb6e90e992f9bca0a9c955eb5130f89ba2bd865936e1
DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST once_cell-1.21.1.crate 34256 BLAKE2B f1df22fc081762f4205d0d18ac1f0bacd1528dc214453b7980d82fbae23ddb6a395e68eda838a0e8d82e411c58e9a8106ea00f3da53b82272467452efeea2388 SHA512 964ddde874d5059680229b74cfd607f558c02385da5141f12b1f1769f9843a627265cd52a95bfa7718e41103eaf67fafe8022d8e3d47338701b37bcc38c8fd71
+DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST portable-atomic-1.11.0.crate 181258 BLAKE2B 627bd7c306f6c4d7991abd9f995b7e0ce110a7ace738690c287a43ce3b979691214e525876f8ace0c2f0d10d781fba95c7d3bf29aea28e09b05b06f4764db03f SHA512 71774f8308963c5399095c6b755befdf9ff3d28f9529b4bae1fe0f2aba733339a267aa6f0ff854e59fa5044a9b0c2c86bad3bc4fcaa951724c839b0d6a22041e
+DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1
+DIST potential_utf-0.1.3.crate 9698 BLAKE2B 16efbc71ed6516cf52a361118323e26a61af776378382f1ad73121f526484c0df2e915c847ab0bc487ad1e661f839599a0e8c66faae8da9f9e589209e03c1778 SHA512 8f5de5763b073b7869c2a9e5336f0bfaeb45407cb0f4c62a16319ecdf308c8490bceb8bb7c386bfcf700d145d52d591135a288f069b4c64b06d9aaf348316a8e
+DIST proc-macro2-1.0.101.crate 53886 BLAKE2B db566c4fb6a197e0aa45cc074310853eaa24ceeafe9fb91f2014ba47cf6b1cbc34e4e9391456c946587540c8e270e1a37f5195cf03bd15ea5d4f171bba9772db SHA512 3171c807d24371da2931f9c706fb3129bb9bf3ac40418e5d14cfc372baf96e5fee9ede72091163858e3ba0b4f88594efa1031b0bb7128ca68e7b847dead6856c
DIST proc-macro2-1.0.94.crate 52391 BLAKE2B c50986bb34468379e22215c6572c2b722f54381c02258fcba6805eef0166e4bb591d20b94b9084b5d68972df8ef12476ce0d1081588cf80dad3c4ffffa347660 SHA512 3fc4552187d4130f0fdb415f94e625c156a1fdc6cc955fda8a68b49983ac8a83b897f43d1caa130c4f0932fbd9651140b7670601faa2b9b936947c3fd89f7769
DIST pyo3-0.23.5.crate 1088533 BLAKE2B 2efae0a42c1d33e25c5871e3f61a3cea9890d278a20e2777307752b544ab3a634059bba896a1df0df4eadd0ae3c2e63b6d637aecd6699b31fac4107e3a43a387 SHA512 efd3a86dd70c199304463c0ae18dbdf4d9176d1af13b664bdd05a1e218cffda3f29f06d868d0d852d51c3e85b7e07c39617206b3feddc913b3b622f3fcf59d5f
DIST pyo3-build-config-0.23.5.crate 33885 BLAKE2B 14e3897186abb772bcde147a9ebf2a70f5cbd634cb0240e1dbba71079acd2f9cd61fd263a5d32bc583e188ec84b6db8b93f018ab954ac9da66f423183ad5c176 SHA512 72aac032e3026554761eb81dc9c57591abc4d0c329c46918da13a8cc93c0532eba2fe3d971699a50890c66d8853b93a67840b0e8f1c15747d184b873dec2894a
@@ -32,13 +50,19 @@ DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4
DIST serde-1.0.219.crate 78983 BLAKE2B 7e9542a04c7f1aeff95b821245034368ff1721d98d7138bb1e0a99cdd6436dc37d69606308834fd33daaea3a1792409b3b2305b802433fa1d155816c55ca2a7d SHA512 0d3fe9a47af027d0d79499e60d940661dba6e29e8f0ce47d0db2ab722030d255aff637248af6f893a9c4224239733db09ffcdc6e1923a7177bfae55c98ebe769
DIST serde_derive-1.0.219.crate 57798 BLAKE2B 071f02019f829a2753769ce915d11df8f0d202ca67314fe83b42e1f1f3d07bc91b7e7c38fe498a0513714f80d3a3dbf2b447b1f85762de06dd021119801afa89 SHA512 1676bbf09e11273705a35c540d52d35d1bba7cdf1f347d40a364d7ae9269167f9f0f62ff4fa384aaa613c83e432a8eb3c016587ea643bb11434c00664a5c116b
DIST slixmpp-1.10.0.tar.gz 705681 BLAKE2B 3d37490ced1dbcb41959409885e6f51b7249515bfc41f45ff63d0d9e8779a7bfd707232b74cb6fb0149d7d8a02d0e65db3679b75a253edb4637783a5ef995041 SHA512 9b78197b6653a3f43a663bd842adae9af5ae24ff8496dd77800cf555813d2604178691b6f4c7b1eac4cd7eb5cd914ee8370c21c7af117e296fa47ff9487aaffb
+DIST slixmpp-1.11.0.tar.gz 710258 BLAKE2B 28b77840fd3dc90acc2bc58eb0afbf66dee571b2925f66a94e25be7fa779751302d668df5eda1ccbb41d41a41748453e38fa9fdf8d447e4ac2d795f60a1d39e8 SHA512 10302a02b48ffb92b7013aa81a0690566ec8770ae4658b3823d5cc743e04cee191094c763d941366b74215f6a43c07c61aa44a4037217457c4dab04f4e373667
DIST smallvec-1.14.0.crate 35561 BLAKE2B aa8ee61800a6d13eda5acb4e9dc03543160849479a96a72c50ab38013b23e9593a665773b455a09777038edd436d7a35b501f6d4a0e16ff49544be60345a1e50 SHA512 90de38f208f551cdbf4980fda2314dee57d4e2bbf769a01c47bc849189e9243474932052faa92fe0ca59ecc9c5d1ed84091ef87f724343d38ebbbf710ba232be
+DIST smallvec-1.15.1.crate 38116 BLAKE2B 8dd779d7726694672945e928399e0459f4973d284a6c2d664c2fc757ebb1177658f47c812d9800e982479cbd7413fd4283c64a4d248ba5cff6397f96b758676e SHA512 c26b097a063353beedfcc921129cd0fb838c1c9420218993a05b2655b47b6ec16f11e0054312018658b4abd893beee140c5d2739401a5e5aea2e64575f237047
DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
DIST stringprep-0.1.5.crate 23573 BLAKE2B 8b5ae2f278603553761e0b98a3f0a02c6a81fd117fee57a8186a015a58ce5ec8d91d9f3decb393f53e07d8df05963f399e63afa46bca937b99f609204582aa50 SHA512 f5dd6ee410e42f285b4da85e76d514ef697cd995c601b5ed23e25f702d920dcc76f15fad41610b6554b692ca0f939f329845535fe4ea167df3ea0e628b1da447
DIST syn-2.0.100.crate 297947 BLAKE2B 50a9b244732eebc16464bef152bb620d86aba590942b0d68710d36e89c0ee752629be5bb8db48866c7d252d545ab910625891a5a9b499ad9142191881eb9b42b SHA512 082a975c6448febe38abdc0b43ae929a97a303c0f980ecd2bdd6c44aa2b39ee5aeedf6b1c84316cf088e0d97aff011ec0482a5242ddb338dcf7db5d55926cf6c
+DIST syn-2.0.106.crate 301514 BLAKE2B 6b28b30ee067c23dc4bd1b38365d14c1700245c974e785173965b0822301966d642b36bdda25210d61f17a99fc71eb81e29a56c89d1649773908bae32778fb1f SHA512 e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c
DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST synstructure-0.13.2.crate 18950 BLAKE2B c475f370d901a371262f466dd98e3914dd6f36aa473a33362866c0f781d27b1813233f96b02208f3463a825e8012cab0f8872eed848d9aa0eac88b581a0d261e SHA512 2698f4e80b93f7cf1d8ae97c4c42a7f61e7b7081f7f1bbb94d7f48ab7ae813a666d73c49ba3812cda9155e0138b55cc246fb96e5858e411a8d32bafb3e2b2afb
DIST target-lexicon-0.12.16.crate 26488 BLAKE2B e7950e4a302059a1bfc9bc15618a3c1b971a17cffae117a6e8f5f63a0d82fd2bd02680301d15338612d5426d349dd24cfee30ee787a15a7d3187f2a6825e69ce SHA512 092639957c4a0391560b6442b31c47159c04d12e971010f730a6ec9cb5389e4be903ef3d7daa06db95e64dc78b6970731fb647179ebaad2b12e9ed5e9b24da27
DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25
+DIST tinystr-0.8.1.crate 23333 BLAKE2B 59bc4a522d81bc53c7acff215ec711e0f340c3884858fd4e985d655eb620d4a8b2679854e23f035bbcb6d795647fd314e26707eda564f07c05850c010db084a2 SHA512 07e32300424c9adf7e8bb830efdfcb23460b712c72c3eff11b9d00f1496c8082659bab52914cbac0bd26e45c352fcb859fc6b1cfbb2028a49cfc03e75ab0ea2a
+DIST tinyvec-1.10.0.crate 51996 BLAKE2B af3e3e415061eccdd1ba1d157e513323259d05688f8ee3d10fb3d9dc0a51bbfc9f8bdfebc2de12bcfe573196457acf60826d8eeb4b5e913b4d92c09c8891a9cb SHA512 e64ea6ce2bf8f4d2a38a00402cff2b79c06082f8a9ecfd774e7acf143b18a8116b95a8921e516f56d6519ad7bfca1d11e762328cee1e4534ea83f3f2e98eeda7
DIST tinyvec-1.9.0.crate 54137 BLAKE2B 68a96ec0ffa392586c3bdadf2323b2a3b416ecb81db5d18ae0e05187b097c7882da6678bc881e70f935554862fab5cf41ae590b27e0fab7c1c73995449b84f5f SHA512 5f42811be51c58c72b80fe9a7199250fb6176f5766dc774b39ff656ae5ebead0d9c91ed7db1046288b8e05e20edba36455e4cc6fc0766c60898187f30c232aab
DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
DIST unicode-bidi-0.3.18.crate 58300 BLAKE2B 388af09d26248f2059d251f9c2b7d949112a430b16ad5868874d436346e2e753875ae382257cf5bb1d41d6ce9f2d7a34d37d2a2e88f9cc051b85a53c3baf5ee0 SHA512 69b5f220cfe8b7b36471fb0adc7d7852a8c40c497b8a81eacd1293b72c46e09c39c2e0a7218b58f0cb62c5ced397a8eda2c5f358eacdfe5d18aba2bc14afe2bd
@@ -50,9 +74,15 @@ DIST utf16_iter-1.0.5.crate 9736 BLAKE2B edcd9776113d4d2b267a9cbd58cab11c5497ff1
DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090
DIST write16-1.0.0.crate 7218 BLAKE2B 548796314339463e4b71f8af3d344e45dc89480e103180b6d56c90fcb816ad1a37ab2ba20766c4b9754f2cc686752eb1f3a5a12ec1ed4369a9cef749ad4f3e97 SHA512 655a207b8082bb88e462f992ecb4833cef9d590da06d6356b41d109df2862b49ee5705189c78a607b549e7343035119d158020d58fcad49608e51659357a83c1
DIST writeable-0.5.5.crate 22354 BLAKE2B e4ff9862c070b413568ce0c75d1eccafcf1db8578eee4795ea9046dadd643f8a77258b437be288b93af247199d63455298ac2cff909226bc432f91c0aa863921 SHA512 818b2546c8ec25816aeaf5e31a1ded927d197bf7256e7c5073738c2709bc58a95d382a0256eb38a99235ae83729b578701261866d42ea3357a26024906e196c1
+DIST writeable-0.6.1.crate 24068 BLAKE2B c513c806d6abf7459db1a203c7b4aed4766e6f75cd82a40a874fac50cb50d03970d0500251551192164da14bd7d2341961fff78b7e01c88bab83007008c3e1b2 SHA512 686ca04702815096ac529ae6b9b80a30338f42eb5d414331992518c467c1827462673fcbbeb293818bbe570bd2723e9c60324522071c1b790c862fa6652c1385
DIST yoke-0.7.5.crate 29673 BLAKE2B cd2e42103140e080a29bf579fe5176b36a192f9b1309c1f2fd7557fe93b2f6eadbf6fca4a6a3b1a7b6288403d2f643841dfc7a5b6a4476776943950abe5c1613 SHA512 6bbd99671d1a5a5217890eaa267113d193b3636b265393afb6e72a313f01704d462fe017264f061405e8e84c188b590094c29e3fcf19a63c375ae165d1a0bbef
+DIST yoke-0.8.0.crate 28726 BLAKE2B 1013ebf0478242d9172179b53a638fcf7a167e554b40464ba67a4c4db17f75963703b2c9aba29f9368af7530f475ed79a43672bf6f0840b0d77fb0d2539f8c3d SHA512 6b6efbfd2bcb7e06fd6f9ae7bd213a54fedc7550273e2613fee3b8791bbe1038a7e7209142cc673d71fd57b7184cbb1209115ecd15c647db1a74f2966d593276
DIST yoke-derive-0.7.5.crate 7525 BLAKE2B 9b6b97eaf3c50f0f5ce8cebf685a1a17d4c21eb9b26d38eac99e0a4c0f9d592e95a7843b7a0b897945a14c4eb78ffdf2c0972b448d31d7bc7b077f27aad81d9a SHA512 e30b06b020aa283080905004295fb643c539b130d0d53bda51927b95e79ba562336aad30d8a6202d9a0c62d5b64559a01218c6f02f3faada6003d4b03c205cd6
+DIST yoke-derive-0.8.0.crate 7521 BLAKE2B 088fc7f5954704c453dbd2abd2a9a5a779552067aec8e51793cb6fb8144f0bee7a7b04d777bbd05c1c62f49c9c75c7f3df09b5497d35eb64c079bc04867e42f2 SHA512 38672da30ebb9657e2b5f3d509940ea80ee6cfbdad61b14b84ee8a7d96c1dc597eff7f3c75e5c375bcdcf8ef5bebe21f9f520844f448ca215a3be19763f578c3
DIST zerofrom-0.1.6.crate 5669 BLAKE2B 1428e9cfdcdae13b39b7465524d1b8b79bdd89f743d3db4a3305c2b39d61ad7ced958dabd673a135147a04c8ace69d8c710dc06c6a07b1dd3987fc0a45148094 SHA512 e87c50b4f87caff70d026099bddcced73398c432f6aade32d74ad199cb3a985956bac282f48efdd501e64e80297afe4f8a4518db32437bf297fcf51a6f94bbd9
DIST zerofrom-derive-0.1.6.crate 8305 BLAKE2B 9ab7425b450bf8c47538be7ff32901045393bdd91b9687b8a32ac194b7272dbd4f5310629647c6710f97a50cea45c722c018a77006f24da2b44a4c475daa54cb SHA512 ef4226df3c9ca9c0146639b19d9aa611f2ea3148c10ea875f43ca1960ee8ed438a553b078a9b449a58862f44cb7d4434fa35bbd6db6f0a773618f63d2575c985
+DIST zerotrie-0.2.2.crate 74423 BLAKE2B ddbf7c1a1e45fd4b3c44bd7036e46070a2d9fbb338de719c2c775dfa96ed11d06e14232f05eec4b5c9ac500ed4e7abd8a483dcd06a6a60ba20e6b6b6fa7333ff SHA512 72b6e9633f100172b5e8ef25dce004ea1eb14e110b9189d91faf19f63f8a7714325c2847df559b7ade1f0b2c54369c63fb9745946c4976750a28853790328ee8
DIST zerovec-0.10.4.crate 126398 BLAKE2B b078784d6f178bbb9de1c3c1b6c7ef996f00bdd7dfd2924bda921e62f3e09e953fbf50f8d0da99ac6ff6d134f146253846f5663549dcf8df08eaf34b9d4016b3 SHA512 db12bba1d7476ddead92e6dfcdcc30e2e0defff4f263a740244eabee265a2cab265473a663d3dc3210f48e113b66d951da496dfab7965ce1bc792e5f2db422a0
+DIST zerovec-0.11.4.crate 125080 BLAKE2B 67957532912716a8fe7b5468effc8af700251acfedad13e4874229ce91a2450026a2a336b542cc1239f62a71da997e406c49f85f4f8c7019a9228997d8a31750 SHA512 461ac55146b32f323dff50f85044040096369361bd23e341d729467e99b5c825ec0add8fa940bf0c17cd4990fd7e629268891a711d5b49348167c0a9d6c03e31
DIST zerovec-derive-0.10.3.crate 19438 BLAKE2B 9f7df8a4e4a0b62ab25aed967b26509db4bcc5d5b10b3bd73305099a4c49a60be8921484ced1a34d9b7ae30ffa5abe789686f432416a8f1cfc07de1db1dff594 SHA512 caefbffeb35265db9f74933bf07109d57f0da48156cafd4f330af78a5c7eb9ab0831a80789ad4fb119875ebc6cfd7e3de68c9984b77dca5151f9be41f1ae6e09
+DIST zerovec-derive-0.11.1.crate 21294 BLAKE2B cb51fbd289868568f65ca7253059c1c2c94a8130a2a9879b2a0129faf5867e13ff675cfc9b359793629d955a1b39617c6fce9079398a54ae31670ec29eab6ef1 SHA512 5836035134bdf09a4a8cdd5a18f629696902704903c4b3579ddf1adfa49ab47a68287ecf2be165d631ba454daf150c043410359783bf1ce448e7ca46b8cb6039
diff --git a/dev-python/slixmpp/slixmpp-1.11.0.ebuild b/dev-python/slixmpp/slixmpp-1.11.0.ebuild
new file mode 100644
index 000000000000..92894993505a
--- /dev/null
+++ b/dev-python/slixmpp/slixmpp-1.11.0.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+RUST_MIN_VER="1.82"
+CRATES="
+ autocfg@1.5.0
+ cfg-if@1.0.3
+ displaydoc@0.2.5
+ heck@0.5.0
+ icu_collections@2.0.0
+ icu_locale_core@2.0.0
+ icu_normalizer@2.0.0
+ icu_normalizer_data@2.0.0
+ icu_properties@2.0.1
+ icu_properties_data@2.0.1
+ icu_provider@2.0.0
+ idna@1.1.0
+ idna_adapter@1.2.1
+ indoc@2.0.6
+ jid@0.12.0
+ libc@0.2.175
+ litemap@0.8.0
+ memchr@2.7.5
+ memoffset@0.9.1
+ once_cell@1.21.3
+ portable-atomic@1.11.1
+ potential_utf@0.1.3
+ proc-macro2@1.0.101
+ pyo3-build-config@0.23.5
+ pyo3-ffi@0.23.5
+ pyo3-macros-backend@0.23.5
+ pyo3-macros@0.23.5
+ pyo3@0.23.5
+ quote@1.0.40
+ serde@1.0.219
+ serde_derive@1.0.219
+ smallvec@1.15.1
+ stable_deref_trait@1.2.0
+ stringprep@0.1.5
+ syn@2.0.106
+ synstructure@0.13.2
+ target-lexicon@0.12.16
+ tinystr@0.8.1
+ tinyvec@1.10.0
+ tinyvec_macros@0.1.1
+ unicode-bidi@0.3.18
+ unicode-ident@1.0.18
+ unicode-normalization@0.1.24
+ unicode-properties@0.1.3
+ unindent@0.2.4
+ utf8_iter@1.0.4
+ writeable@0.6.1
+ yoke-derive@0.8.0
+ yoke@0.8.0
+ zerofrom-derive@0.1.6
+ zerofrom@0.1.6
+ zerotrie@0.2.2
+ zerovec-derive@0.11.1
+ zerovec@0.11.4
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Python 3 library for XMPP"
+HOMEPAGE="
+ https://codeberg.org/poezio/slixmpp/
+ https://pypi.org/project/slixmpp/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT MPL-2.0 Unicode-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+
+RDEPEND="
+ >=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ dev-python/emoji[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.4.1[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.6.1[${PYTHON_USEDEP}]
+"
+
+# Rust
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/slixmpp/jid.*.so"
+
+distutils_enable_tests unittest
+
+python_test() {
+ rm -rf slixmpp || die
+ eunittest -s tests
+}
diff --git a/dev-python/slixmpp/slixmpp-9999.ebuild b/dev-python/slixmpp/slixmpp-9999.ebuild
deleted file mode 100644
index 429af7d14f21..000000000000
--- a/dev-python/slixmpp/slixmpp-9999.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python 3 library for XMPP"
-HOMEPAGE="
- https://codeberg.org/poezio/slixmpp/
- https://pypi.org/project/slixmpp/
-"
-LICENSE="MIT"
-SLOT="0"
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_REPO_URI="https://codeberg.org/poezio/slixmpp.git"
- inherit git-r3
-else
- inherit pypi
- KEYWORDS="amd64 ~riscv"
-fi
-
-DEPEND="
- net-dns/libidn:=
-"
-RDEPEND="
- dev-python/aiodns[${PYTHON_USEDEP}]
- dev-python/aiohttp[${PYTHON_USEDEP}]
- dev-python/cryptography[${PYTHON_USEDEP}]
- dev-python/defusedxml[${PYTHON_USEDEP}]
- dev-python/pyasn1-modules[${PYTHON_USEDEP}]
- dev-python/pyasn1[${PYTHON_USEDEP}]
- ${DEPEND}
- $(python_gen_cond_dep '
- >=dev-lang/python-3.12.1_p1:3.12
- ' python3_12)
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-python_test() {
- rm -rf slixmpp || die
- eunittest -s tests
-}
diff --git a/dev-python/smartypants/smartypants-2.0.1-r1.ebuild b/dev-python/smartypants/smartypants-2.0.1-r1.ebuild
index d5c6020d8a7f..24a54e95b7de 100644
--- a/dev-python/smartypants/smartypants-2.0.1-r1.ebuild
+++ b/dev-python/smartypants/smartypants-2.0.1-r1.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_sphinx docs
distutils_enable_tests unittest
diff --git a/dev-python/smmap/smmap-6.0.0.ebuild b/dev-python/smmap/smmap-6.0.0.ebuild
index 45f170677798..af6350811dbf 100644
--- a/dev-python/smmap/smmap-6.0.0.ebuild
+++ b/dev-python/smmap/smmap-6.0.0.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
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"
distutils_enable_tests unittest
diff --git a/dev-python/snakeoil/snakeoil-0.10.10.ebuild b/dev-python/snakeoil/snakeoil-0.10.10.ebuild
index 5ae9812f354f..7062ec584926 100644
--- a/dev-python/snakeoil/snakeoil-0.10.10.ebuild
+++ b/dev-python/snakeoil/snakeoil-0.10.10.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]] ; then
https://github.com/pkgcore/snakeoil.git"
inherit git-r3
else
- 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"
inherit pypi
fi
diff --git a/dev-python/snakeoil/snakeoil-0.10.11.ebuild b/dev-python/snakeoil/snakeoil-0.10.11.ebuild
index 08fd3fbb838f..d067b8bbbb80 100644
--- a/dev-python/snakeoil/snakeoil-0.10.11.ebuild
+++ b/dev-python/snakeoil/snakeoil-0.10.11.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]] ; then
https://github.com/pkgcore/snakeoil.git"
inherit git-r3
else
- 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"
inherit pypi
fi
diff --git a/dev-python/sniffio/sniffio-1.3.1.ebuild b/dev-python/sniffio/sniffio-1.3.1.ebuild
index e941129609f5..0310a4bcc151 100644
--- a/dev-python/sniffio/sniffio-1.3.1.ebuild
+++ b/dev-python/sniffio/sniffio-1.3.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="|| ( Apache-2.0 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"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild b/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild
index 4be6477b437b..413c93b7aebf 100644
--- a/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild
+++ b/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild
@@ -16,4 +16,4 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
diff --git a/dev-python/socksio/socksio-1.0.0.ebuild b/dev-python/socksio/socksio-1.0.0.ebuild
index 8ff3e0074d1e..3c34f572b21f 100644
--- a/dev-python/socksio/socksio-1.0.0.ebuild
+++ b/dev-python/socksio/socksio-1.0.0.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"
distutils_enable_tests pytest
diff --git a/dev-python/sortedcontainers/sortedcontainers-2.4.0-r1.ebuild b/dev-python/sortedcontainers/sortedcontainers-2.4.0-r1.ebuild
index a62d5b87dae3..20aff059975b 100644
--- a/dev-python/sortedcontainers/sortedcontainers-2.4.0-r1.ebuild
+++ b/dev-python/sortedcontainers/sortedcontainers-2.4.0-r1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/soupsieve/soupsieve-2.7.ebuild b/dev-python/soupsieve/soupsieve-2.7.ebuild
index 9131964c3713..9bee9fdf3d3b 100644
--- a/dev-python/soupsieve/soupsieve-2.7.ebuild
+++ b/dev-python/soupsieve/soupsieve-2.7.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
BDEPEND="
test? (
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.0.1.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.0.1.ebuild
index f486ae23ebac..26e94f144019 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.0.1.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/sphinx-8.1.3[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.1.0.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.1.0.ebuild
index cc44cc36ce65..b81f098a22b6 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.1.0.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.1.0.ebuild
@@ -16,7 +16,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/sphinx-8.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.2.0.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.2.0.ebuild
index 761e32b46724..a351521393c9 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.2.0.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/sphinx-8.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild b/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild
index 0c9e669e03b0..39586d6c7c27 100644
--- a/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild
+++ b/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.8.1.ebuild b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.8.1.ebuild
index f4085455f56f..f4d6053aa643 100644
--- a/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.8.1.ebuild
+++ b/dev-python/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.8.1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/sphinx-epytext/sphinx-epytext-0.0.4-r2.ebuild b/dev-python/sphinx-epytext/sphinx-epytext-0.0.4-r2.ebuild
index da33908ae93c..d75853971684 100644
--- a/dev-python/sphinx-epytext/sphinx-epytext-0.0.4-r2.ebuild
+++ b/dev-python/sphinx-epytext/sphinx-epytext-0.0.4-r2.ebuild
@@ -14,6 +14,6 @@ HOMEPAGE="https://pypi.org/project/sphinx-epytext/ https://github.com/jayvdb/sph
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"
RDEPEND=">=dev-python/sphinx-1.7.5[${PYTHON_USEDEP}]"
diff --git a/dev-python/sphinx-issues/sphinx-issues-5.0.1.ebuild b/dev-python/sphinx-issues/sphinx-issues-5.0.1.ebuild
index 7f844aa5601a..2e6f3fdd79ad 100644
--- a/dev-python/sphinx-issues/sphinx-issues-5.0.1.ebuild
+++ b/dev-python/sphinx-issues/sphinx-issues-5.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild b/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild
index df757e73c944..fcf9e0a84003 100644
--- a/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild
+++ b/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild
@@ -16,4 +16,4 @@ HOMEPAGE="
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
diff --git a/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild b/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild
index a163a2e9f96d..20f7aab7c128 100644
--- a/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild
+++ b/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-prompt/sphinx-prompt-1.10.0.ebuild b/dev-python/sphinx-prompt/sphinx-prompt-1.10.0.ebuild
index a326038fbe35..36166b25acbf 100644
--- a/dev-python/sphinx-prompt/sphinx-prompt-1.10.0.ebuild
+++ b/dev-python/sphinx-prompt/sphinx-prompt-1.10.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-pytest/sphinx-pytest-0.2.0.ebuild b/dev-python/sphinx-pytest/sphinx-pytest-0.2.0.ebuild
index d625385e9497..fe9ec38b087a 100644
--- a/dev-python/sphinx-pytest/sphinx-pytest-0.2.0.ebuild
+++ b/dev-python/sphinx-pytest/sphinx-pytest-0.2.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/pytest[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-rtd-theme/sphinx-rtd-theme-3.0.2.ebuild b/dev-python/sphinx-rtd-theme/sphinx-rtd-theme-3.0.2.ebuild
index afa5ef1cd00f..9fe3735bdc74 100644
--- a/dev-python/sphinx-rtd-theme/sphinx-rtd-theme-3.0.2.ebuild
+++ b/dev-python/sphinx-rtd-theme/sphinx-rtd-theme-3.0.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/docutils-0.18[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-tabs/sphinx-tabs-3.4.7.ebuild b/dev-python/sphinx-tabs/sphinx-tabs-3.4.7.ebuild
index 0a85d752437c..8e75dd874ec4 100644
--- a/dev-python/sphinx-tabs/sphinx-tabs-3.4.7.ebuild
+++ b/dev-python/sphinx-tabs/sphinx-tabs-3.4.7.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/docutils[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx/files/sphinx-8.2.3-metadata-docutils-0.22.patch b/dev-python/sphinx/files/sphinx-8.2.3-metadata-docutils-0.22.patch
new file mode 100644
index 000000000000..7f3ec4b6cd29
--- /dev/null
+++ b/dev-python/sphinx/files/sphinx-8.2.3-metadata-docutils-0.22.patch
@@ -0,0 +1,27 @@
+From 5d3bb2e3b7c47e4ecd540c657018f16b961c821b Mon Sep 17 00:00:00 2001
+From: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
+Date: Tue, 29 Jul 2025 19:44:31 +0200
+Subject: [PATCH] Support Docutils 0.22 (#13786)
+
+---
+ CHANGES.rst | 4 ++++
+ doc/changes/7.3.rst | 2 +-
+ pyproject.toml | 2 +-
+ sphinx/transforms/__init__.py | 2 +-
+ sphinx/transforms/references.py | 2 +-
+ tests/test_markup/test_markup.py | 2 +-
+ 6 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 75ae0f71a9d..d915f293f3b 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -76,7 +76,7 @@ dependencies = [
+ "sphinxcontrib-serializinghtml>=1.1.9",
+ "Jinja2>=3.1",
+ "Pygments>=2.17",
+- "docutils>=0.20,<0.22",
++ "docutils>=0.20,<0.23",
+ "snowballstemmer>=2.2",
+ "babel>=2.13",
+ "alabaster>=0.7.14",
diff --git a/dev-python/sphinx/sphinx-8.1.3.ebuild b/dev-python/sphinx/sphinx-8.1.3.ebuild
index f4bc80ad0587..f942057f4955 100644
--- a/dev-python/sphinx/sphinx-8.1.3.ebuild
+++ b/dev-python/sphinx/sphinx-8.1.3.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD-2"
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="doc latex"
RDEPEND="
diff --git a/dev-python/sphinx/sphinx-8.2.3-r1.ebuild b/dev-python/sphinx/sphinx-8.2.3-r1.ebuild
deleted file mode 100644
index c418387ceb99..000000000000
--- a/dev-python/sphinx/sphinx-8.2.3-r1.ebuild
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1
-
-MY_P=${P/_}
-DESCRIPTION="Python documentation generator"
-HOMEPAGE="
- https://www.sphinx-doc.org/
- https://github.com/sphinx-doc/sphinx/
- https://pypi.org/project/Sphinx/
-"
-SRC_URI="
- https://github.com/sphinx-doc/sphinx/archive/v${PV/_}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="doc latex"
-
-RDEPEND="
- >=dev-python/alabaster-0.7.14[${PYTHON_USEDEP}]
- >=dev-python/babel-2.13[${PYTHON_USEDEP}]
- =dev-python/docutils-0.20[${PYTHON_USEDEP}]
- >=dev-python/imagesize-1.3[${PYTHON_USEDEP}]
- >=dev-python/jinja2-3.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-23.0[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.14[${PYTHON_USEDEP}]
- >=dev-python/requests-2.30.0[${PYTHON_USEDEP}]
- >=dev-python/roman-numerals-py-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/snowballstemmer-2.2[${PYTHON_USEDEP}]
- >=dev-python/sphinxcontrib-applehelp-1.0.7[${PYTHON_USEDEP}]
- >=dev-python/sphinxcontrib-devhelp-1.0.6[${PYTHON_USEDEP}]
- >=dev-python/sphinxcontrib-htmlhelp-2.0.6[${PYTHON_USEDEP}]
- >=dev-python/sphinxcontrib-jsmath-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/sphinxcontrib-qthelp-1.0.6[${PYTHON_USEDEP}]
- >=dev-python/sphinxcontrib-serializinghtml-1.1.9[${PYTHON_USEDEP}]
- latex? (
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-luatex
- app-text/dvipng
- )
-"
-BDEPEND="
- >=dev-python/flit-core-3.11
- doc? (
- dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}]
- media-gfx/graphviz
- )
- test? (
- app-text/dvipng
- >=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- >=dev-python/setuptools-67.0[${PYTHON_USEDEP}]
- dev-texlive/texlive-fontsextra
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-luatex
- virtual/imagemagick-tools[jpeg,png,svg]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/sphinx-3.2.1-doc-link.patch"
- "${FILESDIR}/${P}-fix-python3.14.patch" # patch collection, merged upstream
- # https://github.com/sphinx-doc/sphinx/pull/13610
- # test assumptions for docutils 0.22
- "${FILESDIR}"/${P}-testfix-docutils-0.22.patch
-)
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # disable internet access
- sed -i -e 's:^intersphinx_mapping:disabled_&:' \
- doc/conf.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_compile_all() {
- # we can't use distutils_enable_sphinx because it would
- # introduce a dep on itself
- use doc && build_sphinx doc
-}
-
-python_test() {
- mkdir -p "${BUILD_DIR}/sphinx_tempdir" || die
- local -x SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir"
-
- local EPYTEST_DESELECT=(
- # less interesting failures
- tests/test_builders/test_build_latex.py::test_build_latex_doc
- tests/test_extensions/test_ext_math.py::test_imgmath_png
- tests/test_extensions/test_ext_math.py::test_imgmath_numfig_html
- )
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # TODO
- tests/test_util/test_util_inspect.py::test_is_classmethod_descriptor
- tests/test_util/test_util_inspect.py::test_is_builtin_classmethod_like
- # minor repr() differences
- tests/test_util/test_util_typing.py::test_restify
- tests/test_util/test_util_typing.py::test_stringify_annotation
- tests/test_util/test_util_typing.py::test_stringify_type_union_operator
- # from pypy3 era
- tests/test_extensions/test_ext_autodoc.py::test_autodoc_exception
- tests/test_extensions/test_ext_autodoc.py::test_autodoc_ignore_module_all
- tests/test_extensions/test_ext_autodoc.py::test_autodoc_inherited_members_None
- tests/test_extensions/test_ext_autodoc.py::test_autodoc_subclass_of_builtin_class
- tests/test_extensions/test_ext_autodoc.py::test_automethod_for_builtin
- tests/test_extensions/test_ext_autodoc.py::test_cython
- tests/test_extensions/test_ext_autodoc.py::test_format_signature
- tests/test_extensions/test_ext_autodoc.py::test_partialfunction
- tests/test_extensions/test_ext_autodoc_autoclass.py::test_autodoc_process_bases
- tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_decendants_of_generic_type
- tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_subclass_of_generic_type
- tests/test_extensions/test_ext_autodoc_autofunction.py::test_builtin_function
- tests/test_extensions/test_ext_autodoc_autofunction.py::test_methoddescriptor
- tests/test_extensions/test_ext_autodoc_automodule.py::test_automodule_inherited_members
- tests/test_extensions/test_ext_autodoc_preserve_defaults.py::test_preserve_defaults_special_constructs
- tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module
- tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module_skipped
- tests/test_util/test_util_inspect.py::test_isattributedescriptor
- tests/test_util/test_util_inspect.py::test_signature
- tests/test_util/test_util_typing.py::test_is_invalid_builtin_class
- )
- ;;
- esac
-
- # note: pytest-xdist causes random test failures
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p rerunfailures --reruns=5
-}
diff --git a/dev-python/sphinx/sphinx-8.2.3-r2.ebuild b/dev-python/sphinx/sphinx-8.2.3-r2.ebuild
new file mode 100644
index 000000000000..b0878b64c3a9
--- /dev/null
+++ b/dev-python/sphinx/sphinx-8.2.3-r2.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="Python documentation generator"
+HOMEPAGE="
+ https://www.sphinx-doc.org/
+ https://github.com/sphinx-doc/sphinx/
+ https://pypi.org/project/Sphinx/
+"
+SRC_URI="
+ https://github.com/sphinx-doc/sphinx/archive/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="doc latex"
+
+RDEPEND="
+ >=dev-python/alabaster-0.7.14[${PYTHON_USEDEP}]
+ >=dev-python/babel-2.13[${PYTHON_USEDEP}]
+ =dev-python/docutils-0.20[${PYTHON_USEDEP}]
+ >=dev-python/imagesize-1.3[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.30.0[${PYTHON_USEDEP}]
+ >=dev-python/roman-numerals-py-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/snowballstemmer-2.2[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-applehelp-1.0.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-devhelp-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-htmlhelp-2.0.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-jsmath-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-qthelp-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-serializinghtml-1.1.9[${PYTHON_USEDEP}]
+ latex? (
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ app-text/dvipng
+ )
+"
+BDEPEND="
+ >=dev-python/flit-core-3.11
+ doc? (
+ dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}]
+ media-gfx/graphviz
+ )
+ test? (
+ app-text/dvipng
+ >=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.0[${PYTHON_USEDEP}]
+ dev-texlive/texlive-fontsextra
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ virtual/imagemagick-tools[jpeg,png,svg]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/sphinx-3.2.1-doc-link.patch"
+ "${FILESDIR}/${P}-fix-python3.14.patch" # patch collection, merged upstream
+ # https://github.com/sphinx-doc/sphinx/pull/13610
+ # test assumptions for docutils 0.22
+ "${FILESDIR}"/${P}-testfix-docutils-0.22.patch
+ "${FILESDIR}"/${P}-metadata-docutils-0.22.patch
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # disable internet access
+ sed -i -e 's:^intersphinx_mapping:disabled_&:' \
+ doc/conf.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # we can't use distutils_enable_sphinx because it would
+ # introduce a dep on itself
+ use doc && build_sphinx doc
+}
+
+python_test() {
+ mkdir -p "${BUILD_DIR}/sphinx_tempdir" || die
+ local -x SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir"
+
+ local EPYTEST_DESELECT=(
+ # less interesting failures
+ tests/test_builders/test_build_latex.py::test_build_latex_doc
+ tests/test_extensions/test_ext_math.py::test_imgmath_png
+ tests/test_extensions/test_ext_math.py::test_imgmath_numfig_html
+ )
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_util/test_util_inspect.py::test_is_classmethod_descriptor
+ tests/test_util/test_util_inspect.py::test_is_builtin_classmethod_like
+ # minor repr() differences
+ tests/test_util/test_util_typing.py::test_restify
+ tests/test_util/test_util_typing.py::test_stringify_annotation
+ tests/test_util/test_util_typing.py::test_stringify_type_union_operator
+ # from pypy3 era
+ tests/test_extensions/test_ext_autodoc.py::test_autodoc_exception
+ tests/test_extensions/test_ext_autodoc.py::test_autodoc_ignore_module_all
+ tests/test_extensions/test_ext_autodoc.py::test_autodoc_inherited_members_None
+ tests/test_extensions/test_ext_autodoc.py::test_autodoc_subclass_of_builtin_class
+ tests/test_extensions/test_ext_autodoc.py::test_automethod_for_builtin
+ tests/test_extensions/test_ext_autodoc.py::test_cython
+ tests/test_extensions/test_ext_autodoc.py::test_format_signature
+ tests/test_extensions/test_ext_autodoc.py::test_partialfunction
+ tests/test_extensions/test_ext_autodoc_autoclass.py::test_autodoc_process_bases
+ tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_decendants_of_generic_type
+ tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_subclass_of_generic_type
+ tests/test_extensions/test_ext_autodoc_autofunction.py::test_builtin_function
+ tests/test_extensions/test_ext_autodoc_autofunction.py::test_methoddescriptor
+ tests/test_extensions/test_ext_autodoc_automodule.py::test_automodule_inherited_members
+ tests/test_extensions/test_ext_autodoc_preserve_defaults.py::test_preserve_defaults_special_constructs
+ tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module
+ tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module_skipped
+ tests/test_util/test_util_inspect.py::test_isattributedescriptor
+ tests/test_util/test_util_inspect.py::test_signature
+ tests/test_util/test_util_typing.py::test_is_invalid_builtin_class
+ )
+ ;;
+ esac
+
+ # note: pytest-xdist causes random test failures
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p rerunfailures --reruns=5
+}
diff --git a/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0-r1.ebuild b/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0-r1.ebuild
index 6cb99e8c584b..df9e9dcf6c8a 100644
--- a/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0-r1.ebuild
+++ b/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0.ebuild b/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0.ebuild
index 6cb99e8c584b..df9e9dcf6c8a 100644
--- a/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0.ebuild
+++ b/dev-python/sphinxcontrib-applehelp/sphinxcontrib-applehelp-2.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0-r1.ebuild b/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0-r1.ebuild
index 0e8bd26f719f..084b56b91f2d 100644
--- a/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0-r1.ebuild
+++ b/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0.ebuild b/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0.ebuild
index 0e8bd26f719f..084b56b91f2d 100644
--- a/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0.ebuild
+++ b/dev-python/sphinxcontrib-devhelp/sphinxcontrib-devhelp-2.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-github-alt/sphinxcontrib-github-alt-1.2-r3.ebuild b/dev-python/sphinxcontrib-github-alt/sphinxcontrib-github-alt-1.2-r3.ebuild
index 32938ea8521a..47da9d557204 100644
--- a/dev-python/sphinxcontrib-github-alt/sphinxcontrib-github-alt-1.2-r3.ebuild
+++ b/dev-python/sphinxcontrib-github-alt/sphinxcontrib-github-alt-1.2-r3.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0-r1.ebuild b/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0-r1.ebuild
index 1db2b22e96ab..9461ab873c07 100644
--- a/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0-r1.ebuild
+++ b/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0.ebuild b/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0.ebuild
index 1db2b22e96ab..9461ab873c07 100644
--- a/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0.ebuild
+++ b/dev-python/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.8.1.ebuild b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.8.1.ebuild
index d6c7fd2c0dad..b24542eaed4e 100644
--- a/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.8.1.ebuild
+++ b/dev-python/sphinxcontrib-httpdomain/sphinxcontrib-httpdomain-1.8.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,7 +21,7 @@ S="${WORKDIR}/httpdomain-${PV}"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-jquery/sphinxcontrib-jquery-4.1.ebuild b/dev-python/sphinxcontrib-jquery/sphinxcontrib-jquery-4.1.ebuild
index 02801c043723..83769c04c41f 100644
--- a/dev-python/sphinxcontrib-jquery/sphinxcontrib-jquery-4.1.ebuild
+++ b/dev-python/sphinxcontrib-jquery/sphinxcontrib-jquery-4.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
# MIT for jQuery
LICENSE="0BSD 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"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r3.ebuild b/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r3.ebuild
index aa8f617ab965..0fd5e9b153d0 100644
--- a/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r3.ebuild
+++ b/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r4.ebuild b/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r4.ebuild
index aa8f617ab965..0fd5e9b153d0 100644
--- a/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r4.ebuild
+++ b/dev-python/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1-r4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-log-cabinet/sphinxcontrib-log-cabinet-1.0.1-r1.ebuild b/dev-python/sphinxcontrib-log-cabinet/sphinxcontrib-log-cabinet-1.0.1-r1.ebuild
index 7429d08ea8fd..86e94137312b 100644
--- a/dev-python/sphinxcontrib-log-cabinet/sphinxcontrib-log-cabinet-1.0.1-r1.ebuild
+++ b/dev-python/sphinxcontrib-log-cabinet/sphinxcontrib-log-cabinet-1.0.1-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
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"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-plantuml/Manifest b/dev-python/sphinxcontrib-plantuml/Manifest
index 513b43ec0e5b..96ac2b838a0b 100644
--- a/dev-python/sphinxcontrib-plantuml/Manifest
+++ b/dev-python/sphinxcontrib-plantuml/Manifest
@@ -1,2 +1,3 @@
DIST sphinxcontrib-plantuml-0.30-fix-tests-python-3.13.patch 1033 BLAKE2B d1dc69918c4b0171d060e43863993fc23dea995f102fdd889b0face66587558b4fa4a02662026d8ce166be0f92cc63b8419ae0bb2d5586b98d840fe3fe2776cf SHA512 ca134e5d2e73b28e3f6e77ac46b12d869312601af4ef7e0f9e0ada30c9d26fa1e976693f286bd3613c8b07fee152abccf889066139c35df25892addf8bc3b759
DIST sphinxcontrib-plantuml-0.30.gh.tar.gz 19378 BLAKE2B 1f146b59184acec99ff4320199943b2193c3e4c5f5d1f62c6741fb9bbd9802d7c3955bfad786bf7dd4b937b99b974f94d753212c95e7940ab066a9d6ee02af9a SHA512 e85c6332d26d09531c961f8026c72cd82ff4a31700a38cb8285f24d942340700012c08cc1f87a86389b71bfc5d32164586407b5c6777cc94d4d0022c9872ee3a
+DIST sphinxcontrib-plantuml-0.31.gh.tar.gz 19729 BLAKE2B ef24e807dd29a34719ef13201fc1e250351f85879c606eb3c3b850b5556be06453c9f9bba30488f4a9bb69def7e75b26ae800a9a52422aa85607ce7598700f67 SHA512 3c58a3c70fe78d8c0c8be8f3255ea534fb8fe689e3b020da8d1c96ca2b0aafb870762e7e77e405b7c82b4bcad9c6dfb828f3562de09c6a9740afef1a2cc24345
diff --git a/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.31.ebuild b/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.31.ebuild
new file mode 100644
index 000000000000..a9e2522483ba
--- /dev/null
+++ b/dev-python/sphinxcontrib-plantuml/sphinxcontrib-plantuml-0.31.ebuild
@@ -0,0 +1,47 @@
+# 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_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Sphinx extensions for PlantUML"
+HOMEPAGE="
+ https://github.com/sphinx-contrib/plantuml/
+ https://pypi.org/project/sphinxcontrib-plantuml/
+"
+SRC_URI="
+ https://github.com/sphinx-contrib/plantuml/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ https://github.com/sphinx-contrib/plantuml/commit/27ece3637c0ec5fa91cacf511349e290a1440ba9.patch
+ -> ${PN}-0.30-fix-tests-python-3.13.patch
+"
+S="${WORKDIR}/${P#sphinxcontrib-}"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+BDEPEND="
+ test? (
+ app-text/texlive
+ dev-python/sphinxcontrib-applehelp[${PYTHON_USEDEP}]
+ dev-tex/latexmk
+ dev-texlive/texlive-fontutils
+ dev-texlive/texlive-latexextra
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ # Fix for sphinx.errors.ExtensionError: Could not import extension sphinxcontrib.applehelp
+ # See https://projects.gentoo.org/python/guide/test.html#importerrors-for-c-extensions, thanks to mgorny.
+ rm -rf sphinxcontrib || die
+
+ epytest
+}
diff --git a/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.18.ebuild b/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.18.ebuild
index fb8972331872..1b3afcbe8bc7 100644
--- a/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.18.ebuild
+++ b/dev-python/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.18.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0-r1.ebuild b/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0-r1.ebuild
index 6d48f484c5fe..aa3901939ccd 100644
--- a/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0-r1.ebuild
+++ b/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0.ebuild b/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0.ebuild
index 6d48f484c5fe..aa3901939ccd 100644
--- a/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0.ebuild
+++ b/dev-python/sphinxcontrib-qthelp/sphinxcontrib-qthelp-2.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0-r1.ebuild b/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0-r1.ebuild
index 5e5ad9cfc96d..83ae78c063e0 100644
--- a/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0-r1.ebuild
+++ b/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0.ebuild b/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0.ebuild
index 5e5ad9cfc96d..83ae78c063e0 100644
--- a/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0.ebuild
+++ b/dev-python/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-2.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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"
PDEPEND="
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-spelling/sphinxcontrib-spelling-8.0.1.ebuild b/dev-python/sphinxcontrib-spelling/sphinxcontrib-spelling-8.0.1.ebuild
index 0d5b5d8e0d07..27100a4b7742 100644
--- a/dev-python/sphinxcontrib-spelling/sphinxcontrib-spelling-8.0.1.ebuild
+++ b/dev-python/sphinxcontrib-spelling/sphinxcontrib-spelling-8.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/pyenchant-3.1.1[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-trio/sphinxcontrib-trio-1.1.2-r1.ebuild b/dev-python/sphinxcontrib-trio/sphinxcontrib-trio-1.1.2-r1.ebuild
index 78775711f63f..7d50cb83f551 100644
--- a/dev-python/sphinxcontrib-trio/sphinxcontrib-trio-1.1.2-r1.ebuild
+++ b/dev-python/sphinxcontrib-trio/sphinxcontrib-trio-1.1.2-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/sphinx[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7-r1.ebuild b/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7-r1.ebuild
index 64610ae76618..564ea88682a8 100644
--- a/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7-r1.ebuild
+++ b/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-solaris"
RDEPEND="
dev-python/jinja2[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7.ebuild b/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7.ebuild
index 64610ae76618..564ea88682a8 100644
--- a/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7.ebuild
+++ b/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-1.2.7.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-solaris"
RDEPEND="
dev-python/jinja2[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild b/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild
index ffa371a929fe..a5e0b26e7fe3 100644
--- a/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild
+++ b/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/sphinx-5.0[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinxygen/sphinxygen-1.0.10.ebuild b/dev-python/sphinxygen/sphinxygen-1.0.10.ebuild
index 5f33478864f4..3360fb9297bd 100644
--- a/dev-python/sphinxygen/sphinxygen-1.0.10.ebuild
+++ b/dev-python/sphinxygen/sphinxygen-1.0.10.ebuild
@@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-v${PV}"
LICENSE="ISC"
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"
RDEPEND="
app-text/doxygen
diff --git a/dev-python/sphobjinv/sphobjinv-2.3.1.3.ebuild b/dev-python/sphobjinv/sphobjinv-2.3.1.3.ebuild
index 1f237d1ac598..63c6d3db934f 100644
--- a/dev-python/sphobjinv/sphobjinv-2.3.1.3.ebuild
+++ b/dev-python/sphobjinv/sphobjinv-2.3.1.3.ebuild
@@ -20,7 +20,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"
RDEPEND="
>=dev-python/attrs-19.2[${PYTHON_USEDEP}]
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.4.54.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.4.54.ebuild
index 1cee1f15071e..3f89f24298cf 100644
--- a/dev-python/sqlalchemy/sqlalchemy-1.4.54.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-1.4.54.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
@@ -20,7 +20,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="examples +sqlite test"
BDEPEND="
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.40.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.40.ebuild
index e60b198dff26..57a9c069e5ae 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.40.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.40.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~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="examples +sqlite test"
RDEPEND="
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.41.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.41.ebuild
index 5de4d6d546c7..57c4f856a6f1 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.41.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.41.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~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="examples +sqlite test"
RDEPEND="
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 0d6a3e2534a0..da5102c54d0b 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,4 +1,5 @@
DIST sqlglot-26.33.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d
DIST sqlglot-26.33.0.tar.gz 5353340 BLAKE2B 18ace866ec89ced24911803497e8cb5c55fc6c157bf62b893e90df914b8be3360403ffff67f196080cdef9b9b9078b86d471494ae9768e7947a8b4d5d39e49af SHA512 df38e899d59bdd07aca0e5370833133308f9c5be4d0c990bf8112a48776fae034b622938aba968769aa5dc5e2957d56da48c89045b91b2d33783e6e25acc4a7b
DIST sqlglot-27.10.0.tar.gz 5437988 BLAKE2B 600a9bbb94f7fae9bdb0cd8e2e01ffa8d4dd0a113ccd1123bc92b65094d41bf98cb405647fe28ecff63a72401ae10d1a12ef489f063efa7c0aa22f68d754656f SHA512 b6e4eb2c28549c417e8311298d862887205dbcb0e2ff58621988ec904a5e02b6420c69bd5ac8399576207ad799764a2880d09910e42102fef7c21f19a0d8bd89
-DIST sqlglot-27.9.0.tar.gz 5430361 BLAKE2B a64bcdf6c71389694010f6b380418a313f238043e157589cd9479626f8a920bd0d0ff5f8b998353d55ad0ae563d1df37d7b639e094e70abf3640d3401fb4e211 SHA512 c510ffea3f18b1776ddf606a84799cbc63fdb77ee267c9cfd481cf0ad0f971916cadabce5f9cd356c7dc99bbaf8f3468bf903b3ca058e9a18e6e012904d97427
+DIST sqlglot-27.11.0.tar.gz 5443357 BLAKE2B 6af93c7efd402e1ed94fc52d74503945b99e832196d2edd3eb5ee315a7c8ec31d4c3380d5270b78ac8ea54959f4b6dabbad2794d05e78d90588d99195190cc17 SHA512 58ca620725c253f1f917ff468f797d9afb68186b987dc3770c1a78d8a4d59f3d0453a26239e4f0080214316fd1abbb21653c3795a7099f515dae366ab5c4e951
+DIST sqlglot-27.12.0.tar.gz 5450508 BLAKE2B f7eb5b9aebed247f9896cf7e2afe0aa217a2db9c0f25c0527a31769e8921446e6ced1fd7a233fb95db162ade7fb2840404bb31e3197cff62a1b0b6e45c047bcb SHA512 95e6e161b0b586d28ce4ee3470f09b06fef996600b9d6f200fdc5d5a0e844b30166be0efd28fc9cc2f447547d3b53ecbb618e9bd3fe7420f2ba06354135b6c20
diff --git a/dev-python/sqlglot/sqlglot-27.11.0.ebuild b/dev-python/sqlglot/sqlglot-27.11.0.ebuild
new file mode 100644
index 000000000000..9a517e6a4e70
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-27.11.0.ebuild
@@ -0,0 +1,175 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@1.1.3
+ anes@0.1.6
+ anstyle@1.0.10
+ autocfg@1.1.0
+ bumpalo@3.16.0
+ cast@0.3.0
+ cfg-if@1.0.0
+ ciborium-io@0.2.2
+ ciborium-ll@0.2.2
+ ciborium@0.2.2
+ clap@4.5.23
+ clap_builder@4.5.23
+ clap_lex@0.7.4
+ criterion-plot@0.5.0
+ criterion@0.5.1
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crunchy@0.2.2
+ either@1.13.0
+ half@2.4.1
+ heck@0.5.0
+ hermit-abi@0.4.0
+ indoc@2.0.4
+ is-terminal@0.4.13
+ itertools@0.10.5
+ itoa@1.0.14
+ js-sys@0.3.76
+ libc@0.2.169
+ log@0.4.22
+ memchr@2.7.4
+ memoffset@0.9.0
+ num-traits@0.2.19
+ once_cell@1.19.0
+ oorandom@11.1.4
+ plotters-backend@0.3.7
+ plotters-svg@0.3.7
+ plotters@0.3.7
+ portable-atomic@1.9.0
+ proc-macro2@1.0.89
+ pyo3-build-config@0.25.0
+ pyo3-ffi@0.25.0
+ pyo3-macros-backend@0.25.0
+ pyo3-macros@0.25.0
+ pyo3@0.25.0
+ quote@1.0.37
+ rayon-core@1.12.1
+ rayon@1.10.0
+ regex-automata@0.4.9
+ regex-syntax@0.8.5
+ regex@1.11.1
+ rustc-hash@2.1.0
+ ryu@1.0.18
+ same-file@1.0.6
+ serde@1.0.216
+ serde_derive@1.0.216
+ serde_json@1.0.133
+ syn@2.0.87
+ target-lexicon@0.13.2
+ tinytemplate@1.2.1
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ walkdir@2.5.0
+ wasm-bindgen-backend@0.2.99
+ wasm-bindgen-macro-support@0.2.99
+ wasm-bindgen-macro@0.2.99
+ wasm-bindgen-shared@0.2.99
+ wasm-bindgen@0.2.99
+ web-sys@0.3.76
+ winapi-util@0.1.9
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+"
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+CRATE_PV=26.33.0
+
+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
+ local DISTUTILS_UPSTREAM_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/sqlglot/sqlglot-27.12.0.ebuild b/dev-python/sqlglot/sqlglot-27.12.0.ebuild
new file mode 100644
index 000000000000..9a517e6a4e70
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-27.12.0.ebuild
@@ -0,0 +1,175 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@1.1.3
+ anes@0.1.6
+ anstyle@1.0.10
+ autocfg@1.1.0
+ bumpalo@3.16.0
+ cast@0.3.0
+ cfg-if@1.0.0
+ ciborium-io@0.2.2
+ ciborium-ll@0.2.2
+ ciborium@0.2.2
+ clap@4.5.23
+ clap_builder@4.5.23
+ clap_lex@0.7.4
+ criterion-plot@0.5.0
+ criterion@0.5.1
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crunchy@0.2.2
+ either@1.13.0
+ half@2.4.1
+ heck@0.5.0
+ hermit-abi@0.4.0
+ indoc@2.0.4
+ is-terminal@0.4.13
+ itertools@0.10.5
+ itoa@1.0.14
+ js-sys@0.3.76
+ libc@0.2.169
+ log@0.4.22
+ memchr@2.7.4
+ memoffset@0.9.0
+ num-traits@0.2.19
+ once_cell@1.19.0
+ oorandom@11.1.4
+ plotters-backend@0.3.7
+ plotters-svg@0.3.7
+ plotters@0.3.7
+ portable-atomic@1.9.0
+ proc-macro2@1.0.89
+ pyo3-build-config@0.25.0
+ pyo3-ffi@0.25.0
+ pyo3-macros-backend@0.25.0
+ pyo3-macros@0.25.0
+ pyo3@0.25.0
+ quote@1.0.37
+ rayon-core@1.12.1
+ rayon@1.10.0
+ regex-automata@0.4.9
+ regex-syntax@0.8.5
+ regex@1.11.1
+ rustc-hash@2.1.0
+ ryu@1.0.18
+ same-file@1.0.6
+ serde@1.0.216
+ serde_derive@1.0.216
+ serde_json@1.0.133
+ syn@2.0.87
+ target-lexicon@0.13.2
+ tinytemplate@1.2.1
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ walkdir@2.5.0
+ wasm-bindgen-backend@0.2.99
+ wasm-bindgen-macro-support@0.2.99
+ wasm-bindgen-macro@0.2.99
+ wasm-bindgen-shared@0.2.99
+ wasm-bindgen@0.2.99
+ web-sys@0.3.76
+ winapi-util@0.1.9
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+"
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+CRATE_PV=26.33.0
+
+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
+ local DISTUTILS_UPSTREAM_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/sqlglot/sqlglot-27.9.0.ebuild b/dev-python/sqlglot/sqlglot-27.9.0.ebuild
deleted file mode 100644
index dd19ceb9d941..000000000000
--- a/dev-python/sqlglot/sqlglot-27.9.0.ebuild
+++ /dev/null
@@ -1,180 +0,0 @@
-# Copyright 2023-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- aho-corasick@1.1.3
- anes@0.1.6
- anstyle@1.0.10
- autocfg@1.1.0
- bumpalo@3.16.0
- cast@0.3.0
- cfg-if@1.0.0
- ciborium-io@0.2.2
- ciborium-ll@0.2.2
- ciborium@0.2.2
- clap@4.5.23
- clap_builder@4.5.23
- clap_lex@0.7.4
- criterion-plot@0.5.0
- criterion@0.5.1
- crossbeam-deque@0.8.6
- crossbeam-epoch@0.9.18
- crossbeam-utils@0.8.21
- crunchy@0.2.2
- either@1.13.0
- half@2.4.1
- heck@0.5.0
- hermit-abi@0.4.0
- indoc@2.0.4
- is-terminal@0.4.13
- itertools@0.10.5
- itoa@1.0.14
- js-sys@0.3.76
- libc@0.2.169
- log@0.4.22
- memchr@2.7.4
- memoffset@0.9.0
- num-traits@0.2.19
- once_cell@1.19.0
- oorandom@11.1.4
- plotters-backend@0.3.7
- plotters-svg@0.3.7
- plotters@0.3.7
- portable-atomic@1.9.0
- proc-macro2@1.0.89
- pyo3-build-config@0.25.0
- pyo3-ffi@0.25.0
- pyo3-macros-backend@0.25.0
- pyo3-macros@0.25.0
- pyo3@0.25.0
- quote@1.0.37
- rayon-core@1.12.1
- rayon@1.10.0
- regex-automata@0.4.9
- regex-syntax@0.8.5
- regex@1.11.1
- rustc-hash@2.1.0
- ryu@1.0.18
- same-file@1.0.6
- serde@1.0.216
- serde_derive@1.0.216
- serde_json@1.0.133
- syn@2.0.87
- target-lexicon@0.13.2
- tinytemplate@1.2.1
- unicode-ident@1.0.12
- unindent@0.2.3
- walkdir@2.5.0
- wasm-bindgen-backend@0.2.99
- wasm-bindgen-macro-support@0.2.99
- wasm-bindgen-macro@0.2.99
- wasm-bindgen-shared@0.2.99
- wasm-bindgen@0.2.99
- web-sys@0.3.76
- winapi-util@0.1.9
- windows-sys@0.52.0
- windows-sys@0.59.0
- windows-targets@0.52.6
- windows_aarch64_gnullvm@0.52.6
- windows_aarch64_msvc@0.52.6
- windows_i686_gnu@0.52.6
- windows_i686_gnullvm@0.52.6
- windows_i686_msvc@0.52.6
- windows_x86_64_gnu@0.52.6
- windows_x86_64_gnullvm@0.52.6
- windows_x86_64_msvc@0.52.6
-"
-
-CARGO_OPTIONAL=1
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
-CRATE_PV=26.33.0
-
-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
- local DISTUTILS_UPSTREAM_PEP517=maturin
- cd sqlglotrs || die
- distutils-r1_python_compile
- cd - >/dev/null || die
- fi
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # timing, sigh
- # https://github.com/tobymao/sqlglot/issues/3961
- tests/test_generator.py::TestGenerator::test_generate_nested_binary
- )
- 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/sqlparse/sqlparse-0.5.3.ebuild b/dev-python/sqlparse/sqlparse-0.5.3.ebuild
index 5f8d3a89bf4b..c4d5a166f091 100644
--- a/dev-python/sqlparse/sqlparse-0.5.3.ebuild
+++ b/dev-python/sqlparse/sqlparse-0.5.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_sphinx docs/source
distutils_enable_tests pytest
diff --git a/dev-python/stack-data/stack-data-0.6.3.ebuild b/dev-python/stack-data/stack-data-0.6.3.ebuild
index c87717c3ac0b..abdadf3e9c51 100644
--- a/dev-python/stack-data/stack-data-0.6.3.ebuild
+++ b/dev-python/stack-data/stack-data-0.6.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/asttokens-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/starlette/starlette-0.47.2.ebuild b/dev-python/starlette/starlette-0.47.2.ebuild
index afc0b7b13be0..8b2f6a069e91 100644
--- a/dev-python/starlette/starlette-0.47.2.ebuild
+++ b/dev-python/starlette/starlette-0.47.2.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="
${P}.py.tar.gz"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/terminado/terminado-0.18.1.ebuild b/dev-python/terminado/terminado-0.18.1.ebuild
index 1945afa3e2b0..e52a2753d92c 100644
--- a/dev-python/terminado/terminado-0.18.1.ebuild
+++ b/dev-python/terminado/terminado-0.18.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
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/ptyprocess[${PYTHON_USEDEP}]
diff --git a/dev-python/test/test-0.ebuild b/dev-python/test/test-0.ebuild
index 01327d8cf95f..392391d30c6b 100644
--- a/dev-python/test/test-0.ebuild
+++ b/dev-python/test/test-0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://docs.python.org/3/library/test.html"
LICENSE="metapackage"
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"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
diff --git a/dev-python/testfixtures/testfixtures-9.1.0.ebuild b/dev-python/testfixtures/testfixtures-9.1.0.ebuild
index 9fb8137ae3b7..eca4be28b5c7 100644
--- a/dev-python/testfixtures/testfixtures-9.1.0.ebuild
+++ b/dev-python/testfixtures/testfixtures-9.1.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
BDEPEND="
test? (
diff --git a/dev-python/testpath/testpath-0.6.0.ebuild b/dev-python/testpath/testpath-0.6.0.ebuild
index 9a7f1d1e42c5..3a20914be70a 100644
--- a/dev-python/testpath/testpath-0.6.0.ebuild
+++ b/dev-python/testpath/testpath-0.6.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
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"
distutils_enable_tests pytest
distutils_enable_sphinx doc
diff --git a/dev-python/testresources/testresources-2.0.2.ebuild b/dev-python/testresources/testresources-2.0.2.ebuild
index cbd793a9235f..f0f2fb4fe0a9 100644
--- a/dev-python/testresources/testresources-2.0.2.ebuild
+++ b/dev-python/testresources/testresources-2.0.2.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/pbr[${PYTHON_USEDEP}]
diff --git a/dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild b/dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild
index 1a273f38b73a..37f689223cec 100644
--- a/dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild
+++ b/dev-python/testscenarios/testscenarios-0.5.0-r3.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
RDEPEND="
dev-python/testtools[${PYTHON_USEDEP}]
diff --git a/dev-python/testtools/testtools-2.7.2-r1.ebuild b/dev-python/testtools/testtools-2.7.2-r1.ebuild
index 472a3408bccf..fe429ee291b2 100644
--- a/dev-python/testtools/testtools-2.7.2-r1.ebuild
+++ b/dev-python/testtools/testtools-2.7.2-r1.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/textile/textile-4.0.3-r1.ebuild b/dev-python/textile/textile-4.0.3-r1.ebuild
index 9a99d65afa20..d4280059e9cc 100644
--- a/dev-python/textile/textile-4.0.3-r1.ebuild
+++ b/dev-python/textile/textile-4.0.3-r1.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ppc ppc64 ~riscv sparc x86"
+KEYWORDS="amd64 arm64 ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/nh3[${PYTHON_USEDEP}]
diff --git a/dev-python/time-machine/time-machine-2.16.0.ebuild b/dev-python/time-machine/time-machine-2.16.0.ebuild
index 0340b914d817..48dc72807eb5 100644
--- a/dev-python/time-machine/time-machine-2.16.0.ebuild
+++ b/dev-python/time-machine/time-machine-2.16.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
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"
RDEPEND="
dev-python/python-dateutil[${PYTHON_USEDEP}]
diff --git a/dev-python/timeout-decorator/timeout-decorator-0.5.0-r1.ebuild b/dev-python/timeout-decorator/timeout-decorator-0.5.0-r1.ebuild
index c054c3faedad..9406cf742b2d 100644
--- a/dev-python/timeout-decorator/timeout-decorator-0.5.0-r1.ebuild
+++ b/dev-python/timeout-decorator/timeout-decorator-0.5.0-r1.ebuild
@@ -24,6 +24,6 @@ S=${WORKDIR}/${MY_P}
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"
distutils_enable_tests pytest
diff --git a/dev-python/tiny-proxy/tiny-proxy-0.2.1.ebuild b/dev-python/tiny-proxy/tiny-proxy-0.2.1.ebuild
index 0f4bc49cec7d..08b7a59f38c9 100644
--- a/dev-python/tiny-proxy/tiny-proxy-0.2.1.ebuild
+++ b/dev-python/tiny-proxy/tiny-proxy-0.2.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
=[0-9.]*::' pyproject.toml || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- # devpi_process is not packaged, and has lots of dependencies
- cat > "${T}"/devpi_process.py <<-EOF || die
- def IndexServer(*args, **kwargs): raise NotImplementedError()
- EOF
-
- local -x PYTHONPATH=${T}:${PYTHONPATH}
- local EPYTEST_DESELECT=(
- # Internet
- tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
- tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
- )
- local EPYTEST_IGNORE=(
- # requires devpi*
- tests/test_provision.py
- )
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
- )
- ;;
- python3.13)
- EPYTEST_DESELECT+=(
- # https://github.com/tox-dev/tox/issues/3290
- 'tests/config/loader/test_str_convert.py::test_str_convert_ok_py39[1,2-value1-Optional]'
- )
- ;;
- esac
-
- epytest
-}
diff --git a/dev-python/tox/tox-4.28.3.ebuild b/dev-python/tox/tox-4.28.3.ebuild
index 37db9528b396..1075397a1c27 100644
--- a/dev-python/tox/tox-4.28.3.ebuild
+++ b/dev-python/tox/tox-4.28.3.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/tox/tox-4.30.1.ebuild b/dev-python/tox/tox-4.30.1.ebuild
new file mode 100644
index 000000000000..cba3047518a2
--- /dev/null
+++ b/dev-python/tox/tox-4.30.1.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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,xdist} )
+# xdist seems to mess up state between successive implementation runs
+distutils_enable_tests pytest
+
+src_prepare() {
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
+ tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ case ${EPYTHON} in
+ python*)
+ local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine )
+ ;;
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+ ;;
+ esac
+
+ epytest -o addopts=
+}
diff --git a/dev-python/tox/tox-4.30.2.ebuild b/dev-python/tox/tox-4.30.2.ebuild
new file mode 100644
index 000000000000..cba3047518a2
--- /dev/null
+++ b/dev-python/tox/tox-4.30.2.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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,xdist} )
+# xdist seems to mess up state between successive implementation runs
+distutils_enable_tests pytest
+
+src_prepare() {
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
+ tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ case ${EPYTHON} in
+ python*)
+ local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine )
+ ;;
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+ ;;
+ esac
+
+ epytest -o addopts=
+}
diff --git a/dev-python/tqdm/tqdm-4.67.1.ebuild b/dev-python/tqdm/tqdm-4.67.1.ebuild
index e07e4af6179e..d8837b7cf702 100644
--- a/dev-python/tqdm/tqdm-4.67.1.ebuild
+++ b/dev-python/tqdm/tqdm-4.67.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples"
BDEPEND="
diff --git a/dev-python/traitlets/traitlets-5.14.3.ebuild b/dev-python/traitlets/traitlets-5.14.3.ebuild
index d7bba4acac03..8bdbd09243e7 100644
--- a/dev-python/traitlets/traitlets-5.14.3.ebuild
+++ b/dev-python/traitlets/traitlets-5.14.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
BDEPEND="
test? (
diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest
index 4f142a292579..f6e7fa9e603a 100644
--- a/dev-python/translate-toolkit/Manifest
+++ b/dev-python/translate-toolkit/Manifest
@@ -1 +1,2 @@
DIST translate-3.15.6.gh.tar.gz 1176856 BLAKE2B 4d23c254f89b84098f0e97dd6ba726129cedda3fc7bf7fad6d3171b5e66817bbf07025d8d1c2f8e7a5d643903ddc13668909fd06888fbd6fa152c83734be8791 SHA512 7881c6aba835003efb67ab0cf1f1420d1d4928d62fa04a6f15a49f49a5bb4d42eadbc3ae9b7dbe3ecbd756333a054c41f1f0fd45d9f6aedba609931233b691b1
+DIST translate-3.16.0.gh.tar.gz 1180120 BLAKE2B 11b173dc2990f14f5c83b55ddd05bf1ca660542ccac9cc234a13f443882f5c62fff80383a1200fc589c22fb34cc18feffb38165bf0127b3e29c750cf76462e30 SHA512 e4a556bc901edf8e1c86351ba28865a9063efd4b138a0f227d35301a4f0cc4b356a2aa04a4faa9d111c12a322fedff1b124b1b24db649f4c8e5a98b0ded96e69
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.16.0.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.16.0.ebuild
new file mode 100644
index 000000000000..6a327edeacb4
--- /dev/null
+++ b/dev-python/translate-toolkit/translate-toolkit-3.16.0.ebuild
@@ -0,0 +1,127 @@
+# 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_{11..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+MY_P=translate-${PV}
+DESCRIPTION="Toolkit to convert between many translation formats"
+HOMEPAGE="
+ https://github.com/translate/translate/
+ https://pypi.org/project/translate-toolkit/
+"
+SRC_URI="
+ https://github.com/translate/translate/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+html +ical +ini +subtitles +yaml"
+
+RDEPEND="
+ app-text/iso-codes
+ >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}]
+ dev-python/cheroot[${PYTHON_USEDEP}]
+ >=dev-python/levenshtein-0.12.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mistletoe-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ >=dev-python/cwcwidth-0.1.9[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ html? ( dev-python/utidylib[${PYTHON_USEDEP}] )
+ ical? ( dev-python/vobject[${PYTHON_USEDEP}] )
+ ini? ( >=dev-python/iniparse-0.5[${PYTHON_USEDEP}] )
+ subtitles? ( media-video/gaupol[${PYTHON_USEDEP}] )
+ yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+"
+# Technically, the test suite also has undeclared dependency
+# on dev-python/snapshottest but all the tests using it are broken
+# anyway, so we skip them.
+BDEPEND="
+ test? (
+ dev-python/phply[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip unnecessary pins
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+}
+
+src_test() {
+ # unfortunately, this bad quality package doesn't support XDG_DATA_DIRS
+ # correctly, so we need to reassemble all data files in a single directory
+ local -x XDG_DATA_HOME=${T}/share
+ cp -r translate/share "${T}/" || die
+ cp -r "${ESYSROOT}"/usr/share/gaupol "${XDG_DATA_HOME}"/ || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Fails with network-sandbox (and even with it off but w/ softer fail)
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff'
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff'
+ # all tests based on snapshottest are broken and I'm too tired
+ # to figure this out
+ tests/translate/tools/test_pocount.py::test_{cases,output}
+ tests/translate/tools/test_junitmsgfmt.py::test_output
+ )
+ local EPYTEST_IGNORE=(
+ # unpackaged fluent.*
+ tests/translate/storage/test_fluent.py
+ # changes directory and does not change it back, sigh
+ tests/odf_xliff/test_odf_xliff.py
+ )
+
+ if ! has_version "dev-python/iniparse[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ translate/convert/test_ini2po.py
+ translate/convert/test_po2ini.py
+ )
+ fi
+
+ if ! has_version "media-video/gaupol[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ translate/storage/test_subtitles.py
+ )
+ fi
+
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr
+ doins -r translate/share
+
+ if ! use html; then
+ rm "${ED}"/usr/bin/{html2po,po2html} || die
+ fi
+ if ! use ical; then
+ rm "${ED}"/usr/bin/{ical2po,po2ical} || die
+ fi
+ if ! use ini; then
+ rm "${ED}"/usr/bin/{ini2po,po2ini} || die
+ fi
+ if ! use subtitles; then
+ rm "${ED}"/usr/bin/{sub2po,po2sub} || die
+ fi
+}
diff --git a/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild b/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild
index 6d2556939c53..2703502c19b6 100644
--- a/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild
+++ b/dev-python/tree-sitter/tree-sitter-0.23.0-r1.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
@@ -22,7 +22,7 @@ S=${WORKDIR}/py-${P}
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"
# setuptools is needed for distutils import
DEPEND="
diff --git a/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild b/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild
index ede91ce99634..cb93f117c0da 100644
--- a/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild
+++ b/dev-python/tree-sitter/tree-sitter-0.23.1-r1.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/py-${P}
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"
# setuptools is needed for distutils import
DEPEND=" ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pycollada[${PYTHON_USEDEP}]
+ dev-python/pyglet[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
+ dev-python/svg-path[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/xxhash[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # requires manifold3d
+ tests/test_boolean.py::test_multiple_difference
+ # timing nonsense
+ tests/test_bounds.py::BoundsTest::test_obb_mesh_large
+)
+EPYTEST_IGNORE=(
+ # require pyinstrument
+ tests/test_sweep.py
+)
+
+EPYTEST_PLUGINS=()
+: ${EPYTEST_TIMEOUT:=1800}
+EPYTEST_XDIST=1
+
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature_header "${PN} functionality can be extended by installing the following packages:"
+ optfeature "making GUI applications with 3D stuff" dev-python/glooey
+ optfeature "2D triangulations of polygons" dev-python/mapbox-earcut
+ optfeature "loading a number of additional mesh formats" dev-python/meshio
+ optfeature "figuring out how much memory we have" dev-python/psutil
+ optfeature "marching cubes and other nice stuff" dev-python/scikit-image
+}
diff --git a/dev-python/trimesh/trimesh-4.8.1.ebuild b/dev-python/trimesh/trimesh-4.8.1.ebuild
new file mode 100644
index 000000000000..7ffba0c82ba1
--- /dev/null
+++ b/dev-python/trimesh/trimesh-4.8.1.ebuild
@@ -0,0 +1,77 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for loading and using triangular meshes"
+HOMEPAGE="
+ https://trimesh.org/
+ https://github.com/mikedh/trimesh/
+ https://pypi.org/project/trimesh/
+"
+SRC_URI="
+ https://github.com/mikedh/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pycollada[${PYTHON_USEDEP}]
+ dev-python/pyglet[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
+ dev-python/svg-path[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/xxhash[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # requires manifold3d
+ tests/test_boolean.py::test_multiple_difference
+ # timing nonsense
+ tests/test_bounds.py::BoundsTest::test_obb_mesh_large
+)
+EPYTEST_IGNORE=(
+ # require pyinstrument
+ tests/test_sweep.py
+)
+
+EPYTEST_PLUGINS=()
+: ${EPYTEST_TIMEOUT:=300}
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature_header "${PN} functionality can be extended by installing the following packages:"
+ optfeature "making GUI applications with 3D stuff" dev-python/glooey
+ optfeature "2D triangulations of polygons" dev-python/mapbox-earcut
+ optfeature "loading a number of additional mesh formats" dev-python/meshio
+ optfeature "figuring out how much memory we have" dev-python/psutil
+ optfeature "marching cubes and other nice stuff" dev-python/scikit-image
+}
diff --git a/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild b/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild
index 1c65a49d5106..8221d289997c 100644
--- a/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild
+++ b/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild
@@ -20,7 +20,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"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/trio/trio-0.30.0.ebuild b/dev-python/trio/trio-0.30.0.ebuild
index 692eb39e699d..ac8d4c659aa6 100644
--- a/dev-python/trio/trio-0.30.0.ebuild
+++ b/dev-python/trio/trio-0.30.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.5.9.12.ebuild b/dev-python/trove-classifiers/trove-classifiers-2025.5.9.12.ebuild
index 85ec99e9e268..b48e176ebe4e 100644
--- a/dev-python/trove-classifiers/trove-classifiers-2025.5.9.12.ebuild
+++ b/dev-python/trove-classifiers/trove-classifiers-2025.5.9.12.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 ~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"
distutils_enable_tests pytest
diff --git a/dev-python/trustme/trustme-1.2.1.ebuild b/dev-python/trustme/trustme-1.2.1.ebuild
index c4029a78a137..4b70339ab91d 100644
--- a/dev-python/trustme/trustme-1.2.1.ebuild
+++ b/dev-python/trustme/trustme-1.2.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
>=dev-python/cryptography-3.1[${PYTHON_USEDEP}]
diff --git a/dev-python/truststore/truststore-0.10.1.ebuild b/dev-python/truststore/truststore-0.10.1.ebuild
index 4174216abf46..12768b1016dd 100644
--- a/dev-python/truststore/truststore-0.10.1.ebuild
+++ b/dev-python/truststore/truststore-0.10.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
# The vast majority of tests require Internet access.
PROPERTIES="test_network"
RESTRICT="test"
diff --git a/dev-python/truststore/truststore-0.10.4.ebuild b/dev-python/truststore/truststore-0.10.4.ebuild
index 4174216abf46..12768b1016dd 100644
--- a/dev-python/truststore/truststore-0.10.4.ebuild
+++ b/dev-python/truststore/truststore-0.10.4.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
# The vast majority of tests require Internet access.
PROPERTIES="test_network"
RESTRICT="test"
diff --git a/dev-python/twine/Manifest b/dev-python/twine/Manifest
index dfb924bb4b5a..a1a2fda1dc87 100644
--- a/dev-python/twine/Manifest
+++ b/dev-python/twine/Manifest
@@ -1,2 +1,3 @@
DIST twine-6.0.1.gh.tar.gz 223827 BLAKE2B ab88eb21908954ee7c32744ae9f7ccd7d50cb2b5207917144ef559e142837c89625596dea2c1bb0be21858bb0967690df999bb8a123e01beb5637a025dc490f9 SHA512 4fa7727d0728da3e05eaca068bf1dd85656225dd61958666ec0747359ee6bd88b25fd443d6c77bd8db245e71418cf8e5b594a6559ac1ecaafe3c079ecaefadba
DIST twine-6.1.0.gh.tar.gz 163562 BLAKE2B c1fa279f62c5c6c5dfdc59120a9d80776d69527fec69356358963956ce7e1f76f05b432eaef3586c52a4150ce2893975cff252361740a7ce24b2917379c212f8 SHA512 d8235561f13eaaee7607b4b50dd70fdb67b9a9863a7d69fa2d173d8625cb3c44c8adccb27c5fe2203b3c1db7f36a685cc9da7f847aac3d5a3622b8e7125dd2b8
+DIST twine-6.2.0.gh.tar.gz 167087 BLAKE2B 51c95da17fee1336bc94b0847035c0a6e115915696b8a127fb21f8e75c4a8090af221cacd6196279a9352c607a8b643500a6260963f2bc9e6f570b318626d4f6 SHA512 3637b9b6644678a9573ba93d5f2b90b5660f8df126f7a6fde1519fc45f93f1fa0646b16b35087c4b1187b2be1845ce2c3c6f40f96716e2c44d1a6cd471e3b64b
diff --git a/dev-python/twine/twine-6.0.1.ebuild b/dev-python/twine/twine-6.0.1.ebuild
index 456ec8b01bad..eaa9eea3b261 100644
--- a/dev-python/twine/twine-6.0.1.ebuild
+++ b/dev-python/twine/twine-6.0.1.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
@@ -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/twine/twine-6.1.0.ebuild b/dev-python/twine/twine-6.1.0.ebuild
index 43b30b4e46ad..9d9f950c611c 100644
--- a/dev-python/twine/twine-6.1.0.ebuild
+++ b/dev-python/twine/twine-6.1.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/twine/twine-6.2.0.ebuild b/dev-python/twine/twine-6.2.0.ebuild
new file mode 100644
index 000000000000..67c6af8ce4b9
--- /dev/null
+++ b/dev-python/twine/twine-6.2.0.ebuild
@@ -0,0 +1,76 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of utilities for publishing packages on PyPI"
+HOMEPAGE="
+ https://twine.readthedocs.io/
+ https://github.com/pypa/twine/
+ https://pypi.org/project/twine/
+"
+SRC_URI="
+ https://github.com/pypa/twine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
+ dev-python/id[${PYTHON_USEDEP}]
+ >=dev-python/keyring-21.2.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
+ >=dev-python/readme-renderer-35.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-toolbelt-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/rfc3986-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/rich-12.0.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.26.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/jaraco-envs[${PYTHON_USEDEP}]
+ dev-python/jaraco-functools[${PYTHON_USEDEP}]
+ dev-python/munch[${PYTHON_USEDEP}]
+ dev-python/portend[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pypiserver[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # pytest-socket dep relevant only to test_integration, and upstream
+ # disables it anyway
+ sed -i -e '/--disable-socket/d' pytest.ini || die
+
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Internet
+ tests/test_integration.py
+ )
+ local EPYTEST_DESELECT=(
+ # Avoid needing heavy virtualx
+ tests/test_auth.py::test_warns_for_empty_password
+ )
+
+ local -x COLUMNS=80
+ epytest
+}
diff --git a/dev-python/twisted/twisted-24.10.0.ebuild b/dev-python/twisted/twisted-24.10.0.ebuild
index a37ea9587e59..5374abd208f0 100644
--- a/dev-python/twisted/twisted-24.10.0.ebuild
+++ b/dev-python/twisted/twisted-24.10.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
@@ -22,7 +22,7 @@ SRC_URI+="
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="conch http2 serial ssl test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/twisted/twisted-24.11.0-r1.ebuild b/dev-python/twisted/twisted-24.11.0-r1.ebuild
index 2d7a75854db6..e5a8a29048d3 100644
--- a/dev-python/twisted/twisted-24.11.0-r1.ebuild
+++ b/dev-python/twisted/twisted-24.11.0-r1.ebuild
@@ -22,7 +22,7 @@ SRC_URI+="
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="conch http2 serial ssl test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/twisted/twisted-25.5.0.ebuild b/dev-python/twisted/twisted-25.5.0.ebuild
index 687482bf277e..ea0b307e5233 100644
--- a/dev-python/twisted/twisted-25.5.0.ebuild
+++ b/dev-python/twisted/twisted-25.5.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI+="
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="conch http2 serial ssl test websockets"
RESTRICT="!test? ( test )"
diff --git a/dev-python/typeguard/typeguard-4.4.4.ebuild b/dev-python/typeguard/typeguard-4.4.4.ebuild
index 163ecc64d29c..602835ed7ac6 100644
--- a/dev-python/typeguard/typeguard-4.4.4.ebuild
+++ b/dev-python/typeguard/typeguard-4.4.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/typing-extensions-4.14.0[${PYTHON_USEDEP}]
diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20250728.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20250728.ebuild
index 9fdbbf2b35dd..29b3eac5da76 100644
--- a/dev-python/types-docutils/types-docutils-0.21.0.20250728.ebuild
+++ b/dev-python/types-docutils/types-docutils-0.21.0.20250728.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-docutils/"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 x86"
diff --git a/dev-python/types-gdb/types-gdb-15.0.0.20250801.ebuild b/dev-python/types-gdb/types-gdb-15.0.0.20250801.ebuild
index 5249cc2ff879..c647fa187938 100644
--- a/dev-python/types-gdb/types-gdb-15.0.0.20250801.ebuild
+++ b/dev-python/types-gdb/types-gdb-15.0.0.20250801.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/types-psutil/types-psutil-7.0.0.20250601.ebuild b/dev-python/types-psutil/types-psutil-7.0.0.20250601.ebuild
index 7cc0c410d9fc..27dbe28429dc 100644
--- a/dev-python/types-psutil/types-psutil-7.0.0.20250601.ebuild
+++ b/dev-python/types-psutil/types-psutil-7.0.0.20250601.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-psutil/"
LICENSE="Apache-2.0"
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"
diff --git a/dev-python/types-psutil/types-psutil-7.0.0.20250801.ebuild b/dev-python/types-psutil/types-psutil-7.0.0.20250801.ebuild
index da0f9d713bcd..27dbe28429dc 100644
--- a/dev-python/types-psutil/types-psutil-7.0.0.20250801.ebuild
+++ b/dev-python/types-psutil/types-psutil-7.0.0.20250801.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-psutil/"
LICENSE="Apache-2.0"
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"
diff --git a/dev-python/types-setuptools/types-setuptools-80.9.0.20250529.ebuild b/dev-python/types-setuptools/types-setuptools-80.9.0.20250529.ebuild
index fadb3d040bae..2086c497e4d7 100644
--- a/dev-python/types-setuptools/types-setuptools-80.9.0.20250529.ebuild
+++ b/dev-python/types-setuptools/types-setuptools-80.9.0.20250529.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-setuptools/"
LICENSE="Apache-2.0"
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"
diff --git a/dev-python/types-setuptools/types-setuptools-80.9.0.20250801.ebuild b/dev-python/types-setuptools/types-setuptools-80.9.0.20250801.ebuild
index 078677754317..2086c497e4d7 100644
--- a/dev-python/types-setuptools/types-setuptools-80.9.0.20250801.ebuild
+++ b/dev-python/types-setuptools/types-setuptools-80.9.0.20250801.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-setuptools/"
LICENSE="Apache-2.0"
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"
diff --git a/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild b/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild
index 7cde208e1712..5d3015a99ea2 100644
--- a/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild
+++ b/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="PSF-2"
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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild b/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild
index a71502262cb6..d7ef4fe64132 100644
--- a/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild
+++ b/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}]
diff --git a/dev-python/typogrify/typogrify-2.1.0.ebuild b/dev-python/typogrify/typogrify-2.1.0.ebuild
index 6738d42e8211..ba47034dcd58 100644
--- a/dev-python/typogrify/typogrify-2.1.0.ebuild
+++ b/dev-python/typogrify/typogrify-2.1.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/smartypants-1.8.3[${PYTHON_USEDEP}]
diff --git a/dev-python/tzdata/tzdata-10001.ebuild b/dev-python/tzdata/tzdata-10001.ebuild
index 56a02c18e1a1..51d1d82a03f5 100644
--- a/dev-python/tzdata/tzdata-10001.ebuild
+++ b/dev-python/tzdata/tzdata-10001.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://peps.python.org/pep-0615/"
LICENSE="public-domain"
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"
RDEPEND="
sys-libs/timezone-data
diff --git a/dev-python/u-msgpack-python/u-msgpack-python-2.8.0.ebuild b/dev-python/u-msgpack-python/u-msgpack-python-2.8.0.ebuild
index f73923007876..4a6d1ab0b6fb 100644
--- a/dev-python/u-msgpack-python/u-msgpack-python-2.8.0.ebuild
+++ b/dev-python/u-msgpack-python/u-msgpack-python-2.8.0.ebuild
@@ -17,6 +17,6 @@ HOMEPAGE="
LICENSE="MIT"
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"
distutils_enable_tests pytest
diff --git a/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild b/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild
index 8227a809edca..3dd974991bef 100644
--- a/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild
+++ b/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild
@@ -17,6 +17,6 @@ HOMEPAGE="
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 pytest
diff --git a/dev-python/ujson/ujson-5.10.0.ebuild b/dev-python/ujson/ujson-5.10.0.ebuild
index 3428066cdc69..6304f2c3c8eb 100644
--- a/dev-python/ujson/ujson-5.10.0.ebuild
+++ b/dev-python/ujson/ujson-5.10.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-libs/double-conversion:=
diff --git a/dev-python/unidecode/unidecode-1.4.0.ebuild b/dev-python/unidecode/unidecode-1.4.0.ebuild
index 1baa1751c5c9..c84788f4beda 100644
--- a/dev-python/unidecode/unidecode-1.4.0.ebuild
+++ b/dev-python/unidecode/unidecode-1.4.0.ebuild
@@ -15,6 +15,6 @@ HOMEPAGE="https://pypi.org/project/Unidecode/"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
distutils_enable_tests unittest
diff --git a/dev-python/unittest-mixins/unittest-mixins-1.6-r2.ebuild b/dev-python/unittest-mixins/unittest-mixins-1.6-r2.ebuild
index f6e167cab7ff..6d2cf84190b1 100644
--- a/dev-python/unittest-mixins/unittest-mixins-1.6-r2.ebuild
+++ b/dev-python/unittest-mixins/unittest-mixins-1.6-r2.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
diff --git a/dev-python/untangle/untangle-1.2.1-r2.ebuild b/dev-python/untangle/untangle-1.2.1-r2.ebuild
index 05a6c36edbf2..5d1cd2aa3342 100644
--- a/dev-python/untangle/untangle-1.2.1-r2.ebuild
+++ b/dev-python/untangle/untangle-1.2.1-r2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
RDEPEND="
>=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
diff --git a/dev-python/uri-template/uri-template-1.3.0.ebuild b/dev-python/uri-template/uri-template-1.3.0.ebuild
index 69dc3d274537..96e4b84ecab4 100644
--- a/dev-python/uri-template/uri-template-1.3.0.ebuild
+++ b/dev-python/uri-template/uri-template-1.3.0.ebuild
@@ -21,7 +21,7 @@ S=${WORKDIR}/${MY_P}
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"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/uritemplate/uritemplate-4.2.0.ebuild b/dev-python/uritemplate/uritemplate-4.2.0.ebuild
index adb2932ac834..36a060bf3cd9 100644
--- a/dev-python/uritemplate/uritemplate-4.2.0.ebuild
+++ b/dev-python/uritemplate/uritemplate-4.2.0.ebuild
@@ -17,6 +17,6 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_tests pytest
diff --git a/dev-python/urllib3/urllib3-2.5.0.ebuild b/dev-python/urllib3/urllib3-2.5.0.ebuild
index 03efb63062db..5a45a3d2314d 100644
--- a/dev-python/urllib3/urllib3-2.5.0.ebuild
+++ b/dev-python/urllib3/urllib3-2.5.0.ebuild
@@ -27,7 +27,7 @@ SRC_URI+="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="brotli http2 test zstd"
RESTRICT="!test? ( test )"
diff --git a/dev-python/urwid/urwid-3.0.2.ebuild b/dev-python/urwid/urwid-3.0.2.ebuild
index 3c57130316fa..3481244c8f84 100644
--- a/dev-python/urwid/urwid-3.0.2.ebuild
+++ b/dev-python/urwid/urwid-3.0.2.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-build/Manifest b/dev-python/uv-build/Manifest
index 2646992516a8..356fc78473f6 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -1,5 +1,6 @@
DIST uv_build-0.7.19.tar.gz 311467 BLAKE2B a7e85c3bbaee786ed9729b1331e5506eeb95d4ee875502814555956611449501f6b1c62284945640a2ce95f225a1b1c151b47d17c0d303599fe69bffc4ab8e5c SHA512 c3bc554dd9d86bfdb1e9ebf042d8c00987a790da9d386eb371dcc1bc7cd1c0000ae69a4d1e5f1759ed723d78eed73a461bae26d5047bdb0c0bb75f450fdc009a
DIST uv_build-0.7.22.tar.gz 314318 BLAKE2B e8118eda79bd6bea375a2b19d87a0d9c2da8e1fe1fb24668ccfe79364b92a01aedcb1e73bc625c9e1d010e7ed4742c3a4add827dc497ee18312664c4343b67be SHA512 185d6b5a9e0440a1354cd9ce638522e9b2a27cc075a5022d95c63fd96b861bf50615156d7f64144b7fb657e2ddb3fe1b0fd8fd38fd6c0adabffacbdc43d6f292
+DIST uv_build-0.8.15.tar.gz 327897 BLAKE2B c2972d5db464320956707dabdec70e796b03c2ddb4fe2e320d6a688f7099f710fd4e29374cb706e23b3a900e0c055277e24514041ab352d7bd589c92d7d7c6eb SHA512 6b2dc120cad0f0e759d6618d1716ab6c4e07444faa4f185423d428954e5d519f7488b7133108eec9a32bb482112b6368c9beccaf0382e23ced2d3e0292ff3415
DIST uv_build-0.8.2.tar.gz 317577 BLAKE2B 0bf4d94fcb8052fa5fc71970cdda92438491bc4f3a0723b1f4565eb7f416058d253b14542adb4ea1883e56cb3c1fcf899840bb8406e133749ad894a181d5c8d7 SHA512 14272a8bf350542d5aaeaaf32542bf70b45724bda3a57eb4d701c8f3c0648244c683f3ea6d011920c5c02d1880e92787ce0758055b78eab2b3e61b20e03eea9c
DIST uv_build-0.8.4.tar.gz 318914 BLAKE2B 303fb5d95d7e62269eba53ca41d7e3ae32df84e49bcf3d13cca58e21a73696964f06484d0aabc874bb66e3da5a91efae16d620732fd026ba36a43fc24fcfbe9a SHA512 875de875a2c1f73d4d4d53f1844ce11dbfde69dca552da3fabb071689309d01f4759cdb3ca71142dfdf791be5e1ada0de9a0326ad2107acd93483fa25eb518b4
DIST uv_build-0.8.5.tar.gz 318967 BLAKE2B a09040001b1c777022fce38a5d28a584bad3dfa60627107f6054d779012b06a611eb11e903beef9112f636de4b238a1b29f5aa38ec477af6f91e1e957f5584cc SHA512 3bc3de1d240d78d5034c97801bcb6696d3ade9fb1a3cfe838a2ed66e7225ea72fa61ff82fdee66b213c7e5f63b0ee6ec2e04820102f3b50c3292107a643a3749
diff --git a/dev-python/uv-build/uv-build-0.8.15.ebuild b/dev-python/uv-build/uv-build-0.8.15.ebuild
new file mode 100644
index 000000000000..aafb223c5bb8
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.8.15.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maturin compiles uv-build executable for every impl, we do not want
+# that, so we use another backend. And since we use another backend,
+# why not dogfood it in the first place?
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="PEP517 uv build backend"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv-build/
+"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/uv-${PV}
+"
+BDEPEND="
+ test? (
+ app-arch/unzip
+ dev-python/build[${PYTHON_USEDEP}]
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # use the executable from dev-python/uv instead of building
+ # a largely overlapping uv-build executable (at least for now)
+ sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
+
+ # replace the build-system section
+ sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
+ cat >> pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["uv_build<9999"]
+ build-backend = "uv_build"
+ backend-path = ["src"]
+ EOF
+
+ # rename to make uv-build find it
+ mv python src || die
+}
+
+python_test() {
+ "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
+
+ local zip_result=$(
+ unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
+ )
+ local zip_expected="\
+Archive: dist/uv_build-${PV}-py3-none-any.whl
+ testing: uv_build/ OK
+ testing: uv_build/__init__.py OK
+ testing: uv_build/__main__.py OK
+ testing: uv_build/py.typed OK
+ testing: uv_build-${PV}.dist-info/ OK
+ testing: uv_build-${PV}.dist-info/WHEEL OK
+ testing: uv_build-${PV}.dist-info/METADATA OK
+ testing: uv_build-${PV}.dist-info/RECORD OK
+No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
+"
+ if [[ ${zip_result} != ${zip_expected} ]]; then
+ eerror ".zip result:\n${zip_result}"
+ eerror ".zip expected:\n${zip_expected}"
+ die ".whl result mismatch"
+ fi
+
+ local tar_result=$(
+ tar -tf "dist/uv_build-${PV}.tar.gz" || die
+ )
+ local tar_expected="\
+uv_build-${PV}/PKG-INFO
+uv_build-${PV}/
+uv_build-${PV}/README.md
+uv_build-${PV}/pyproject.toml
+uv_build-${PV}/src
+uv_build-${PV}/src/uv_build
+uv_build-${PV}/src/uv_build/__init__.py
+uv_build-${PV}/src/uv_build/__main__.py
+uv_build-${PV}/src/uv_build/py.typed\
+"
+ if [[ ${tar_result} != ${tar_expected} ]]; then
+ eerror ".tar.gz result:\n${tar_result}"
+ eerror ".tar.gz expected:\n${tar_expected}"
+ die ".tar.gz result mismatch"
+ fi
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index 2ed36604571c..1c27d72a7d9b 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,8 +1,11 @@
DIST pubgrub-06ec5a5f59ffaeb6cf5079c6cb184467da06c9db.gh.tar.gz 99881 BLAKE2B 5fcc2d1a06eb44351773081de4f616c93301eb2fe71b0c6f7b95779ec4bd9bb6cccc702a87a6399b0674711302a19de3a96fa31044660430fd74ff549000ad25 SHA512 3f0b18aecbc73fee91fc7de9f10d240ddc06c836fa2f116c1f007dd7818d099e6aea1852ca0b8d1a26ac19aac896535dba1a6298851a65515b553810c6245784
+DIST reqwest-middleware-7650ed76215a962a96d94a79be71c27bffde7ab2.gh.tar.gz 42520 BLAKE2B ca415865947873f8b309f5b348a600677802fa8128a154b7c86d3e30bffece9df8606504073ddb688c5185e27866b5d7dc8a891e6d390ca075910a691e9bb2aa SHA512 904fd652b0f3ecc90eee571d5488aba977dee643a1d6267e2fda264fa4c7b4bfcfacd4d5a23287dfb710ecc82d667479fcd0c48166259c2368df0e8b0c9d6707
DIST reqwest-middleware-ad8b9d332d1773fde8b4cd008486de5973e0a3f8.gh.tar.gz 41975 BLAKE2B db42a68b8f0d592edc297462c19a34caa068464b9a5f307e8e1c1fdacde95cd08c5af0f73fa55ed62217dee63940a1d02a4322c5edb2c2c8a568a7e04efd80e6 SHA512 2dad83835c87cdd79e2a08c19b5024b3fdf30d1d8cd14e480e434612e856ecc20a5404881ff81d5793d3e9d5808ee3d59ce920312a86a100535009da43d7d46b
DIST rs-async-zip-285e48742b74ab109887d62e1ae79e7c15fd4878.gh.tar.gz 37003 BLAKE2B c4aed18d82641ced2771ad8b8e800c45b1ded279e8ba1874ec9766907d042ae13b460beac739ced6e31c03a647e4238af96fb41e8c0dff4c5d4dd7f59c0ebbff SHA512 d6dd699f43ca6e23a4c8abb8673b37d3983081a8c78545492ea3c1d0b35e3a491277c341df6dd64fb7efaec3b23eb479dede99e9b41016b5504d1a6dc9fbc617
DIST rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.gh.tar.gz 51763 BLAKE2B 59d053bc6692014d884a9247dea1b57a8789469ba2abbcc92ec21bb0022cbd74874afc463082156ab697aa6c80635019857a5d7e2dc150274e8b04d720518c36 SHA512 3a309566f4925b02496fcf19bc2865968edf6fb65082ca4079d2cee79e6b0353a1910c079f2afe656da0d0f6ddde5102052a221ea35a7dabc6d690a11218b20a
DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68
+DIST uv-0.8.15-crates.tar.xz 46898116 BLAKE2B 53fa26bc5ff7a22063ed700951dc44541de66967b7a567cec27701914bcac94ac27f0e821e7ea747b483a5fb721d10d9df9ecdcb6d338fd45d70f13855fff3f0 SHA512 14576aba8d91aeb250c3e64d32cfdbdad5723d83a1c51c7311caca1f433fc0279f13dd9ff1af165e1f1b1b94663878260536611e707c97238f1084cbc99b758d
+DIST uv-0.8.15.gh.tar.gz 4424880 BLAKE2B 89dcf4dbf4f43774b9107f0c1c068654d49bca837a5852c5bf05be588232f0157bbf7b2d2d961bea75c37b815f51bd1d12f943bf9129720c2caee1dd923c54b9 SHA512 eafe6f8d74e476d404ac48a69115c0965152a07c876b87139f04b48770df2b7a5c42e04efb7a12297e1e341248a8551f87ab286dbd5fe06a41de029eff54ee4e
DIST uv-0.8.2-crates.tar.xz 58707128 BLAKE2B 9579ad6877a960596fc49908e4f9451c8748c7f0ab41be15f310f43a19dcd61632fc7dd4fe4a2ad21cdc1478354c6b39e07272b8160296dc9dba9f70628a6f76 SHA512 442e7f2d550c00808f07297eda196ceec75aea3c9fbc1d86f288dc4c9d974f8197dac36f550ff903bb78f9c193eeab7447934f4f7bbb7799d246db28d9cf052a
DIST uv-0.8.2.gh.tar.gz 4195351 BLAKE2B b50da561a66f4aac40c5fe6b55a1c10482155dc968bd6532927819ad0bb6f6b97de1b7707a32887b272ede682158b86d5f75bc10410a9fe7af8a7d2de204984a SHA512 9d10f182ab0fefb6028a0424a8cc1467f34e65de24a358a9038b8104f62808f479d004d3a45df7264b6aea81933353b78f1b3963c37ff66ec9da4a53cdca0e2c
DIST uv-0.8.6-crates.tar.xz 46208952 BLAKE2B f9557a45fbfaa9d6006f935629130960b5d414cd185d7fbdb1415e7f3875568d07ade946a0b606712e9e2e06e7964bb0fb8318e02e78609899a852ed073b87a6 SHA512 c79fa70a6a670dc2d80efbf0b51942806b2b16ab7b4c63983ab634453ab32142322302bd68ab80f5bcfee08138bca8d04a7d152c76ca5d94bfc40255cab8477b
diff --git a/dev-python/uv/uv-0.8.15.ebuild b/dev-python/uv/uv-0.8.15.ebuild
new file mode 100644
index 000000000000..d5a02e6201af
--- /dev/null
+++ b/dev-python/uv/uv-0.8.15.ebuild
@@ -0,0 +1,182 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES=""
+RUST_MIN_VER="1.88.0"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/astral-sh/rs-async-zip;285e48742b74ab109887d62e1ae79e7c15fd4878;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;7650ed76215a962a96d94a79be71c27bffde7ab2;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;7650ed76215a962a96d94a79be71c27bffde7ab2;reqwest-middleware-%commit%/reqwest-retry'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%/version-ranges'
+)
+
+inherit cargo check-reqs
+
+CRATE_PV=${PV}
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD
+ CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016
+ ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ dev-lang/python:3.13
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # replace upstream crate substitution with our crate substitution, sigh
+ local pkg
+ for pkg in reqwest-middleware reqwest-retry; do
+ local dep=$(grep "^${pkg}" "${ECARGO_HOME}"/config.toml || die)
+ sed -i -e "/\[patch\.crates-io\]/,\$s;^${pkg}.*$;${dep};" Cargo.toml || die
+ done
+
+ # force thin lto, makes build much faster and less memory hungry
+ # (i.e. makes it possible to actually build uv on 32-bit PPC)
+ sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/uv/uv-9999.ebuild b/dev-python/uv/uv-9999.ebuild
new file mode 100644
index 000000000000..0ebc73e88b05
--- /dev/null
+++ b/dev-python/uv/uv-9999.ebuild
@@ -0,0 +1,145 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_MIN_VER="1.88.0"
+
+inherit cargo check-reqs git-r3
+
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+EGIT_REPO_URI="https://github.com/astral-sh/uv.git"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ dev-lang/python:3.13
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_unpack() {
+ git-r3_src_unpack
+ cargo_live_src_unpack
+}
+
+src_prepare() {
+ default
+
+ # force thin lto, makes build much faster and less memory hungry
+ # (i.e. makes it possible to actually build uv on 32-bit PPC)
+ sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/uvicorn/uvicorn-0.35.0.ebuild b/dev-python/uvicorn/uvicorn-0.35.0.ebuild
index 1dc834dd8504..38744d446253 100644
--- a/dev-python/uvicorn/uvicorn-0.35.0.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.35.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/uvloop/uvloop-0.21.0.ebuild b/dev-python/uvloop/uvloop-0.21.0.ebuild
index c77d3c6a509b..3c917c6e0076 100644
--- a/dev-python/uvloop/uvloop-0.21.0.ebuild
+++ b/dev-python/uvloop/uvloop-0.21.0.ebuild
@@ -18,7 +18,7 @@ SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.19.0-
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 -riscv sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 -riscv ~sparc x86"
IUSE="examples"
DEPEND="
diff --git a/dev-python/validators/validators-0.35.0.ebuild b/dev-python/validators/validators-0.35.0.ebuild
index 4a060e869d63..ddb6c5a55979 100644
--- a/dev-python/validators/validators-0.35.0.ebuild
+++ b/dev-python/validators/validators-0.35.0.ebuild
@@ -16,7 +16,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"
distutils_enable_tests pytest
diff --git a/dev-python/vcrpy/vcrpy-7.0.0.ebuild b/dev-python/vcrpy/vcrpy-7.0.0.ebuild
index 26da5f2b323d..577794b99bf7 100644
--- a/dev-python/vcrpy/vcrpy-7.0.0.ebuild
+++ b/dev-python/vcrpy/vcrpy-7.0.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
diff --git a/dev-python/versioneer/versioneer-0.29-r1.ebuild b/dev-python/versioneer/versioneer-0.29-r1.ebuild
index bb880b6aa818..2b4c2a01ec8e 100644
--- a/dev-python/versioneer/versioneer-0.29-r1.ebuild
+++ b/dev-python/versioneer/versioneer-0.29-r1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Unlicense"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/virtualenv/virtualenv-20.32.0.ebuild b/dev-python/virtualenv/virtualenv-20.32.0.ebuild
index 86741385e337..e0b93c518e8f 100644
--- a/dev-python/virtualenv/virtualenv-20.32.0.ebuild
+++ b/dev-python/virtualenv/virtualenv-20.32.0.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"
+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/voluptuous/voluptuous-0.15.2.ebuild b/dev-python/voluptuous/voluptuous-0.15.2.ebuild
index 50de99dc011d..1fdd0d361568 100644
--- a/dev-python/voluptuous/voluptuous-0.15.2.ebuild
+++ b/dev-python/voluptuous/voluptuous-0.15.2.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_tests pytest
diff --git a/dev-python/waitress/waitress-3.0.2.ebuild b/dev-python/waitress/waitress-3.0.2.ebuild
index 4bdbc7db11a8..c2ac1f300cce 100644
--- a/dev-python/waitress/waitress-3.0.2.ebuild
+++ b/dev-python/waitress/waitress-3.0.2.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/watchdog/watchdog-6.0.0.ebuild b/dev-python/watchdog/watchdog-6.0.0.ebuild
index a827867ce7a5..d4479e7578f4 100644
--- a/dev-python/watchdog/watchdog-6.0.0.ebuild
+++ b/dev-python/watchdog/watchdog-6.0.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/pyyaml[${PYTHON_USEDEP}]
diff --git a/dev-python/watchfiles/watchfiles-1.0.4.ebuild b/dev-python/watchfiles/watchfiles-1.0.4.ebuild
index 44ec6fb86346..71edd3676090 100644
--- a/dev-python/watchfiles/watchfiles-1.0.4.ebuild
+++ b/dev-python/watchfiles/watchfiles-1.0.4.ebuild
@@ -83,7 +83,7 @@ LICENSE+="
Apache-2.0-with-LLVM-exceptions BSD CC0-1.0 ISC MIT Unicode-DFS-2016
"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/anyio-4.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/watchfiles/watchfiles-1.1.0.ebuild b/dev-python/watchfiles/watchfiles-1.1.0.ebuild
index 1569befe56cb..abe9a9dc2a66 100644
--- a/dev-python/watchfiles/watchfiles-1.1.0.ebuild
+++ b/dev-python/watchfiles/watchfiles-1.1.0.ebuild
@@ -82,7 +82,7 @@ LICENSE+="
Apache-2.0-with-LLVM-exceptions CC0-1.0 ISC MIT Unicode-DFS-2016
"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/anyio-4.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/wcag-contrast-ratio/wcag-contrast-ratio-0.9-r1.ebuild b/dev-python/wcag-contrast-ratio/wcag-contrast-ratio-0.9-r1.ebuild
index c9bbc886330b..dd34d0d112a5 100644
--- a/dev-python/wcag-contrast-ratio/wcag-contrast-ratio-0.9-r1.ebuild
+++ b/dev-python/wcag-contrast-ratio/wcag-contrast-ratio-0.9-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
BDEPEND="
test? (
diff --git a/dev-python/wcwidth/wcwidth-0.2.13.ebuild b/dev-python/wcwidth/wcwidth-0.2.13.ebuild
index 5adf7b2cc52a..123aecd50b73 100644
--- a/dev-python/wcwidth/wcwidth-0.2.13.ebuild
+++ b/dev-python/wcwidth/wcwidth-0.2.13.ebuild
@@ -16,7 +16,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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/webcolors/webcolors-24.11.1.ebuild b/dev-python/webcolors/webcolors-24.11.1.ebuild
index acd22cc885f9..a8bb657a01a6 100644
--- a/dev-python/webcolors/webcolors-24.11.1.ebuild
+++ b/dev-python/webcolors/webcolors-24.11.1.ebuild
@@ -16,6 +16,6 @@ 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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
distutils_enable_tests unittest
diff --git a/dev-python/webencodings/webencodings-0.5.1-r2.ebuild b/dev-python/webencodings/webencodings-0.5.1-r2.ebuild
index 0dc56b96881e..32d34253a218 100644
--- a/dev-python/webencodings/webencodings-0.5.1-r2.ebuild
+++ b/dev-python/webencodings/webencodings-0.5.1-r2.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"
distutils_enable_tests pytest
diff --git a/dev-python/webob/webob-1.8.9.ebuild b/dev-python/webob/webob-1.8.9.ebuild
index d042304a3e46..6fb67e89c7fc 100644
--- a/dev-python/webob/webob-1.8.9.ebuild
+++ b/dev-python/webob/webob-1.8.9.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/websocket-client/websocket-client-1.8.0.ebuild b/dev-python/websocket-client/websocket-client-1.8.0.ebuild
index ca3be924eae9..4a11ca1d8784 100644
--- a/dev-python/websocket-client/websocket-client-1.8.0.ebuild
+++ b/dev-python/websocket-client/websocket-client-1.8.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="examples test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/websockets/websockets-15.0.1.ebuild b/dev-python/websockets/websockets-15.0.1.ebuild
index 8851a20d253d..46a5495cf398 100644
--- a/dev-python/websockets/websockets-15.0.1.ebuild
+++ b/dev-python/websockets/websockets-15.0.1.ebuild
@@ -23,7 +23,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="+native-extensions"
BDEPEND="
diff --git a/dev-python/webtest/webtest-3.0.6.ebuild b/dev-python/webtest/webtest-3.0.6.ebuild
index b8034be2a7c4..95d974c0bd60 100644
--- a/dev-python/webtest/webtest-3.0.6.ebuild
+++ b/dev-python/webtest/webtest-3.0.6.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
dev-python/paste[${PYTHON_USEDEP}]
diff --git a/dev-python/werkzeug/werkzeug-3.1.3.ebuild b/dev-python/werkzeug/werkzeug-3.1.3.ebuild
index a438b28445cb..f7b241d73116 100644
--- a/dev-python/werkzeug/werkzeug-3.1.3.ebuild
+++ b/dev-python/werkzeug/werkzeug-3.1.3.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/wheel/wheel-0.45.1.ebuild b/dev-python/wheel/wheel-0.45.1.ebuild
index ee9fb894e585..fd41ce474476 100644
--- a/dev-python/wheel/wheel-0.45.1.ebuild
+++ b/dev-python/wheel/wheel-0.45.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 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/whoosh/whoosh-2.7.4-r2.ebuild b/dev-python/whoosh/whoosh-2.7.4-r2.ebuild
index b74e1f5440ef..7a21bb1cf2a2 100644
--- a/dev-python/whoosh/whoosh-2.7.4-r2.ebuild
+++ b/dev-python/whoosh/whoosh-2.7.4-r2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
PATCHES=(
"${FILESDIR}"/${PN}-2.7.4-tests-specify-utf8.patch
diff --git a/dev-python/wrapt/wrapt-1.17.2.ebuild b/dev-python/wrapt/wrapt-1.17.2.ebuild
index 682de42accbc..57b635871d4b 100644
--- a/dev-python/wrapt/wrapt-1.17.2.ebuild
+++ b/dev-python/wrapt/wrapt-1.17.2.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="+native-extensions"
distutils_enable_tests pytest
diff --git a/dev-python/wsgiproxy2/wsgiproxy2-0.5.1-r1.ebuild b/dev-python/wsgiproxy2/wsgiproxy2-0.5.1-r1.ebuild
index c65187eaaeb2..1d2984bafc4a 100644
--- a/dev-python/wsgiproxy2/wsgiproxy2-0.5.1-r1.ebuild
+++ b/dev-python/wsgiproxy2/wsgiproxy2-0.5.1-r1.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 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
diff --git a/dev-python/wsproto/wsproto-1.2.0.ebuild b/dev-python/wsproto/wsproto-1.2.0.ebuild
index 6bed20e0feef..c2825d9be4db 100644
--- a/dev-python/wsproto/wsproto-1.2.0.ebuild
+++ b/dev-python/wsproto/wsproto-1.2.0.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/h11-0.9[${PYTHON_USEDEP}]
diff --git a/dev-python/wurlitzer/wurlitzer-3.1.1.ebuild b/dev-python/wurlitzer/wurlitzer-3.1.1.ebuild
index 7d099607e18a..cb3f7937efb3 100644
--- a/dev-python/wurlitzer/wurlitzer-3.1.1.ebuild
+++ b/dev-python/wurlitzer/wurlitzer-3.1.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_tests pytest
diff --git a/dev-python/xarray/Manifest b/dev-python/xarray/Manifest
index 0306bbfb30a8..5e8722cbbb86 100644
--- a/dev-python/xarray/Manifest
+++ b/dev-python/xarray/Manifest
@@ -2,3 +2,4 @@ DIST xarray-2025.6.1.tar.gz 3003185 BLAKE2B a75f68947922e922dad94dc6ab5454d9d2b2
DIST xarray-2025.7.0.tar.gz 3005754 BLAKE2B 5e1cf6f1a845a9d38fee6f639016c79b14c10922fa96d241cea0a0a35d2c784ce98cfeb70ea49e03de0fd82d966e9656482caa380b48dbace7cf26b31a34b2fb SHA512 3cfe560c261cdd6a6c64cf100951e92cf63fff835dfa82ee7d1c7578ff808706905fbc2a1ae65a0db1c5abead203be43aff4771420f6851bfc357bacca4ffc95
DIST xarray-2025.7.1.tar.gz 3013717 BLAKE2B 37abbeec6736745a9a0cc098bfdb36b76c5b07a1f762a3207e7a69bda1670ad464c328daabcb5845f65dcb0b9901f045c633fb12fed4524bcc7dacfcc259e65b SHA512 446e50cfa16a3ba54124dc9417203ea96f6232e05515de38dc191b06ee417e165fd2faefaf4718eddb9620d32675abc6c2125ac7555759eb003263a70662cb7e
DIST xarray-2025.8.0.tar.gz 3034425 BLAKE2B 089eecd4b8928bcc4cae2aa590a06f4d8b45b2886f1cb7f26114f97ea55914fecf83e58eec637c83123e1d81ff2bfb92f1d4ac18161b39495beb4975af71f255 SHA512 2ace4ae6736a5cde298f7d0da6b704326fa5b28d758744e0db022cc3e9ea6514ac447c5d7762fc273bc192ad7b31517edc0cda7a16302c3e9a63d5c952b1bcd2
+DIST xarray-2025.9.0.tar.gz 3040318 BLAKE2B dd4482cb5263339360ae4bfc6046dfb7fe32748927af0a913cabd77699f74fff3f6ad4405a496e6fb98a78c752af5ffc89c69a734e2870458ece3d67c77c8fab SHA512 0cc572de58c59badb383d20292cf092500192e1723c12423f7d4c87e110feb08156cff71c136e45dd35eb70941a55e44a88774b698d09ecd083a882a207317e1
diff --git a/dev-python/xarray/xarray-2025.9.0.ebuild b/dev-python/xarray/xarray-2025.9.0.ebuild
new file mode 100644
index 000000000000..0dc4a4299df0
--- /dev/null
+++ b/dev-python/xarray/xarray-2025.9.0.ebuild
@@ -0,0 +1,129 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="N-D labeled arrays and datasets in Python"
+HOMEPAGE="
+ https://xarray.pydata.org/
+ https://github.com/pydata/xarray/
+ https://pypi.org/project/xarray/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="big-endian"
+
+RDEPEND="
+ >=dev-python/numpy-1.26[${PYTHON_USEDEP}]
+ >=dev-python/pandas-2.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.1[${PYTHON_USEDEP}]
+"
+# note: most of the test dependencies are optional
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/bottleneck[${PYTHON_USEDEP}]
+ dev-python/cftime[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ !riscv? ( !x86? (
+ >=dev-python/netcdf4-1.6.0[bzip2,szip,${PYTHON_USEDEP}]
+ ) )
+ dev-python/toolz[${PYTHON_USEDEP}]
+ !hppa? ( >=dev-python/scipy-1.13[${PYTHON_USEDEP}] )
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # indirect pin, sigh
+ sed -i -e '/numpy/d' pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: these fail with filter errors even if netcdf4 is built
+ # with blosc/zstd support
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[zstd]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4hc]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zlib]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]'
+ # requires h5netcdf package
+ xarray/tests/test_backends_datatree.py::TestNetCDF4DatatreeIO::test_open_datatree_specific_group
+ )
+
+ if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
+ EPYTEST_DESELECT+=(
+ 'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
+ )
+
+ if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]" ; then
+ EPYTEST_DESELECT+=(
+ xarray/tests/test_calendar_ops.py::test_interp_calendar
+ )
+ fi
+ fi
+
+ if use big-endian ; then
+ EPYTEST_DESELECT+=(
+ # Appears to be a numpy issue in display? See bug #916460.
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-20-True]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-09-21T00:12:44.145224808-ns-float64-1e+30-True]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225216-ns-float64--9.223372036854776e+18-True]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-None-False]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:21:52.901038080-ns-float32-20.0-True]'
+ )
+ fi
+
+ if [[ ${ABI} != *64* ]]; then
+ EPYTEST_DESELECT+=(
+ # these tests hardcode object sizes for 64-bit arches
+ # https://github.com/pydata/xarray/issues/9127
+ xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex
+ xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex_long
+ xarray/tests/test_dataset.py::TestDataset::test_repr
+ xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex
+ xarray/tests/test_datatree.py::TestRepr::test_doc_example
+ xarray/tests/test_datatree.py::TestRepr::test_repr_truncates_nodes
+ xarray/tests/test_formatting.py::test_array_repr_dtypes_unix
+
+ # converting timestamps into ns, causing an overflow
+ xarray/tests/test_cftimeindex.py::test_asi8
+ xarray/tests/test_coding_times.py::test_decode_cf_time_bounds
+ xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range
+ xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units
+ )
+ fi
+
+ case ${ARCH} in
+ arm64)
+ EPYTEST_DESELECT+=(
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
+ )
+ ;;
+ esac
+
+ if ! has_version "dev-python/seaborn[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ xarray/tests/test_plot.py::TestContour::test_colors
+ )
+ fi
+
+ epytest -o addopts=
+}
diff --git a/dev-python/xcffib/xcffib-1.9.0.ebuild b/dev-python/xcffib/xcffib-1.9.0.ebuild
index ac5d2c25730e..8406f41aca28 100644
--- a/dev-python/xcffib/xcffib-1.9.0.ebuild
+++ b/dev-python/xcffib/xcffib-1.9.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/xlwt/xlwt-1.3.0-r2.ebuild b/dev-python/xlwt/xlwt-1.3.0-r2.ebuild
index 96c50e83cd8e..abdf6fdac0c2 100644
--- a/dev-python/xlwt/xlwt-1.3.0-r2.ebuild
+++ b/dev-python/xlwt/xlwt-1.3.0-r2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
distutils_enable_sphinx docs \
diff --git a/dev-python/xmlschema/xmlschema-4.1.0.ebuild b/dev-python/xmlschema/xmlschema-4.1.0.ebuild
index 1126143c10f8..0734036aafeb 100644
--- a/dev-python/xmlschema/xmlschema-4.1.0.ebuild
+++ b/dev-python/xmlschema/xmlschema-4.1.0.ebuild
@@ -16,7 +16,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/xmltodict/Manifest b/dev-python/xmltodict/Manifest
index 65ac8269247b..764d030c9376 100644
--- a/dev-python/xmltodict/Manifest
+++ b/dev-python/xmltodict/Manifest
@@ -1 +1,2 @@
DIST xmltodict-0.14.2.tar.gz 51942 BLAKE2B 4d51ec3e99ac166dc1fd919ff12ed0218cc78d33982c79336eeddbf66f5409ab3ed8f994f57731252799b5ff1d1bd5d3cc344621d0dfb565d105319c4a10886f SHA512 3333955156e355cd40bd947bbefe0ff2e90de900cf12aa3ad82fa28e2921d9e2ccd245116573a0711cce12ac294d5a8d18a83744b4e7fc9e2b4025e35175080b
+DIST xmltodict-0.15.0.tar.gz 60285 BLAKE2B 62cbae8054524d148cfdbf61b7a33ce6cdc4ddadc14e2898656231ce5659de96c8f65dbd3049b53e79f3d674a0d1de606ac740734472878f7e9e45bcf2fe3f00 SHA512 6f1af04125b7c8f177a3d13ee7c46c557a0c60166ba23f946bb38e1e7543ee93ae577311182e0c861b83632bd3e63c274ece1011e81163c96c875bf1e58f2fbc
diff --git a/dev-python/xmltodict/xmltodict-0.14.2.ebuild b/dev-python/xmltodict/xmltodict-0.14.2.ebuild
index 01fddc8da4b4..ea20ec513b05 100644
--- a/dev-python/xmltodict/xmltodict-0.14.2.ebuild
+++ b/dev-python/xmltodict/xmltodict-0.14.2.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/xmltodict/xmltodict-0.15.0.ebuild b/dev-python/xmltodict/xmltodict-0.15.0.ebuild
new file mode 100644
index 000000000000..0fca89e54daa
--- /dev/null
+++ b/dev-python/xmltodict/xmltodict-0.15.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Makes working with XML feel like you are working with JSON"
+HOMEPAGE="
+ https://github.com/martinblech/xmltodict/
+ https://pypi.org/project/xmltodict/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/yarl/yarl-1.20.1.ebuild b/dev-python/yarl/yarl-1.20.1.ebuild
index 91a9a5973b42..5cf6ae5c5f20 100644
--- a/dev-python/yarl/yarl-1.20.1.ebuild
+++ b/dev-python/yarl/yarl-1.20.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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="+native-extensions"
RDEPEND="
diff --git a/dev-python/ytmusicapi/ytmusicapi-1.11.0.ebuild b/dev-python/ytmusicapi/ytmusicapi-1.11.0.ebuild
index 04ea031c17bb..71c1c3d05cfd 100644
--- a/dev-python/ytmusicapi/ytmusicapi-1.11.0.ebuild
+++ b/dev-python/ytmusicapi/ytmusicapi-1.11.0.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://ytmusicapi.readthedocs.io/
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RESTRICT="test"
RDEPEND="
diff --git a/dev-python/zc-lockfile/zc-lockfile-3.0_p1-r1.ebuild b/dev-python/zc-lockfile/zc-lockfile-3.0_p1-r1.ebuild
index f61360ac4593..914a41d0aa86 100644
--- a/dev-python/zc-lockfile/zc-lockfile-3.0_p1-r1.ebuild
+++ b/dev-python/zc-lockfile/zc-lockfile-3.0_p1-r1.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"
+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/zipp/zipp-3.23.0.ebuild b/dev-python/zipp/zipp-3.23.0.ebuild
index 1daef1c185a6..eaacde2b3079 100644
--- a/dev-python/zipp/zipp-3.23.0.ebuild
+++ b/dev-python/zipp/zipp-3.23.0.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 ~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"
# big_o is only used in test_complexity, that we ignore
BDEPEND="
diff --git a/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild b/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild
index f242c699249d..da513182ada7 100644
--- a/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild
+++ b/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild
@@ -26,7 +26,7 @@ S=${WORKDIR}/${MY_P}
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-event/zope-event-5.1.1.ebuild b/dev-python/zope-event/zope-event-5.1.1.ebuild
index a7671bddb34e..cb0e25187c13 100644
--- a/dev-python/zope-event/zope-event-5.1.1.ebuild
+++ b/dev-python/zope-event/zope-event-5.1.1.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"
RDEPEND="
!dev-python/namespace-zope
diff --git a/dev-python/zope-interface/zope-interface-7.2.ebuild b/dev-python/zope-interface/zope-interface-7.2.ebuild
index 0725662a55f7..00c562d6747b 100644
--- a/dev-python/zope-interface/zope-interface-7.2.ebuild
+++ b/dev-python/zope-interface/zope-interface-7.2.ebuild
@@ -19,7 +19,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-testing/zope-testing-5.1.ebuild b/dev-python/zope-testing/zope-testing-5.1.ebuild
index 30422a1145f1..0cb75074b4e3 100644
--- a/dev-python/zope-testing/zope-testing-5.1.ebuild
+++ b/dev-python/zope-testing/zope-testing-5.1.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"
RDEPEND="
!dev-python/namespace-zope
diff --git a/dev-python/zstandard/zstandard-0.23.0-r3.ebuild b/dev-python/zstandard/zstandard-0.23.0-r3.ebuild
index 35dca4a59560..c0dfe59f47bf 100644
--- a/dev-python/zstandard/zstandard-0.23.0-r3.ebuild
+++ b/dev-python/zstandard/zstandard-0.23.0-r3.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:=
--
cgit v1.3.1