summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-10-19 21:49:31 -0500
committerCrucible <crucible@localhost>2026-10-19 21:49:31 -0500
commit7381ef26a3e14a703da91508b2cc8606c34b804d (patch)
tree1ded3c74a64f9591c982f01ed71ab968a8bfad24 /dev-python
parent3b4c7e627726016d50653b6dd2e06020a1915eac (diff)
downloadsrcux-7381ef26a3e14a703da91508b2cc8606c34b804d.tar.gz
srcux-7381ef26a3e14a703da91508b2cc8606c34b804d.tar.xz
srcux-7381ef26a3e14a703da91508b2cc8606c34b804d.zip
Publish srcux candidate 0000000740-20261019-200200
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/2captcha/2captcha-2.1.1.ebuild28
-rw-r--r--dev-python/2captcha/Manifest1
-rw-r--r--dev-python/2captcha/metadata.xml12
-rw-r--r--dev-python/alembic/Manifest2
-rw-r--r--dev-python/alembic/alembic-1.19.0.ebuild57
-rw-r--r--dev-python/alembic/alembic-1.19.1.ebuild57
-rw-r--r--dev-python/alembic/alembic-1.20.0.ebuild2
-rw-r--r--dev-python/annotated-doc/annotated-doc-0.0.5.ebuild2
-rw-r--r--dev-python/ansi2html/ansi2html-1.9.5.ebuild2
-rw-r--r--dev-python/apsw/Manifest1
-rw-r--r--dev-python/apsw/apsw-3.54.1.0.ebuild53
-rw-r--r--dev-python/ast-serialize/ast-serialize-0.11.2.ebuild2
-rw-r--r--dev-python/awscrt/awscrt-0.37.0.ebuild2
-rw-r--r--dev-python/bitarray/Manifest1
-rw-r--r--dev-python/bitarray/bitarray-3.12.3.ebuild24
-rw-r--r--dev-python/blessed/blessed-1.50.0.ebuild2
-rw-r--r--dev-python/boto3/boto3-1.43.98.ebuild2
-rw-r--r--dev-python/botocore/botocore-1.43.114.ebuild2
-rw-r--r--dev-python/cachelib/cachelib-0.17.0.ebuild2
-rw-r--r--dev-python/cachetools/Manifest2
-rw-r--r--dev-python/cachetools/cachetools-7.2.0.ebuild2
-rw-r--r--dev-python/cachetools/cachetools-7.2.3.ebuild (renamed from dev-python/cachetools/cachetools-7.1.8.ebuild)2
-rw-r--r--dev-python/clang/Manifest4
-rw-r--r--dev-python/clang/clang-23.1.2.ebuild50
-rw-r--r--dev-python/clang/clang-24.0.0_pre20261018.ebuild (renamed from dev-python/clang/clang-24.0.0_pre20260929.ebuild)0
-rw-r--r--dev-python/configupdater/Manifest2
-rw-r--r--dev-python/configupdater/configupdater-4.0.ebuild27
-rw-r--r--dev-python/courlan/Manifest1
-rw-r--r--dev-python/courlan/courlan-1.4.0.ebuild26
-rw-r--r--dev-python/courlan/metadata.xml12
-rw-r--r--dev-python/coverage/Manifest2
-rw-r--r--dev-python/coverage/coverage-7.15.4.ebuild98
-rw-r--r--dev-python/coverage/coverage-7.16.1.ebuild2
-rw-r--r--dev-python/cramjam/cramjam-2.12.1.ebuild2
-rw-r--r--dev-python/dulwich/Manifest2
-rw-r--r--dev-python/dulwich/dulwich-1.2.13.ebuild127
-rw-r--r--dev-python/dulwich/dulwich-1.2.15.ebuild2
-rw-r--r--dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild2
-rw-r--r--dev-python/emoji/emoji-2.16.0.ebuild2
-rw-r--r--dev-python/ensurepip-pip/ensurepip-pip-26.2.1.ebuild2
-rw-r--r--dev-python/fake/Manifest1
-rw-r--r--dev-python/fake/fake-0.13.2.ebuild32
-rw-r--r--dev-python/fake/metadata.xml12
-rw-r--r--dev-python/fakeredis/fakeredis-2.38.0.ebuild2
-rw-r--r--dev-python/fakeredis/fakeredis-2.39.0.ebuild2
-rw-r--r--dev-python/fakeredis/fakeredis-2.40.0.ebuild2
-rw-r--r--dev-python/fastapi/Manifest3
-rw-r--r--dev-python/fastapi/fastapi-0.143.0.ebuild124
-rw-r--r--dev-python/fastapi/fastapi-0.146.0.ebuild (renamed from dev-python/fastapi/fastapi-0.143.2.ebuild)0
-rw-r--r--dev-python/filelock/Manifest6
-rw-r--r--dev-python/filelock/filelock-4.0.1.ebuild2
-rw-r--r--dev-python/filelock/filelock-4.2.1.ebuild (renamed from dev-python/filelock/filelock-3.32.6.ebuild)9
-rw-r--r--dev-python/filelock/filelock-4.2.4.ebuild38
-rw-r--r--dev-python/flask-caching/flask-caching-2.5.1.ebuild2
-rw-r--r--dev-python/flask-compress/flask-compress-1.25.ebuild2
-rw-r--r--dev-python/flask-compress/metadata.xml4
-rw-r--r--dev-python/flask-htmlmin/metadata.xml4
-rw-r--r--dev-python/flask-paranoid/metadata.xml4
-rw-r--r--dev-python/flask-socketio/Manifest2
-rw-r--r--dev-python/flask-socketio/flask-socketio-5.5.1.ebuild29
-rw-r--r--dev-python/flask-socketio/flask-socketio-5.6.0.ebuild30
-rw-r--r--dev-python/flask-socketio/flask-socketio-5.6.1.ebuild2
-rw-r--r--dev-python/fonttools/fonttools-4.65.0.ebuild2
-rw-r--r--dev-python/fsspec/fsspec-2026.9.0.ebuild2
-rw-r--r--dev-python/funcy/funcy-2.1.ebuild2
-rw-r--r--dev-python/google-api-core/google-api-core-2.38.0.ebuild2
-rw-r--r--dev-python/google-auth/google-auth-2.58.0.ebuild2
-rw-r--r--dev-python/googleapis-common-protos/Manifest2
-rw-r--r--dev-python/googleapis-common-protos/googleapis-common-protos-1.75.0.ebuild29
-rw-r--r--dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild2
-rw-r--r--dev-python/greenlet/greenlet-3.5.6.ebuild2
-rw-r--r--dev-python/grpcio-status/Manifest2
-rw-r--r--dev-python/grpcio-status/grpcio-status-1.80.0.ebuild46
-rw-r--r--dev-python/grpcio-status/grpcio-status-1.83.0.ebuild46
-rw-r--r--dev-python/grpcio-status/grpcio-status-1.84.0.ebuild2
-rw-r--r--dev-python/grpcio/Manifest6
-rw-r--r--dev-python/grpcio/grpcio-1.80.0.ebuild135
-rw-r--r--dev-python/grpcio/grpcio-1.83.0.ebuild137
-rw-r--r--dev-python/grpcio/grpcio-1.84.0.ebuild2
-rw-r--r--dev-python/gssapi/metadata.xml4
-rw-r--r--dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild2
-rw-r--r--dev-python/hcloud/hcloud-2.25.1.ebuild2
-rw-r--r--dev-python/htmldate/Manifest1
-rw-r--r--dev-python/htmldate/htmldate-1.11.0.ebuild36
-rw-r--r--dev-python/htmldate/metadata.xml12
-rw-r--r--dev-python/httpx2/Manifest1
-rw-r--r--dev-python/httpx2/httpx2-2.14.0.ebuild99
-rw-r--r--dev-python/idna/Manifest2
-rw-r--r--dev-python/idna/idna-3.18.ebuild23
-rw-r--r--dev-python/idna/idna-3.20.ebuild2
-rw-r--r--dev-python/imapclient/imapclient-4.1.0.ebuild2
-rw-r--r--dev-python/internetarchive/Manifest3
-rw-r--r--dev-python/internetarchive/internetarchive-5.11.1.ebuild3
-rw-r--r--dev-python/internetarchive/internetarchive-5.12.0.ebuild (renamed from dev-python/internetarchive/internetarchive-5.11.0.ebuild)11
-rw-r--r--dev-python/invisible-core/Manifest1
-rw-r--r--dev-python/invisible-core/invisible-core-49.44.0.ebuild50
-rw-r--r--dev-python/invisible-core/metadata.xml12
-rw-r--r--dev-python/invisible-playwright/Manifest1
-rw-r--r--dev-python/invisible-playwright/invisible-playwright-0.36.2.ebuild63
-rw-r--r--dev-python/invisible-playwright/metadata.xml12
-rw-r--r--dev-python/jc/Manifest2
-rw-r--r--dev-python/jc/jc-1.26.1.ebuild (renamed from dev-python/jc/jc-1.25.7.ebuild)0
-rw-r--r--dev-python/joserfc/Manifest4
-rw-r--r--dev-python/joserfc/joserfc-1.7.7.ebuild (renamed from dev-python/joserfc/joserfc-1.7.4.ebuild)2
-rw-r--r--dev-python/jq/Manifest1
-rw-r--r--dev-python/jq/jq-1.13.0.ebuild48
-rw-r--r--dev-python/jsonpointer/Manifest2
-rw-r--r--dev-python/jsonpointer/jsonpointer-3.3.ebuild24
-rw-r--r--dev-python/jupyter-lsp/jupyter-lsp-2.3.1-r1.ebuild (renamed from dev-python/jupyter-lsp/jupyter-lsp-2.3.1.ebuild)1
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.20.0.ebuild68
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.21.1.ebuild2
-rw-r--r--dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild2
-rw-r--r--dev-python/justext/Manifest1
-rw-r--r--dev-python/justext/justext-3.0.2.ebuild30
-rw-r--r--dev-python/justext/metadata.xml12
-rw-r--r--dev-python/jwcrypto/Manifest2
-rw-r--r--dev-python/jwcrypto/jwcrypto-1.5.8.ebuild32
-rw-r--r--dev-python/jwcrypto/jwcrypto-1.5.9.ebuild32
-rw-r--r--dev-python/jwcrypto/jwcrypto-1.6.1.ebuild2
-rw-r--r--dev-python/lazy-object-proxy/Manifest1
-rw-r--r--dev-python/lazy-object-proxy/lazy-object-proxy-1.13.0.ebuild44
-rw-r--r--dev-python/levenshtein/Manifest1
-rw-r--r--dev-python/levenshtein/files/levenshtein-0.27.3-cython.patch26
-rw-r--r--dev-python/levenshtein/levenshtein-0.27.3.ebuild53
-rw-r--r--dev-python/levenshtein/levenshtein-0.27.5.ebuild2
-rw-r--r--dev-python/libpass/Manifest1
-rw-r--r--dev-python/libpass/libpass-1.9.4.ebuild62
-rw-r--r--dev-python/line-profiler/Manifest1
-rw-r--r--dev-python/line-profiler/line-profiler-5.1.0.ebuild55
-rw-r--r--dev-python/lit/Manifest4
-rw-r--r--dev-python/lit/lit-23.1.2.ebuild42
-rw-r--r--dev-python/lit/lit-24.0.0_pre20261018.ebuild (renamed from dev-python/lit/lit-24.0.0_pre20260929.ebuild)0
-rw-r--r--dev-python/maxminddb/Manifest2
-rw-r--r--dev-python/maxminddb/maxminddb-3.2.0.ebuild55
-rw-r--r--dev-python/maxminddb/metadata.xml12
-rw-r--r--dev-python/meson-python/Manifest1
-rw-r--r--dev-python/meson-python/meson-python-0.20.0.ebuild72
-rw-r--r--dev-python/meson-python/meson-python-0.21.1.ebuild2
-rw-r--r--dev-python/multidict/multidict-6.9.0.ebuild2
-rw-r--r--dev-python/munkres/Manifest2
-rw-r--r--dev-python/munkres/munkres-3.0.0.ebuild64
-rw-r--r--dev-python/mysqlclient/mysqlclient-2.3.0.ebuild2
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-4.3.1.ebuild58
-rw-r--r--dev-python/numpy/numpy-2.5.3.ebuild2
-rw-r--r--dev-python/numpydoc/numpydoc-1.11.0.ebuild2
-rw-r--r--dev-python/paramiko/Manifest2
-rw-r--r--dev-python/paramiko/paramiko-5.0.1.ebuild46
-rw-r--r--dev-python/paramiko/paramiko-5.1.0.ebuild46
-rw-r--r--dev-python/pdm/Manifest2
-rw-r--r--dev-python/pdm/pdm-2.29.3.ebuild (renamed from dev-python/pdm/pdm-2.29.1.ebuild)0
-rw-r--r--dev-python/pikepdf/pikepdf-10.13.0_p1.ebuild2
-rw-r--r--dev-python/pip/files/pip-25.0.1-unbundle.patch209
-rw-r--r--dev-python/pip/files/pip-26.0-test-wheels.patch74
-rw-r--r--dev-python/pip/pip-26.1.2.ebuild206
-rw-r--r--dev-python/pip/pip-26.2.1.ebuild2
-rw-r--r--dev-python/pivy/pivy-0.6.11.ebuild2
-rw-r--r--dev-python/platformdirs/Manifest6
-rw-r--r--dev-python/platformdirs/platformdirs-4.11.11.ebuild2
-rw-r--r--dev-python/platformdirs/platformdirs-4.13.4.ebuild (renamed from dev-python/platformdirs/platformdirs-4.11.8.ebuild)14
-rw-r--r--dev-python/platformdirs/platformdirs-4.13.5.ebuild62
-rw-r--r--dev-python/playwright-captcha/Manifest1
-rw-r--r--dev-python/playwright-captcha/metadata.xml12
-rw-r--r--dev-python/playwright-captcha/playwright-captcha-0.1.5.ebuild40
-rw-r--r--dev-python/playwright/Manifest1
-rw-r--r--dev-python/playwright/files/playwright-1.64.0-look-up-playwright-from-the-PATH.patch19
-rw-r--r--dev-python/playwright/metadata.xml12
-rw-r--r--dev-python/playwright/playwright-1.64.0.ebuild58
-rw-r--r--dev-python/plexapi/Manifest3
-rw-r--r--dev-python/plexapi/plexapi-4.17.2.ebuild2
-rw-r--r--dev-python/plexapi/plexapi-4.18.0.ebuild37
-rw-r--r--dev-python/plexapi/plexapi-4.18.2.ebuild2
-rw-r--r--dev-python/plexapi/plexapi-4.18.3.ebuild (renamed from dev-python/plexapi/plexapi-4.18.1.ebuild)2
-rw-r--r--dev-python/portalocker/portalocker-4.3.2.ebuild2
-rw-r--r--dev-python/propcache/propcache-0.5.4.ebuild2
-rw-r--r--dev-python/psycopg/psycopg-2.9.13.ebuild2
-rw-r--r--dev-python/psycopg/psycopg-3.3.6.ebuild2
-rw-r--r--dev-python/pure-eval/pure-eval-0.2.3.ebuild22
-rw-r--r--dev-python/pure-eval/pure-eval-0.2.4.ebuild2
-rw-r--r--dev-python/pycryptodome/Manifest1
-rw-r--r--dev-python/pycryptodome/pycryptodome-4.0.1.ebuild48
-rw-r--r--dev-python/pycurl/Manifest4
-rw-r--r--dev-python/pycurl/pycurl-7.45.7.ebuild87
-rw-r--r--dev-python/pycurl/pycurl-7.46.0.ebuild88
-rw-r--r--dev-python/pycurl/pycurl-7.48.0.ebuild2
-rw-r--r--dev-python/pyee/Manifest1
-rw-r--r--dev-python/pyee/metadata.xml12
-rw-r--r--dev-python/pyee/pyee-14.0.0.ebuild29
-rw-r--r--dev-python/pygit2/pygit2-1.20.1.ebuild2
-rw-r--r--dev-python/pygobject/pygobject-3.58.0.ebuild2
-rw-r--r--dev-python/pygraphviz/pygraphviz-2.0.2.ebuild2
-rw-r--r--dev-python/pyjwt/pyjwt-2.14.0.ebuild2
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild2
-rw-r--r--dev-python/pymysql/Manifest1
-rw-r--r--dev-python/pymysql/pymysql-1.1.3.ebuild110
-rw-r--r--dev-python/pymysql/pymysql-1.2.3.ebuild2
-rw-r--r--dev-python/pypdf/Manifest6
-rw-r--r--dev-python/pypdf/pypdf-6.18.0.ebuild59
-rw-r--r--dev-python/pypdf/pypdf-6.19.0.ebuild2
-rw-r--r--dev-python/pypdf/pypdf-6.21.1.ebuild (renamed from dev-python/pypdf/pypdf-6.18.1.ebuild)7
-rw-r--r--dev-python/pyproject-api/Manifest6
-rw-r--r--dev-python/pyproject-api/pyproject-api-1.11.0.ebuild34
-rw-r--r--dev-python/pyproject-api/pyproject-api-1.11.2.ebuild2
-rw-r--r--dev-python/pyproject-api/pyproject-api-1.12.0.ebuild (renamed from dev-python/pyproject-api/pyproject-api-1.11.1.ebuild)2
-rw-r--r--dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild2
-rw-r--r--dev-python/pyrefly/Manifest97
-rw-r--r--dev-python/pyrefly/pyrefly-1.4.0.ebuild535
-rw-r--r--dev-python/pyside/Manifest1
-rw-r--r--dev-python/pyside/pyside-6.12.0.ebuild602
-rw-r--r--dev-python/pyside/pyside-6.9999.ebuild52
-rw-r--r--dev-python/pytest-codeblock/Manifest1
-rw-r--r--dev-python/pytest-codeblock/metadata.xml12
-rw-r--r--dev-python/pytest-codeblock/pytest-codeblock-0.5.10.ebuild43
-rw-r--r--dev-python/pytest-env/Manifest2
-rw-r--r--dev-python/pytest-env/pytest-env-1.8.1.ebuild39
-rw-r--r--dev-python/pytest-mock/Manifest2
-rw-r--r--dev-python/pytest-mock/pytest-mock-3.17.0.ebuild43
-rw-r--r--dev-python/python-discovery/Manifest2
-rw-r--r--dev-python/python-discovery/python-discovery-1.6.4.ebuild55
-rw-r--r--dev-python/python-ldap/python-ldap-3.4.8.ebuild2
-rw-r--r--dev-python/python-pam/python-pam-2.1.0.ebuild2
-rw-r--r--dev-python/python-slugify/python-slugify-9.0.0.ebuild2
-rw-r--r--dev-python/pytimeparse/Manifest2
-rw-r--r--dev-python/pytimeparse/pytimeparse-1.1.10.ebuild (renamed from dev-python/pytimeparse/pytimeparse-1.1.8-r1.ebuild)0
-rw-r--r--dev-python/quart-trio/quart-trio-0.13.0.ebuild2
-rw-r--r--dev-python/regex/Manifest2
-rw-r--r--dev-python/regex/regex-2026.7.19.ebuild37
-rw-r--r--dev-python/regex/regex-2026.8.31.ebuild37
-rw-r--r--dev-python/regex/regex-2026.9.10.ebuild2
-rw-r--r--dev-python/rencode/rencode-1.0.9.ebuild2
-rw-r--r--dev-python/rfc3161-client/rfc3161-client-1.0.9.ebuild2
-rw-r--r--dev-python/scikit-learn/scikit-learn-1.9.1.ebuild2
-rw-r--r--dev-python/selenium/selenium-4.49.0.ebuild2
-rw-r--r--dev-python/semver/semver-3.1.0.ebuild2
-rw-r--r--dev-python/setuptools-scm/Manifest4
-rw-r--r--dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild60
-rw-r--r--dev-python/setuptools-scm/setuptools-scm-10.3.4.ebuild2
-rw-r--r--dev-python/setuptools-scm/setuptools-scm-9.2.2.ebuild53
-rw-r--r--dev-python/signxml/Manifest6
-rw-r--r--dev-python/signxml/signxml-4.5.1.ebuild40
-rw-r--r--dev-python/signxml/signxml-5.2.0.ebuild (renamed from dev-python/signxml/signxml-5.0.1.ebuild)2
-rw-r--r--dev-python/simpleeval/simpleeval-1.0.8.ebuild2
-rw-r--r--dev-python/sphinx-autodoc-typehints/Manifest4
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild2
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.1.ebuild4
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.2.ebuild (renamed from dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.6.ebuild)11
-rw-r--r--dev-python/sphinx-gallery/sphinx-gallery-0.22.1.ebuild2
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild2
-rw-r--r--dev-python/sshtunnel/metadata.xml4
-rw-r--r--dev-python/starlette/Manifest1
-rw-r--r--dev-python/starlette/starlette-1.9.0.ebuild55
-rw-r--r--dev-python/strip-hints/Manifest1
-rw-r--r--dev-python/strip-hints/strip-hints-0.2.0.ebuild26
-rw-r--r--dev-python/syrupy/Manifest2
-rw-r--r--dev-python/syrupy/syrupy-5.5.3.ebuild39
-rw-r--r--dev-python/syrupy/syrupy-6.1.1.ebuild2
-rw-r--r--dev-python/tavern/Manifest3
-rw-r--r--dev-python/tavern/tavern-3.6.1.ebuild71
-rw-r--r--dev-python/tavern/tavern-3.7.1.ebuild (renamed from dev-python/tavern/tavern-3.6.2.ebuild)11
-rw-r--r--dev-python/texttable/Manifest1
-rw-r--r--dev-python/texttable/texttable-1.7.2.ebuild35
-rw-r--r--dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild2
-rw-r--r--dev-python/time-machine/Manifest2
-rw-r--r--dev-python/time-machine/time-machine-3.3.1.ebuild36
-rw-r--r--dev-python/time-machine/time-machine-3.4.0.ebuild36
-rw-r--r--dev-python/time-machine/time-machine-3.5.1.ebuild20
-rw-r--r--dev-python/tinycss2/metadata.xml4
-rw-r--r--dev-python/tld/Manifest1
-rw-r--r--dev-python/tld/metadata.xml12
-rw-r--r--dev-python/tld/tld-0.13.2.ebuild30
-rw-r--r--dev-python/tornado/tornado-6.5.10.ebuild2
-rw-r--r--dev-python/tox/Manifest6
-rw-r--r--dev-python/tox/tox-4.61.4.ebuild2
-rw-r--r--dev-python/tox/tox-4.67.0.ebuild (renamed from dev-python/tox/tox-4.61.2.ebuild)4
-rw-r--r--dev-python/tox/tox-4.67.1.ebuild84
-rw-r--r--dev-python/tqdm/Manifest2
-rw-r--r--dev-python/tqdm/tqdm-4.69.1.ebuild43
-rw-r--r--dev-python/tqdm/tqdm-4.70.1.ebuild2
-rw-r--r--dev-python/trafilatura/Manifest1
-rw-r--r--dev-python/trafilatura/metadata.xml12
-rw-r--r--dev-python/trafilatura/trafilatura-2.3.1.ebuild44
-rw-r--r--dev-python/trakit/trakit-0.4.0.ebuild2
-rw-r--r--dev-python/translate-toolkit/Manifest2
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild123
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild123
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.20.0.ebuild2
-rw-r--r--dev-python/unidiff/unidiff-1.0.1.ebuild2
-rw-r--r--dev-python/urllib3/urllib3-2.8.0.ebuild2
-rw-r--r--dev-python/urwid/Manifest4
-rw-r--r--dev-python/urwid/urwid-4.1.0.ebuild49
-rw-r--r--dev-python/urwid/urwid-4.1.1.ebuild49
-rw-r--r--dev-python/urwid/urwid-4.1.5.ebuild2
-rw-r--r--dev-python/uv-build/uv-build-0.12.17.ebuild2
-rw-r--r--dev-python/uv/uv-0.12.17.ebuild2
-rw-r--r--dev-python/uvicorn/uvicorn-0.53.0.ebuild2
-rw-r--r--dev-python/valkey/valkey-6.1.1.ebuild2
-rw-r--r--dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild2
-rw-r--r--dev-python/vcs-versioning/vcs-versioning-2.6.0.ebuild2
-rw-r--r--dev-python/virtualenv/Manifest4
-rw-r--r--dev-python/virtualenv/virtualenv-21.14.10.ebuild131
-rw-r--r--dev-python/virtualenv/virtualenv-21.14.11.ebuild131
-rw-r--r--dev-python/wcwidth/wcwidth-0.8.4.ebuild2
-rw-r--r--dev-python/wrapt/wrapt-2.4.1.ebuild2
-rw-r--r--dev-python/xcffib/Manifest1
-rw-r--r--dev-python/xcffib/xcffib-1.13.0.ebuild42
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild2
-rw-r--r--dev-python/xxhash/Manifest2
-rw-r--r--dev-python/xxhash/xxhash-3.8.1.ebuild42
-rw-r--r--dev-python/yarl/yarl-1.25.1.ebuild2
-rw-r--r--dev-python/ytmusicapi/ytmusicapi-1.12.3.ebuild2
311 files changed, 3713 insertions, 3342 deletions
diff --git a/dev-python/2captcha/2captcha-2.1.1.ebuild b/dev-python/2captcha/2captcha-2.1.1.ebuild
new file mode 100644
index 000000000000..6aa2a11f4650
--- /dev/null
+++ b/dev-python/2captcha/2captcha-2.1.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python package for easy integration with the API of 2captcha"
+HOMEPAGE="https://github.com/2captcha/2captcha-python"
+SRC_URI="https://github.com/2captcha/2captcha-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/2captcha-python-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/aiofiles[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/2captcha/Manifest b/dev-python/2captcha/Manifest
new file mode 100644
index 000000000000..bc586b5c5245
--- /dev/null
+++ b/dev-python/2captcha/Manifest
@@ -0,0 +1 @@
+DIST 2captcha-2.1.1.tar.gz 1270438 BLAKE2B e5fc869a531e19fb7af03a93e11668907819aaf639e1f22724371b6517cc919d3680110029c0e6f52ac12b80b8bbce0c1228a1eb2f82e1028855c9338f5fea22 SHA512 35faa1af05a253e6c156ea694b69bc8dd2a7eedde82ddd0f1c4dd650a5990bb38bec6d8cf29cc6fb4820f347bedc5b0367729ce0c06c8a464a8073feb11f55be
diff --git a/dev-python/2captcha/metadata.xml b/dev-python/2captcha/metadata.xml
new file mode 100644
index 000000000000..f4b78e966187
--- /dev/null
+++ b/dev-python/2captcha/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/2captcha/2captcha-python/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/alembic/Manifest b/dev-python/alembic/Manifest
index d630b9f74f99..9fc3b03dd868 100644
--- a/dev-python/alembic/Manifest
+++ b/dev-python/alembic/Manifest
@@ -1,4 +1,2 @@
-DIST alembic-1.19.0.tar.gz 2069906 BLAKE2B b7f08fbc1023101ca709ee5f6bb82514621a46b18d9c22ad26d9d00c0231cb51186a25c1db0b37943bdb55ea6b2d3c25637ab92667193cd0e85b8f574144dbfc SHA512 7674acbd3bccef780a0b987fdecf7cb3439dc65f58dfeb1d4773c04f81625cbca80152a7a802e54a8cb57b58554f908671feae9680e1fa3567a9f53617c94eef
-DIST alembic-1.19.1.tar.gz 2070816 BLAKE2B b6e2a7189ae5ca980a9f398464bac175501d51932d952b456d6c0ee67d9917a16ced95b669ddb480c24c7bee531b4c1528839894b38e05497b834c48f5dc3252 SHA512 d394e3626c02f06903fe45f4d60c89dfecc68cc45f539e9fca06015726a39cdcd03fbb4a57cf7cc19d0853f6a687b9d2afa1b15e5b54a552b113ad6b7535de6a
DIST alembic-1.19.2.tar.gz 2082643 BLAKE2B 649f08694658c0974c59a04ac059fee1520e58975bc264c7f2c2834934be855c5b22eab636d23845baebacf929a46fb67a99ac5c3a1660205f83df93e61c93b1 SHA512 c6ae515303f5106bf357c92ff979c9960a682b086c91423d467565613e8011be17db90b13c298f237e37d5a598b32fa9aa0251e5499e4aaf6626b66ea4e41bc8
DIST alembic-1.20.0.tar.gz 2093272 BLAKE2B 85ed0b3703a6080548a974ade247f60fe322d1b959aceecbce9120cae42b59c995e60e9f413d3afedce59a6f36ce06f5143899f1be477ae05cf83ebbe69618b0 SHA512 d81b45783104ed5a349ae53dfbb07dd90bd9a3bd7f2f9c91e9f5005733949a684afec0cd03518475308b527f146164ded4160b5d26c096f6c595d1ffd2d4bab2
diff --git a/dev-python/alembic/alembic-1.19.0.ebuild b/dev-python/alembic/alembic-1.19.0.ebuild
deleted file mode 100644
index 4500ba72f4a7..000000000000
--- a/dev-python/alembic/alembic-1.19.0.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Database migrations tool, written by the author of SQLAlchemy"
-HOMEPAGE="
- https://github.com/sqlalchemy/alembic/
- https://pypi.org/project/alembic/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
-IUSE="doc"
-
-RDEPEND="
- >=dev-python/sqlalchemy-1.4.23[${PYTHON_USEDEP}]
- dev-python/mako[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- sys-libs/timezone-data
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=()
-
- if ! has_version "dev-python/black[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/test_post_write.py::RunHookTest::test_module
- tests/test_post_write.py::RunHookTest::test_module_black_with_cwd
- tests/test_post_write.py::RunHookTest::test_module_filename_interpolation
- tests/test_post_write.py::RunHookTest::test_module_path_in_config
- )
- fi
-
- # setup.cfg contains -p no:warnings in addopts which triggers
- # datetime.utcfromtimestamp() deprecation warning as an error in py3.12
- epytest -o addopts=
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( docs/. )
- distutils-r1_python_install_all
-}
diff --git a/dev-python/alembic/alembic-1.19.1.ebuild b/dev-python/alembic/alembic-1.19.1.ebuild
deleted file mode 100644
index 4500ba72f4a7..000000000000
--- a/dev-python/alembic/alembic-1.19.1.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Database migrations tool, written by the author of SQLAlchemy"
-HOMEPAGE="
- https://github.com/sqlalchemy/alembic/
- https://pypi.org/project/alembic/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
-IUSE="doc"
-
-RDEPEND="
- >=dev-python/sqlalchemy-1.4.23[${PYTHON_USEDEP}]
- dev-python/mako[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- sys-libs/timezone-data
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=()
-
- if ! has_version "dev-python/black[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/test_post_write.py::RunHookTest::test_module
- tests/test_post_write.py::RunHookTest::test_module_black_with_cwd
- tests/test_post_write.py::RunHookTest::test_module_filename_interpolation
- tests/test_post_write.py::RunHookTest::test_module_path_in_config
- )
- fi
-
- # setup.cfg contains -p no:warnings in addopts which triggers
- # datetime.utcfromtimestamp() deprecation warning as an error in py3.12
- epytest -o addopts=
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( docs/. )
- distutils-r1_python_install_all
-}
diff --git a/dev-python/alembic/alembic-1.20.0.ebuild b/dev-python/alembic/alembic-1.20.0.ebuild
index 0dead21950f2..ab5f4e0041ee 100644
--- a/dev-python/alembic/alembic-1.20.0.ebuild
+++ b/dev-python/alembic/alembic-1.20.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
IUSE="doc"
RDEPEND="
diff --git a/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild b/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild
index 7f1ae942aecf..bd39b8f935af 100644
--- a/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild
+++ b/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/ansi2html/ansi2html-1.9.5.ebuild b/dev-python/ansi2html/ansi2html-1.9.5.ebuild
index 0a12278a9fc9..304d6a78affd 100644
--- a/dev-python/ansi2html/ansi2html-1.9.5.ebuild
+++ b/dev-python/ansi2html/ansi2html-1.9.5.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~riscv x86"
BDEPEND="
>=dev-python/setuptools-scm-7.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/apsw/Manifest b/dev-python/apsw/Manifest
index 8264d4fe4812..d688d7eb4c30 100644
--- a/dev-python/apsw/Manifest
+++ b/dev-python/apsw/Manifest
@@ -1,2 +1,3 @@
DIST apsw-3.53.3.1.zip 2870366 BLAKE2B 2ac8f16f41348939b99477a85b3d6e6200561f8fdeb0557679dd65020df0cf0e0e0b35b3fbad50e3688bf6d825230b1033f77dc615c2ee560787c941c84f90f4 SHA512 5341ec535a0cb45573fc1a7a0243eb4e9d877f2b0987d68849163939d5babd925b17fc5f7c21741e3bc512b707c7ff4156de34c49a4eb16be914bd87cdf1c6a0
DIST apsw-3.53.4.0.zip 2875721 BLAKE2B 4f56c68ae9e298cd08ddc4bb3f9d38a693bcc376dc27db746361edb3d62e3c0fdeef4a68b54efbd3ded28f57b222b4b61e3d18253ca8484b8628dc8cb01a2cae SHA512 f06c5f5507bf48cd19969522e80546a4d59cfb05aa5f3ced3f1851f78fab20a93fef35b9a193ba3dd1771e4d84796162332c61677c0fc84c5a6a244106a99f20
+DIST apsw-3.54.1.0.zip 2903269 BLAKE2B 0852899000145bee339e4a1dcbd20e50f2b2e9ee5a5be948d5fd68f0dad4f0ad6312989255d3edebdba98519cbb0949d4fd23860666e2f38d4eb759be060a568 SHA512 f70e2d8e997e647d6ca97fca4ebe440ab99bc9e74105197e1b8784580c17a43369f5ab01428942c090d4c916dd38123837964ad70c8316b94a2b13f7eecfce34
diff --git a/dev-python/apsw/apsw-3.54.1.0.ebuild b/dev-python/apsw/apsw-3.54.1.0.ebuild
new file mode 100644
index 000000000000..b599d40c008d
--- /dev/null
+++ b/dev-python/apsw/apsw-3.54.1.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="APSW - Another Python SQLite Wrapper"
+HOMEPAGE="
+ https://github.com/rogerbinns/apsw/
+ https://pypi.org/project/apsw/
+"
+SRC_URI="
+ https://github.com/rogerbinns/apsw/releases/download/${PV}/${P}.zip
+"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="doc"
+
+DEPEND="
+ >=dev-db/sqlite-${PV%.*}:3
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_configure() {
+ cat >> setup.apsw <<-EOF || die
+ [build_ext]
+ use_system_sqlite_config=True
+ EOF
+}
+
+python_test() {
+ esetup.py build_test_extension
+ cd "${T}" || die
+ "${EPYTHON}" -m apsw.tests -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ doman man/apsw.1
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ast-serialize/ast-serialize-0.11.2.ebuild b/dev-python/ast-serialize/ast-serialize-0.11.2.ebuild
index 7142c24913c5..eace6f949383 100644
--- a/dev-python/ast-serialize/ast-serialize-0.11.2.ebuild
+++ b/dev-python/ast-serialize/ast-serialize-0.11.2.ebuild
@@ -30,7 +30,7 @@ LICENSE+="
Unicode-DFS-2016 ZLIB
"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 ~sparc x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/awscrt/awscrt-0.37.0.ebuild b/dev-python/awscrt/awscrt-0.37.0.ebuild
index 97eb0e3fd6cf..8573cda01b08 100644
--- a/dev-python/awscrt/awscrt-0.37.0.ebuild
+++ b/dev-python/awscrt/awscrt-0.37.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86"
DEPEND="
>=dev-libs/aws-c-common-1.0.0:=
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
index 474b48966dac..ddd4d61d9648 100644
--- a/dev-python/bitarray/Manifest
+++ b/dev-python/bitarray/Manifest
@@ -3,3 +3,4 @@ DIST bitarray-3.11.0.tar.gz 174911 BLAKE2B e9a2444607225488576e565046039ae5fa878
DIST bitarray-3.12.0.tar.gz 186999 BLAKE2B 258cb651eb603b391f7713e6590122375cee85448f2d009c817602b4bdf2a56af2df3631d7f27cb51429008a2059e5349e9a7b4e8b103a8ab109db9f6f551d78 SHA512 36852e5dce353a640aff490064b0604effac3481c9ed9f32ba510f4bb2ed98b7fc9a06e3ea19a78fe838ea7a2177835d0376dfde7c5366452f73830d97194528
DIST bitarray-3.12.1.tar.gz 187103 BLAKE2B f8d9d2c3959f2bfadfea5addbc176bf78feac812644d3508979784b841f6fb8af9bfac1b4781887421813dd45b895956c7a8e2917e089d0fe48fe953868e16b5 SHA512 83ac90d9d2b6422862b978847c8511e5c254e13e30909a4da199aab9c826ea0f3c17a7f6b816288b1880b48638d1ee597046d77b3cad624cd0e8b7765d28b1ce
DIST bitarray-3.12.2.tar.gz 187672 BLAKE2B de8063e169a25a0c55964481f28b53d635e56c55e13862eac55154aaa0cf5a76eecc3170e785c960a3d90d5f9927c0f86dbd781de760bf89a6f565fe1f714f75 SHA512 ae387e63d3d30dabb1bbe58484cda665ad87a31ad2598233583116ebc7da7390f9170f43ffb60dbf48703141141e885becabfa2026595e09c88b4b9465546889
+DIST bitarray-3.12.3.tar.gz 189559 BLAKE2B e2cc4e98a1348cf4f536832b7ed0cb04bf2dd9c0b80abae79d6d942b724919890c1de2ea4fbd9bc858bd78b5864406e97d04eec529f71558868f4716af88246a SHA512 c5a3478669d973bcfe8f3f379f4c4f0961913f82a679dce47f3e8f29d0f5a34376b3aac0e900e8ecdce817f9b9e52ee159797b9f87593d8407da532a51239472
diff --git a/dev-python/bitarray/bitarray-3.12.3.ebuild b/dev-python/bitarray/bitarray-3.12.3.ebuild
new file mode 100644
index 000000000000..c70a37e0f30b
--- /dev/null
+++ b/dev-python/bitarray/bitarray-3.12.3.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Efficient arrays of booleans -- C extension"
+HOMEPAGE="
+ https://github.com/ilanschnell/bitarray/
+ https://pypi.org/project/bitarray/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+python_test() {
+ "${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/blessed/blessed-1.50.0.ebuild b/dev-python/blessed/blessed-1.50.0.ebuild
index 2d966eb57b93..9fd01d486884 100644
--- a/dev-python/blessed/blessed-1.50.0.ebuild
+++ b/dev-python/blessed/blessed-1.50.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/jinxed-2.1[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.43.98.ebuild b/dev-python/boto3/boto3-1.43.98.ebuild
index fcfc7c9a743e..68dfafa9fe85 100644
--- a/dev-python/boto3/boto3-1.43.98.ebuild
+++ b/dev-python/boto3/boto3-1.43.98.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
RDEPEND="
>=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/botocore/botocore-1.43.114.ebuild b/dev-python/botocore/botocore-1.43.114.ebuild
index c5a99a77214e..f9bdb6aef37e 100644
--- a/dev-python/botocore/botocore-1.43.114.ebuild
+++ b/dev-python/botocore/botocore-1.43.114.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
RDEPEND="
<dev-python/jmespath-2[${PYTHON_USEDEP}]
diff --git a/dev-python/cachelib/cachelib-0.17.0.ebuild b/dev-python/cachelib/cachelib-0.17.0.ebuild
index 1e3f818eb8e6..b607f938e2dc 100644
--- a/dev-python/cachelib/cachelib-0.17.0.ebuild
+++ b/dev-python/cachelib/cachelib-0.17.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
BDEPEND="
test? (
diff --git a/dev-python/cachetools/Manifest b/dev-python/cachetools/Manifest
index cf3b306b62ec..34c2f3e06b3e 100644
--- a/dev-python/cachetools/Manifest
+++ b/dev-python/cachetools/Manifest
@@ -1,4 +1,4 @@
-DIST cachetools-7.1.8.tar.gz 40909 BLAKE2B 7079716f3eaaa3d2f70dbc6806920f08c971ef107c4dcdee83cf922ad22bdfbda8d1fa09b0c32c139e89c2e9390a1c8980ddddff81c100ee28fecd51a8e29ba0 SHA512 702f07689e1f6a0fd7f2bd614d198f936df85408cc0ca8ef15b96cc4e35dfb0a511377f0a62f92e3b388162e9975e45fbadf0130679b175c2cea853ace531ecf
DIST cachetools-7.2.0.tar.gz 41129 BLAKE2B 6d3f48391d2f515ac828834851d97abea7e1f0ec00fed4bf178c5afc484f6f0f913222dcc38f8bb3ede0a71fa946f0905ed9dacecf62f741a33cca1195bb496a SHA512 10d73a168633e51af9f33f9c1326c7146f264f028d0571f42852e31cbeaedf1a1f96a29e4b37169c155ca12ad9006f7fad58fccfed2bebea56fd5b200e8ddef4
DIST cachetools-7.2.1.tar.gz 41357 BLAKE2B cbc87b5fd10a9ad03fe841f719a0223ac93e8ec04f56b600991f6d18a589761ffdc275dcf303b97522b09f4ded2f849b157f767eb7c889935b0eebf46ed00a13 SHA512 9a5a707cca4e8c176a68730e04b5cb17dd36c2ef41439407f3c2be3f3af6b7a8db0b22c74db856e16d03755de8aed09c7cb0fed2a814d3c551a588e99f99bad0
DIST cachetools-7.2.2.tar.gz 42916 BLAKE2B fefa8fbaa848fa378b510bca908e57ad3ac97ba4ee9713ceed4b9b7b262593749d75bf8be4fd6e6e252419831d84558324737563e2da6442359fcdc28f7d77ae SHA512 039674f413dbcc857e0173fe9abbc3a9c931c2c330ccfcae090b7e3c62ca3a0ba727654d7b18eddbc799940836d6b5be512da53ca7b028e041dc5b701bc02e12
+DIST cachetools-7.2.3.tar.gz 43727 BLAKE2B d3bda3035e8404a3c1e92a0b1d7c8ec5fb746f7723661d10fe002f51ea89c9a970948622225ae8f6553ba8aac54b8476d9b415897e60687388f321a2499f17ca SHA512 deecfc71e280ff9d44944ffd4ee64f55bfa10cef76be95885bd06b080bd4c510f075d730ff6ac2bc00cdd20f49ecc9c3fd55c68946e3917bef74bf6daa9f8694
diff --git a/dev-python/cachetools/cachetools-7.2.0.ebuild b/dev-python/cachetools/cachetools-7.2.0.ebuild
index ec602b06cbfd..c3353be4b141 100644
--- a/dev-python/cachetools/cachetools-7.2.0.ebuild
+++ b/dev-python/cachetools/cachetools-7.2.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"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/cachetools/cachetools-7.1.8.ebuild b/dev-python/cachetools/cachetools-7.2.3.ebuild
index c3353be4b141..ec602b06cbfd 100644
--- a/dev-python/cachetools/cachetools-7.1.8.ebuild
+++ b/dev-python/cachetools/cachetools-7.2.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"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index f5bfc238314d..3039732780dd 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -10,9 +10,7 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
-DIST llvm-project-23.1.2.src.tar.xz 179200068 BLAKE2B 554cddd2a3e273ba876da7815e5b0b6999319d2d2c0016603def4e31ce064fe119422aca0033ea0ab2e36ea22d46985ea042b891eed60647b119687c19f9b556 SHA512 91174e69ea787034f8a6b17120aae5f139204e13292119d1b066b4930dcea586c76b82228d3db281d8d4211384c7cb74c6b61fdef41b39d310908a8c7cf080cc
-DIST llvm-project-23.1.2.src.tar.xz.sig 119 BLAKE2B 20a19a2a584c6298841e20f95bf13e42c5f591f82087abd26f77f1d7f87b575dc661fd8bc72f6a7faad485cf75ff4219fb810fbb3a73b0a5992014157e5094fc SHA512 fe76751211cfb1a56935f0e6fd9536309eb02111acb3f32f4badf7e45e6f0283125cf2ece00baa420afc488667c7e1fbb06f0567aa33ff9459f41281cb25e10c
DIST llvm-project-23.1.3.src.tar.xz 179220548 BLAKE2B 1ce328590eb86e5a8d117a1d5c2c4b691d9c1a897f239ba197e14f47b660e927313133e94a518c43ceed163fc081760d5d33e2685a94af1031184a0960ffb5c7 SHA512 eb76f37804564a2595ca8de4864e96cf13c0a3f07922f6bce4d11771547525785c0fde54457aadf7aa1bcaac496475f1dde00e1b152c1df560669c6e3e1318bf
DIST llvm-project-23.1.3.src.tar.xz.sig 466 BLAKE2B 0f5bc2af1f860f908ecb10b057170a832d42c5d916b63b86b75e529466d1ab2f6b2258c3b51a3cb0f236d9553d2990550343f371062d5224fb319bb9d4be26cd SHA512 7eabfb513a5516cab7d2d366117abd36bdb9d1a50e8ab0b21991d8143222e965ac53dbbacc80c8977ed8aaee57b480b7fdbdae0ba847f62c031da69989d34d2d
DIST llvm-project-53310c92e86e1c285b1fe3aaf76158addd0a2036.tar.gz 320028470 BLAKE2B f71cfa7241e3272e3f85200a2f83ffa2ec99b713d444102ce4e0b8420019a6f0f7818ce4a04a2f59be455cd2c26f557c814afbd4613ea09c6133e9faeaf90f42 SHA512 c9304de60fa1ef194b0d1ef158a6d0638465a723a86fbac922184fbd808044e43cd709bc4b5f15cbf04f6ddc465bedc7220978a4913959e4094c9e0ca9a2022a
-DIST llvm-project-9fe649af67007493c02108b484c8b9259e3d522e.tar.gz 318504162 BLAKE2B 43f10fa26c665d9986a093fa8287f302b54dee2b0e74c3c835fd7642c233a3574b3e03e82380f24b1d277b1063ae3bca05a2061b9fa794559f695aa9689e5134 SHA512 7000bf65c5d696a1a870ba8a7f645958970f535a3b68cc7df8da8f3fa31afe4fb02049532919a5974721618b212b3ed7796fd0e1e63de69484517cd91a2289e9
+DIST llvm-project-c5904d2bebe0497b30a712adc085e96107f03160.tar.gz 321341453 BLAKE2B d2915041721282318947af08cfa79b42017dcaf9674863469f97752a6f98c323539fda7c329a926b274a7e196da1aef7ed747945a5a374cfb0803474368a0214 SHA512 55fb2c912d0b87fa6bea5eacd1006a44f40a2880e59b6eec2e22e21cedd4b67eef0da66a58b03c508fc1f2e77e815cba034ed0b1c3cf11ad99a15186f16f9244
diff --git a/dev-python/clang/clang-23.1.2.ebuild b/dev-python/clang/clang-23.1.2.ebuild
deleted file mode 100644
index 2a1b09426737..000000000000
--- a/dev-python/clang/clang-23.1.2.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 llvm.org
-
-DESCRIPTION="Python bindings for llvm-core/clang"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# The module is opening libclang.so directly, and doing some blasphemy
-# on top of it.
-DEPEND="
- >=llvm-core/clang-${PV}:*
- !llvm-core/llvm:0[clang(-),python(-)]
- !llvm-core/clang:0[python(-)]
-"
-RDEPEND="
- ${DEPEND}
- ${PYTHON_DEPS}
-"
-BDEPEND="
- ${PYTHON_DEPS}
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- llvm-core/clang:${LLVM_MAJOR}
- )
-"
-
-LLVM_COMPONENTS=( clang/{bindings/python,include} )
-llvm.org_set_globals
-
-distutils_enable_tests unittest
-
-python_test() {
- # tests rely on results from a specific clang version, so override
- # the search path
- local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
- local -x CLANG_NO_DEFAULT_CONFIG=1
- eunittest
-}
diff --git a/dev-python/clang/clang-24.0.0_pre20260929.ebuild b/dev-python/clang/clang-24.0.0_pre20261018.ebuild
index aa99ad725bb8..aa99ad725bb8 100644
--- a/dev-python/clang/clang-24.0.0_pre20260929.ebuild
+++ b/dev-python/clang/clang-24.0.0_pre20261018.ebuild
diff --git a/dev-python/configupdater/Manifest b/dev-python/configupdater/Manifest
index 948d6985eab5..9a0b09c756c8 100644
--- a/dev-python/configupdater/Manifest
+++ b/dev-python/configupdater/Manifest
@@ -1 +1,3 @@
DIST configupdater-3.2.gh.tar.gz 139435 BLAKE2B c65db82b4dd2cc944772418e2166516aed610cf63bc693b16b5d62872700a6a75fefb144ea2e17300c3b665489fa66dc7dbca4396235d18f962c9ed105fedf97 SHA512 700925a27033049de6fc3ee1fbafc4968ea2cc0683ae66725da5cffeff2f5e0e85229c6560e685976023955ce7d642fe7182e67a6a8dea2d4953531cf5938812
+DIST configupdater-4.0.tar.gz 142596 BLAKE2B 3b4ff5abf985aca291a2119bb0c038e99d5916ad2776cd10334fe1ab663f5284a87a32bad871752311ac3d72511f04a4512cc730151439af0cc966b6d0b3e6dd SHA512 fd78a3b75b95a297f31093e0cc3dc47332c0d12c74d1d1c8318978a827017b870faf6baa68e27dcc92b6a34b8c6a175f06af9dbdf550c6cb098eab0910ecd76d
+DIST configupdater-4.0.tar.gz.provenance 10126 BLAKE2B f79fa98e7fb2ef6e663631e1cbc2ee5c6e8ebb618323a5bf47ca15bcabbf6171c4533c869b8303ba813846ff22f3ed9741375f44cb3672f18a388413f5cba30f SHA512 b2af0c664c1ef3d83e8e6f43392bab975e9ecd7abf40933f7ca663c8967a9726c114f03df624c20064c338ec027a8ad322dad11342bbd95120a3aff698f13920
diff --git a/dev-python/configupdater/configupdater-4.0.ebuild b/dev-python/configupdater/configupdater-4.0.ebuild
new file mode 100644
index 000000000000..7e04bc388099
--- /dev/null
+++ b/dev-python/configupdater/configupdater-4.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pyscaffold/configupdater
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Parser like ConfigParser but for updating configuration files"
+HOMEPAGE="
+ https://github.com/pyscaffold/configupdater/
+ https://pypi.org/project/ConfigUpdater/
+"
+
+LICENSE="MIT PSF-2 PYTHON"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/courlan/Manifest b/dev-python/courlan/Manifest
new file mode 100644
index 000000000000..e716c66f0428
--- /dev/null
+++ b/dev-python/courlan/Manifest
@@ -0,0 +1 @@
+DIST courlan-1.4.0.tar.gz 205041 BLAKE2B 9d2baa9f50efbcdf8310510f719a7f5e97f16e7631d6eb753888ba7b78aeda0bdfdfd0bff73b236a929f1d6d5861c739e9156846ce06b0488847f1c9ce7c35d1 SHA512 320ada5aff819efce7ac51e3ab11dfc3255f13fed54b817844922e28743d245f30b3370c30b436c6fda8f141e60b4d1ccaa0cf7c3cb0a769e4afe1cfa88cf0b7
diff --git a/dev-python/courlan/courlan-1.4.0.ebuild b/dev-python/courlan/courlan-1.4.0.ebuild
new file mode 100644
index 000000000000..9412fa695e17
--- /dev/null
+++ b/dev-python/courlan/courlan-1.4.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Clean, filter and sample URLs to optimize data collection"
+HOMEPAGE="https://github.com/adbar/courlan"
+SRC_URI="https://github.com/adbar/courlan/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/babel[${PYTHON_USEDEP}]
+ dev-python/tld[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-httpserver )
+distutils_enable_tests pytest
diff --git a/dev-python/courlan/metadata.xml b/dev-python/courlan/metadata.xml
new file mode 100644
index 000000000000..8df382adaa68
--- /dev/null
+++ b/dev-python/courlan/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/adbar/courlan/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 83cbd8b853dd..159a10bc897b 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1,5 +1,3 @@
-DIST coverage-7.15.4.tar.gz 936952 BLAKE2B 524db3ea1117e1d19df9d6fcbee400014f3145dd33f04e583daba49dbc2c1028ce99afdeb5c5630ab8cf344cdee974ef661f7d413a0c7c916917f899e31b376d SHA512 d0a0541e95e9e509aa8cd496a0cf1ae2da820bb3457c684e916bae18c654210d43f4919a4b72a633e48a8d5803c4e4654e2c03d07129bb5026d1ce6cbf1ef44e
-DIST coverage-7.15.4.tar.gz.provenance 9997 BLAKE2B 0c5bb2094a2b276460d6c35e8074aa4a49f4a1b9130c631e5224449bb6e93bf2cccfefe2939d8aa26f9954a51e5671704c9fa3f30354d2c673f344a1d1765199 SHA512 c6599777cfc67cdb601ddda20badf1d78de357bf7235e2ba6bd7f5a2d606694314e7cfb96d3225a1ad47a9667cb7d9047ede6de4c3fc747f5b58e4ccdadb30d5
DIST coverage-7.16.0.tar.gz 945620 BLAKE2B 5f93ac8e2a91c354fb7dc57fc710613f639ec485a53c866288fe4a96c262af030d2657974d827ad6929bdf72f261c0937595c73650231a1536f4d36c0d20242f SHA512 2a63023d8ed89537ee20b766f07556979243f5eb72228972ad6b2f4c4cf9f79c85ec69c73fe5f8bc7120f8a358abe60b64281c96c128462b430f7ceb9f1ca83a
DIST coverage-7.16.0.tar.gz.provenance 9905 BLAKE2B 7c9a6480d9295ea7818c83285ae379c29a255b7a8252cfe5b80dbc8cc0af289d15bd6e9306af9e656271e443994a0a867a4ac0a385b75fb612a82e997985848e SHA512 c28195e374aa4330625f979e851b4d54c6040f8a3044059a0d218254b7d66d9087129051f0e4b2a24f39effc13ddd26b76f0baa341ffd803e7d6f3dd206acd33
DIST coverage-7.16.1.tar.gz 969651 BLAKE2B 0b33a919ba5722d9ff20c3561f096677abfbced651e9d4ac5f7c295276f777e41263c043de2e7fc7c9543403deb230ad00b2cd4b3ca46fae2136304fde25ec93 SHA512 5d5b295b3462d558656e4c1ce060c12f0e4cf20cfd4aeec51a1100d331929cfdf4e0f5fa5a7d695e817de8466f27252af92e52d43ae3bd88e7705dd5cb874d01
diff --git a/dev-python/coverage/coverage-7.15.4.ebuild b/dev-python/coverage/coverage-7.15.4.ebuild
deleted file mode 100644
index 31d0c11b537c..000000000000
--- a/dev-python/coverage/coverage-7.15.4.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/coveragepy/coveragepy
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+),sqlite(+)"
-
-inherit distutils-r1 multiprocessing pypi
-
-DESCRIPTION="Code coverage measurement for Python"
-HOMEPAGE="
- https://coverage.readthedocs.io/en/latest/
- https://github.com/coveragepy/coveragepy/
- https://pypi.org/project/coverage/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="+native-extensions"
-
-BDEPEND="
- test? (
- >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-{rerunfailures,xdist} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_compile() {
- if ! use native-extensions; then
- local -x COVERAGE_DISABLE_EXTENSION=1
- fi
-
- distutils-r1_python_compile
-}
-
-test_tracer() {
- local -x COVERAGE_CORE=${1}
- einfo " Testing with the ${COVERAGE_CORE} core ..."
- nonfatal epytest -o addopts= "${@:2}" tests ||
- die "Tests failed with ${EPYTHON}, ${COVERAGE_CORE} core"
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken because of pytest plugins explicity loaded
- tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
- # these expect specific availability of C extension matching
- # COVERAGE_CORE (which breaks testing pytracer on CPython)
- tests/test_cmdline.py::CmdLineStdoutTest::test_version
- tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
- # packaging tests, fragile to setuptools version
- tests/test_setup.py
- )
- local EPYTEST_IGNORE=(
- # pip these days insists on fetching build deps from Internet
- tests/test_venv.py
- )
-
- "${EPYTHON}" igor.py zip_mods || die
-
- local -x COVERAGE_TESTING=True
- # TODO: figure out why they can't be imported inside test env
- local -x COVERAGE_NO_CONTRACTS=1
-
- local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
- local xdist_args=()
- if [[ ${jobs} -gt 1 ]]; then
- # required upstream to avoid cross-test conflicts
- xdist_args+=( --dist=loadgroup )
- fi
-
- local prev_opt=$(shopt -p nullglob)
- shopt -s nullglob
- local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
- ${prev_opt}
-
- if [[ -n ${c_ext} ]]; then
- cp "${c_ext}" coverage/ || die
- test_tracer ctrace "${xdist_args[@]}"
- fi
-
- test_tracer pytrace "${xdist_args[@]}"
-
- # available since Python 3.12
- test_tracer sysmon "${xdist_args[@]}"
-
- if [[ -n ${c_ext} ]]; then
- rm coverage/*.so || die
- fi
-}
diff --git a/dev-python/coverage/coverage-7.16.1.ebuild b/dev-python/coverage/coverage-7.16.1.ebuild
index bb83b5e46e2e..4064d1893376 100644
--- a/dev-python/coverage/coverage-7.16.1.ebuild
+++ b/dev-python/coverage/coverage-7.16.1.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/cramjam/cramjam-2.12.1.ebuild b/dev-python/cramjam/cramjam-2.12.1.ebuild
index fc29c860b55a..d750b52bf888 100644
--- a/dev-python/cramjam/cramjam-2.12.1.ebuild
+++ b/dev-python/cramjam/cramjam-2.12.1.ebuild
@@ -142,7 +142,7 @@ LICENSE+="
Unicode-3.0
"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86"
DEPEND="
app-arch/bzip2:=
diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest
index 93515805c5a9..d93535f015a3 100644
--- a/dev-python/dulwich/Manifest
+++ b/dev-python/dulwich/Manifest
@@ -1,6 +1,4 @@
DIST bstr-1.12.3.crate 355150 BLAKE2B 7f600e90529e64fbcab3dbd736e9db5fe79da5908040a09216ff2f5a21f8e6a5bd79c9860c3bc0c4fa44669c0d5a1c58ac85db57fdc4816ca57c808fb647ba56 SHA512 5093e7fc678c31684468d7b779a6f129db6b3d87fe7e05b86950ff1ee1afdf1bf6ae2586144667c8ee798de37f5fd089be0f7318401565484fbd7de07f7c0330
-DIST dulwich-1.2.13.tar.gz 1361288 BLAKE2B a87e2cdf3150cdf05a572d79bb65ce23760eeb9375806fb4eb8ced47a9df1b9416f9363a1995467049bce7438aa8445aadc64debfa05a4d64db1febaa305175e SHA512 e20d0fbd1078587b37bbd27d5735b821cfa99c4bc30acb6f21379882bcbcbb815f965e4963532433090a48eadc939d61d4f0bbdd5ce3c8115b7ce34a6a147585
-DIST dulwich-1.2.13.tar.gz.provenance 9634 BLAKE2B 17b7da9e754d622cea090b145067cc020ac95b783a180b82dfcf6cdca9241646cf6b6574530ca528ceb30eef2f437c968ad8c934c820fccb3b06b1813ff2e0b5 SHA512 054c0060ccbcc4e022e31aa334a2d909308a0d479f8838ff76aa6000ce89e69065225a166e0d686393f67c8ca7fadb50218db7d46465ef67e7f13b15327b52e5
DIST dulwich-1.2.14.tar.gz 1361695 BLAKE2B df32f5624b285000ad3fa0d8d9608ad196a1bd1e168effe5d0b0b106db394ca4e8e815be21b0c0a6c0726a6b7861ade5d6ede19b30c73c9188081ed6b8584291 SHA512 8bea61b50759879872b7960bbb2bcd9d94570079e97ce2f0ab9ba7f5bd1dfa63eceae2253d461f1e7c6093d70cdb5295b7f4d9204330c2724a577873304de972
DIST dulwich-1.2.14.tar.gz.provenance 9959 BLAKE2B 01bb7882dfa2b845aa32f936e07ad3f8e0c0099d42f3e51a89a73e1c412410de5a09a65d1250fbe34f46d9b15325638f3af4e8d445bbf5f820ec5d933c493625 SHA512 66ae3484f7bb2de0f48710ddfe2aabddfe82271c9d8234ade2dc78a2487b7aec467575b9d21f1cf0bd8fa5705e14f4e7f99377cdedd29c28cb5c4227a0037923
DIST dulwich-1.2.15.tar.gz 1371420 BLAKE2B 3d8b0c7d8aacc48987497c68479edbc5a62e5a2e459676c678b42a0603b06d862295df01a7a906d802288d6a45139e5b88b8194a8f4ce8e24dd2254432666468 SHA512 b5a9e7f8762202c20ebbe8e465574c639771de0b2483daa63516380de4be953d5f304015aa06ebc5a8edbda4da81ab82a75bc8dbdb5974238efa364bad7e93c7
diff --git a/dev-python/dulwich/dulwich-1.2.13.ebuild b/dev-python/dulwich/dulwich-1.2.13.ebuild
deleted file mode 100644
index b61eff75fb7a..000000000000
--- a/dev-python/dulwich/dulwich-1.2.13.ebuild
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CARGO_OPTIONAL=1
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/jelmer/dulwich
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.85.0"
-CRATES="
- bstr@1.12.3
- heck@0.5.0
- libc@0.2.186
- memchr@2.8.3
- once_cell@1.21.4
- portable-atomic@1.13.1
- proc-macro2@1.0.106
- pyo3-build-config@0.29.0
- pyo3-ffi@0.29.0
- pyo3-macros-backend@0.29.0
- pyo3-macros@0.29.0
- pyo3@0.29.0
- quote@1.0.46
- serde_core@1.0.228
- serde_derive@1.0.228
- similar@3.1.1
- syn@2.0.118
- target-lexicon@0.13.5
- unicode-ident@1.0.24
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
-HOMEPAGE="
- https://github.com/jelmer/dulwich/
- https://pypi.org/project/dulwich/
-"
-SRC_URI+="
- native-extensions? (
- ${CARGO_CRATE_URIS}
- )
-"
-
-LICENSE="GPL-2+ Apache-2.0"
-LICENSE+=" native-extensions? ("
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions Unicode-3.0
- || ( MIT Unlicense )
-"
-LICENSE+=" )"
-
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 x86 ~arm64-macos ~x64-macos ~x64-solaris"
-IUSE="doc examples +native-extensions test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
- ' 3.11)
-"
-BDEPEND="
- native-extensions? (
- ${RUST_DEPEND}
- dev-python/setuptools-rust[${PYTHON_USEDEP}]
- )
- test? (
- ${RDEPEND}
- dev-python/fastimport[${PYTHON_USEDEP}]
- dev-python/gpgmepy[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
- dev-python/merge3[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP},server(+)]
- )
-"
-
-distutils_enable_sphinx docs
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so"
-
-pkg_setup() {
- # avoid rust_pkg_setup which will die when there's no Rust found
- if use native-extensions ; then
- rust_pkg_setup # implicitly inherited through cargo
- fi
-}
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-python_compile() {
- # make extension build errors fatal
- local -x CIBUILDWHEEL=1
- unset PURE
- if ! use native-extensions; then
- local -x PURE=1
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- # remove interference from the tests that do stuff like user.name
- unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
- unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
- unset EMAIL
- # Do not use make check which rebuilds the extension and uses -Werror,
- # causing unexpected failures.
- "${EPYTHON}" -m unittest -v tests.test_suite ||
- die "tests failed with ${EPYTHON}"
-}
-
-python_install_all() {
- if use examples; then
- docompress -x "/usr/share/doc/${PF}/examples"
- dodoc -r examples
- fi
- distutils-r1_python_install_all
-}
diff --git a/dev-python/dulwich/dulwich-1.2.15.ebuild b/dev-python/dulwich/dulwich-1.2.15.ebuild
index 8c3dff5fc7db..3cd732c37de8 100644
--- a/dev-python/dulwich/dulwich-1.2.15.ebuild
+++ b/dev-python/dulwich/dulwich-1.2.15.ebuild
@@ -55,7 +55,7 @@ LICENSE+="
LICENSE+=" )"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="doc examples +native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild b/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild
index 3df52efd172c..bfec19d2d803 100644
--- a/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild
+++ b/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
# ecc_fast.py KNOWN_COMPATIBLE_ABI_VERSIONS
RDEPEND="
diff --git a/dev-python/emoji/emoji-2.16.0.ebuild b/dev-python/emoji/emoji-2.16.0.ebuild
index d9b10c8aab96..910182ecbbf4 100644
--- a/dev-python/emoji/emoji-2.16.0.ebuild
+++ b/dev-python/emoji/emoji-2.16.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/ensurepip-pip/ensurepip-pip-26.2.1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-26.2.1.ebuild
index 5987ad429465..856f89bc1c8b 100644
--- a/dev-python/ensurepip-pip/ensurepip-pip-26.2.1.ebuild
+++ b/dev-python/ensurepip-pip/ensurepip-pip-26.2.1.ebuild
@@ -29,7 +29,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 ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/fake/Manifest b/dev-python/fake/Manifest
new file mode 100644
index 000000000000..93cad7a61dc2
--- /dev/null
+++ b/dev-python/fake/Manifest
@@ -0,0 +1 @@
+DIST fake-0.13.2.tar.gz 141916 BLAKE2B 7da4d0bb929a8977d174a3a0bf9d2ccf0960b5f6538da1be6895f99bf3a5f2526321d13cbd25c84ef48056fc1c1d9c800262594432fefb6f0acb3c772563b6b5 SHA512 ca06b7906061a83d0693d5c62444da41b7db7220298d006999cc8c5155e92751218ee16bc431eb52f94d0dd084308f3c5a33a40ac0b8244ba70ea8a4fb3046e8
diff --git a/dev-python/fake/fake-0.13.2.ebuild b/dev-python/fake/fake-0.13.2.ebuild
new file mode 100644
index 000000000000..19157369efc6
--- /dev/null
+++ b/dev-python/fake/fake-0.13.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Minimalistic, standalone alternative fake data generator with no dependencies"
+HOMEPAGE="https://github.com/barseghyanartur/fake.py"
+SRC_URI="https://github.com/barseghyanartur/fake.py/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/fake.py-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ test? (
+ dev-python/django[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-codeblock pytest-django )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest --override-ini="addopts="
+}
diff --git a/dev-python/fake/metadata.xml b/dev-python/fake/metadata.xml
new file mode 100644
index 000000000000..e9f9b27eb39a
--- /dev/null
+++ b/dev-python/fake/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/barseghyanartur/fake.py/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/fakeredis/fakeredis-2.38.0.ebuild b/dev-python/fakeredis/fakeredis-2.38.0.ebuild
index 49c990501ba6..1655de1347d0 100644
--- a/dev-python/fakeredis/fakeredis-2.38.0.ebuild
+++ b/dev-python/fakeredis/fakeredis-2.38.0.ebuild
@@ -25,7 +25,7 @@ RDEPEND="
"
BDEPEND="
test? (
- dev-db/redis
+ >=dev-db/redis-8.6
dev-db/valkey
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/valkey[${PYTHON_USEDEP}]
diff --git a/dev-python/fakeredis/fakeredis-2.39.0.ebuild b/dev-python/fakeredis/fakeredis-2.39.0.ebuild
index 1cd41739c433..8baadf0182d9 100644
--- a/dev-python/fakeredis/fakeredis-2.39.0.ebuild
+++ b/dev-python/fakeredis/fakeredis-2.39.0.ebuild
@@ -25,7 +25,7 @@ RDEPEND="
"
BDEPEND="
test? (
- dev-db/redis
+ >=dev-db/redis-8.6
dev-db/valkey
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/valkey[${PYTHON_USEDEP}]
diff --git a/dev-python/fakeredis/fakeredis-2.40.0.ebuild b/dev-python/fakeredis/fakeredis-2.40.0.ebuild
index 31767ad12918..6490486378d4 100644
--- a/dev-python/fakeredis/fakeredis-2.40.0.ebuild
+++ b/dev-python/fakeredis/fakeredis-2.40.0.ebuild
@@ -25,7 +25,7 @@ RDEPEND="
"
BDEPEND="
test? (
- dev-db/redis
+ >=dev-db/redis-8.6
dev-db/valkey
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/valkey[${PYTHON_USEDEP}]
diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest
index 076f12496933..05b1f5419925 100644
--- a/dev-python/fastapi/Manifest
+++ b/dev-python/fastapi/Manifest
@@ -1,3 +1,2 @@
-DIST fastapi-0.143.0.tar.gz 468391 BLAKE2B 24b1ebaac972c183166ebe37c76ec6fe29ec68b1cbdb78201e1ff11c54e158b56b9ba6f45e2318815202d97c0e94ea7b58fe53c620b501098fdcdeec564a2a43 SHA512 1fc0322645736bbdcb07892cd0f622feeb82b8e751b3e0040bd7cb32f8d749b38a5c33787ee1f1d2d67625b885481e3b2c17e8db9e13ac239833bfa544ff5f11
-DIST fastapi-0.143.2.tar.gz 468920 BLAKE2B 4befc7698221fe2c1ccd72a6dd1202246d00e0b78c8b4e76ac96db92b2644d7523a3855c29df094a5fca0fd390eaf05d4c5c38e8a5a0edeb30ec81891d4b69bd SHA512 3c4b7c98a75f324ce37aef4608c94daf2659d681fbd236ad3069d77998ab9669275ac07214cd95bc7c344bd064946d61be78b9b569111e437c44e82f1448beeb
DIST fastapi-0.143.3.tar.gz 469834 BLAKE2B 6384f8b551b38c1fc83779ef2a4a318e0cb4b01067e852e876b809d8dc8c2bf59dcbb109780337df3dd83b70ff61b30676fceb95745478439f580de2ad544c16 SHA512 f70e98e10e6d5d5b1db0fd6795179dff1bf7f737a0fee452732a49a22dca092efded647d27cf8fdb61b5eeba29311230fcca9d974ac258dc131d05080a134e7e
+DIST fastapi-0.146.0.tar.gz 471622 BLAKE2B dc332799da2b2c3da0c0374bd4dba73d5189357664dbb4bdc34a0facb229fb13507835e8a04d829ef80eae1c1ea8e8657f73ba2d15c222d4a1119d5e2abd4e1e SHA512 bf7c8a7e137ac5541bc36e7cd0c0042ca02da6d8b7bd6bd5b7fea11578d69854bbfde980981a81735b5dc889611a3a21364be4c5388add324d1552550a2736cc
diff --git a/dev-python/fastapi/fastapi-0.143.0.ebuild b/dev-python/fastapi/fastapi-0.143.0.ebuild
deleted file mode 100644
index 001c647ada47..000000000000
--- a/dev-python/fastapi/fastapi-0.143.0.ebuild
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYTHON_COMPAT=( python3_{13..14} )
-#may be not stricly required
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="High performance framework, easy to learn, fast to code, ready for production"
-HOMEPAGE="
- https://fastapi.tiangolo.com/
- https://github.com/fastapi/fastapi/
- https://pypi.org/project/fastapi/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- >=dev-python/annotated-doc-0.0.4[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-api-1.44.0[${PYTHON_USEDEP}]
- >=dev-python/pydantic-2.9.0[${PYTHON_USEDEP}]
- >=dev-python/starlette-0.46.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.2[${PYTHON_USEDEP}]
-"
-
-#FIXME: add missing deps
-BDEPEND="
- test? (
- dev-python/a2wsgi[${PYTHON_USEDEP}]
- dev-python/dirty-equals[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/httpx2[${PYTHON_USEDEP}]
- dev-python/pydantic-settings[${PYTHON_USEDEP}]
- dev-python/python-multipart[${PYTHON_USEDEP}]
- dev-python/sqlalchemy[${PYTHON_USEDEP}]
- dev-python/typer[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( anyio inline-snapshot pytest-timeout )
-# workaround broken toml config
-: ${EPYTEST_TIMEOUT:=30}
-# 3k tests+, so use xdist to speed them up
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-# There are some JSON response tests that will exercise orjson or ujson if they are available.
-# These are properly skipped if the optional dependencies are not installed at the cost of a little spam.
-python_test() {
- local EPYTEST_IGNORE=(
- # python/strawberry-graphql (in guru, test dep only)
- tests/test_tutorial/test_graphql/test_tutorial001.py
- # dev-python/sqlmodel (in guru, test dep only)
- tests/test_tutorial/test_sql_databases/test_tutorial001.py
- tests/test_tutorial/test_sql_databases/test_tutorial002.py
- # dev-python/fastapi-cli (missing, test and optfeature)
- tests/test_fastapi_cli.py
- # dev-python/pwdlib (in guru, test dep only)
- tests/test_tutorial/test_security/test_tutorial004.py
- tests/test_tutorial/test_security/test_tutorial005.py
- # Wants dev-python/multipart _just_ to complain that it's not the right multipart lib.
- tests/test_multipart_installation.py
- # scripts/tests use CliRunner.isolated_filesystem() removed in recent typer
- scripts/tests
- )
- local EPYTEST_DESELECT=(
- # Requires investigation - missing ./image.png test file (?)
- tests/test_tutorial/test_additional_responses/test_tutorial004.py::test_path_operation_img
-
- # Broken by brotli being available, also fragile to random ordering
- tests/test_tutorial/test_header_param_models/test_tutorial001.py::test_header_param_model_invalid
- tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_invalid
- tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_no_underscore
- # opentelemetry-*
- tests/test_telemetry/test_background.py::test_background_task_integrations
- tests/test_telemetry/test_data.py::test_request_objects_are_not_exported
- tests/test_telemetry/test_environment_integrations.py
- tests/test_telemetry/test_integrations.py::test_current_contrib
- tests/test_telemetry/test_integrations.py::test_current_logfire
- tests/test_telemetry/test_integrations.py::test_current_sentry
- tests/test_telemetry/test_integrations.py::test_inactive_sentry_does_not_disable_native
- tests/test_telemetry/test_integrations.py::test_logfire_global_provider_without_fastapi_instrumentor
- tests/test_telemetry/test_native_integrations.py
- tests/test_telemetry/test_runtime.py::test_concurrent_provider_owner_wins
- tests/test_telemetry/test_runtime.py::test_environment_export_initializes_after_fork
- tests/test_telemetry/test_runtime.py::test_failed_registration_closes_new_exporter
- tests/test_telemetry/test_runtime.py::test_real_otlp_exception_export_without_traces_or_metrics
- tests/test_telemetry/test_runtime.py::test_real_otlp_export_and_repeated_lifespans
- tests/test_telemetry/test_runtime.py::test_registration_provider_prefers_public_metric_reader
- tests/test_telemetry/test_runtime.py::test_unsupported_provider_warns_without_preventing_startup
- )
- epytest
-}
-
-pkg_postinst() {
- # not part of any upstream extra
- optfeature "alternative JSON library" "dev-python/ujson" # orjson, too but it's deprecated
-
- # pyproject.toml:project.optional-dependencies.standard
- # Following optfeatures should be exposed, but missing deps
- # optfeature "fastAPI CLI" "dev-python/fastapi-cli" - missing - depends on this package!
- # optfeature "compressed file support" "dev-python/fastar" - missing
- # optfeature "pydantic extra types support" "dev-python/pydantic-extra-types" - in guru
- optfeature_header "standard extras"
- optfeature "ASGI server support" "dev-python/uvicorn"
- optfeature "email validation support" "dev-python/email-validator"
- optfeature "TestClient for testing FastAPI applications" "dev-python/httpx"
- optfeature "templating support" "dev-python/jinja2"
- optfeature "multipart form data support" "dev-python/python-multipart"
- optfeature "settings management support" "dev-python/pydantic-settings"
-
- # pyproject.toml:project.optional-dependencies.all - includes all the above plus:
- optfeature_header "all extras"
- optfeature "session middleware support" "dev-python/itsdangerous"
- optfeature "YAML support" "dev-python/pyyaml"
-}
diff --git a/dev-python/fastapi/fastapi-0.143.2.ebuild b/dev-python/fastapi/fastapi-0.146.0.ebuild
index c7146bfca44a..c7146bfca44a 100644
--- a/dev-python/fastapi/fastapi-0.143.2.ebuild
+++ b/dev-python/fastapi/fastapi-0.146.0.ebuild
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index 688079c36645..d25dd01595b2 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -1,5 +1,3 @@
-DIST filelock-3.32.6.tar.gz 225172 BLAKE2B f077ad228f28f6080cff6487b10d18789174592ccca9117766946572e07f97af88c68c796665e1183d39b9d92aa5c6881da3a278ce3ca2691b8f85ce4abaf116 SHA512 a2431f17c1f7e01e0eb704354a8e3b27c2e0b2e769962ea904b20206ef36e1b173fca846c696680b7c6c8a0bee846b9a6d5449a4b09e0ae7c390bb374380ccc6
-DIST filelock-3.32.6.tar.gz.provenance 9904 BLAKE2B f3509822beb0993f3050ac404835a62a1beec9f98ca4f28202b237daf7f1db0fa8ac2803d822138a140761229d9334928f85e54583d7aaefc7bafdfca607f51e SHA512 6a30896d8c8166f19be54362a7e278922d6104f8e5093dca36e25d9fb7331f7918201b19919c56feef9005e6a62fd2766b9ebea371c8fff419b63f0634c419d6
DIST filelock-4.0.1.tar.gz 238888 BLAKE2B bb91d78763860858904b39d489a6b6c7287b1d622a23b609d2b2635fa0235e3ea1c1cced96add0d4ee4ef94ed69183179baf32fb442238efdff182f88d6c6414 SHA512 d3d5f58792ad13778aa4de689728e894c457186c780daf1ffc89f914de5bca969e660fc2fcabd91daeb1383d1affe47f3a8970b09159cd770b494ccbcda59424
DIST filelock-4.0.1.tar.gz.provenance 9849 BLAKE2B d45e47788cd9f4c01b0047366a12c928d7fc0f1014b367b65b761e525cacc1edc1cdecb3b0a03ce125f54242e88bc8f87086397042764da4d76b82e515871a4f SHA512 936794894d9c28bca3149a3d7c8eb3ce28e0ab5ce7792d07759072849c19f75118a6c8edbaf62345c231d91e37f9e765bc1ed03c3b8cd44b66491814495585c0
DIST filelock-4.0.10.tar.gz 252487 BLAKE2B 4f0a06ca475abd9d59208e12fcee085ba2f36405b83f64542b05acf103eead592465a92bdf6561c3ab2a33ff77c215eede5cd35ca2642574caf72f58e4497665 SHA512 44902eac6fdba0d2f1a97ef116184b07e12441ddaa006dd4e1ba37a14c5b8c968db276c59d3ac04a0c64a5b5ee65c3bfe6dc6a7f04bb7effd6cb25a90dec5d58
@@ -24,3 +22,7 @@ DIST filelock-4.1.1.tar.gz 563430 BLAKE2B 6fc4121e54e9ace488526aae23fff5640a5999
DIST filelock-4.1.1.tar.gz.provenance 9627 BLAKE2B ccd2e9cf36f325dcc1e321dde825f9290e9d007bb7a1db9d872ab6ae40ff351a557f1debdcf655a4baef8be1aebe7912c34e2f78320490a636da7ba49d104f0b SHA512 e4bc59fbf1426c90868607ed7d4ab5b000438a6185ac5eec332cf07a45950d8ae4665b977486ffc0e3ee3530559183e652cf6227285fdb30fee4f10725691cc8
DIST filelock-4.2.0.tar.gz 569667 BLAKE2B 5c5d8f41206453a9a2089ee86f7f4503e1b3b83a8ef76b174d769c3f736bc561c247595ffe41b31f1edd0cf074c5e8155efa14b79657f1721c5cd82d757a9af5 SHA512 96e9dc73d938c8ee9f357dd92d7999ebbb06c4f07aed08833ec9eec686fc37d961f121d4f4369c0b6e80e16ab31a44cd3ca235934ddaeefdac4ac07fb792fcd2
DIST filelock-4.2.0.tar.gz.provenance 9768 BLAKE2B 9a17c307d1bce1df7e12340e11bbd93d3e67aba29fce3e920378ef816298b7fe18466743635ab1c5839beebf308766b10b87603a4856b7d87cc8fb27f4c0762c SHA512 e6847b3e7b2021f06c500113033b8419d9c0d3d5405003a93ed80ae9c1088c7fdf8d38df504b5d63bdac398daee1be56c8c5ee21d79f5a41f4a3d37ce4dbee8a
+DIST filelock-4.2.1.tar.gz 650997 BLAKE2B 22b42d7230190319bae5455ae0713b0063553a528df811d5bea4e4704bcc2cabe40dd0d0cbf2a8a7d1336131606c450546655d547e4449e47a8e75fd20638b39 SHA512 66e744c9e374c3d738913254fed6c4880b5e12030e85c225dec51efdf033e14d750d9d1937cdaa2dc5eea717afd8a4e93a68028524914c81e55f44c537a855a9
+DIST filelock-4.2.1.tar.gz.provenance 9768 BLAKE2B c1d09020c55bee2c12039250fb9f4ddbd78a2991a01cf8b4784283734e36d000c26c546adf102ca8642fd86dcdb15b120d650c7b7ec54924e873fc4c13a3725a SHA512 600579c41f60dc97649e9edfe4a80a1d8ff62a0df31945f9b840816a54b5641de1a214aca84ee9ea0639c6b830bbd981e24e2c8445ba318a55e1a25d0a3314b6
+DIST filelock-4.2.4.tar.gz 652444 BLAKE2B 455450a40170bbb80d27513bd28732ec5aa6f2619d85231ff16ac53b58fa6a66717fed65d474aa8729d3a71bffb991b9cd89353375a2bccd0031aff8fb2ca054 SHA512 f2075ff0d0ace0f91e867d157eef5fca605eb8989c11f44d09617a7e26bdbadf318e6f0a255721cd5700a291a082a96b0f8ed49a67abf891124f19a53c10da33
+DIST filelock-4.2.4.tar.gz.provenance 9486 BLAKE2B 30c55daf9b5d472c485c5c9277af9a77d45a8960248710950d6b235926337991bf2b8c4dd0575d2a341e8234958f0a36281adea87b852c297159c746a2ecd23c SHA512 f55ab07fca047dacecccae8027697d1fd5ff84299801b6605be263f7baeb14d7b6bf66f61431bfa9fb04e7bbcaada338d0e8679e5de2fa5fd19b34ab1060ad65
diff --git a/dev-python/filelock/filelock-4.0.1.ebuild b/dev-python/filelock/filelock-4.0.1.ebuild
index 51d73c002e05..67a6abeffb59 100644
--- a/dev-python/filelock/filelock-4.0.1.ebuild
+++ b/dev-python/filelock/filelock-4.0.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/filelock/filelock-3.32.6.ebuild b/dev-python/filelock/filelock-4.2.1.ebuild
index 0c8f0c0c6c99..51d73c002e05 100644
--- a/dev-python/filelock/filelock-3.32.6.ebuild
+++ b/dev-python/filelock/filelock-4.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 ~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}]
@@ -28,4 +28,11 @@ BDEPEND="
EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # TODO
+ tests/soft_rw/test_soft_rw_async.py::test_async_leaked_singleton_is_closed_on_teardown
+ tests/soft_rw/test_soft_rw_sync.py::test_leaked_acquired_singleton_is_closed_on_teardown
+)
diff --git a/dev-python/filelock/filelock-4.2.4.ebuild b/dev-python/filelock/filelock-4.2.4.ebuild
new file mode 100644
index 000000000000..51d73c002e05
--- /dev/null
+++ b/dev-python/filelock/filelock-4.2.4.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A platform independent file lock for Python"
+HOMEPAGE="
+ https://github.com/tox-dev/filelock/
+ https://pypi.org/project/filelock/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # TODO
+ tests/soft_rw/test_soft_rw_async.py::test_async_leaked_singleton_is_closed_on_teardown
+ tests/soft_rw/test_soft_rw_sync.py::test_leaked_acquired_singleton_is_closed_on_teardown
+)
diff --git a/dev-python/flask-caching/flask-caching-2.5.1.ebuild b/dev-python/flask-caching/flask-caching-2.5.1.ebuild
index 047bf310c2cf..6c862714553d 100644
--- a/dev-python/flask-caching/flask-caching-2.5.1.ebuild
+++ b/dev-python/flask-caching/flask-caching-2.5.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/cachelib-0.17.0[${PYTHON_USEDEP}]
diff --git a/dev-python/flask-compress/flask-compress-1.25.ebuild b/dev-python/flask-compress/flask-compress-1.25.ebuild
index a7db65c93fca..a27a6723a61a 100644
--- a/dev-python/flask-compress/flask-compress-1.25.ebuild
+++ b/dev-python/flask-compress/flask-compress-1.25.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
# brotli on cpython, brotlicffi on pypy3
RDEPEND="
diff --git a/dev-python/flask-compress/metadata.xml b/dev-python/flask-compress/metadata.xml
index 8fa0a7e3f767..7dc1d2678cfb 100644
--- a/dev-python/flask-compress/metadata.xml
+++ b/dev-python/flask-compress/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
- </maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
diff --git a/dev-python/flask-htmlmin/metadata.xml b/dev-python/flask-htmlmin/metadata.xml
index 64a9ada78b8c..7dc1d2678cfb 100644
--- a/dev-python/flask-htmlmin/metadata.xml
+++ b/dev-python/flask-htmlmin/metadata.xml
@@ -5,10 +5,6 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
- <maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
- </maintainer>
<stabilize-allarches />
<origin>srcux</origin>
</pkgmetadata>
diff --git a/dev-python/flask-paranoid/metadata.xml b/dev-python/flask-paranoid/metadata.xml
index 64a9ada78b8c..7dc1d2678cfb 100644
--- a/dev-python/flask-paranoid/metadata.xml
+++ b/dev-python/flask-paranoid/metadata.xml
@@ -5,10 +5,6 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
- <maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
- </maintainer>
<stabilize-allarches />
<origin>srcux</origin>
</pkgmetadata>
diff --git a/dev-python/flask-socketio/Manifest b/dev-python/flask-socketio/Manifest
index 6306d1f69573..1ae224bff596 100644
--- a/dev-python/flask-socketio/Manifest
+++ b/dev-python/flask-socketio/Manifest
@@ -1,3 +1 @@
-DIST flask_socketio-5.5.1.tar.gz 37401 BLAKE2B b959a86f4798a69877e66771e2db9b1587a8a5ef5253e096771ed26f8f202c127146c2acd21c4e00a8b6f940977733f7a3fb73ac999c279a26953133361dc388 SHA512 c24a5a7f9bd211434714a1563fb40aa9ac1b4ab84ef2f4c4bb04aaf9d52a3ba9e2e9b50c81084c54f75d74c071fbcf0feef4a5d0599a90875d469667fa54fd71
-DIST flask_socketio-5.6.0.tar.gz 37667 BLAKE2B e2de1840138bc7be8674fd4392a008bf8e72e38222b91179137b8064f184bf5e26fbdbd5d347d2ac710051aa126375d46da1c24e03fe6fc50bcc1b028838a154 SHA512 e0bf0259aa0c363e496cdc7a6c1daa3f6665dc58e0e488c50b4d1a778bcfcfccbc71b964630c695da1dcd4b1799ee4aa56e1f8d6f1c8ee22e330c7d4917e35fd
DIST flask_socketio-5.6.1.tar.gz 37857 BLAKE2B 6f5375e6a188020f5821806cb0cc5b845daf9e301214caad06a48bbff9aa3f6f5564814800d3c0c1e8361f79e6b5db8b42f749ed16e5a2aee67886ba31201363 SHA512 06a6e35001ea1f1f246c8ab16e31d6104874e044436a5bfa8021fa841e1d5d5f6b112802ff2c5c8652a39f7d6968c01cff03af5cb10efadbf98819e9bf3d7518
diff --git a/dev-python/flask-socketio/flask-socketio-5.5.1.ebuild b/dev-python/flask-socketio/flask-socketio-5.5.1.ebuild
deleted file mode 100644
index f6778d69877c..000000000000
--- a/dev-python/flask-socketio/flask-socketio-5.5.1.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 pypi
-
-DESCRIPTION="Socket.IO integration for Flask applications."
-HOMEPAGE="https://flask-socketio.readthedocs.io https://github.com/miguelgrinberg/flask-socketio"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-
-RDEPEND="
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/python-socketio[${PYTHON_USEDEP}]
-"
-
-DEPEND="${RDEPEND}
- test? (
- dev-python/redis[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/flask-socketio/flask-socketio-5.6.0.ebuild b/dev-python/flask-socketio/flask-socketio-5.6.0.ebuild
deleted file mode 100644
index f43f253fb6a5..000000000000
--- a/dev-python/flask-socketio/flask-socketio-5.6.0.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 pypi
-
-DESCRIPTION="Socket.IO integration for Flask applications."
-HOMEPAGE="https://flask-socketio.readthedocs.io https://github.com/miguelgrinberg/flask-socketio"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-
-RDEPEND="
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/python-socketio[${PYTHON_USEDEP}]
-"
-
-DEPEND="${RDEPEND}
- test? (
- dev-python/redis[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/flask-socketio/flask-socketio-5.6.1.ebuild b/dev-python/flask-socketio/flask-socketio-5.6.1.ebuild
index f43f253fb6a5..7a13c68969b8 100644
--- a/dev-python/flask-socketio/flask-socketio-5.6.1.ebuild
+++ b/dev-python/flask-socketio/flask-socketio-5.6.1.ebuild
@@ -7,7 +7,7 @@ DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1 pypi
-DESCRIPTION="Socket.IO integration for Flask applications."
+DESCRIPTION="Socket.IO integration for Flask applications"
HOMEPAGE="https://flask-socketio.readthedocs.io https://github.com/miguelgrinberg/flask-socketio"
LICENSE="MIT"
diff --git a/dev-python/fonttools/fonttools-4.65.0.ebuild b/dev-python/fonttools/fonttools-4.65.0.ebuild
index fdf4877e363d..1d2fdb7145dd 100644
--- a/dev-python/fonttools/fonttools-4.65.0.ebuild
+++ b/dev-python/fonttools/fonttools-4.65.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/fsspec/fsspec-2026.9.0.ebuild b/dev-python/fsspec/fsspec-2026.9.0.ebuild
index c271cf9bef72..f5cc13792d64 100644
--- a/dev-python/fsspec/fsspec-2026.9.0.ebuild
+++ b/dev-python/fsspec/fsspec-2026.9.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/funcy/funcy-2.1.ebuild b/dev-python/funcy/funcy-2.1.ebuild
index a67aae0bd841..0bc3b55401f1 100644
--- a/dev-python/funcy/funcy-2.1.ebuild
+++ b/dev-python/funcy/funcy-2.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
BDEPEND="
test? (
diff --git a/dev-python/google-api-core/google-api-core-2.38.0.ebuild b/dev-python/google-api-core/google-api-core-2.38.0.ebuild
index 2b11a77adbaf..aff722f1696b 100644
--- a/dev-python/google-api-core/google-api-core-2.38.0.ebuild
+++ b/dev-python/google-api-core/google-api-core-2.38.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="grpc"
RDEPEND="
diff --git a/dev-python/google-auth/google-auth-2.58.0.ebuild b/dev-python/google-auth/google-auth-2.58.0.ebuild
index e460c792a87a..86bcb1c67770 100644
--- a/dev-python/google-auth/google-auth-2.58.0.ebuild
+++ b/dev-python/google-auth/google-auth-2.58.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
# TODO: rsa is now optional
RDEPEND="
diff --git a/dev-python/googleapis-common-protos/Manifest b/dev-python/googleapis-common-protos/Manifest
index a122b4428178..9fc937a1ca80 100644
--- a/dev-python/googleapis-common-protos/Manifest
+++ b/dev-python/googleapis-common-protos/Manifest
@@ -1,5 +1,3 @@
-DIST googleapis_common_protos-1.75.0.tar.gz 151035 BLAKE2B d6910486f1524f1ff02343481772958a62c4c3457c65b0b31a22cb640583303d391d8e04bb087c6f41cccd06da0e1a4f3f5c9afad3eab88d7ef2a5c62368a402 SHA512 08c87d0a4d828b46e24d3caf44b85c31c045b6316621e9afdcca8e652d04daab67f9067f4add0ee5082b68f74ea63ba615836eb9492fec79e89689edee0a6684
-DIST googleapis_common_protos-1.75.0.tar.gz.provenance 5955 BLAKE2B 9ee1ee297caeba0a7f3c9bdf42e55d09acf286289e6f156f3417dac329838e1c6d1ea62c15fa99ec3f08003fa889e2b1022c742addbfa4802bdae74f0f156b32 SHA512 c4ec17bfcb93faf2f8a840e1d120c62282766f272c8d2578a7841f3bd45f84f71544b20692c6e655aa45e91a3e112f92b6d0009e10b306a046de8df33b724ac9
DIST googleapis_common_protos-1.75.2.tar.gz 154083 BLAKE2B 50f1bb744f232e37c93a3ef6b71e8df77f0c9c74a67998c6d08faead3bf3b67a9338b91113cd75c7f28388fca04db424695eb8ff79ecb695158bed8b2e4b46ba SHA512 993e03c956c370f96703aea6477534f8eaa57ba7e4119f4739b1380c7ace478160c135137c8401804f0d47bf2def264b80eb336c92299a61965f7bb81d8dd53e
DIST googleapis_common_protos-1.75.2.tar.gz.provenance 6117 BLAKE2B dc55edaeb136c7943a9723724dcb11f8a8c7f8c1dfafb82b42d9b4d3924f7e4821a1dddd46a0ae5ce79935104452b9e42d6e93b6de8846f8a25e0ab29675ba90 SHA512 663e49e09567e48ecc660a542f27ad8c810a1ae9cef78f5a72af6f6f162fa6752d7d319f00509e9cc368630d95b7be0b5f68a284a6d4ccb540db7ba415368d60
DIST googleapis_common_protos-1.75.3.tar.gz 153905 BLAKE2B c735728ca27c4781f4c8ca73662d4a5ad53c72932b2a0a0e8c91e9b77e580aec0d183a689d44a91307e64b8ac7eb5ec429d9d382324e64e4d2edc339f7cfbdef SHA512 3122c836efe8340e40d33bed4097f1fa765ee35146c186c2578af2166ba4e2070aea2e949499bee37ad41ae0229ec9840c7c3ed346d07485f095531f58a4598a
diff --git a/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.0.ebuild b/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.0.ebuild
deleted file mode 100644
index 8c3b8bd54c9d..000000000000
--- a/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2020-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python classes generated from the common protos in the googleapis repository"
-HOMEPAGE="
- https://github.com/googleapis/python-api-common-protos/
- https://github.com/googleapis/google-cloud-python/tree/main/packages/googleapis-common-protos/
- https://pypi.org/project/googleapis-common-protos/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 x86"
-
-RDEPEND="
- <dev-python/protobuf-8[${PYTHON_USEDEP}]
- >=dev-python/protobuf-3.15.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild b/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild
index ff059c44f854..4254e74223b2 100644
--- a/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild
+++ b/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 x86"
RDEPEND="
<dev-python/protobuf-8[${PYTHON_USEDEP}]
diff --git a/dev-python/greenlet/greenlet-3.5.6.ebuild b/dev-python/greenlet/greenlet-3.5.6.ebuild
index 33588218e841..c69f59979da2 100644
--- a/dev-python/greenlet/greenlet-3.5.6.ebuild
+++ b/dev-python/greenlet/greenlet-3.5.6.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 -hppa ~m68k ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/grpcio-status/Manifest b/dev-python/grpcio-status/Manifest
index 0521c0448c60..a230607b62ee 100644
--- a/dev-python/grpcio-status/Manifest
+++ b/dev-python/grpcio-status/Manifest
@@ -1,4 +1,2 @@
-DIST grpc-1.80.0.gh.tar.gz 15772645 BLAKE2B 48f3acc5c3268f651dc865ce3095c306ad3fa0a4eacf6e6eea499d961c0e001e2ab43fe8f0d53713d19998f28ce0184045ad2a8ef4cdc41aee31e2fe70e2b53e SHA512 5ef6ec2277dcb2257f8ac7546057e9a3da6668676a3a4ff64e08e66abb465b5705103c4aa0b41955535ee437d4feef5b811aa3e31636c4cb76bf68c52caaccf7
-DIST grpc-1.83.0.gh.tar.gz 16249899 BLAKE2B 6eb5aad73d603fe55ae7e88315a193346c4ae63f28b0800c48a5f9f915caaaf5b05aca4d26fe4be97ec6dd1006e4a85d0b27fa414df4a823358ba33f9a5fd2b2 SHA512 6bc1fa040a5087522f8b8292e00d289105e1343883290432e8327f9bca23248b31c95ef8d6954cad1fc9be7a4c1042cbfedc458da2e11de251e980a44ec753a4
DIST grpc-1.83.1.gh.tar.gz 16254795 BLAKE2B 2a8382cc0504c60272b84e699c8aaf5c7256d296357d914e6d3d63387f032be468e096f8147ffac5bfb018be375d0b24b6b135605346c2612e1ccceb0a54615d SHA512 2afa0e389beabfa6f16e845338b456a8b397ef66ca533c9ecac4461d9fa568b4f5a28bb64401d3d91122c26d65e66ce887f2680af0b5fb6069cdc8d01ac21032
DIST grpc-1.84.0.gh.tar.gz 16364079 BLAKE2B b3b7aba77c8bc46662f58420ecaf3340a407bf8720a03e2d9a6c6355629254b4a5a6ab6e1e86d7d830be675ca20573deaf93bebb3be7875bf9915e9b733fb583 SHA512 59134070566c0f9964ee80d376162ff07c3627d3fc7e6bd4c238018fd798a1d2adbade1a413997ecbff040b2f8df0fd0a04fdc0c20e6d40b376d73ea4fd77570
diff --git a/dev-python/grpcio-status/grpcio-status-1.80.0.ebuild b/dev-python/grpcio-status/grpcio-status-1.80.0.ebuild
deleted file mode 100644
index 49df55141432..000000000000
--- a/dev-python/grpcio-status/grpcio-status-1.80.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-MY_P=grpc-${PV}
-DESCRIPTION="Reference package for GRPC Python status proto mapping"
-HOMEPAGE="
- https://grpc.io/
- https://github.com/grpc/grpc/
- https://pypi.org/project/grpcio-status/
-"
-SRC_URI="
- https://github.com/grpc/grpc/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}/src/python/grpcio_status
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-RDEPEND="
- >=dev-python/grpcio-${PV}[${PYTHON_USEDEP}]
- >=dev-python/googleapis-common-protos-1.5.5[${PYTHON_USEDEP}]
- <dev-python/protobuf-7[${PYTHON_USEDEP}]
- >=dev-python/protobuf-6.31.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/coverage[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- cd "${WORKDIR}/${MY_P}/src/python/grpcio_tests" || die
- epytest tests{,_aio}/status
-}
diff --git a/dev-python/grpcio-status/grpcio-status-1.83.0.ebuild b/dev-python/grpcio-status/grpcio-status-1.83.0.ebuild
deleted file mode 100644
index 44049e1200fc..000000000000
--- a/dev-python/grpcio-status/grpcio-status-1.83.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-MY_P=grpc-${PV}
-DESCRIPTION="Reference package for GRPC Python status proto mapping"
-HOMEPAGE="
- https://grpc.io/
- https://github.com/grpc/grpc/
- https://pypi.org/project/grpcio-status/
-"
-SRC_URI="
- https://github.com/grpc/grpc/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}/src/python/grpcio_status
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-RDEPEND="
- >=dev-python/grpcio-${PV}[${PYTHON_USEDEP}]
- >=dev-python/googleapis-common-protos-1.5.5[${PYTHON_USEDEP}]
- <dev-python/protobuf-8[${PYTHON_USEDEP}]
- >=dev-python/protobuf-6.33.5[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/coverage[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- cd "${WORKDIR}/${MY_P}/src/python/grpcio_tests" || die
- epytest tests{,_aio}/status
-}
diff --git a/dev-python/grpcio-status/grpcio-status-1.84.0.ebuild b/dev-python/grpcio-status/grpcio-status-1.84.0.ebuild
index daa9f2d13263..44049e1200fc 100644
--- a/dev-python/grpcio-status/grpcio-status-1.84.0.ebuild
+++ b/dev-python/grpcio-status/grpcio-status-1.84.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}/src/python/grpcio_status
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
RDEPEND="
>=dev-python/grpcio-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/grpcio/Manifest b/dev-python/grpcio/Manifest
index 6c28dc176035..0ad78d1ee935 100644
--- a/dev-python/grpcio/Manifest
+++ b/dev-python/grpcio/Manifest
@@ -1,12 +1,6 @@
-DIST grpc-1.80.0.gh.tar.gz 15772645 BLAKE2B 48f3acc5c3268f651dc865ce3095c306ad3fa0a4eacf6e6eea499d961c0e001e2ab43fe8f0d53713d19998f28ce0184045ad2a8ef4cdc41aee31e2fe70e2b53e SHA512 5ef6ec2277dcb2257f8ac7546057e9a3da6668676a3a4ff64e08e66abb465b5705103c4aa0b41955535ee437d4feef5b811aa3e31636c4cb76bf68c52caaccf7
-DIST grpc-1.83.0.gh.tar.gz 16249899 BLAKE2B 6eb5aad73d603fe55ae7e88315a193346c4ae63f28b0800c48a5f9f915caaaf5b05aca4d26fe4be97ec6dd1006e4a85d0b27fa414df4a823358ba33f9a5fd2b2 SHA512 6bc1fa040a5087522f8b8292e00d289105e1343883290432e8327f9bca23248b31c95ef8d6954cad1fc9be7a4c1042cbfedc458da2e11de251e980a44ec753a4
DIST grpc-1.83.1.gh.tar.gz 16254795 BLAKE2B 2a8382cc0504c60272b84e699c8aaf5c7256d296357d914e6d3d63387f032be468e096f8147ffac5bfb018be375d0b24b6b135605346c2612e1ccceb0a54615d SHA512 2afa0e389beabfa6f16e845338b456a8b397ef66ca533c9ecac4461d9fa568b4f5a28bb64401d3d91122c26d65e66ce887f2680af0b5fb6069cdc8d01ac21032
DIST grpc-1.84.0.gh.tar.gz 16364079 BLAKE2B b3b7aba77c8bc46662f58420ecaf3340a407bf8720a03e2d9a6c6355629254b4a5a6ab6e1e86d7d830be675ca20573deaf93bebb3be7875bf9915e9b733fb583 SHA512 59134070566c0f9964ee80d376162ff07c3627d3fc7e6bd4c238018fd798a1d2adbade1a413997ecbff040b2f8df0fd0a04fdc0c20e6d40b376d73ea4fd77570
-DIST grpcio-1.80.0.tar.gz 12978905 BLAKE2B 2583bbdfcb05aaced115b4a4ab7d26b95efbe35bf7c2bd7989d9791d50553e05ba3e6323ce8b52c78459b34b5daeb1566ffd1e2b17c14208a13e4a06f0a2a6d5 SHA512 04ef676d6847f3d2820998c07d9f80585c105dc43e3f754b517566e86a92af94328ecdecba0b772e0abe2a53eb49102a12db93099b50d5bee576ac69cb928db5
-DIST grpcio-1.83.0.tar.gz 13428824 BLAKE2B 0ddce59208ec61621e85c07cab32da67381e09ef22e47c2cc3dfac355fe2a4acd52b5fce80e1eb46e75263041aba50ebbb0839dae91124ea273847f472e3a308 SHA512 b9fbe71ea6c745473884400839b535fd305bff1f8e0ab35d9a8f1fbab5f5e30a6d2be1931a0fd48763493c8869049813814af81e5c99209a913541a3179df8d8
DIST grpcio-1.83.1.tar.gz 13445033 BLAKE2B 6d40c7fe05a85698925de774945595854838b161267c20213388306660bba9105fbc5f7f3d0941f5db7f0188d2be7b10f926ac5f5448c99eec9a7dd51f817a28 SHA512 b01a71938a4a1df648054e53c67a6fd070da2da1e09bb10c39519ed3f75735a4d05fd4446539235627395869b911286e671993f31e58a68072c5094af0a28e22
DIST grpcio-1.84.0.tar.gz 13493876 BLAKE2B a2e7034727a1a55c91b517b93f897426aaac582c2d423a60ad0b0d0f3f2f9d2922a2bebbf169c0945de12f6e65c03f296ba26783bedb0ce38a00cd23cd6e2a3e SHA512 25ffad1f00b00fe106bd6fa4d07e41078aa134d3ea61a1b325cccd42dcb55ac3bffbf1d17326066d2ba7cebbaf925c6c2333a40c22cbc8f67644fec04104ca2d
-DIST grpcio_tools-1.80.0.tar.gz 6133212 BLAKE2B 9bf051314482ff946aa6edd4f8b517dec63c1188914d76a2b4d130b68408ee5ec3ec3b5a2075b7ec2257e92ee9dbad37c18c425a2b947b81640f67cadd284df6 SHA512 7d9e17cee024af6731a8b75da6de0c26b554f2c50d75acfefc7708545935af4ab8f60fe0e16550c4c2943eb6c3414c49c38dc1a71df948c87c6c743ee72fff68
-DIST grpcio_tools-1.83.0.tar.gz 6400437 BLAKE2B 537209842337e749b0689d7e114395f8eeb6435d3bbcb4d8a857e487e58fc10b31b65fa313ea51f483f048125ea2a2351c88690020e6cc16e7782021c0377d51 SHA512 f18ba3130d1134eaced50f19dbc64edafffe4ad4a7edf66641316c980b0a4a1fe8c3bba21162303841e929a94de689ed1e2d015b2cef7534c9bb99a27e9f4365
DIST grpcio_tools-1.83.1.tar.gz 6399877 BLAKE2B 66b3f52f76ca0d342d74b7e61d2bfecfea1127a938742d824c67e695601349dc6d0625c8ea141960d3e88702e2b9a260d12c079beec0c114427ff50e89df66fc SHA512 828d6f5e382eb28eb7366e479a51e17fe7e7baeef08aae33f02b3f0b54604afdb54910632670f09ba26bd568d1c45fdd7f49a8b2bad46f73d55279d612b287df
DIST grpcio_tools-1.84.0.tar.gz 6401750 BLAKE2B 900df1a351252ddba7a63d7e656c999c9c6946a78c7d65d4b6239e65e42e947149d65d40fdd3f42615fc64d9fbd7d0aa77322c39171a3b761aee38ac8086a3e1 SHA512 2782982639bda49feaf979d50068598a1fbbd015c8ecb7abe244c70987d6c01a2ee9186ae4f7206d33927cb8186ade17dfb10723970b47faaae70737eb2a8f70
diff --git a/dev-python/grpcio/grpcio-1.80.0.ebuild b/dev-python/grpcio/grpcio-1.80.0.ebuild
deleted file mode 100644
index c468eb77cafc..000000000000
--- a/dev-python/grpcio/grpcio-1.80.0.ebuild
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 flag-o-matic multiprocessing pypi
-
-MY_P=grpc-${PV}
-DESCRIPTION="HTTP/2-based RPC framework"
-HOMEPAGE="
- https://grpc.io/
- https://github.com/grpc/grpc/
- https://pypi.org/project/grpcio/
-"
-# Tests need other packages from the source tree, so use a GitHub
-# archive. sdist provides bundled library sources (git submodules).
-SRC_URI+="
- test? (
- https://github.com/grpc/grpc/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
- $(pypi_sdist_url grpcio_tools)
- )
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-DEPEND="
- dev-libs/openssl:=
- net-dns/c-ares:=
- virtual/zlib:=
-"
-RDEPEND="
- ${DEPEND}
- >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
-"
-# TODO: try to remove coverage dep
-BDEPEND="
- >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
- test? (
- dev-python/coverage[${PYTHON_USEDEP}]
- >=dev-python/protobuf-6.31.1[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-# signal handling tests hang often
-EPYTEST_RERUNS=5
-: ${EPYTEST_TIMEOUT=15}
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e '/INSTALL_REQUIRES/s:~=:>=:' setup.py || die
-}
-
-src_configure() {
- # -Werror=odr -Werror=lto-type-mismatch
- # https://bugs.gentoo.org/856775
- # https://github.com/grpc/grpc/issues/36158
- filter-lto
-
- export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$(makeopts_jobs)"
- # system abseil-cpp crashes with USE=-debug, sigh
- # https://bugs.gentoo.org/942021
- #export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
- export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
- export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
- # re2 needs to be built against the same abseil-cpp version
- #export GRPC_PYTHON_BUILD_SYSTEM_RE2=1
- export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
- export GRPC_PYTHON_BUILD_WITH_CYTHON=1
-
- # copied from setup.py, except for removed -std= that does not apply
- # to C code and causes warnings
- export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions"
- # required by abseil-cpp
- append-cxxflags -std=c++17
- # silence a lot of harmless noise from bad quality code
- append-cxxflags -Wno-attributes
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- tests/unit/_dns_resolver_test.py::DNSResolverTest::test_connect_loopback
- # not a test
- tests/unit/_compression_test.py::test_compression
- tests_aio/unit/channel_argument_test.py::test_if_reuse_port_enabled
- # expects grpcio-admin
- tests/unit/test_all_modules_installed.py::TestAllModulesInstalled::test_import_all_modules
- # TODO
- tests_py3_only/unit/_simple_stubs_test.py::SimpleStubsTest::test_default_ssl
- )
- local EPYTEST_IGNORE=(
- # not a test
- tests/unit/test_common.py
- # requires oauth2client
- tests/unit/beta/_implementations_test.py
- )
-
- cp -a "${BUILD_DIR}"/{install,test} || die
- local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
-
- # grpcio proper builds against system libs
- # grpcio_tools supports bundled libs only, and requires different
- # flags
- unset GRPC_PYTHON_CFLAGS
- cd "${WORKDIR}/grpcio_tools-${PV}" || die
- distutils_pep517_install "${BUILD_DIR}"/test
-
- cd "${WORKDIR}/${MY_P}" || die
- local protodir=src/proto/grpc/testing
- local testdir=src/python/grpcio_tests
- "${EPYTHON}" -m grpc_tools.protoc -I. --python_out="${testdir}" \
- "${protodir}"/{empty,messages}.proto || die
- "${EPYTHON}" -m grpc_tools.protoc -I. --grpc_python_out="${testdir}" \
- "${protodir}"/test.proto || die
-
- cd "${testdir}" || die
- "${EPYTHON}" -m grpc_tools.protoc -I. --python_out=. \
- tests/testing/proto/{requests,services}.proto || die
- "${EPYTHON}" -m grpc_tools.protoc -I. --grpc_python_out=. \
- tests/testing/proto/services.proto || die
-
- # TODO: aio tests are failing randomly, so we're skipping them entirely
- epytest tests{_py3_only,}/unit
-}
diff --git a/dev-python/grpcio/grpcio-1.83.0.ebuild b/dev-python/grpcio/grpcio-1.83.0.ebuild
deleted file mode 100644
index e1393626c01f..000000000000
--- a/dev-python/grpcio/grpcio-1.83.0.ebuild
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 flag-o-matic multiprocessing pypi
-
-MY_P=grpc-${PV}
-DESCRIPTION="HTTP/2-based RPC framework"
-HOMEPAGE="
- https://grpc.io/
- https://github.com/grpc/grpc/
- https://pypi.org/project/grpcio/
-"
-# Tests need other packages from the source tree, so use a GitHub
-# archive. sdist provides bundled library sources (git submodules).
-SRC_URI+="
- test? (
- https://github.com/grpc/grpc/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
- $(pypi_sdist_url grpcio_tools)
- )
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-DEPEND="
- dev-libs/openssl:=
- net-dns/c-ares:=
- virtual/zlib:=
-"
-RDEPEND="
- ${DEPEND}
- >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
-"
-# TODO: try to remove coverage dep
-BDEPEND="
- >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
- test? (
- dev-python/coverage[${PYTHON_USEDEP}]
- >=dev-python/protobuf-7.35.1[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-# signal handling tests hang often
-EPYTEST_RERUNS=5
-: ${EPYTEST_TIMEOUT=15}
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e '/INSTALL_REQUIRES/s:~=:>=:' setup.py || die
-}
-
-src_configure() {
- # -Werror=odr -Werror=lto-type-mismatch
- # https://bugs.gentoo.org/856775
- # https://github.com/grpc/grpc/issues/36158
- filter-lto
-
- export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$(makeopts_jobs)"
- # system abseil-cpp crashes with USE=-debug, sigh
- # https://bugs.gentoo.org/942021
- #export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
- export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
- export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
- # re2 needs to be built against the same abseil-cpp version
- #export GRPC_PYTHON_BUILD_SYSTEM_RE2=1
- export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
- export GRPC_PYTHON_BUILD_WITH_CYTHON=1
-
- # copied from setup.py, except for removed -std= that does not apply
- # to C code and causes warnings
- export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions"
- # required by abseil-cpp
- append-cxxflags -std=c++17
- # silence a lot of harmless noise from bad quality code
- append-cxxflags -Wno-attributes
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- tests/unit/_dns_resolver_test.py::DNSResolverTest::test_connect_loopback
- # not a test
- tests/unit/_compression_test.py::test_compression
- tests_aio/unit/channel_argument_test.py::test_if_reuse_port_enabled
- # expects grpcio-admin
- tests/unit/test_all_modules_installed.py::TestAllModulesInstalled::test_import_all_modules
- # TODO
- tests_py3_only/unit/_simple_stubs_test.py::SimpleStubsTest::test_default_ssl
- tests/unit/_cython/_channel_test.py::ChannelTest::test_multiple_channels_lonely_connectivity
- tests/unit/_cython/_channel_test.py::ChannelTest::test_single_channel_lonely_connectivity
- )
- local EPYTEST_IGNORE=(
- # not a test
- tests/unit/test_common.py
- # requires oauth2client
- tests/unit/beta/_implementations_test.py
- )
-
- cp -a "${BUILD_DIR}"/{install,test} || die
- local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
-
- # grpcio proper builds against system libs
- # grpcio_tools supports bundled libs only, and requires different
- # flags
- unset GRPC_PYTHON_CFLAGS
- cd "${WORKDIR}/grpcio_tools-${PV}" || die
- distutils_pep517_install "${BUILD_DIR}"/test
-
- cd "${WORKDIR}/${MY_P}" || die
- local protodir=src/proto/grpc/testing
- local testdir=src/python/grpcio_tests
- "${EPYTHON}" -m grpc_tools.protoc -I. --python_out="${testdir}" \
- "${protodir}"/{empty,messages}.proto || die
- "${EPYTHON}" -m grpc_tools.protoc -I. --grpc_python_out="${testdir}" \
- "${protodir}"/test.proto || die
-
- cd "${testdir}" || die
- "${EPYTHON}" -m grpc_tools.protoc -I. --python_out=. \
- tests/testing/proto/{requests,services}.proto || die
- "${EPYTHON}" -m grpc_tools.protoc -I. --grpc_python_out=. \
- tests/testing/proto/services.proto || die
-
- # TODO: aio tests are failing randomly, so we're skipping them entirely
- epytest tests{_py3_only,}/unit
-}
diff --git a/dev-python/grpcio/grpcio-1.84.0.ebuild b/dev-python/grpcio/grpcio-1.84.0.ebuild
index 77e10cf7bc6c..c9f3f4569ca6 100644
--- a/dev-python/grpcio/grpcio-1.84.0.ebuild
+++ b/dev-python/grpcio/grpcio-1.84.0.ebuild
@@ -28,7 +28,7 @@ SRC_URI+="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
DEPEND="
dev-libs/openssl:=
diff --git a/dev-python/gssapi/metadata.xml b/dev-python/gssapi/metadata.xml
index c16f989aa879..651c8663dbce 100644
--- a/dev-python/gssapi/metadata.xml
+++ b/dev-python/gssapi/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
- </maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
diff --git a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild
index 524722cd68b8..6ae95b03be12 100644
--- a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild
+++ b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.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/hcloud/hcloud-2.25.1.ebuild b/dev-python/hcloud/hcloud-2.25.1.ebuild
index 9b729306ac26..08e3c96a695f 100644
--- a/dev-python/hcloud/hcloud-2.25.1.ebuild
+++ b/dev-python/hcloud/hcloud-2.25.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/htmldate/Manifest b/dev-python/htmldate/Manifest
new file mode 100644
index 000000000000..20bf373d3f39
--- /dev/null
+++ b/dev-python/htmldate/Manifest
@@ -0,0 +1 @@
+DIST htmldate-1.11.0.tar.gz 31625641 BLAKE2B a38f2dfccdb748b45ded5491f4cdcff66bf9f5f6d9331e702df0a3b8cb58e44dde4aea8a3dfb332343e492e5a184c1de2993d5c219d97b7524c388d0e8c61930 SHA512 e7652b2c46d427105aceb2b2d9d99327eff6ebeb0a817cc840928b850a7ed7abbbab1a964bd2a6076df0e36cd19f8fcb417f5c1022f04add1b0ce15b3e2e9d89
diff --git a/dev-python/htmldate/htmldate-1.11.0.ebuild b/dev-python/htmldate/htmldate-1.11.0.ebuild
new file mode 100644
index 000000000000..30671830bed6
--- /dev/null
+++ b/dev-python/htmldate/htmldate-1.11.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast and robust date extraction from web pages"
+HOMEPAGE="https://github.com/adbar/htmldate"
+SRC_URI="https://github.com/adbar/htmldate/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/dateparser[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+
+EPYTEST_DESELECT=(
+ "tests/realworld_tests.py::test_readme_examples"
+ "tests/unit_tests.py::test_cli"
+ "tests/unit_tests.py::test_download"
+ "tests/unit_tests.py::test_external_date_parser"
+ "tests/unit_tests.py::test_input"
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/htmldate/metadata.xml b/dev-python/htmldate/metadata.xml
new file mode 100644
index 000000000000..dc6c021286f5
--- /dev/null
+++ b/dev-python/htmldate/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/adbar/htmldate/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/httpx2/Manifest b/dev-python/httpx2/Manifest
index 503fc7a0936b..567db93d7805 100644
--- a/dev-python/httpx2/Manifest
+++ b/dev-python/httpx2/Manifest
@@ -2,3 +2,4 @@ DIST httpx2-2.10.0.gh.tar.gz 2140799 BLAKE2B b6d809bf1053f17abbadf6543b57133d112
DIST httpx2-2.12.0.gh.tar.gz 2144469 BLAKE2B be96a3cea133a993248d7743524c3208581f881c275486a3b4f8241c5410f4d9d3a0ceca15bd4cbb598a84e91a46f0ec7b54a9b091fed550b19a6512d6d172d7 SHA512 33bc7d37f6f9b20f275f36fd49b94734714f9f47dc4d4b2029d27a7cf7d2d4f5ee1da8060c4cea65750b9362c65964b4d2f90dc2cff1dbe42051fd2bca03542d
DIST httpx2-2.13.0.gh.tar.gz 2103962 BLAKE2B 6d940bdcc39f36ddcf50377457931ee9e2c3b758512421bb416329e2b575e2ed4fa152240773d56f15f5f4745f1bd1f8cb2f67ac13d10bfe18ff1b316aea25ed SHA512 182e40dc35ca1ebfa2a6cb1ecc061f399d9dce2e2dff31c039c0eeedc9f7cf6f48fd6eda75c804320077f2b0538059412fad5857d6f7989592974e3262c21f68
DIST httpx2-2.13.1.gh.tar.gz 2105524 BLAKE2B d9f3c016df2add101bc785582ccd14e5ef400e6b6f6cb8c470a4dce89bfecd73fff210a279cefe0fb316d478f2ba6a10e2579157f18647b769e5c1c520a77e0d SHA512 7be45b81164b24e800c2de533c4c7ef2fdc2cb6e9d24d95287c15ca1efb79eabdce33fcf50b85d288727bea3a9dc6c8365190c587c50ba1d327a36b31c614a8c
+DIST httpx2-2.14.0.gh.tar.gz 2133484 BLAKE2B 1bf1b2dd3a368dde55f318ba48b14d85397a6181723de5326f818b5421531a0dabea246dc6f240565d4d1881c7e9634d0a3bbc3f27ad4384cee71f952a68f337 SHA512 9b85631b99be2e0ee89ba9ed30405edc71c811e31587c03adf97dc45069e25b3eebad4ef6b83cb4c10c3c6cde9eb0f46d1151c1674b048aaac19b33ec3f05083
diff --git a/dev-python/httpx2/httpx2-2.14.0.ebuild b/dev-python/httpx2/httpx2-2.14.0.ebuild
new file mode 100644
index 000000000000..4cd2e5e9dd0c
--- /dev/null
+++ b/dev-python/httpx2/httpx2-2.14.0.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+# This package combines httpx2 and httpcore2 (because of exact version pin).
+DESCRIPTION="The next generation HTTP client (Pydantic fork)"
+HOMEPAGE="
+ https://pypi.org/project/httpx2/
+ https://pypi.org/project/httpcore2/
+ https://github.com/pydantic/httpx2/
+"
+SRC_URI="
+ https://github.com/pydantic/httpx2/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/anyio-4.10[${PYTHON_USEDEP}]
+ >=dev-python/idna-3.18[${PYTHON_USEDEP}]
+ >=dev-python/h11-0.16[${PYTHON_USEDEP}]
+ >=dev-python/truststore-0.10[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+ ' 3.12)
+ cli? (
+ >=dev-python/click-8.4[${PYTHON_USEDEP}]
+ =dev-python/pygments-2*[${PYTHON_USEDEP}]
+ >=dev-python/rich-10[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ dev-python/uv-dynamic-versioning[${PYTHON_USEDEP}]
+ test? (
+ >=app-arch/brotli-1.2.0[python,${PYTHON_USEDEP}]
+ >=dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/h2[${PYTHON_USEDEP}]
+ dev-python/starlette[${PYTHON_USEDEP}]
+ dev-python/socksio[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/uvicorn[${PYTHON_USEDEP}]
+ dev-python/websockets[${PYTHON_USEDEP}]
+ >=dev-python/wsproto-1.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.12 3.13)
+ )
+"
+
+EPYTEST_PLUGINS=( anyio flaky pytest-{httpbin,trio} )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x UV_DYNAMIC_VERSIONING_BYPASS=${PV}
+
+ cd src/httpcore2 || die
+ distutils-r1_python_compile
+ cd ../httpx2 || die
+ distutils-r1_python_compile
+ cd ../.. || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/httpx2/client/test_proxies.py::test_async_proxy_close
+ tests/httpx2/client/test_proxies.py::test_sync_proxy_close
+ # random charset case mismatch
+ tests/httpx2/models/test_responses.py::test_response_decode_text_using_autodetect
+ tests/httpx2/client/test_client.py::test_client_decode_text_using_autodetect
+ tests/httpx2/client/test_client.py::test_client_decode_text_using_explicit_encoding
+ )
+
+ local EPYTEST_IGNORE=()
+ if ! use cli; then
+ EPYTEST_IGNORE+=(
+ tests/httpx2/test_main.py
+ )
+ fi
+
+ epytest tests/{httpcore2,httpx2}
+}
diff --git a/dev-python/idna/Manifest b/dev-python/idna/Manifest
index e52d61f9d968..dfbb1301b1f6 100644
--- a/dev-python/idna/Manifest
+++ b/dev-python/idna/Manifest
@@ -1,5 +1,3 @@
-DIST idna-3.18.tar.gz 196711 BLAKE2B d816787698eaa0002ab2b7314e1ef82934f74bed70d67d20db49cbf114b049e48cd3ca65a8fdd760e7134bc01afee6a1b80eafc8a743bda887ef0a7c4b99ecca SHA512 5cdfa086a6a1d2c5fbb6fe56ceae5434a71e2215711d252be41f82cebfa48cef35cc8b2ff03e6af17ae309f230a04a008c41eae55852dd77942f97f65848c916
-DIST idna-3.18.tar.gz.provenance 9495 BLAKE2B 728c5dba519fd7716fd71c566073f2482ea5971efab097c03ef2998f7f9dd3fecaa87562409c149d579289913d52e1a303a8fb0abdcbd411600bb66dc685de9a SHA512 a02d92639bcf09a0ff8b16c4f1c95aa811c766257f74a31d34b48e1bee92be347251a77a4ea014df0b61c3f7f0b219585b0eb6bd054e25deb56a42b5836fc884
DIST idna-3.19.tar.gz 215237 BLAKE2B 180ec174fd5992cfb4a207c48c3ddcce9000bbdd87a8df897e5453dfd93c07a19d96e6ce0e08aaca40ef85ea4a7887cbbe006e636107a493281f0c5ed6dc21c8 SHA512 9d80b04098d59eb2f2c82a91d1b8153aa5cf135dafc9f792b69d5efee05a1b7f441a907286741f85992a67b175e2910b2233bdf7492c61a3dc204ff74aed3aca
DIST idna-3.19.tar.gz.provenance 9309 BLAKE2B 96f914967234a39eb4bf028fc5e51cd8d4ff3a1bbfcbdf0095fae63ea417e5857f9621eebb549ba00643cd0d250fa52ae16dc72fab329fd83c78ba24b12e2a42 SHA512 5990aea65ca005c0ef5702c2c13e90b03bd83af37d86fda1985a44c7c89e9aed70a101ae5a1bec9473cdae7de69714a5e366bdaa5e2f4363df0fe12124de10e0
DIST idna-3.20.tar.gz 216463 BLAKE2B ad86f998c08f62e62b5457b19aded5c2a03305c670f1dc58810d51b74a513a37311ef24295663e9557dd83c7dd54a79ecd34431d6de267cc36deb07017bbab69 SHA512 06710a742decc31d14e9007153e78b961c13ff85fc43b02cfa80d5084ff448567736f45fcb9dd72a677d22ff950165bb7b90e52d602180c16ecd1e0c10f7d635
diff --git a/dev-python/idna/idna-3.18.ebuild b/dev-python/idna/idna-3.18.ebuild
deleted file mode 100644
index e1b9e747b9e0..000000000000
--- a/dev-python/idna/idna-3.18.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYPI_VERIFY_REPO=https://github.com/kjd/idna
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Internationalized Domain Names in Applications (IDNA)"
-HOMEPAGE="
- https://github.com/kjd/idna/
- https://pypi.org/project/idna/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
-
-distutils_enable_tests unittest
diff --git a/dev-python/idna/idna-3.20.ebuild b/dev-python/idna/idna-3.20.ebuild
index 973242b19d7b..a0207cab1c3d 100644
--- a/dev-python/idna/idna-3.20.ebuild
+++ b/dev-python/idna/idna-3.20.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 ~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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/imapclient/imapclient-4.1.0.ebuild b/dev-python/imapclient/imapclient-4.1.0.ebuild
index 81769ed2c35e..6a2f08602104 100644
--- a/dev-python/imapclient/imapclient-4.1.0.ebuild
+++ b/dev-python/imapclient/imapclient-4.1.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="doc examples"
distutils_enable_sphinx doc/src
diff --git a/dev-python/internetarchive/Manifest b/dev-python/internetarchive/Manifest
index 406a64599752..23400f1b87ac 100644
--- a/dev-python/internetarchive/Manifest
+++ b/dev-python/internetarchive/Manifest
@@ -1,2 +1,3 @@
-DIST internetarchive-5.11.0.gh.tar.gz 198027 BLAKE2B 0cd7e9138378a95099176c7d17d23fa51587560db5f0b76a394e383c018131f69776cdcffddd6e0a7abf9ae7918a5d381056777eb4faa90cbe89218958868631 SHA512 47dd53cc1b3525f2a8b76b2b15f9f37704da1bb6e158e6b58be6ed888e7b43c2b5e90719e87c8cf4ca099c923eb9c596bd04a4d8111c8b5db1ddcac05dbdcf41
DIST internetarchive-5.11.1.gh.tar.gz 198062 BLAKE2B 4717ced157d45e8dbd2a5ea156901f42631d76934f80677b126f2e3c5b2e759469454d4b8fdaee8f6ec25779c1785ecb4a67857c3710379f247cb2d55699221f SHA512 adac99f46bb18d522015932d29d26d0304adb83ec2600b26e8470a4aa8ceb8dfa64ef3a05c3f6bb61060847b3e42f7fa23794fbf826794be9f424e27e9ef5173
+DIST internetarchive-5.12.0.tar.gz 166924 BLAKE2B 7c5333af4f6c7ba7ddb9ab19d20d0661cb12c9e1908ffa7cd3b2f4d0d56532a1628877b9d33a0cf918fce53246344aaaa81a21073169069b38a50680e4aec795 SHA512 3b118d6fcbd087aacf22a5aebe17dc8ed5f4c5a08ec661081cf0272da56dfac2a9bcf29d326aaa52bee2cefb7015de70a2cf45426650cb5b366ec4dfe3cb5d6b
+DIST internetarchive-5.12.0.tar.gz.provenance 9855 BLAKE2B 79004b29b2e2aa25b6e84e683cdedfafb04261f77559996deac7a459fe70d064a7af2496c32c2cc2b00352bca7d2a815f2bcd3fdc097b0f6f471d76a6286fea3 SHA512 c5df70e5354f80cc026ba23aaf0aac5606a4adc85bb22cf0c951f249eefb1376793f0c4af50e3fcaebbdcfd111dfc625690ecbde25012351a644f5820f0a02c3
diff --git a/dev-python/internetarchive/internetarchive-5.11.1.ebuild b/dev-python/internetarchive/internetarchive-5.11.1.ebuild
index 3677f7e72ece..af624652bba0 100644
--- a/dev-python/internetarchive/internetarchive-5.11.1.ebuild
+++ b/dev-python/internetarchive/internetarchive-5.11.1.ebuild
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
PYTHON_COMPAT=( python3_{13..14} )
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1
@@ -53,4 +54,6 @@ EPYTEST_DESELECT=(
tests/test_session.py::test_s3_is_overloaded
)
+EPYTEST_PLUGINS=()
+
distutils_enable_tests pytest
diff --git a/dev-python/internetarchive/internetarchive-5.11.0.ebuild b/dev-python/internetarchive/internetarchive-5.12.0.ebuild
index 3677f7e72ece..0fa969d62da5 100644
--- a/dev-python/internetarchive/internetarchive-5.11.0.ebuild
+++ b/dev-python/internetarchive/internetarchive-5.12.0.ebuild
@@ -2,15 +2,15 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
PYTHON_COMPAT=( python3_{13..14} )
-DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1
+PYPI_VERIFY_REPO=https://github.com/jjjake/internetarchive
+DISTUTILS_USE_PEP517=hatchling
+inherit distutils-r1 pypi
DESCRIPTION="Lib and CLI for archive.org - for search, uploading, downloading, rename etc"
HOMEPAGE="https://github.com/jjjake/internetarchive"
-SRC_URI="https://github.com/jjjake/internetarchive/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-
LICENSE="AGPL-3"
SLOT="0"
KEYWORDS="~amd64"
@@ -23,6 +23,7 @@ RDEPEND="
dev-python/urllib3[${PYTHON_USEDEP}]
"
BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
dev-python/responses[${PYTHON_USEDEP}]
)
@@ -53,4 +54,6 @@ EPYTEST_DESELECT=(
tests/test_session.py::test_s3_is_overloaded
)
+EPYTEST_PLUGINS=()
+
distutils_enable_tests pytest
diff --git a/dev-python/invisible-core/Manifest b/dev-python/invisible-core/Manifest
new file mode 100644
index 000000000000..4ec24027f852
--- /dev/null
+++ b/dev-python/invisible-core/Manifest
@@ -0,0 +1 @@
+DIST invisible-core-49.44.0.tar.gz 1513862 BLAKE2B 41756c3e3504c8726bd75818580f98a06026307719f17e1247197378fffe51ad13c908a994816e8416f586d1d63a0a6e6161718922134d91c4a4e70479a1fa08 SHA512 9c2bccf5735fcd8167cd8b740176e13d3e8182c31df800f50f1acba309a1266e1ada785cec8159b3fa2f53da18fd118922b05573078291d374124033ea2d0161
diff --git a/dev-python/invisible-core/invisible-core-49.44.0.ebuild b/dev-python/invisible-core/invisible-core-49.44.0.ebuild
new file mode 100644
index 000000000000..0a5ac6dfc936
--- /dev/null
+++ b/dev-python/invisible-core/invisible-core-49.44.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure config for a stealth Firefox profile"
+HOMEPAGE="https://github.com/feder-cr/invisible_core"
+SRC_URI="https://github.com/feder-cr/invisible_core/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/invisible_core-${PV}"
+
+# They ship some code from the Playwright's Python package
+LICENSE="Apache-2.0 MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/maxminddb[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tzdata[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-vcs/git
+ net-libs/nodejs
+
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ "tests/test_e2e_run_ends_with_a_verdict.py::test_a_test_that_hangs_ends_the_run_red_with_its_name_and_its_stack"
+ "tests/test_e2e_run_gives_timed_tests_the_machine_alone.py::test_a_client_with_no_timed_test_is_not_red_for_it"
+ "tests/test_e2e_run_gives_timed_tests_the_machine_alone.py::test_a_red_timed_test_is_a_red_run"
+ "tests/test_e2e_run_gives_timed_tests_the_machine_alone.py::test_the_timed_test_starts_after_the_last_parallel_one_has_ended"
+ "tests/test_english.py::test_the_green_says_what_it_looked_at"
+ "tests/test_english.py::test_the_root_is_an_argument_so_there_is_nothing_to_refuse"
+ "tests/test_english.py::test_this_repository_is_silent_under_its_own_gate"
+ "tests/test_marker_vocabulary.py::test_no_string_LITERAL_evaluates_to_a_control_character"
+)
+
+EPYTEST_PLUGINS=( pytest-rerunfailures pytest-timeout pytest-xdist )
+distutils_enable_tests pytest
diff --git a/dev-python/invisible-core/metadata.xml b/dev-python/invisible-core/metadata.xml
new file mode 100644
index 000000000000..21136537d30c
--- /dev/null
+++ b/dev-python/invisible-core/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/feder-cr/invisible_core/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/invisible-playwright/Manifest b/dev-python/invisible-playwright/Manifest
new file mode 100644
index 000000000000..7ed8c84e1744
--- /dev/null
+++ b/dev-python/invisible-playwright/Manifest
@@ -0,0 +1 @@
+DIST invisible-playwright-0.36.2.tar.gz 25907156 BLAKE2B ac40d75d27ca721ac06a265e601472b00a643de2037c8579d027b913d61e93819a4b50b5bc995932a0b670da2c67f719754552efe3da2d9ee69866e85a56623e SHA512 20afaffe988b6d56814ffcb4be323a38c97e86ca64216e89e65447f0c07982dda89f66597e2e4ead363c56bcea2accc9401e75ffd1d6abf5aab5a68e5ce0a156
diff --git a/dev-python/invisible-playwright/invisible-playwright-0.36.2.ebuild b/dev-python/invisible-playwright/invisible-playwright-0.36.2.ebuild
new file mode 100644
index 000000000000..0eeee043eae7
--- /dev/null
+++ b/dev-python/invisible-playwright/invisible-playwright-0.36.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Playwright wrapper for a patched Firefox"
+HOMEPAGE="https://github.com/feder-cr/invisible_playwright"
+SRC_URI="https://github.com/feder-cr/invisible_playwright/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/invisible_playwright-${PV}"
+
+# They ship some code from the Playwright's Python package
+LICENSE="Apache-2.0 MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/invisible-core[${PYTHON_USEDEP}]
+
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ dev-python/pyee[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-vcs/git
+ )
+"
+
+EPYTEST_DESELECT=(
+ "tests/test_async_api.py::test_the_async_api_stamps_the_session_token_into_the_browser_env"
+ "tests/test_core_pin.py::test_pyproject_declares_the_pin_exactly_once"
+ "tests/test_core_pin.py::test_the_declared_pin_is_read_back_out_of_the_installed_metadata"
+ "tests/test_core_pin.py::test_the_expected_core_version_is_declared_only_in_pyproject"
+ "tests/test_launcher_config.py::test_enter_with_profile_dir_calls_launch_persistent_context"
+ "tests/test_launcher_config.py::test_enter_without_profile_dir_calls_launch_not_persistent"
+ "tests/test_launcher_config.py::test_persistent_context_user_data_dir_is_created_if_missing"
+ "tests/test_launcher_config.py::test_teardown_closes_persistent_context"
+ "tests/test_launcher_helpers.py::test_build_env_caller_env_override_wins"
+ "tests/test_launcher_helpers.py::test_build_env_injects_webrtc_egress_when_discovered"
+ "tests/test_launcher_helpers.py::test_build_env_never_injects_font_env"
+ "tests/test_launcher_helpers.py::test_build_env_no_font_keys_when_absent"
+ "tests/test_launcher_helpers.py::test_build_env_no_webrtc_keys_without_proxy"
+ "tests/test_publish_gate_wiring.py::test_the_gate_recognises_THIS_project_and_not_the_core"
+ "tests/test_publish_gate_wiring.py::test_the_pre_push_hook_gates_release_tags"
+ "tests/test_the_version_describes_the_code.py::test_a_normal_install_is_not_second_guessed"
+ "tests/test_the_version_describes_the_code.py::test_an_editable_install_reports_what_its_tree_says"
+ "tests/test_the_version_describes_the_code.py::test_an_editable_tree_is_never_mistaken_for_the_release"
+ "tests/test_the_version_describes_the_code.py::test_the_two_facts_stay_separate_and_named"
+)
+
+EPYTEST_PLUGINS=( pytest-timeout )
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed 's/"invisible_core==.*"/"invisible_core"/' -i pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/invisible-playwright/metadata.xml b/dev-python/invisible-playwright/metadata.xml
new file mode 100644
index 000000000000..991160d0576a
--- /dev/null
+++ b/dev-python/invisible-playwright/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/feder-cr/invisible_playwright/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/jc/Manifest b/dev-python/jc/Manifest
index af7259e5f1cd..7a614efd1aef 100644
--- a/dev-python/jc/Manifest
+++ b/dev-python/jc/Manifest
@@ -1,2 +1,2 @@
-DIST jc-1.25.7.gh.tar.gz 15380863 BLAKE2B 7005171140989c3b4b9053a663e0e2aee6bc8815a541ab61e04373add275806a22b4c13ac10ce1e5875a221d6b3c8c03aab3d79f2edc1161f15f4cb05dfe82e0 SHA512 2b06e538850f91c57b547272468e6096ef6a64e95206cbdd298296eda90605deda96a64ee63b8648bc9d710927249c1639a8cba9423746db2b8b19c61ed0af1d
DIST jc-1.26.0.gh.tar.gz 15438979 BLAKE2B e1d5f2c611a9a19706b63029c38ec5075bae10aab931df1d8ab4cf7e331b057e4e44d18aa5a82df53bce7cf316be71f201cfef8897bd0002792e5b0d9b9d7d82 SHA512 5c706be2924a048cdcb4778a2ac8db5a2ad1fb8e85e193454b8abe90d48e39e32319f558ec5aad74079fd70e2bae6a980a451d77a751af76dfb56db789460da0
+DIST jc-1.26.1.gh.tar.gz 15491838 BLAKE2B 227b837303bb83dc0ef33b9582f282272d4ab9256a93364d00957d6b024711b58538674c3ba4017d9a9d924b94986949696b40a535e2962550c1ec5d02c66c4f SHA512 978c960099376d93aba787c1dd3cfaa570250e24eeeda3d931d4dbdbab614da530b7ebca3dd90bc8050ea37a2dadd7933e93f3e1d051d476b47a3da3022829bc
diff --git a/dev-python/jc/jc-1.25.7.ebuild b/dev-python/jc/jc-1.26.1.ebuild
index e505b0d29422..e505b0d29422 100644
--- a/dev-python/jc/jc-1.25.7.ebuild
+++ b/dev-python/jc/jc-1.26.1.ebuild
diff --git a/dev-python/joserfc/Manifest b/dev-python/joserfc/Manifest
index e675d5f18acd..28ccbe4faad5 100644
--- a/dev-python/joserfc/Manifest
+++ b/dev-python/joserfc/Manifest
@@ -1,4 +1,4 @@
-DIST joserfc-1.7.4.tar.gz 234027 BLAKE2B 286d389ab83f0926f7d1bf165476d51b0ddf34f977faeab7a85fce19be26222d973cec080e1ddd3ff50e95f10839638c47551d2e4904fb5b236be16a5d06c9fe SHA512 4891966f61fa373566e6fe45f03a85c30ab015439e81dc45aea97d42ddd95c15dde099c063af6a1b2046ffc127d6c0e3b9d0b8907981658aa685776e4b6535d2
-DIST joserfc-1.7.4.tar.gz.provenance 9901 BLAKE2B 0e96c7b83283e8ca92d6a3a650a2410baecb003c48062ea455206479aa0d8140cfade512c467d9b8d9ed14cfc42fd21a18df35026d951c3ac243bc82e6a6925f SHA512 d801c767498233530f18260d195607ea9a2328d582a59dccb42a1a0087790fad80058b0384f663bd358439aadf6bf2c642cd789594eee91e30581c02ed27a746
DIST joserfc-1.7.5.tar.gz 234990 BLAKE2B caf0e25f0fb4a1f9e757f2377a36abd478ebf94542d2b491c286610eff1f10455a160afbafe1bd31fe1e0271607af6e153eb31a3af99e498029a267662bfde8d SHA512 584523420e097cfd26c458749482f6d8fa596c81ba885471d48a51653986625047a058b30fd07e99414d6819a53897812975339e24ce74a619c80dad8c04d008
DIST joserfc-1.7.5.tar.gz.provenance 9621 BLAKE2B 89b7ddeb2151e0d92c94816d12a89417860ab7a60c3213127e2f195b0b2d769ba2f814dcc772771e71814fdef99b42abcd40905a3b6b16e260612e76cdda280e SHA512 b79d88f43940737c6ec76936553f31cd9c3867888b0b751a58a368658c6b8b0fa46b616bce328a100d41035feb61acf5a6f28b5665354a08f534c2e0529e0269
+DIST joserfc-1.7.7.tar.gz 237446 BLAKE2B 11de0917962d101a61a89bc207f578ea5e0683a743359d50a1645ae63f608a0b522b5be74e2b7354b48866c973925601b44f2af5702fbcc43233b4140024f9e7 SHA512 b9269ad90b8eef9f04bb7ad66a70104c5e07af7e6b5f458d8b1588a005f001cd93832e8ffdde05d05641ee4ebdba85350b3fab3343b29126a90436816c280b14
+DIST joserfc-1.7.7.tar.gz.provenance 9505 BLAKE2B 70dcc479a18758601e7147d21f6d8995043145f9f14331136d378ff8ceefc7d021277b45507412a332b27004fd00fd5c206e6eacce5892180700309aee27d285 SHA512 c7c3bb4dfdd87ec323ffbf757bc181a79fbd42a55d89a3b7d8a5a312bd3735ee202e9d8ec0179e1930ad421b5bf91b86e5bc45fe56a5e4d0cd7179a1f2c39b48
diff --git a/dev-python/joserfc/joserfc-1.7.4.ebuild b/dev-python/joserfc/joserfc-1.7.7.ebuild
index 95a1aec9d7a4..ba9e54ba3793 100644
--- a/dev-python/joserfc/joserfc-1.7.4.ebuild
+++ b/dev-python/joserfc/joserfc-1.7.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
>=dev-python/cryptography-45.0.1[${PYTHON_USEDEP}]
diff --git a/dev-python/jq/Manifest b/dev-python/jq/Manifest
index 4ace8f2e6a19..169e00cd3671 100644
--- a/dev-python/jq/Manifest
+++ b/dev-python/jq/Manifest
@@ -1 +1,2 @@
DIST jq.py-1.12.0.gh.tar.gz 1964395 BLAKE2B 929e7f84d6fca914b8da67688c60a34588f807a4ee1b2cc0ede9ec13d036eef267dffc5521055f62362551d73f550babfdae3acf5832ea9d3f84125b457159ac SHA512 6bbdf055d9524e6ed48233611a283cd232b4601466b62f1e554aa7e8d4abcd1a7cfa5e41b085bd12a1562048ad01cc8b14ca268476a55f52f0b0570a4fe83c1d
+DIST jq.py-1.13.0.gh.tar.gz 1965053 BLAKE2B 4ec1ee2adb51895357373bc6c6bb344e06314f649127570911b64d32384655a888c27e01bfe0cb0ddf0073522f1a1eed86750b309ced78edf71b2eb973556a70 SHA512 7bfa03ced4e302e5df12ffeb33f98a467580b50fe399134e49b8aa592ef2e09b244363ad9a06ebc1f821b48fe9e10e4048b6d8dddf509a5ea3d76c944eb9c456
diff --git a/dev-python/jq/jq-1.13.0.ebuild b/dev-python/jq/jq-1.13.0.ebuild
new file mode 100644
index 000000000000..429da431cc65
--- /dev/null
+++ b/dev-python/jq/jq-1.13.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P="jq.py-${PV}"
+DESCRIPTION="Python bindings for jq"
+HOMEPAGE="
+ https://github.com/mwilliamson/jq.py/
+ https://pypi.org/project/jq/
+"
+# pypi sdist is missing .pyx
+SRC_URI="
+ https://github.com/mwilliamson/jq.py/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# Minimum versions of jq + onigurama are from setup.py's bundled versions
+DEPEND="
+ >=app-misc/jq-1.8.2:=
+ >=dev-libs/oniguruma-6.9.10:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x JQPY_USE_SYSTEM_LIBS=1
+
+ distutils-r1_python_compile
+}
diff --git a/dev-python/jsonpointer/Manifest b/dev-python/jsonpointer/Manifest
index 12617515842a..02b33cba3bf2 100644
--- a/dev-python/jsonpointer/Manifest
+++ b/dev-python/jsonpointer/Manifest
@@ -3,3 +3,5 @@ DIST jsonpointer-3.2.0.tar.gz 11062 BLAKE2B cb39d9a8546f36f669d2ed17993552933c33
DIST jsonpointer-3.2.0.tar.gz.provenance 10199 BLAKE2B 5d45c514c6aa8a28c2a9446fd423df7db733f5ffbfd274156ffb2a24d5aab108e8addbcb20a712bb870839b57f1863322dbb1531d3dc4c1e8887a113dff782b6 SHA512 7915c8aed80eb15a155e4e58c2b9b2fb74640d8d3e9bb3e56186c7e8d3dfbb5a32b5abc959fe1e53b8e3bc959365839cfa9de13c33320c3a6d2b8bf6729a0b5c
DIST jsonpointer-3.2.1.tar.gz 11309 BLAKE2B f9ceb4585302147612ead295887370be942031541af80b42518e7cffc57b49e4efe29a97abe42df225ecb5ac5809fd8b3334f8478fc38895d7fd3a3ac442c240 SHA512 bfe4609bceba035020b2f50cb6472b892a144e7c5c3dfd29ccf80d81ef711cfdce78d161d4907598c78a8bd475b207b9478c103745c435217d5bd8e298738a2f
DIST jsonpointer-3.2.1.tar.gz.provenance 10152 BLAKE2B 24bba7913585705f381cc46982d2d2ee8069f91c7d8572b6bb612d226e451cf5a24d7046e8993ec3d4453e6719eae3c8c20285dca563ec69d40c6a1980eedb23 SHA512 76bde2061833aee5fa4ccf68d16eb8f5d8ff35adf5f33c26222e71fa3be91a20a12a567c31a30dd696c0212b00e0570c188c52255d6cc57787b4f636359d071e
+DIST jsonpointer-3.3.tar.gz 12076 BLAKE2B bdbf8011998d7fb7a0110c6b377864e24ad2ea3c06d5b6eba8ce9ecb71c5ef1c353569dd8b5a8f130e8f7ea08f8eccd70fcfb531e71f529a13e61b31ab8b0090 SHA512 c3ce90fa207aeaea390936dd8feee4552bc589f9b3cad008721a02b23405767c41d14f317c77fd821ab3415d29f52c1d3eba54ba916ab59ec1339bb93bad124e
+DIST jsonpointer-3.3.tar.gz.provenance 10355 BLAKE2B 61ccd4e71a71b0770833a9234dfcc7de023f8af48136a41a1bcb7e0ab8dbf8714fbba9766e42981007265cb4dab3422a49b1cbca4ba47d321a597ebd41ac2c1b SHA512 3a065f02df627148430496d8ce3aeb12c9747b8ad3edff2dff891c201cb4e27bc049f87e7a1de2b5eaa77885de24a799fc6a347a54c4e3e3f3ef10521354836a
diff --git a/dev-python/jsonpointer/jsonpointer-3.3.ebuild b/dev-python/jsonpointer/jsonpointer-3.3.ebuild
new file mode 100644
index 000000000000..5091242d54b8
--- /dev/null
+++ b/dev-python/jsonpointer/jsonpointer-3.3.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/stefankoegl/python-json-pointer
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Identify specific nodes in a JSON document (according to draft 08)"
+HOMEPAGE="
+ https://github.com/stefankoegl/python-json-pointer/
+ https://pypi.org/project/jsonpointer/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+python_test() {
+ "${EPYTHON}" tests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/jupyter-lsp/jupyter-lsp-2.3.1.ebuild b/dev-python/jupyter-lsp/jupyter-lsp-2.3.1-r1.ebuild
index aa6fcf0003ff..fa8f9589077d 100644
--- a/dev-python/jupyter-lsp/jupyter-lsp-2.3.1.ebuild
+++ b/dev-python/jupyter-lsp/jupyter-lsp-2.3.1-r1.ebuild
@@ -19,7 +19,6 @@ SLOT="0"
KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
RDEPEND="
- dev-python/entrypoints[${PYTHON_USEDEP}]
>=dev-python/jupyter-server-1.1.2[${PYTHON_USEDEP}]
"
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index 68bf0666762e..236558d2bf1c 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1,3 +1,2 @@
-DIST jupyter_server-2.20.0.tar.gz 756523 BLAKE2B a55bce21bf2a3d8b7f544161eb20802971e947eb082e3ebf6e0d8e777e46044d1deae8a3568b580cabd8cb6d88ca18cc871a829441b820d02f656ebe30e97b36 SHA512 859d890d67f92212c5a3fa772e9e6abf58c3ef4b08a94e84a64e1c9714114b5bbe5667bb93fab3448671c32ef670c2f4869f4009aa2aa257a67223b47628d578
DIST jupyter_server-2.21.0.tar.gz 760357 BLAKE2B f78368f76d9e7dce8b4429640abcf482014c87d051625ed7b162ae08e18e4afc175643ab17f036b18439f83111ed2dd6e1c9bc3ef7072e968440ddb6e570cbc1 SHA512 b595eb045958f9602c423ddaa01f079f21ef63492933b6b0ef07772d1877f06d348bb927c43e8f685aa98604ea74b18bf126c047227cdfc0bbd6fb16c8b5cae4
DIST jupyter_server-2.21.1.tar.gz 761651 BLAKE2B e6cb80250523ed9c1cf774375e96d9c9c557652a5788ea0c3d9192e9e96008b93bc81a93b9302c7ae3d87c28cb7eb501212a085182e986705a7e0fad5db3017b SHA512 b3c6801d636634b068db386fc9f828af44805686e9ccca637361dd6588a79570291d5ba5360c6ea25c891251cc07cea052d2c1dd12dd53c74666c42b08072b5a
diff --git a/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
deleted file mode 100644
index 1e26e0404740..000000000000
--- a/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications"
-HOMEPAGE="
- https://jupyter.org/
- https://github.com/jupyter-server/jupyter_server/
- https://pypi.org/project/jupyter-server/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
- >=dev-python/argon2-cffi-21.1[${PYTHON_USEDEP}]
- >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
- >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}]
- >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/jupyter-server-terminals-0.4.4[${PYTHON_USEDEP}]
- >=dev-python/jupyter-events-0.11.0[${PYTHON_USEDEP}]
- >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
- >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/overrides-5.0[${PYTHON_USEDEP}]
- ' 3.11)
- >=dev-python/packaging-22.0[${PYTHON_USEDEP}]
- >=dev-python/prometheus-client-0.9[${PYTHON_USEDEP}]
- >=dev-python/pyzmq-24[${PYTHON_USEDEP}]
- >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}]
- >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
- >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}]
- >=dev-python/websocket-client-1.7[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
- test? (
- dev-python/ipykernel[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # This fails if your terminal is zsh (and maybe other non-bash as well?)
- tests/test_terminal.py
- # Fails because above is ignored
- tests/auth/test_authorizer.py
- # Fails with additional extensions installed
- tests/extension/test_app.py::test_stop_extension
- )
-
- # FIXME: tests seem to be affected by previously installed version
- epytest -o tmp_path_retention_policy=all
-}
diff --git a/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild b/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild
index 0321dafd4aab..b1555e683123 100644
--- a/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild
+++ b/dev-python/jupyter-server/jupyter-server-2.21.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/anyio-3.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild b/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild
index a4fc9802b6c6..57423d2f6525 100644
--- a/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild
+++ b/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
RDEPEND="
>=dev-python/babel-2.10[${PYTHON_USEDEP}]
diff --git a/dev-python/justext/Manifest b/dev-python/justext/Manifest
new file mode 100644
index 000000000000..8f32049da9c9
--- /dev/null
+++ b/dev-python/justext/Manifest
@@ -0,0 +1 @@
+DIST justext-3.0.2.tar.gz 938111 BLAKE2B 386593003675d113aaa76f8884a185865541250b31ae290f3bd1336e4f79f9921cba1a714e4f960c019ea65b0c0f152517601313866c7676fc208d2de7167c0d SHA512 c0d2b44c774738346b0dd1cc424e64e01099539b5ee6416f1331b52d95ff9149fd0a48d0bfc48da8e5e221c881cbb814b436112f85e7275f79d711d0dcb08c8a
diff --git a/dev-python/justext/justext-3.0.2.ebuild b/dev-python/justext/justext-3.0.2.ebuild
new file mode 100644
index 000000000000..6cc5c3bd32ec
--- /dev/null
+++ b/dev-python/justext/justext-3.0.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Heuristic based boilerplate removal tool"
+HOMEPAGE="https://github.com/miso-belica/jusText"
+SRC_URI="https://github.com/miso-belica/jusText/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/jusText-${PV}"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/lxml-html-clean[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest --override-ini="addopts="
+}
diff --git a/dev-python/justext/metadata.xml b/dev-python/justext/metadata.xml
new file mode 100644
index 000000000000..54bf59dda70d
--- /dev/null
+++ b/dev-python/justext/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/miso-belica/jusText/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/jwcrypto/Manifest b/dev-python/jwcrypto/Manifest
index af3e6ced6beb..9205a2ed9a43 100644
--- a/dev-python/jwcrypto/Manifest
+++ b/dev-python/jwcrypto/Manifest
@@ -1,4 +1,2 @@
-DIST jwcrypto-1.5.8.tar.gz 90772 BLAKE2B b91b810466e527d5a121b021f5cb8c4f952b88aebe6a0c3e8cff4afd285c135b71c45254dd2d821f2fe645f02f3a78763c819f84c53033f9100bc8969c37970d SHA512 b7f63049583e6d468952d46f41ce80258868a0bd74b7123bbfe02b44f01668be550247b67374db42b24bc2d25af5f71abe97b857fb2842d877cc6217a888f869
-DIST jwcrypto-1.5.9.tar.gz 115793 BLAKE2B f5905b2d7c3f8a20b71a1542b351fab790db4eff23af6502bd0765a3702a5628098fcfa795eae5d4bcf1a045dde2719e676a96bbf325f88dcfe0f064e850e888 SHA512 a77d7f77dfec3e05b0b07db9d4d6d393cb5be58feb85c019cb561d0ac651a28492c3d509a5ba7724b65f374c608579b1a831b7a5791b92a91250da7aacbb3892
DIST jwcrypto-1.6.0.tar.gz 116186 BLAKE2B 013484d22e3b2f0fee5899495c5168fa8b80a9e1aede4fdae400f82540f61270ada3e9eeaaa83634b1ce8ef15420edfe18f506984471e7dd1d1aa009efb8065d SHA512 8f8fb08fb8ce13c0a11d58aca9a81bdbcad398c300c4e55108ca75c1fa42fc9ab44e8fe149a0e26bb901e40bffa68eab80a3aa2d226c3c0b5fa27897531a11c7
DIST jwcrypto-1.6.1.tar.gz 116287 BLAKE2B e4111daadee7469bed35e72033e80bc1ffd734e82ae052ee4cf2e4b0ef899d970a3ac11506522a80146c6d8608509fc94df8845e5e7bdc75def15913a0353e06 SHA512 40da6729ae57c698a712f132d22451b1c9061af6862c80390a4c43209633bd28e133c9539061b165e65cab9d065e2753f6bc19f3ac6fd935071e753163b3a461
diff --git a/dev-python/jwcrypto/jwcrypto-1.5.8.ebuild b/dev-python/jwcrypto/jwcrypto-1.5.8.ebuild
deleted file mode 100644
index 75efec7206d1..000000000000
--- a/dev-python/jwcrypto/jwcrypto-1.5.8.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Implements JWK,JWS,JWE specifications using python-cryptography"
-HOMEPAGE="
- https://github.com/latchset/jwcrypto/
- https://pypi.org/project/jwcrypto/
-"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/cryptography-39.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_install() {
- distutils-r1_src_install
- rm -r "${ED}/usr/share/doc/jwcrypto" || die
-}
diff --git a/dev-python/jwcrypto/jwcrypto-1.5.9.ebuild b/dev-python/jwcrypto/jwcrypto-1.5.9.ebuild
deleted file mode 100644
index 89c6913f04fe..000000000000
--- a/dev-python/jwcrypto/jwcrypto-1.5.9.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Implements JWK,JWS,JWE specifications using python-cryptography"
-HOMEPAGE="
- https://github.com/latchset/jwcrypto/
- https://pypi.org/project/jwcrypto/
-"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/cryptography-49.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_install() {
- distutils-r1_src_install
- rm -r "${ED}/usr/share/doc/jwcrypto" || die
-}
diff --git a/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild b/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild
index 1befd595f58c..89c6913f04fe 100644
--- a/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild
+++ b/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/cryptography-49.0[${PYTHON_USEDEP}]
diff --git a/dev-python/lazy-object-proxy/Manifest b/dev-python/lazy-object-proxy/Manifest
index f5ed416ad1df..7f178cdf2f63 100644
--- a/dev-python/lazy-object-proxy/Manifest
+++ b/dev-python/lazy-object-proxy/Manifest
@@ -1 +1,2 @@
DIST lazy_object_proxy-1.12.0.tar.gz 43681 BLAKE2B 6c3985743ad33cc13ac2a50b36bd00f24c2f72ed715313594edaa2123905c088d5479fc15d6449c275856a080e8066c0ff5c6b01e41920d113dc0fff01a91fa0 SHA512 af1baef392793d5bcfe8cb94237516a66f63784faad1f70b46f5fed697579ea659afa0843e48b33b85dfaa2c45b6e549768695479235df56981398439b046f45
+DIST lazy_object_proxy-1.13.0.tar.gz 45649 BLAKE2B b75a01cfaeaa166d153c46fc4cccf537d8d670186048d6b1fb91559bf56e930fc4a946cfd43db1b8d19eb47122de9d572fc0c719ebc286ffeb19530c814eab56 SHA512 4e2ec1ae6dee5633119e3e2ab816276f0f198ae36fea66492867dca14aac2249b460ac52f96f800174a58e6a7a5129bfc943dce31e69957266e31688ecd1e538
diff --git a/dev-python/lazy-object-proxy/lazy-object-proxy-1.13.0.ebuild b/dev-python/lazy-object-proxy/lazy-object-proxy-1.13.0.ebuild
new file mode 100644
index 000000000000..1cb97aaaa1c6
--- /dev/null
+++ b/dev-python/lazy-object-proxy/lazy-object-proxy-1.13.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A fast and thorough lazy object proxy"
+HOMEPAGE="
+ https://github.com/ionelmc/python-lazy-object-proxy/
+ https://pypi.org/project/lazy-object-proxy/
+ https://python-lazy-object-proxy.readthedocs.io/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+ >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # benchmarks
+ tests/test_perf.py
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ if use native-extensions; then
+ unset SETUPPY_FORCE_PURE
+ else
+ export SETUPPY_FORCE_PURE=1
+ fi
+}
diff --git a/dev-python/levenshtein/Manifest b/dev-python/levenshtein/Manifest
index e579645247ef..a9996873905f 100644
--- a/dev-python/levenshtein/Manifest
+++ b/dev-python/levenshtein/Manifest
@@ -1,3 +1,2 @@
-DIST Levenshtein-0.27.3.gh.tar.gz 37467 BLAKE2B 8d8c5b445a8a01664dac6cb336ace8c3a48c0e1db2434bc907683432a32462bb8503d3327ac2aa4fbd1d3b11fc45d38de23dd84498ea5da31c5baf01555a3ff7 SHA512 1102d6421066ea59c821416d80eec99044fd574659db2e063a5564249afddac097e740788b8d0f5c1c3c72c1a4d3ae94f027ac8609f5ad1cadde378aaee9bf43
DIST Levenshtein-0.27.4.gh.tar.gz 37790 BLAKE2B b69813a4428302b85a58e7f1d7dd201f32c3da4bd8d78ba18e70ba8310435646f25064950b031b1335e228c625074d4e8c52d8a4f27784ae0ad6ba90bfed7429 SHA512 9994cb2c8c57341d3232b8d93ce178bc717fa9dcf0c382e153fe0aea967dea4a31e7680bc092129838a4cfe8f0fdad033456acb0470c60597bfac1fe79df6813
DIST Levenshtein-0.27.5.gh.tar.gz 37854 BLAKE2B bef1e4d81d1df7fcbfb37e6ca4133bc97e6159366485d7a46259dcab3687f662baec7c9f32d2a9dd85b9ee21dda6832704acf62878a6f1a252925f224e4c320d SHA512 bd63e2b1eb57ea67a079631ca09485dfdfc29ecebfbb973466f25610d461dbc993f75903bde9fb945558cb339d229df5a8351f7a839df2c8c1d20b9aab56cdad
diff --git a/dev-python/levenshtein/files/levenshtein-0.27.3-cython.patch b/dev-python/levenshtein/files/levenshtein-0.27.3-cython.patch
deleted file mode 100644
index 65baf46d5207..000000000000
--- a/dev-python/levenshtein/files/levenshtein-0.27.3-cython.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-https://bugs.gentoo.org/966947
-https://github.com/rapidfuzz/Levenshtein/commit/759c0b42036813bc82504c5ca287d1d6bdaac852
-
-From 759c0b42036813bc82504c5ca287d1d6bdaac852 Mon Sep 17 00:00:00 2001
-From: Martin Weinelt <hexa@darmstadt.ccc.de>
-Date: Thu, 22 Jan 2026 22:32:31 +0100
-Subject: [PATCH] Compile extension as C++
-
-This fixes the build with Cython 3.2. Tested against 3.2.4.
----
- src/Levenshtein/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Levenshtein/CMakeLists.txt b/src/Levenshtein/CMakeLists.txt
-index 721f7a7..f6159ed 100644
---- a/src/Levenshtein/CMakeLists.txt
-+++ b/src/Levenshtein/CMakeLists.txt
-@@ -9,7 +9,7 @@ function(create_cython_target _name)
- MAIN_DEPENDENCY "${CMAKE_CURRENT_LIST_DIR}/${_name}.pyx"
- VERBATIM
- COMMAND
-- Python::Interpreter -m cython "${CMAKE_CURRENT_LIST_DIR}/${_name}.pyx"
-+ Python::Interpreter -m cython --cplus "${CMAKE_CURRENT_LIST_DIR}/${_name}.pyx"
- --output-file "${CMAKE_CURRENT_BINARY_DIR}/${_name}.cxx")
-
- set(${_name}
diff --git a/dev-python/levenshtein/levenshtein-0.27.3.ebuild b/dev-python/levenshtein/levenshtein-0.27.3.ebuild
deleted file mode 100644
index 99c10a6ff750..000000000000
--- a/dev-python/levenshtein/levenshtein-0.27.3.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=scikit-build-core
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-MY_P=${P^}
-DESCRIPTION="Functions for fast computation of Levenshtein distance, and edit operations"
-HOMEPAGE="
- https://pypi.org/project/Levenshtein/
- https://github.com/rapidfuzz/Levenshtein/
-"
-SRC_URI="
- https://github.com/rapidfuzz/Levenshtein/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-DEPEND="
- <dev-cpp/rapidfuzz-cpp-4
- >=dev-cpp/rapidfuzz-cpp-3.2.0
-"
-RDEPEND="
- <dev-python/rapidfuzz-4.0.0[${PYTHON_USEDEP}]
- >=dev-python/rapidfuzz-3.9.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/cython-3.0.11[${PYTHON_USEDEP}]
- >=dev-python/scikit-build-core-0.11[${PYTHON_USEDEP}]
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-cython.patch
-)
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- # sterilize build flags
- sed -i -e '/CMAKE_INTERPROCEDURAL_OPTIMIZATION/d' CMakeLists.txt || die
-
- distutils-r1_src_prepare
-}
diff --git a/dev-python/levenshtein/levenshtein-0.27.5.ebuild b/dev-python/levenshtein/levenshtein-0.27.5.ebuild
index b6eab3b74a7f..d7b1d0011a32 100644
--- a/dev-python/levenshtein/levenshtein-0.27.5.ebuild
+++ b/dev-python/levenshtein/levenshtein-0.27.5.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-cpp/rapidfuzz-cpp-4
diff --git a/dev-python/libpass/Manifest b/dev-python/libpass/Manifest
index 2d4236e2ca9b..7bdf4f600a58 100644
--- a/dev-python/libpass/Manifest
+++ b/dev-python/libpass/Manifest
@@ -1 +1,2 @@
DIST libpass-1.9.3.tar.gz 692901 BLAKE2B b7b19ae4a9e7e2d65062d8d51e11fb8caec1da7bedacf88b9b2114013d2a578e64a5ca195d168982a52f7ca143eea5adbc5b33c955e175b7f2dda07bd93e24a2 SHA512 2581412ed18d3b2953f2679a05ce7158095850fb37e16a744a1c80bd1afbcf2d0852619ff9b06322b38004ff01e0d335cefaecb49cf9552a6a478566067aa0bc
+DIST libpass-1.9.4.tar.gz 704877 BLAKE2B bb85de752e8d8765ef71ea5eefaabad52b8e9f9ab85883d5ecf67a0fd20e51a7ce5b9d9be09c9ce15887100e8b356937f87e0aedc2e5556766456248c79e9094 SHA512 6f0e31a500478284a5455c0b849687a1ea043f448a2c97d7a911f970f5d28cc89c411f4d4dcbb7da3df4874c8d0c2072d6ff0c8496ff2c016eb4e9f31c08e69b
diff --git a/dev-python/libpass/libpass-1.9.4.ebuild b/dev-python/libpass/libpass-1.9.4.ebuild
new file mode 100644
index 000000000000..81c0be2122b2
--- /dev/null
+++ b/dev-python/libpass/libpass-1.9.4.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Fork of passlib, a password hashing framework"
+HOMEPAGE="
+ https://github.com/notypecheck/passlib/
+ https://pypi.org/project/libpass/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="doc test-rust"
+
+BDEPEND="
+ test? (
+ dev-python/scrypt[${PYTHON_USEDEP}]
+ test-rust? (
+ >=dev-python/bcrypt-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-43.0.1[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # bcrypt now disallows implicit password truncation
+ # https://github.com/notypecheck/passlib/pull/25
+ tests/test_handlers_bcrypt.py::bcrypt_bcrypt_test::test_70_hashes
+ tests/test_handlers_bcrypt.py::bcrypt_bcrypt_test::test_secret_w_truncate_size
+ tests/test_handlers_django.py::django_bcrypt_test::test_secret_w_truncate_size
+
+ # assumes scrypt dep is not installed
+ tests/test_crypto_scrypt.py::BuiltinScryptTest::test_missing_backend
+ )
+
+ # skip fuzzing tests, they are very slow
+ epytest -k "not fuzz_input"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use doc && dodoc docs/{*.rst,requirements.txt,lib/*.rst}
+}
+
+pkg_postinst() {
+ optfeature "Argon2 support" dev-python/argon2-cffi
+ optfeature "bcrypt support" dev-python/bcrypt
+ optfeature "scrypt support" dev-python/scrypt
+ optfeature "Time-based One-Time Password (TOTP) support" dev-python/cryptography
+}
diff --git a/dev-python/line-profiler/Manifest b/dev-python/line-profiler/Manifest
index 4b17af0d628d..ed56922381eb 100644
--- a/dev-python/line-profiler/Manifest
+++ b/dev-python/line-profiler/Manifest
@@ -1 +1,2 @@
DIST line_profiler-5.0.2.gh.tar.gz 222335 BLAKE2B 4b5d890de6bb2172550adae338a8cdb62ebbd6afb16bd0d53fed198bd1ba3fdbf7231e236910960af47838f9034fbcc7de109f869ba83edb763531b89f889171 SHA512 1283c37667e34014efd4660285de849ef2059889033f998c4a360db9740c355d740e81309b500ee0f642939f511a8d8d4c4b58e2c043b128294b0733d74a170d
+DIST line_profiler-5.1.0.gh.tar.gz 356660 BLAKE2B 3d72973679bab7b5a23fdd486aa3db65dfbfc93255ae46c59641191ce84a004f5dac24a469ff66473d9e0624727ccd02e88e921463e5164f15e06ed98e7d2e1e SHA512 24e981b292aa4eb931f96d36c6403bdaaca9748ff8203bf8decc2ee54c9282b6ee6ab536d89ca4b229cda33486b9fd8aad830bf084f639edd68f125bbb90ca51
diff --git a/dev-python/line-profiler/line-profiler-5.1.0.ebuild b/dev-python/line-profiler/line-profiler-5.1.0.ebuild
new file mode 100644
index 000000000000..6365a44014fe
--- /dev/null
+++ b/dev-python/line-profiler/line-profiler-5.1.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P=line_profiler-${PV}
+DESCRIPTION="Line-by-line profiler"
+HOMEPAGE="
+ https://github.com/pyutils/line_profiler/
+ https://pypi.org/project/line-profiler/
+"
+SRC_URI="
+ https://github.com/pyutils/line_profiler/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+# NB: while building the C extension is optional for some reason, it is
+# unconditionally required at runtime.
+
+RDEPEND="
+ dev-python/ipython[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/ubelt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( xdoctest )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+export LINE_PROFILER_BUILD_METHOD=cython
+
+EPYTEST_IGNORE=(
+ # Internet (isolated builds)
+ test_cython.py
+)
+
+python_test() {
+ cd tests || die
+ epytest
+}
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index f5bfc238314d..3039732780dd 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -10,9 +10,7 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
-DIST llvm-project-23.1.2.src.tar.xz 179200068 BLAKE2B 554cddd2a3e273ba876da7815e5b0b6999319d2d2c0016603def4e31ce064fe119422aca0033ea0ab2e36ea22d46985ea042b891eed60647b119687c19f9b556 SHA512 91174e69ea787034f8a6b17120aae5f139204e13292119d1b066b4930dcea586c76b82228d3db281d8d4211384c7cb74c6b61fdef41b39d310908a8c7cf080cc
-DIST llvm-project-23.1.2.src.tar.xz.sig 119 BLAKE2B 20a19a2a584c6298841e20f95bf13e42c5f591f82087abd26f77f1d7f87b575dc661fd8bc72f6a7faad485cf75ff4219fb810fbb3a73b0a5992014157e5094fc SHA512 fe76751211cfb1a56935f0e6fd9536309eb02111acb3f32f4badf7e45e6f0283125cf2ece00baa420afc488667c7e1fbb06f0567aa33ff9459f41281cb25e10c
DIST llvm-project-23.1.3.src.tar.xz 179220548 BLAKE2B 1ce328590eb86e5a8d117a1d5c2c4b691d9c1a897f239ba197e14f47b660e927313133e94a518c43ceed163fc081760d5d33e2685a94af1031184a0960ffb5c7 SHA512 eb76f37804564a2595ca8de4864e96cf13c0a3f07922f6bce4d11771547525785c0fde54457aadf7aa1bcaac496475f1dde00e1b152c1df560669c6e3e1318bf
DIST llvm-project-23.1.3.src.tar.xz.sig 466 BLAKE2B 0f5bc2af1f860f908ecb10b057170a832d42c5d916b63b86b75e529466d1ab2f6b2258c3b51a3cb0f236d9553d2990550343f371062d5224fb319bb9d4be26cd SHA512 7eabfb513a5516cab7d2d366117abd36bdb9d1a50e8ab0b21991d8143222e965ac53dbbacc80c8977ed8aaee57b480b7fdbdae0ba847f62c031da69989d34d2d
DIST llvm-project-53310c92e86e1c285b1fe3aaf76158addd0a2036.tar.gz 320028470 BLAKE2B f71cfa7241e3272e3f85200a2f83ffa2ec99b713d444102ce4e0b8420019a6f0f7818ce4a04a2f59be455cd2c26f557c814afbd4613ea09c6133e9faeaf90f42 SHA512 c9304de60fa1ef194b0d1ef158a6d0638465a723a86fbac922184fbd808044e43cd709bc4b5f15cbf04f6ddc465bedc7220978a4913959e4094c9e0ca9a2022a
-DIST llvm-project-9fe649af67007493c02108b484c8b9259e3d522e.tar.gz 318504162 BLAKE2B 43f10fa26c665d9986a093fa8287f302b54dee2b0e74c3c835fd7642c233a3574b3e03e82380f24b1d277b1063ae3bca05a2061b9fa794559f695aa9689e5134 SHA512 7000bf65c5d696a1a870ba8a7f645958970f535a3b68cc7df8da8f3fa31afe4fb02049532919a5974721618b212b3ed7796fd0e1e63de69484517cd91a2289e9
+DIST llvm-project-c5904d2bebe0497b30a712adc085e96107f03160.tar.gz 321341453 BLAKE2B d2915041721282318947af08cfa79b42017dcaf9674863469f97752a6f98c323539fda7c329a926b274a7e196da1aef7ed747945a5a374cfb0803474368a0214 SHA512 55fb2c912d0b87fa6bea5eacd1006a44f40a2880e59b6eec2e22e21cedd4b67eef0da66a58b03c508fc1f2e77e815cba034ed0b1c3cf11ad99a15186f16f9244
diff --git a/dev-python/lit/lit-23.1.2.ebuild b/dev-python/lit/lit-23.1.2.ebuild
deleted file mode 100644
index 9c6e9718fe19..000000000000
--- a/dev-python/lit/lit-23.1.2.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 llvm.org
-
-DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# Tests require 'FileCheck' and 'not' utilities (from llvm)
-BDEPEND="
- test? (
- dev-python/psutil[${PYTHON_USEDEP}]
- llvm-core/llvm
- )
-"
-
-LLVM_COMPONENTS=( llvm/utils/lit )
-llvm.org_set_globals
-
-# TODO: move the manpage generation here (from llvm-core/llvm)
-
-src_prepare() {
- cd "${WORKDIR}" || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x LIT_PRESERVES_TMP=1
- local litflags=$(get_lit_flags)
- ./lit.py ${litflags//;/ } tests || die
-}
diff --git a/dev-python/lit/lit-24.0.0_pre20260929.ebuild b/dev-python/lit/lit-24.0.0_pre20261018.ebuild
index 48b365e13379..48b365e13379 100644
--- a/dev-python/lit/lit-24.0.0_pre20260929.ebuild
+++ b/dev-python/lit/lit-24.0.0_pre20261018.ebuild
diff --git a/dev-python/maxminddb/Manifest b/dev-python/maxminddb/Manifest
new file mode 100644
index 000000000000..e118e9432127
--- /dev/null
+++ b/dev-python/maxminddb/Manifest
@@ -0,0 +1,2 @@
+DIST maxminddb-3.2.0.tar.gz 92542 BLAKE2B 631dfa55de11903dfb24c97be4ab2d09dc6a5c2caf13a8c89771ebd4ede21f7815613d6e25783bce22608ae3e05b14f61a2d5e1fc39097541c5a70fa95974c23 SHA512 e36342d6adebe5abd549e7dca3253683278e8fe649b2ffc204281796c8b438993205b0e5514756337611ec05894b2444cb4a9873d6c19fb51bc7450a8a4e9542
+DIST maxminddb-tests-0ee49278e35fd7bdf341ac236edbba20de1aceb9.tar.gz 326055 BLAKE2B 8786a57b8004f7b97f9c8d1d1395748ec05daf101df94f3c5624d8cb3a62ddfcaf3d5bdd6e071d387b022d1a55499ab006f9c8f96caca925f6adb9f008f4b8cf SHA512 cf01af714393fe9d1bd8226b39619c3bff1b27031568731df7cb9c4c57d7175c0f32be0cf266a097ed147a6f3199089584caeddb1d3d4d4a9ded8136a169b4d3
diff --git a/dev-python/maxminddb/maxminddb-3.2.0.ebuild b/dev-python/maxminddb/maxminddb-3.2.0.ebuild
new file mode 100644
index 000000000000..9acda0b42a96
--- /dev/null
+++ b/dev-python/maxminddb/maxminddb-3.2.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TESTS_V="0ee49278e35fd7bdf341ac236edbba20de1aceb9"
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python MaxMind DB reader extension"
+HOMEPAGE="https://github.com/maxmind/MaxMind-DB-Reader-python"
+SRC_URI="
+ https://github.com/maxmind/MaxMind-DB-Reader-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/maxmind/MaxMind-DB/archive/${TESTS_V}.tar.gz -> maxminddb-tests-${TESTS_V}.tar.gz
+"
+
+S="${WORKDIR}/MaxMind-DB-Reader-python-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-libs/libmaxminddb
+"
+
+EPYTEST_DESELECT=(
+ "tests/reader_test.py::TestReaderInitialization::test_empty_search_tree_is_accepted"
+ "tests/reader_test.py::TestReaderInitialization::test_invalid_tree_metadata_is_rejected_on_open"
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ rmdir "${S}/tests/data" || die
+ ln -s "${WORKDIR}/MaxMind-DB-${TESTS_V}" "${S}/tests/data" || die
+
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ export MAXMINDDB_USE_SYSTEM_LIBMAXMINDDB=1
+
+ distutils-r1_src_compile
+}
+
+python_test() {
+ cp "${BUILD_DIR}/install$(python_get_sitedir)/maxminddb/extension"*.so maxminddb || die
+ epytest
+}
diff --git a/dev-python/maxminddb/metadata.xml b/dev-python/maxminddb/metadata.xml
new file mode 100644
index 000000000000..20c92c15907c
--- /dev/null
+++ b/dev-python/maxminddb/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/maxmind/MaxMind-DB-Reader-python/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/meson-python/Manifest b/dev-python/meson-python/Manifest
index b0c8db49b1ce..521928ce74d9 100644
--- a/dev-python/meson-python/Manifest
+++ b/dev-python/meson-python/Manifest
@@ -1,4 +1,3 @@
-DIST meson-python-0.20.0.gh.tar.gz 94677 BLAKE2B 9ab721d6c547f63a5235ac240f7eaa301ad1dda7d6cf077d11e06a5938ca58089f70396366fb9d0c73f94d190891eb46e0a20cde8aa2e4504b69784f1b4dfa25 SHA512 804f2885e2ebf8f2dfc2a91bf30a5306409684a8b6acdcb69217f45a5c6411e32b1373897efc71e148739502388727efc4e5d52b5f9375be676663ca3d189b6b
DIST meson-python-0.21.0.gh.tar.gz 105284 BLAKE2B d0521471e3e46f4f921b889eaa4e76658bd98fb898e919717f61b4d97124a70bc53a0373972b7c363d16a0adabc8653cfb69a877571443ab6216ff0507de44c8 SHA512 16e43402b7102eabf6832755eeeb1483fbd9cff34de3e469dbb7d3c74e850800cfef79e71e049b19005397c74c90d4de1bf36f1291f6af9dfd84c7fde0bb493b
DIST meson-python-0.21.1.gh.tar.gz 105984 BLAKE2B 70d2b30613fe4162a96ef953185ce0cd29219318a61dce14d2976a81b4774a90c1516f83a4a1506f073d545e48274c2a3c5e9551f99422fb407bdc49c20f6a79 SHA512 a51b23d86226a4cde82a0ab835a218ecf7594b242b0996d1f0562d39669c6b2a2d070548584678498a027506724026dda09847baef9b6abb0d7d1c0646d086d9
DIST meson-python-0.22.0.gh.tar.gz 112091 BLAKE2B 030100d7dc7d8622b39fea798ebc393a89d83fa6e27f311b525f92f1e0af2eba33ceffce371dbbe1b42820bbe640833dcc4cfccd2a814c4a95b54844f35fff6a SHA512 c5d5010c128b6f5630aad72afed0fb40b61a556dec9964f53646f8cb0ba5ea8fec8d20a78aaa58a8ca73a9992c815fc0b348ac2d9e4e20cb40cf542587149395
diff --git a/dev-python/meson-python/meson-python-0.20.0.ebuild b/dev-python/meson-python/meson-python-0.20.0.ebuild
deleted file mode 100644
index 813aeeb15ea6..000000000000
--- a/dev-python/meson-python/meson-python-0.20.0.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Meson PEP 517 Python build backend"
-HOMEPAGE="
- https://pypi.org/project/meson-python/
- https://github.com/mesonbuild/meson-python/
-"
-SRC_URI="
- https://github.com/mesonbuild/meson-python/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-
-RDEPEND="
- >=dev-python/pyproject-metadata-0.7.1[${PYTHON_USEDEP}]
- >=dev-build/meson-0.63.0
- !kernel_Darwin? ( dev-util/patchelf )
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- >=dev-python/cython-0.29.34
- >=dev-python/packaging-23.1[${PYTHON_USEDEP}]
- dev-vcs/git
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # Strip unnecessary Python-level dependency on meson, it is used
- # as an external executable anyway.
- sed -i -e '/meson >=/d' pyproject.toml || die
-}
-
-src_test() {
- # required by tests/test_sdist.py::test_reproducible
- git config --global user.email "test@example.com" || die
- git config --global user.name "The Test Suite" || die
- git init -q || die
- git add -A || die
- git commit -m init -q || die
-
- distutils-r1_src_test
-}
-
-python_test() {
- unset NINJA
-
- local EPYTEST_DESELECT=()
- if ! has_version "dev-build/meson[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/test_wheel.py::test_vendored_meson
- )
- fi
-
- epytest
-}
diff --git a/dev-python/meson-python/meson-python-0.21.1.ebuild b/dev-python/meson-python/meson-python-0.21.1.ebuild
index e16aee261d69..813aeeb15ea6 100644
--- a/dev-python/meson-python/meson-python-0.21.1.ebuild
+++ b/dev-python/meson-python/meson-python-0.21.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 ~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/pyproject-metadata-0.7.1[${PYTHON_USEDEP}]
diff --git a/dev-python/multidict/multidict-6.9.0.ebuild b/dev-python/multidict/multidict-6.9.0.ebuild
index de57559badd8..fd58baa4a16d 100644
--- a/dev-python/multidict/multidict-6.9.0.ebuild
+++ b/dev-python/multidict/multidict-6.9.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 ~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/munkres/Manifest b/dev-python/munkres/Manifest
index bddb75b9d995..814d95927d48 100644
--- a/dev-python/munkres/Manifest
+++ b/dev-python/munkres/Manifest
@@ -1,3 +1,5 @@
DIST munkres-2.0.0.tar.gz 104807 BLAKE2B 609fed7b30265a1b6c70c968de27c3877795706dab12d1a8ca2cc7f8f82fd4cc2d3b4d054986b410b1d87a3a599eb2a3c0338286c627d7d24a4fed9811418d31 SHA512 6a732608f96cac6509e350b09eabd18b400794682b7e82b0056c1489a1023d8dfdbcfc5be17ce22b689747067f45ccd4030b7ac2ed167faf5cd6ee359dd62533
DIST munkres-2.0.0.tar.gz.provenance 10086 BLAKE2B a69a07219156587b974a0f772de411e3a21d848e5c36b1ad162a6420484cdb69f086822165c73fdc119850cf858d1c8fc8c661e8cd84c54b3eed60f776896fe0 SHA512 4810e0f21d38c45c23c7ff95865826caf7f71dc37606f866dc69cb3ea6cbfd13352b47ed2c9cd48d51c57d8a5f8c7cce94d4972bdf27bc541a72ad50e7ca5778
+DIST munkres-3.0.0.tar.gz 252231 BLAKE2B 6fa11dd7dd89788a4f690d1ddbe8c7cdd793c7c6b36c3adb0aea9937464be41152f3a7310661eca5257a9b901a1800955a1e86af1fe03fb1d7d5a8d2c7df59e9 SHA512 daea3fe0c68b31d7fc92af14fbc0a923c7c1bc36ed0b77e1c5667ccd6bbc4bc8b10fc1cbbe2283645b535f235e37dac6005af46ad9f8694eebab0e8e285a2d09
+DIST munkres-3.0.0.tar.gz.provenance 10153 BLAKE2B 3c3ab251e8e4acd166eb30b7f018eef41e0dec5087eb079c131fcee9697fb8ddd368471de9ea0b92169de6e65788a60f6e9624ba4dd030b0ca7ae4b657e23214 SHA512 04fa94fb314547cb55122d51e3196d26c90944f8c0eb65569d255fd125119572f32d1b375f79c4276ef5325c79f8cb030425adf1bf345c3a4b972b775dbc338c
DIST munkres-release-1.1.4.gh.tar.gz 13777 BLAKE2B d783ac7a4fd55826ef3ddddd2ba82cf0499727e605a2414491af7dd9080193c53f1e48ed17dba9a462578bc958d3d9e2e1e413408143b4cfd0305f9cb3b6c517 SHA512 24ae7d04f4a6fe52f7bb9dc79bbee3e33425b85813382e2634e106a5d26d2d728ba8d34fab9390b7c3d651bc0e95214dcf9c94ac436636cd5b487a054b5a2c54
diff --git a/dev-python/munkres/munkres-3.0.0.ebuild b/dev-python/munkres/munkres-3.0.0.ebuild
new file mode 100644
index 000000000000..c0893b8cc3d2
--- /dev/null
+++ b/dev-python/munkres/munkres-3.0.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/iameishit/Paldita-munkres
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit meson distutils-r1 pypi
+
+DESCRIPTION="Module implementing munkres algorithm for the Assignment Problem"
+HOMEPAGE="
+ https://github.com/iameishit/Paldita-munkres/
+ https://pypi.org/project/munkres/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # don't ask
+ mv pyproject.meson.toml pyproject.toml || die
+}
+
+src_configure() {
+ DISTUTILS_ARGS=(
+ $(meson_feature native-extensions native)
+ )
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # junk tests that require dotfiles from the git repo
+ tests/integration/test_examples_and_benchmarks.py::test_release_verifier_reports_no_problems
+ tests/test_repo_hygiene.py
+
+ # upstream build system tests
+ tests/test_meson_build.py
+
+ # super slow
+ tests/hard/test_kernel_hard.py::test_no_memory_growth_over_many_calls
+ # too slow to pass
+ tests/hard/test_system_hard.py::test_pathological_runtimes_stay_bounded
+ )
+
+ epytest
+}
diff --git a/dev-python/mysqlclient/mysqlclient-2.3.0.ebuild b/dev-python/mysqlclient/mysqlclient-2.3.0.ebuild
index c937d0662128..3ebe81238bba 100644
--- a/dev-python/mysqlclient/mysqlclient-2.3.0.ebuild
+++ b/dev-python/mysqlclient/mysqlclient-2.3.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
DEPEND="
dev-db/mysql-connector-c:0=
diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest
index 4ea2858982f3..784a6ed8cd13 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1,2 +1,3 @@
DIST nuitka-4.2.2.tar.gz 4635975 BLAKE2B 0fca85450b40118fe2a7531484ae55eb873da150167b0c23d73d7c2ffed12fc8ffd0b45c2163be2e22821a0cb0fa58631674af472b1443caa471efe443c756a9 SHA512 cb1d20bcb2c056fb2b4909fbf6bffff645a336da3b2439ce720df812c8649f002f774ae88124dba8a98837d5de41d510ab4196fd6d1a6084ebda9b2089ec8445
+DIST nuitka-4.3.1.tar.gz 4771037 BLAKE2B 36b8247bbe1a986a99491b51346f78d57977133449524f030ef70c083d0ab578f7682fcfbb4a53e6c97ec97425fbd9345270d0913319a804436372d666257129 SHA512 d8fe9fbd8ca13678389995d459dfdf76ba65ca7a27fcdd92b1cbbaf7cdfdd8cd3a2fa9dfe0e36f93019d851fe359a8af13a2f4f3cc045b43cd90605eec3ee86e
DIST nuitka-4.3.tar.gz 4766934 BLAKE2B a301fe19910984a4d9d37691a0ff25de9ad032cad274ca3fa0f282d9720f95abe1fea24e088043c7ca43ab2a05d300a587298ec38850829cc57547bbab906ec6 SHA512 eab95922623f88be6601831f0604ec0538d32d98f45450513869a5f3193af8fc31d7626f73d5375f5553f4e72d261f7423ec92369cfdc5298e0dc22da543eefc
diff --git a/dev-python/nuitka/nuitka-4.3.1.ebuild b/dev-python/nuitka/nuitka-4.3.1.ebuild
new file mode 100644
index 000000000000..9cf157377a76
--- /dev/null
+++ b/dev-python/nuitka/nuitka-4.3.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 flag-o-matic optfeature pypi
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="
+ https://nuitka.net/
+ https://github.com/Nuitka/Nuitka/
+ https://pypi.org/project/Nuitka/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-build/scons[${PYTHON_USEDEP}]
+ >=dev-python/ordered-set-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.15[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-4.2-disable-update-check.patch"
+ )
+ distutils-r1_src_prepare
+
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka.1 doc/nuitka-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" dev-util/patchelf
+}
diff --git a/dev-python/numpy/numpy-2.5.3.ebuild b/dev-python/numpy/numpy-2.5.3.ebuild
index d22a019b6c54..56b61c61ff19 100644
--- a/dev-python/numpy/numpy-2.5.3.ebuild
+++ b/dev-python/numpy/numpy-2.5.3.ebuild
@@ -22,7 +22,7 @@ HOMEPAGE="
LICENSE="BSD 0BSD MIT ZLIB CC0-1.0"
SLOT="0/2"
if [[ ${PV} != *_rc* ]]; then
- 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"
fi
# +lapack because the internal fallbacks are pretty slow. Building without blas
# is barely supported anyway, see bug #914358.
diff --git a/dev-python/numpydoc/numpydoc-1.11.0.ebuild b/dev-python/numpydoc/numpydoc-1.11.0.ebuild
index bf6b2e18e7e7..3037dee23430 100644
--- a/dev-python/numpydoc/numpydoc-1.11.0.ebuild
+++ b/dev-python/numpydoc/numpydoc-1.11.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
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-6[${PYTHON_USEDEP}]
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest
index df08c95074ae..11a809acd6b8 100644
--- a/dev-python/paramiko/Manifest
+++ b/dev-python/paramiko/Manifest
@@ -1 +1,3 @@
DIST paramiko-5.0.0.gh.tar.gz 343905 BLAKE2B ebc99a2b1d6f4f962837c79b53eb8db13ec3bea3763e1c875de008a23cfad0451df2ed8395e2076033bbac1630557541e388d6148a3b00412772d69cb9e66245 SHA512 8130c0341e6ab39e8eb0f5ad187ecda2fb14db44995ccffbc3db0bb3cd568daca750224c3cbf4724b7ac503624b2fa72e78ad57e2218e69d471a43cfa8b4e63e
+DIST paramiko-5.0.1.gh.tar.gz 345357 BLAKE2B 395a4c63efa877aca2358339c7fc3c862a1e95cf88ec3969ba169f5e1380e404a6e0db370da832c05605c03a82da72aa18ebaa870fac8a8db419d6a4ab7c9750 SHA512 74d58b3aa917c421068c577fce970a6d4068fd9e9649984b7b1de2f6127890e92f4836a13150ccbb399b4e71f5c465f303aabd2d899397c1ba50321ed6f9e490
+DIST paramiko-5.1.0.gh.tar.gz 348015 BLAKE2B 270849be9c4084d41874aff56b5f616c994bfebd5a68ddf8f83f4bfac58be8c03f80b7c35bb8de14e606974df0308034a977361bc178c52b0538fd2bef58e49d SHA512 1bce7825c55de6b485242003b6264fbb5133128b0041c0a93bcd7847bccc58b45bffc35815aad8dd44f6285ba939e1a81a460a21845b77af8ceef8029c16ec82
diff --git a/dev-python/paramiko/paramiko-5.0.1.ebuild b/dev-python/paramiko/paramiko-5.0.1.ebuild
new file mode 100644
index 000000000000..2961af781f78
--- /dev/null
+++ b/dev-python/paramiko/paramiko-5.0.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="
+ https://www.paramiko.org/
+ https://github.com/paramiko/paramiko/
+ https://pypi.org/project/paramiko/
+"
+SRC_URI="
+ https://github.com/paramiko/paramiko/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/bcrypt-3.2[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.3[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-5.0.0-nih-test-deps.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # optional dep
+ sed -i -e '/invoke/d' pyproject.toml || die
+}
diff --git a/dev-python/paramiko/paramiko-5.1.0.ebuild b/dev-python/paramiko/paramiko-5.1.0.ebuild
new file mode 100644
index 000000000000..2961af781f78
--- /dev/null
+++ b/dev-python/paramiko/paramiko-5.1.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="
+ https://www.paramiko.org/
+ https://github.com/paramiko/paramiko/
+ https://pypi.org/project/paramiko/
+"
+SRC_URI="
+ https://github.com/paramiko/paramiko/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/bcrypt-3.2[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.3[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-5.0.0-nih-test-deps.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # optional dep
+ sed -i -e '/invoke/d' pyproject.toml || die
+}
diff --git a/dev-python/pdm/Manifest b/dev-python/pdm/Manifest
index 7e2b28a278ab..517c95058dac 100644
--- a/dev-python/pdm/Manifest
+++ b/dev-python/pdm/Manifest
@@ -1,2 +1,2 @@
-DIST pdm-2.29.1.tar.gz 2713906 BLAKE2B d610993a0120f2517aa6c575f8fd9754552e1b5895f8765d58051733ac9c9d7df3de549d3c96ea04b03f3177b32914a3a725c0aee324a2ed52b47e7b955ef4ca SHA512 38d2924f0933cbb32468950bdeb4866d8c49d22f34dbcae081d9dae7f84eedae22535a9c39f2c65457abe9b9bad828050fa6808ac8940ed46da9de63ef0a254f
DIST pdm-2.29.2.tar.gz 2714556 BLAKE2B 5c348e415bda6d709af2e2dcf58bf564ee7fabf684d217083abdb5459736dcfb457ee7b439c415700e0cea782730c88252fcf48f27fbea2b1b0d64fcb1f6b4b7 SHA512 13751cb12b2b6353e1fdc0bfe6f388f797c2147960ddc668af906ac8b92c36295ff81e077604eec00ca3c440220d1cf770161b2e0a6d6e0dc453d59700cb5856
+DIST pdm-2.29.3.tar.gz 2722866 BLAKE2B 522ffc8890231d631ec1f1a45abb24dca61f5bcaf81e685b0c1953087eeac4bab40ce58f0b36228154de4961d07a90099a3a4ab30773c68d90d3b33da456b3fc SHA512 7e60735c0b90b34455f69af7183ba7e5f962c68bf9bd161a4764cebb2810de9b69286e98cc0fddb31a480be2d15551fce1dbabcc8c0c9e2a7397923da6fd45c0
diff --git a/dev-python/pdm/pdm-2.29.1.ebuild b/dev-python/pdm/pdm-2.29.3.ebuild
index f853dc5fa0e7..f853dc5fa0e7 100644
--- a/dev-python/pdm/pdm-2.29.1.ebuild
+++ b/dev-python/pdm/pdm-2.29.3.ebuild
diff --git a/dev-python/pikepdf/pikepdf-10.13.0_p1.ebuild b/dev-python/pikepdf/pikepdf-10.13.0_p1.ebuild
index 634c4f07cb5a..163495821621 100644
--- a/dev-python/pikepdf/pikepdf-10.13.0_p1.ebuild
+++ b/dev-python/pikepdf/pikepdf-10.13.0_p1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
IUSE="big-endian"
# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
diff --git a/dev-python/pip/files/pip-25.0.1-unbundle.patch b/dev-python/pip/files/pip-25.0.1-unbundle.patch
deleted file mode 100644
index 9cc035985250..000000000000
--- a/dev-python/pip/files/pip-25.0.1-unbundle.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-diff --git a/src/pip/_internal/cli/main_parser.py b/src/pip/_internal/cli/main_parser.py
-index 5ade356b9..d07dfeab8 100644
---- a/src/pip/_internal/cli/main_parser.py
-+++ b/src/pip/_internal/cli/main_parser.py
-@@ -80,6 +80,11 @@ def parse_command(args: List[str]) -> Tuple[str, List[str]]:
-
- # --python
- if general_options.python and "_PIP_RUNNING_IN_SUBPROCESS" not in os.environ:
-+ raise CommandError(
-+ "--python option is not supported on Gentoo, as it requires bundled "
-+ "dependencies that have been removed to improve security"
-+ )
-+
- # Re-invoke pip using the specified Python interpreter
- interpreter = identify_python_interpreter(general_options.python)
- if interpreter is None:
-diff --git a/src/pip/_internal/commands/debug.py b/src/pip/_internal/commands/debug.py
-index 567ca967e..427bfcf04 100644
---- a/src/pip/_internal/commands/debug.py
-+++ b/src/pip/_internal/commands/debug.py
-@@ -6,7 +6,6 @@ from optparse import Values
- from types import ModuleType
- from typing import Any, Dict, List, Optional
-
--import pip._vendor
- from pip._vendor.certifi import where
- from pip._vendor.packaging.version import parse as parse_version
-
-@@ -192,9 +191,7 @@ class DebugCommand(Command):
- show_value("REQUESTS_CA_BUNDLE", os.environ.get("REQUESTS_CA_BUNDLE"))
- show_value("CURL_CA_BUNDLE", os.environ.get("CURL_CA_BUNDLE"))
- show_value("pip._vendor.certifi.where()", where())
-- show_value("pip._vendor.DEBUNDLED", pip._vendor.DEBUNDLED)
--
-- show_vendor_versions()
-+ show_value("pip._vendor.DEBUNDLED", True)
-
- show_tags(options)
-
-diff --git a/tests/conftest.py b/tests/conftest.py
-index d093eea46..bf4d9e782 100644
---- a/tests/conftest.py
-+++ b/tests/conftest.py
-@@ -418,6 +418,7 @@ def _common_wheel_editable_install(
- )
- install_dir = tmpdir_factory.mktemp(package) / "install"
- lib_install_dir = install_dir / "lib"
-+ return lib_install_dir
- bin_install_dir = install_dir / "bin"
- with WheelFile.open(wheel_candidates[0]) as source:
- install(
-diff --git a/tests/functional/test_check.py b/tests/functional/test_check.py
-index f50f5593e..c42e88bbe 100644
---- a/tests/functional/test_check.py
-+++ b/tests/functional/test_check.py
-@@ -10,10 +10,8 @@ from tests.lib import (
- def matches_expected_lines(string: str, expected_lines: Collection[str]) -> bool:
- # Ignore empty lines
- output_lines = list(filter(None, string.splitlines()))
-- # We'll match the last n lines, given n lines to match.
-- last_few_output_lines = output_lines[-len(expected_lines) :]
- # And order does not matter
-- return set(last_few_output_lines) == set(expected_lines)
-+ return set(expected_lines).issubset(set(output_lines))
-
-
- def test_basic_check_clean(script: PipTestEnvironment) -> None:
-diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
-index 0a7cedd11..ea2fef37d 100644
---- a/tests/functional/test_freeze.py
-+++ b/tests/functional/test_freeze.py
-@@ -82,8 +82,8 @@ def test_basic_freeze(script: PipTestEnvironment) -> None:
- result = script.pip("freeze", expect_stderr=True)
- expected = textwrap.dedent(
- """\
-- ...simple==2.0
-- simple2==3.0...
-+ ...simple==2.0...
-+ ...simple2==3.0...
- <BLANKLINE>"""
- )
- _check_output(result.stdout, expected)
-@@ -1016,7 +1016,7 @@ def test_freeze_skip_work_dir_pkg(script: PipTestEnvironment) -> None:
-
- # Freeze should not include package simple when run from package directory
- result = script.pip("freeze", cwd=pkg_path)
-- assert "simple" not in result.stdout
-+ assert "\nsimple==" not in result.stdout
-
-
- def test_freeze_include_work_dir_pkg(script: PipTestEnvironment) -> None:
-diff --git a/tests/functional/test_install_check.py b/tests/functional/test_install_check.py
-index 8a8a7c93a..bbda083f7 100644
---- a/tests/functional/test_install_check.py
-+++ b/tests/functional/test_install_check.py
-@@ -57,6 +57,7 @@ def test_check_install_canonicalization(script: PipTestEnvironment) -> None:
- )
- assert "requires" not in result.stderr
- assert result.returncode == 0
-+ return
-
- # Double check that all errors are resolved in the end
- result = script.pip("check")
-diff --git a/tests/functional/test_list.py b/tests/functional/test_list.py
-index e611fe7cb..c716f65c5 100644
---- a/tests/functional/test_list.py
-+++ b/tests/functional/test_list.py
-@@ -1,5 +1,6 @@
- import json
- import os
-+import re
- from pathlib import Path
-
- import pytest
-@@ -42,8 +43,8 @@ def test_basic_list(simple_script: PipTestEnvironment) -> None:
-
- """
- result = simple_script.pip("list")
-- assert "simple 1.0" in result.stdout, str(result)
-- assert "simple2 3.0" in result.stdout, str(result)
-+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
-+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
-
-
- def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
-@@ -55,8 +56,8 @@ def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
- assert "Version" in result.stdout, str(result)
- assert "Location" in result.stdout, str(result)
- assert "Installer" in result.stdout, str(result)
-- assert "simple 1.0" in result.stdout, str(result)
-- assert "simple2 3.0" in result.stdout, str(result)
-+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
-+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
-
-
- def test_columns_flag(simple_script: PipTestEnvironment) -> None:
-@@ -67,8 +68,8 @@ def test_columns_flag(simple_script: PipTestEnvironment) -> None:
- assert "Package" in result.stdout, str(result)
- assert "Version" in result.stdout, str(result)
- assert "simple (1.0)" not in result.stdout, str(result)
-- assert "simple 1.0" in result.stdout, str(result)
-- assert "simple2 3.0" in result.stdout, str(result)
-+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
-+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
-
-
- def test_format_priority(simple_script: PipTestEnvironment) -> None:
-@@ -80,16 +81,16 @@ def test_format_priority(simple_script: PipTestEnvironment) -> None:
- )
- assert "simple==1.0" in result.stdout, str(result)
- assert "simple2==3.0" in result.stdout, str(result)
-- assert "simple 1.0" not in result.stdout, str(result)
-- assert "simple2 3.0" not in result.stdout, str(result)
-+ assert not re.search(r"simple\s+1\.0", result.stdout), str(result)
-+ assert not re.search(r"simple2\s+3\.0", result.stdout), str(result)
-
- result = simple_script.pip("list", "--format=freeze", "--format=columns")
- assert "Package" in result.stdout, str(result)
- assert "Version" in result.stdout, str(result)
- assert "simple==1.0" not in result.stdout, str(result)
- assert "simple2==3.0" not in result.stdout, str(result)
-- assert "simple 1.0" in result.stdout, str(result)
-- assert "simple2 3.0" in result.stdout, str(result)
-+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
-+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
-
-
- def test_local_flag(simple_script: PipTestEnvironment) -> None:
-@@ -125,8 +126,8 @@ def test_multiple_exclude_and_normalization(
- assert "Normalizable_Name" in result.stdout
- assert "pip" in result.stdout
- result = script.pip("list", "--exclude", "normalizablE-namE", "--exclude", "pIp")
-- assert "Normalizable_Name" not in result.stdout
-- assert "pip" not in result.stdout
-+ assert "Normalizable_Name " not in result.stdout
-+ assert "pip " not in result.stdout
-
-
- @pytest.mark.network
-diff --git a/tests/lib/venv.py b/tests/lib/venv.py
-index fac54d3bd..6bfe3cfdc 100644
---- a/tests/lib/venv.py
-+++ b/tests/lib/venv.py
-@@ -9,6 +9,7 @@ import venv as _venv
- from pathlib import Path
- from typing import Dict, Literal, Optional, Union
-
-+import pytest
- import virtualenv as _virtualenv
-
- VirtualEnvironmentType = Literal["virtualenv", "venv"]
-@@ -35,7 +36,7 @@ class VirtualEnvironment:
- self._venv_type = venv_type
- else:
- self._venv_type = "virtualenv"
-- self._user_site_packages = False
-+ self._user_site_packages = True
- self._template = template
- self._sitecustomize: Optional[str] = None
- self._update_paths()
-@@ -234,6 +235,8 @@ class VirtualEnvironment:
-
- @user_site_packages.setter
- def user_site_packages(self, value: bool) -> None:
-+ if not value:
-+ pytest.skip("Gentoo: skipping due to lack of system site-packages")
- self._user_site_packages = value
- if self._legacy_virtualenv:
- marker = self.lib / "no-global-site-packages.txt"
diff --git a/dev-python/pip/files/pip-26.0-test-wheels.patch b/dev-python/pip/files/pip-26.0-test-wheels.patch
deleted file mode 100644
index 55fb04f8f65f..000000000000
--- a/dev-python/pip/files/pip-26.0-test-wheels.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From f8f2b7760bfc8d64607b3bf2cdc9867fcce8276a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Thu, 31 Jul 2025 05:10:08 +0200
-Subject: [PATCH] Disable coverage & socket plugins inside test venvs
-
----
- tests/conftest.py | 33 ---------------------------------
- 1 file changed, 33 deletions(-)
-
-diff --git a/tests/conftest.py b/tests/conftest.py
-index 1b65e9d57..69b6f38c9 100644
---- a/tests/conftest.py
-+++ b/tests/conftest.py
-@@ -440,25 +440,6 @@ def setuptools_install(
- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "setuptools")
-
-
--@pytest.fixture(scope="session")
--def coverage_install(
-- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path
--) -> Path:
-- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage")
--
--
--@pytest.fixture(scope="session")
--def socket_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) -> Path:
-- lib_dir = _common_wheel_editable_install(
-- tmpdir_factory, common_wheels, "pytest_subket"
-- )
-- # pytest-subket is only included so it can intercept and block unexpected
-- # network requests. It should NOT be visible to the pip under test.
-- dist_info = next(lib_dir.glob("*.dist-info"))
-- shutil.rmtree(dist_info)
-- return lib_dir
--
--
- def install_pth_link(
- venv: VirtualEnvironment, project_name: str, lib_dir: Path
- ) -> None:
-@@ -474,8 +455,6 @@ def virtualenv_template(
- pip_src: Path,
- pip_editable_parts: tuple[Path, ...],
- setuptools_install: Path,
-- coverage_install: Path,
-- socket_install: Path,
- ) -> VirtualEnvironment:
- venv_type: VirtualEnvironmentType
- if request.config.getoption("--use-venv"):
-@@ -489,10 +468,6 @@ def virtualenv_template(
-
- # Install setuptools, pytest-subket, and pip.
- install_pth_link(venv, "setuptools", setuptools_install)
-- install_pth_link(venv, "pytest_subket", socket_install)
-- # Also copy pytest-subket's .pth file so it can intercept socket calls.
-- with open(venv.site / "pytest_socket.pth", "w") as f:
-- f.write(socket_install.joinpath("pytest_socket.pth").read_text())
-
- pth, dist_info = pip_editable_parts
-
-@@ -505,14 +480,6 @@ def virtualenv_template(
- # detects changed files.
- venv.site.joinpath("easy-install.pth").touch()
-
-- if request.config.getoption("--cov"):
-- # Install coverage and pth file for executing it in any spawned processes
-- # in this virtual environment.
-- install_pth_link(venv, "coverage", coverage_install)
-- # zz prefix ensures the file is after easy-install.pth.
-- with open(venv.site / "zz-coverage-helper.pth", "a") as f:
-- f.write("import coverage; coverage.process_startup()")
--
- # Drop (non-relocatable) launchers.
- for exe in os.listdir(venv.bin):
- if not exe.startswith(("python", "libpy")): # Don't remove libpypy-c.so...
diff --git a/dev-python/pip/pip-26.1.2.ebuild b/dev-python/pip/pip-26.1.2.ebuild
deleted file mode 100644
index 75b984ad4d24..000000000000
--- a/dev-python/pip/pip-26.1.2.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# please bump dev-python/ensurepip-pip along with this package!
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="ssl(+),threads(+)"
-
-inherit distutils-r1 pypi shell-completion
-FLIT_CORE_PV=3.12.0
-
-DESCRIPTION="The PyPA recommended tool for installing Python packages"
-HOMEPAGE="
- https://pip.pypa.io/en/stable/
- https://pypi.org/project/pip/
- https://github.com/pypa/pip/
-"
-SRC_URI="
- https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
- test? (
- $(pypi_wheel_url flit-core "${FLIT_CORE_PV}")
- )
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="test test-rust"
-RESTRICT="!test? ( test )"
-
-# see src/pip/_vendor/vendor.txt
-RDEPEND="
- >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}]
- >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}]
- >=dev-python/distro-1.9.0[${PYTHON_USEDEP}]
- >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-26.2[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}]
- >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.33.1[${PYTHON_USEDEP}]
- >=dev-python/rich-14.1.0[${PYTHON_USEDEP}]
- >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}]
- >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- $(python_gen_cond_dep '
- dev-python/ensurepip-setuptools
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/pretend[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- dev-python/scripttest[${PYTHON_USEDEP}]
- <dev-python/setuptools-80[${PYTHON_USEDEP}]
- dev-python/virtualenv[${PYTHON_USEDEP}]
- dev-python/werkzeug[${PYTHON_USEDEP}]
- test-rust? (
- dev-python/cryptography[${PYTHON_USEDEP}]
- )
- dev-vcs/git
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-python_prepare_all() {
- local PATCHES=(
- # remove coverage & pytest-subket wheel expectation from test suite
- "${FILESDIR}/pip-26.0-test-wheels.patch"
- # prepare to unbundle dependencies
- "${FILESDIR}/pip-25.0.1-unbundle.patch"
- )
-
- distutils-r1_python_prepare_all
-
- # unbundle dependencies
- rm -r src/pip/_vendor || die
- find -name '*.py' -exec sed -i \
- -e 's:from pip\._vendor import:import:g' \
- -e 's:from pip\._vendor\.:from :g' \
- {} + || die
- sed -i -e '/_vendor.*\(COPYING\|LICENSE\)/d' pyproject.toml || die
-
- if use test; then
- local wheels=(
- "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
- "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")"
- )
- mkdir tests/data/common_wheels/ || die
- cp "${wheels[@]}" tests/data/common_wheels/ || die
- fi
-}
-
-python_configure() {
- if use test && has_version "dev-python/pip[${PYTHON_USEDEP}]"; then
- "${EPYTHON}" -m pip check ||
- die "${EPYTHON} -m pip check failed, tests will fail"
- fi
-}
-
-python_compile_all() {
- # 'pip completion' command embeds full $0 into completion script, which confuses
- # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
- # This trick sets correct $0 while still calling just installed pip.
- local pipcmd='if True:
- import sys
- sys.argv[0] = "pip"
- __file__ = ""
- from pip._internal.cli.main import main
- sys.exit(main())
- '
- "${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
- "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return 0
- fi
-
- local EPYTEST_DESELECT=(
- tests/functional/test_inspect.py::test_inspect_basic
- # Internet
- tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
- tests/functional/test_install.py::test_double_install_fail
- tests/functional/test_install.py::test_install_sdist_links
- tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
- tests/functional/test_lock.py::test_lock_archive
- tests/functional/test_lock.py::test_lock_vcs
- # broken by system site-packages use
- tests/functional/test_freeze.py::test_freeze_with_setuptools
- tests/functional/test_install.py::test_install_subprocess_output_handling
- tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
- tests/functional/test_uninstall.py::test_basic_uninstall_distutils
- tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
- tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
- tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
- # broken by unbundling
- "tests/functional/test_debug.py::test_debug[vendored library versions:]"
- tests/functional/test_debug.py::test_debug__library_versions
- tests/functional/test_freeze.py::test_freeze_multiple_exclude_with_all
- tests/functional/test_install.py::test_install_package_with_same_name_in_curdir
- tests/functional/test_pep517.py::test_nested_builds
- tests/functional/test_python_option.py::test_python_interpreter
- tests/functional/test_uninstall.py::test_basic_uninstall
- tests/functional/test_uninstall.py::test_uninstall_non_local_distutils
- )
- local EPYTEST_IGNORE=(
- # from upstream options
- tests/tests_cache
- # requires proxy.py
- tests/functional/test_proxy.py
- )
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # unexpected tempfiles?
- tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
- tests/functional/test_install_config.py::test_prompt_for_authentication
- # wrong path
- tests/functional/test_install.py::test_install_editable_with_prefix_setup_py
- # wrong exception assumptions
- tests/unit/test_utils_datetime.py::test_parse_iso_datetime_invalid
- # TODO
- tests/functional/test_install.py::test_install_warns_on_unexpected_post_install_import
- )
- ;;
- esac
-
- if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/functional/test_install.py::test_install_sends_client_cert
- tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
- tests/functional/test_install_config.py::test_prompt_for_authentication
- tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
- )
- fi
-
- local -x PIP_DISABLE_PIP_VERSION_CHECK=1
- local EPYTEST_PLUGINS=()
- # rerunfailures because test suite breaks if packages are installed
- # to system site-packages while it's running
- local EPYTEST_RERUNS=5
- local EPYTEST_XDIST=1
- epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \
- --use-venv
-}
-
-python_install_all() {
- local DOCS=( AUTHORS.txt docs/html/**/*.rst )
- distutils-r1_python_install_all
-
- newbashcomp completion.bash pip
- newzshcomp completion.zsh _pip
-}
diff --git a/dev-python/pip/pip-26.2.1.ebuild b/dev-python/pip/pip-26.2.1.ebuild
index 534c3cd3e7a2..a05a0568ab37 100644
--- a/dev-python/pip/pip-26.2.1.ebuild
+++ b/dev-python/pip/pip-26.2.1.ebuild
@@ -28,7 +28,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/pivy/pivy-0.6.11.ebuild b/dev-python/pivy/pivy-0.6.11.ebuild
index 06b9f4a5f3bc..22d25afaf240 100644
--- a/dev-python/pivy/pivy-0.6.11.ebuild
+++ b/dev-python/pivy/pivy-0.6.11.ebuild
@@ -19,7 +19,7 @@ else
SRC_URI="
https://github.com/coin3d/pivy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 x86"
fi
LICENSE="ISC"
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index fa87e323222d..e1a75dd92a20 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -4,8 +4,6 @@ DIST platformdirs-4.11.12.tar.gz 40016 BLAKE2B d8f5b81cdde33623e59b21c5309d357e5
DIST platformdirs-4.11.12.tar.gz.provenance 9617 BLAKE2B fd02ecf2e8bceb5f143d5184e8a242ddcce1b981af46f679de638714096c0e30ba8cc6040e594680a049c9ef5544e324503f95ddc372c885dda7365687a43491 SHA512 7b588b06856b2a61c83bc0607325befb42b95146db61ec34d6620dd07f93a74b07c9e055576271e40f4082383b009317707c39edef8eaa8b10480e62f49c1bfa
DIST platformdirs-4.11.15.tar.gz 46059 BLAKE2B 69da625f4bad69e17c1739c0f4133ff619671f0c592035c91b98b7fe88d6da2b9c6a98e11a52c1d6368f7a383da4c0ce32bbeaeb1e24a191533c6f8f1db00144 SHA512 0e8f7b7fa2fe817695e61a4df091346cf56e0493ab80abe0871df5c88be7a0e96f63f64451e8848da53e5bda7cd33296a1e8475f847a68c4798f59771fe0d855
DIST platformdirs-4.11.15.tar.gz.provenance 9958 BLAKE2B c85324fdb9dc97ab5d29503da0916a13f3416f31362466182d9bd62cb1f0ce5bb55a6b350ceec05e600e7fb3e5895222517e2cd84610ff4670bf350fcf8f18f4 SHA512 7a18eb7c497cd2af7ad0dd1903c5b482d05d814fade6e3aefbc6363056de78ec2607eb46c9a416d47a701e995ae3c784efbb3df3e3bcc09af795ff3a3c0707e3
-DIST platformdirs-4.11.8.tar.gz 37182 BLAKE2B 223120ca204637bfa8b1f13182ea73aaf03d9d0abd6cba6a190e587fb9c3a7c27678ebe2893a662ada540e2de1fcd35e8bcd1b6caf52c0e8b0d696aeb522d6fd SHA512 eaca02bb4fd5526b68cd820cdddfbb2fc9a837d8a7c0f18afd2871b134738ec180406e9f886ad318b7c1812a751055f958756ccdd8942681fe78b0976c2f6eb5
-DIST platformdirs-4.11.8.tar.gz.provenance 9930 BLAKE2B 3039cea46b90560c85320e0f6dfc5d851efb047df90b3596ea1144bc3e1f09355a355b992885571459d18d7bfd9035f30092efed476f2c1c11e0d3c5a109ac3b SHA512 ec6d06cdf399f660f639fc741839244094cc6028c037b9ab24e66cdda1e91aa2ee7819d5b02c4e3adfa651d4cd0cd37374da580bbf5424ef973719e2cfa48606
DIST platformdirs-4.12.0.tar.gz 58964 BLAKE2B df81467e591fd665e33ceaad67a5709eee8eb54e84d7246d23ccd2cc9e60f3b595721131389e041c5d752610d97fddd6d6ef6301447be0b6b0c02d19a27bb8fe SHA512 75429dabf2e94ae72394dc60431fbb63a1d9f1236cd9809e72992b18ca5d055e52cf64622f21dea829842732a9e8df95a06516ec2897c7db611837e16ca08401
DIST platformdirs-4.12.0.tar.gz.provenance 9793 BLAKE2B 0911eb42eccd899592ccfc05541699824b09f125fb5e14379c9c51aac852aa197b7cdbeb800d89926b203e89ade26c67cb8a85b9d971d0ccefa66dca8fee2dff SHA512 a0a42d7f3bb0a2d09802e190ecd189aa86ed6bd002d01f4af736b3755aebb0770bb26edfe622d8d6abfe609660e588376baa44aa5aa9ecec250d672e4dde136d
DIST platformdirs-4.12.1.tar.gz 59427 BLAKE2B daca3b5be360410512e60e521c1b57fe42b63737ecf945b0e1a12772823a5e1e138ce2ea68b1ae2e75836ad7d8e1f738842d28690f1b9f52b690836ec86816bb SHA512 41cf98423ddff05b72e01711fc5322e9f51cbd458b8b728c65b541dea5b8251347765842b9fd8184b6a9f77b20fc312a9674c3c3f97ea851a73e538c909d08b1
@@ -20,3 +18,7 @@ DIST platformdirs-4.13.0.tar.gz 61094 BLAKE2B b75cd5ec0567804dbd1d17c94c47f7d0a4
DIST platformdirs-4.13.0.tar.gz.provenance 9853 BLAKE2B 8979b27b8cc88bbb93ba3b4724ef8b48589cc63b358985174080e034509219b729c18bb6e338ff9dd0b398627572bf88b3fbf80814ba0269c91e4dfc76964a4c SHA512 466c7045f45c6e54a39fb00898e10a7f9d2d1c4ff57549cd41c9d42a2d01b356f9c925cca5ec6698e218683dc218f04a8491d0e2cf808c08ff57d551257527ab
DIST platformdirs-4.13.3.tar.gz 61559 BLAKE2B 67f308693abce309111ede5f65cddee40193acbdb1bd914f8a99f703b7a91311b21923ddcf004fad9fe4b6549ec967639ca1cdc5f15e6d9ec4e2035a13647e43 SHA512 6bff0c7f0039fd9a4c2c0173b4e52d4725ef0f93af627380baa5657312431b24d9e77600bfb032ff1668b7dd095421017a5eff886557fb03ea24463adefe69e9
DIST platformdirs-4.13.3.tar.gz.provenance 10088 BLAKE2B 144d56f2fe91878dcc528008b48d2face6276a675002ce364eae633694dd865b5ea4f49184b544a2bd55e6e0d5651642b2d6f64ef8285aca9af689693840f0db SHA512 ecd0ae36a2885b1edf1caec3a0975a292346e534ed234e707f4b6fb79de410bdc758a4ff0637d62ef1452c8aa2d2aa751d4a8fcb8548c3c85ba4eeebb8d6b699
+DIST platformdirs-4.13.4.tar.gz 62364 BLAKE2B 075a0a2ba6cd54fa599bd3047f4e8c468c48150b87e76cc61ccd260d86e3d1df2a3c8282ab8b24d6f335ff8837fdf713902d62f76d4ae418adc6f068584f307c SHA512 b7a996d05ea7d9d2ad4fb57646e4b8871c664f0be705f45a174d3e54419ea993ee372d9bd01a506e70f39411e3a1bfe452285304f4cc73417cad18efc6d92375
+DIST platformdirs-4.13.4.tar.gz.provenance 9994 BLAKE2B d34a5e89b64ca732aac8834c05d95367ce306c89c7df7b5cf6e05f31a92258731b01f5374ec3f1cdd5ad70acbad37c7de2902dc57b4ee16357069071bc46e656 SHA512 b96a43c5e9c0b5a34976b543d070018fc2228ed57ae63c5eb378a14a857b8e2ba7b24ba1c259b300edb2c89657d53226da1af0a1f05f974d25a40c739e6ee990
+DIST platformdirs-4.13.5.tar.gz 62362 BLAKE2B a500717f1a98e51212fa7c18d2c69336db0260df271a29e160f03cc3dccb55535d83a1b3bb0b9dfdb84fd64cc0897da258ae10fb2f293f3fad31dbfac6f05019 SHA512 ac87a2ecbed0f04a0230ff9ababad9ec1995da059f84dbc1e3c38f988cc40e5d596a25a0f9471f3882065f131a0d6c1a8c2f0f617cb85e5dbf220d753125a658
+DIST platformdirs-4.13.5.tar.gz.provenance 9900 BLAKE2B 0bf72b2bc2e5ab22db9c45976b546b4ef0f6ccf19300892aada9e042c18959cef9c29fc9618ec3e23f49a06fe4be7f02443dac2f55a2637ff295fdd125bc34da SHA512 918b5f6e01dcc8d4c8d50fbd216d326670097a8d00d242ec543f403a52e4ae722c740decfc6d72e8ec1526ac332c1ac1a8b2998838f63d4f6ef27ef2d909a934
diff --git a/dev-python/platformdirs/platformdirs-4.11.11.ebuild b/dev-python/platformdirs/platformdirs-4.11.11.ebuild
index 97987e113428..efc02002085f 100644
--- a/dev-python/platformdirs/platformdirs-4.11.11.ebuild
+++ b/dev-python/platformdirs/platformdirs-4.11.11.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"
BDEPEND="
test? (
diff --git a/dev-python/platformdirs/platformdirs-4.11.8.ebuild b/dev-python/platformdirs/platformdirs-4.13.4.ebuild
index efc02002085f..64fa02613d59 100644
--- a/dev-python/platformdirs/platformdirs-4.11.8.ebuild
+++ b/dev-python/platformdirs/platformdirs-4.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 ~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? (
@@ -48,3 +48,15 @@ src_configure() {
__version_tuple__ = version_tuple = (${PV//./, })
EOF
}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # failing on -Werror, because upstream doesn't bother using
+ # new pytest
+ tests/test_pytest_plugin.py::test_import_before_pytest_main
+ )
+
+ # have to disable removing tmp_paths since upstream mocks are
+ # incomplete and break teardown
+ epytest -p platformdirs.pytest_plugin -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/platformdirs/platformdirs-4.13.5.ebuild b/dev-python/platformdirs/platformdirs-4.13.5.ebuild
new file mode 100644
index 000000000000..64fa02613d59
--- /dev/null
+++ b/dev-python/platformdirs/platformdirs-4.13.5.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE="
+ https://pypi.org/project/platformdirs/
+ https://github.com/tox-dev/platformdirs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? (
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "hatchling' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "${PN}"
+ version = "${PV}"
+ description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
+ EOF
+ # sigh
+ cat > src/platformdirs/version.py <<-EOF || die
+ __version__ = version = '${PV}'
+ __version_tuple__ = version_tuple = (${PV//./, })
+ EOF
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # failing on -Werror, because upstream doesn't bother using
+ # new pytest
+ tests/test_pytest_plugin.py::test_import_before_pytest_main
+ )
+
+ # have to disable removing tmp_paths since upstream mocks are
+ # incomplete and break teardown
+ epytest -p platformdirs.pytest_plugin -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/playwright-captcha/Manifest b/dev-python/playwright-captcha/Manifest
new file mode 100644
index 000000000000..89b949cc974b
--- /dev/null
+++ b/dev-python/playwright-captcha/Manifest
@@ -0,0 +1 @@
+DIST playwright-captcha-0.1.5.gh.tar.gz 36718 BLAKE2B b63b0b2f966fa586a138357bf2bf94eb7ebc34d089602b17a0427fdfc61d1f378c39ea86f13faea599554aa2b8e2a7b5b0c2ffe7a9f77f0169e25bbe398244eb SHA512 a63842fb0472d58c94b93b774b5b3baf2bdab34c39bfb31b3b5fb8620c5677b501ba09b9e8e8805397c936f5b12a9d264db0b0084a605699e30152be0b9beafe
diff --git a/dev-python/playwright-captcha/metadata.xml b/dev-python/playwright-captcha/metadata.xml
new file mode 100644
index 000000000000..d1d9f7388499
--- /dev/null
+++ b/dev-python/playwright-captcha/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/techinz/playwright-captcha/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/playwright-captcha/playwright-captcha-0.1.5.ebuild b/dev-python/playwright-captcha/playwright-captcha-0.1.5.ebuild
new file mode 100644
index 000000000000..a5a221ecf5d2
--- /dev/null
+++ b/dev-python/playwright-captcha/playwright-captcha-0.1.5.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# No tags in the repository, but there are tags on PyPI
+EGIT_COMMIT="b316e4f4989d7b2b9fdd9ee4826cf4aeb9cb1151"
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Automating captcha solving for Playwright"
+HOMEPAGE="
+ https://github.com/techinz/playwright-captcha
+ https://pypi.org/project/playwright-captcha/
+"
+SRC_URI="https://github.com/techinz/playwright-captcha/archive/${EGIT_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+# License file is different from the license field in `pyproject.toml`
+LICENSE="Apache-2.0 MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/2captcha[${PYTHON_USEDEP}]
+ dev-python/playwright[${PYTHON_USEDEP}]
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+"
+
+EPYTEST_DESELECT=(
+ "tests/integration/test_cloudflare_click.py::TestCloudflareClickSolvers::test_click_interstitial_solver"
+ "tests/integration/test_cloudflare_click.py::TestCloudflareClickSolvers::test_click_turnstile_solver"
+)
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
diff --git a/dev-python/playwright/Manifest b/dev-python/playwright/Manifest
new file mode 100644
index 000000000000..01c92849e36a
--- /dev/null
+++ b/dev-python/playwright/Manifest
@@ -0,0 +1 @@
+DIST playwright-1.64.0.tar.gz 1476181 BLAKE2B 0718ddab169e83c74cd2652eb9d484d8839a416701e7498fda0d768233846004958ea2e13ccd42e70a81c2d6310264b5050cd32b6ee9634c3cba8a01d25bb10a SHA512 a001e040606aada5df95550f075d5169949f087937e22f9bf9e01921fe0bd4748c36e4e7d3e8c3de37c522ae2d3153b1910b5e6206e4f93d9e831da7ab901032
diff --git a/dev-python/playwright/files/playwright-1.64.0-look-up-playwright-from-the-PATH.patch b/dev-python/playwright/files/playwright-1.64.0-look-up-playwright-from-the-PATH.patch
new file mode 100644
index 000000000000..9ad3261d5b03
--- /dev/null
+++ b/dev-python/playwright/files/playwright-1.64.0-look-up-playwright-from-the-PATH.patch
@@ -0,0 +1,19 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Look up `playwright` from the `PATH`
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/playwright/_impl/_transport.py
++++ b/playwright/_impl/_transport.py
+@@ -121,10 +121,8 @@ class PipeTransport(Transport):
+ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+ startupinfo.wShowWindow = subprocess.SW_HIDE
+
+- executable_path, entrypoint_path = compute_driver_executable()
+ self._proc = await asyncio.create_subprocess_exec(
+- executable_path,
+- entrypoint_path,
++ "playwright",
+ "run-driver",
+ stdin=asyncio.subprocess.PIPE,
+ stdout=asyncio.subprocess.PIPE,
diff --git a/dev-python/playwright/metadata.xml b/dev-python/playwright/metadata.xml
new file mode 100644
index 000000000000..1bafdec9c19d
--- /dev/null
+++ b/dev-python/playwright/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/microsoft/playwright-python/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/playwright/playwright-1.64.0.ebuild b/dev-python/playwright/playwright-1.64.0.ebuild
new file mode 100644
index 000000000000..e49e1625f7d2
--- /dev/null
+++ b/dev-python/playwright/playwright-1.64.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python version of the Playwright testing and automation library"
+HOMEPAGE="https://github.com/microsoft/playwright-python"
+SRC_URI="https://github.com/microsoft/playwright-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/playwright-python-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-util/playwright
+
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ dev-python/pyee[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.64.0-look-up-playwright-from-the-PATH.patch"
+)
+
+EPYTEST_IGNORE=(
+ "playwright/_impl/__pyinstaller"
+)
+
+distutils_enable_tests import-check
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+python_prepare_all() {
+ # Installs a Python wrapper around the driver that
+ # does nothing except calling the driver
+ sed -e '/\[project\.scripts\]/,/^\s*$/d' -i pyproject.toml || die
+
+ # Tries to download and extract the driver,
+ # but we have it in the system already
+ rm setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest --import-check
+}
diff --git a/dev-python/plexapi/Manifest b/dev-python/plexapi/Manifest
index c1c56563184c..d00d2c81d84c 100644
--- a/dev-python/plexapi/Manifest
+++ b/dev-python/plexapi/Manifest
@@ -1,4 +1,3 @@
DIST plexapi-4.17.2.gh.tar.gz 22533393 BLAKE2B 8ffda301510d150db45396c42cd7c8f5ded10858d883e4aa677e13affe324c46e5bac8436bf5ebd9d93db63713638038261fb42b6359b8fcc1a504a1a29dd804 SHA512 71a422a8806fe66f38e10bb8e721bdc861f327eae03226b7dbef101e2b640b8951ea88c351a638408d33026326b3d3c16c620e5162c25201442ba3eeb30e604f
-DIST plexapi-4.18.0.gh.tar.gz 22533864 BLAKE2B e541fecee9436af331b89c076fcd4fe215e843e9a5d308ce9dce3b462cd994d996aebb9b971ee0cc0ff60d92ad1dd9d3ae0d618f686d9ff43c1a21ac69de3d5d SHA512 613f75372e8ebee0b6a2f9bebaf152b12c72a696c4eeb7cd8198360cd2271549e1fe608580c9024b059cb2aa8c7c2cea52c64b4176f0e9aff56c434595f88457
-DIST plexapi-4.18.1.gh.tar.gz 22535737 BLAKE2B 89aec2408127ad13ca393523956dc9f8f50cf9f0237d898f5139e366d4f3dec57011c2f69edf861ba2f3c0553f5c4e59d6c063e1bf67491cf7d5065177227d84 SHA512 f6503db98ce09dd29beb2e11333f5a17e9bcfa44f247b57ed3ec04795b45713247c64052cf41fb06cd3e696db1f6e253ce9a347f1b6e19ba0b58a155be79b658
DIST plexapi-4.18.2.gh.tar.gz 22538844 BLAKE2B 0a29e24fadc864dfa953641dd0817cabed6b4ff33eb2070ab6ade7d7fee2ed9ec87ae6ebc7abc37d82e7b1fe32d93dd826a4904cc3e0c07c5382adc83428c797 SHA512 1bbf9e51c1b6a2850772d38c43973debafc9dbcbccd539893308ef88c7ca084eeaa0f2a5e10a6c686b9108005ee8963fa2d1c3445f60b713ac30ca33209a26f1
+DIST plexapi-4.18.3.gh.tar.gz 22539080 BLAKE2B f97cf7e4152be0cd9dd954fde510041979576e822ad230e8806e83ae0bc3409bf036bd042e3f60730fd4a0419452efa66309818db32963897aa5774e32a4ba15 SHA512 8174a03f609491a43de3059aa281086ad5bc08062e045c2e388560a37394e182769974f92724f3a507dfd80777c15f977f67030935eb99337a120418df8e9e6d
diff --git a/dev-python/plexapi/plexapi-4.17.2.ebuild b/dev-python/plexapi/plexapi-4.17.2.ebuild
index 22e49b322a9c..abbebb9b7ebd 100644
--- a/dev-python/plexapi/plexapi-4.17.2.ebuild
+++ b/dev-python/plexapi/plexapi-4.17.2.ebuild
@@ -11,7 +11,7 @@ PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
-DESCRIPTION="Python bindings for the Plex API."
+DESCRIPTION="Python bindings for the Plex API"
HOMEPAGE="
https://pypi.org/project/PlexAPI/
https://github.com/pkkid/python-plexapi
diff --git a/dev-python/plexapi/plexapi-4.18.0.ebuild b/dev-python/plexapi/plexapi-4.18.0.ebuild
deleted file mode 100644
index 22e49b322a9c..000000000000
--- a/dev-python/plexapi/plexapi-4.18.0.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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_{13..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/plexapi/plexapi-4.18.2.ebuild b/dev-python/plexapi/plexapi-4.18.2.ebuild
index 22e49b322a9c..abbebb9b7ebd 100644
--- a/dev-python/plexapi/plexapi-4.18.2.ebuild
+++ b/dev-python/plexapi/plexapi-4.18.2.ebuild
@@ -11,7 +11,7 @@ PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
-DESCRIPTION="Python bindings for the Plex API."
+DESCRIPTION="Python bindings for the Plex API"
HOMEPAGE="
https://pypi.org/project/PlexAPI/
https://github.com/pkkid/python-plexapi
diff --git a/dev-python/plexapi/plexapi-4.18.1.ebuild b/dev-python/plexapi/plexapi-4.18.3.ebuild
index 22e49b322a9c..abbebb9b7ebd 100644
--- a/dev-python/plexapi/plexapi-4.18.1.ebuild
+++ b/dev-python/plexapi/plexapi-4.18.3.ebuild
@@ -11,7 +11,7 @@ PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
-DESCRIPTION="Python bindings for the Plex API."
+DESCRIPTION="Python bindings for the Plex API"
HOMEPAGE="
https://pypi.org/project/PlexAPI/
https://github.com/pkkid/python-plexapi
diff --git a/dev-python/portalocker/portalocker-4.3.2.ebuild b/dev-python/portalocker/portalocker-4.3.2.ebuild
index b3a42ce7d36d..d86f812d8d85 100644
--- a/dev-python/portalocker/portalocker-4.3.2.ebuild
+++ b/dev-python/portalocker/portalocker-4.3.2.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
BDEPEND="
test? (
diff --git a/dev-python/propcache/propcache-0.5.4.ebuild b/dev-python/propcache/propcache-0.5.4.ebuild
index b7f6c241980e..4e53a2f394d7 100644
--- a/dev-python/propcache/propcache-0.5.4.ebuild
+++ b/dev-python/propcache/propcache-0.5.4.ebuild
@@ -18,7 +18,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/psycopg/psycopg-2.9.13.ebuild b/dev-python/psycopg/psycopg-2.9.13.ebuild
index 73ea3472e314..25f6cef67517 100644
--- a/dev-python/psycopg/psycopg-2.9.13.ebuild
+++ b/dev-python/psycopg/psycopg-2.9.13.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/psycopg/psycopg-3.3.6.ebuild b/dev-python/psycopg/psycopg-3.3.6.ebuild
index ce6a36c2aa8d..cfce7c9828c6 100644
--- a/dev-python/psycopg/psycopg-3.3.6.ebuild
+++ b/dev-python/psycopg/psycopg-3.3.6.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
IUSE="+native-extensions"
DEPEND="
diff --git a/dev-python/pure-eval/pure-eval-0.2.3.ebuild b/dev-python/pure-eval/pure-eval-0.2.3.ebuild
deleted file mode 100644
index 9844ba64bcf0..000000000000
--- a/dev-python/pure-eval/pure-eval-0.2.3.ebuild
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Safely evaluate AST nodes without side effects"
-HOMEPAGE="
- https://github.com/alexmojaki/pure_eval/
- https://pypi.org/project/pure-eval/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/pure-eval/pure-eval-0.2.4.ebuild b/dev-python/pure-eval/pure-eval-0.2.4.ebuild
index 0acbf5899a52..9844ba64bcf0 100644
--- a/dev-python/pure-eval/pure-eval-0.2.4.ebuild
+++ b/dev-python/pure-eval/pure-eval-0.2.4.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"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/pycryptodome/Manifest b/dev-python/pycryptodome/Manifest
index cf2d4ffa0e46..70cf2236f500 100644
--- a/dev-python/pycryptodome/Manifest
+++ b/dev-python/pycryptodome/Manifest
@@ -1,2 +1,3 @@
DIST pycryptodome-3.24.1.gh.tar.gz 19739898 BLAKE2B 7db01c5bd78f14d61620272d6a15105e3c640b933263a4720d5d047c55a0bd57e984fc150f96469aa29b7947b0fb62dbbe3e199587d146b08f30af28d781600b SHA512 90df69c1f003d9a06391709e09d1cb3124053c4eb4a062cba01e6048c1fc07ba29db36b94dbafc6e5f7f6f173321b8e687358d8a3cca88921234e74f46c17c37
DIST pycryptodome-4.0.0.gh.tar.gz 16296945 BLAKE2B e6380f4638013d528aeb45d9db1e5c6509de0301bb7bdde07dfb363d0bc833dea72edcb43cc0a1c4ce2b39ef6edf67287494c90d7f68fb0d6697ce1f77f7c3fa SHA512 536522d15b29646cdfbeae1d3d4d23261fe112392858809df117b71f3293af4b7705f9a8421a4ddd7dbf5a5df117852ce4bc506dbe30b241de0ded36c7ce6033
+DIST pycryptodome-4.0.1.gh.tar.gz 16299237 BLAKE2B 74e0e2acca917f66c949a9da0e01e2bf0d22b67587354276aebe379e001acdd9a75c7b8d504e8d6b9c2baaaac9b8c13194a56d60d5658782e4072c783ac6da88 SHA512 ece24a54049190ac6131c4712f48f49290d910524bfe7ff5d1bd675ccf28bc6eb17ca7e642eabd9bfa1fd664a25bbc75e6f9fef92c7231a175ac8409082b8fdd
diff --git a/dev-python/pycryptodome/pycryptodome-4.0.1.ebuild b/dev-python/pycryptodome/pycryptodome-4.0.1.ebuild
new file mode 100644
index 000000000000..23dee27e3bc1
--- /dev/null
+++ b/dev-python/pycryptodome/pycryptodome-4.0.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="A self-contained cryptographic library for Python"
+HOMEPAGE="
+ https://www.pycryptodome.org/
+ https://github.com/Legrandin/pycryptodome/
+ https://pypi.org/project/pycryptodome/
+"
+SRC_URI="
+ https://github.com/Legrandin/pycryptodome/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2 Unlicense"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+DEPEND="
+ dev-libs/gmp:=
+"
+BDEPEND="
+ $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+python_test() {
+ local -x PYTHONPATH=${S}/test_vectors:${PYTHONPATH}
+ "${EPYTHON}" - <<-EOF || die
+ import sys
+ from Crypto import SelfTest
+ SelfTest.run(verbosity=2)
+ EOF
+
+ # TODO: run cmake tests from src/test?
+}
diff --git a/dev-python/pycurl/Manifest b/dev-python/pycurl/Manifest
index 8f419b1da666..0b7b8b784e43 100644
--- a/dev-python/pycurl/Manifest
+++ b/dev-python/pycurl/Manifest
@@ -1,7 +1,3 @@
-DIST pycurl-7.45.7.tar.gz 241098 BLAKE2B 8150d9f783818ff8c307038e70b030904d90d9dd0ddb2bbdda1551ad725362eebe343bd2f376544da49b01b45a03c0826720565385a48ecba7830209dc191ed5 SHA512 dc8dc4ec1cc4fa8b34aa2ca6e1cd8c3dde4f73500f364bfb67a7c38bf04b18eaabcbd9b55cd7da9b4fe5080ab3845a4e4a2bed3a87d4c0d693ec24142319af27
-DIST pycurl-7.45.7.tar.gz.provenance 9536 BLAKE2B c79ae5c53dfe14786e11edad42d7ea612ee7a09f6252b7876a8635a0b7c20e1d331a90c6cc2cde0889b7ca10e2d9787aab861968f526c68e4b9ce1686bdd462c SHA512 1d9762bc7e2b5d1c999679a15ee540dfc835b0b301f9f813b408774b41ae151a434b44d3aed802657e66a85e52d385bb8cb4478f0f8c93cb5b7504d17ff34592
-DIST pycurl-7.46.0.tar.gz 284697 BLAKE2B 0839edc2b93ddf3a164452b5c1b312f06960d7bf54d0ed8db1e9021e3abf0bf307c8d512cf5b5ac521b50921794142c00d90d2bdcabf982496ba8bc5e58bdaa8 SHA512 b30f41513b30b0ec54c8f3994245c5e31af194176086081040862772f059907375a7711c7a941c08c5c3daddfd9aae2ded3f0ed7fd6baa480ac1610de6959f8c
-DIST pycurl-7.46.0.tar.gz.provenance 9569 BLAKE2B 70d9db2f5f58586fd9cb7557f60ccb5eb5469bc17d8f42a616c754072bdf96c347e7ae09c7d706bc75835bab35e0a5fa07d74cdfe1e2bb8c1cbf90bf9f291263 SHA512 e66b4bc6c176264639485a7aa8f521783f7d95e6e05f3b7e78f5ba3a8e1845200e1aa67691d6ccf606d00791fe13e493b98d1e2e348afd4d599d2fc155ede8d6
DIST pycurl-7.47.0.tar.gz 301499 BLAKE2B 63538f5010435d3aacd4746f173d148e7aa00918f097f770850372bd145474e4b07defd423170de9be50b7934337dd7c07909bd3ce95a9b393980b003589fa0b SHA512 4dbd60c60fe6cab898a1477f144d3e7e6618939be62cbd29d3c3d675c846c0b44d518364d0b63a0c3d3255db7a31b9cb86201ccafe4b39dae23a52902be68bca
DIST pycurl-7.47.0.tar.gz.provenance 9726 BLAKE2B 9d01e77fb5ae3738629599a82532bfe80b2d33e45baea3ff172b83cb210f7ad117fe3be455f2287ef771a9466345f9eef0876a2fd280526335f33c9fda8cad35 SHA512 ae4621ac47e6f0873004ec9693e5718004c85927ff8c3509cc152ac67b5354bb1c84486a7253491075861e4995799394142b91799d1da88db04025d139491067
DIST pycurl-7.48.0.tar.gz 320614 BLAKE2B 0506832eacf8560b96b5f286525a9ef2e27358ca68787facbe20a1f6e89570e34012ecea76dae8f52d4ad6e069b2117408f7d921673062504ee50acb57a7fd9b SHA512 2c63b3167b92e88801ca238403a3f30a6d6e3f056a2a16de3e96271ad6150eb619c7c411ab9c46023d8a3c9ea97caebdcad421c910ba9b74ec22d1e43983c677
diff --git a/dev-python/pycurl/pycurl-7.45.7.ebuild b/dev-python/pycurl/pycurl-7.45.7.ebuild
deleted file mode 100644
index 9c71e0cddd5d..000000000000
--- a/dev-python/pycurl/pycurl-7.45.7.ebuild
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/pycurl/pycurl
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi toolchain-funcs
-
-DESCRIPTION="Python bindings for curl/libcurl"
-HOMEPAGE="
- http://pycurl.io/
- https://github.com/pycurl/pycurl/
- https://pypi.org/project/pycurl/
-"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="curl_ssl_gnutls +curl_ssl_openssl examples ssl"
-
-# Depend on a curl with curl_ssl_* USE flags.
-# libcurl must not be using an ssl backend we do not support.
-# If the libcurl ssl backend changes pycurl should be recompiled.
-# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl
-# does not need to initialize gcrypt threading and we do not need to
-# explicitly link to libgcrypt.
-DEPEND="
- >=net-misc/curl-7.25.0-r1:=[ssl=]
- ssl? (
- net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
- curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0:= )
- curl_ssl_openssl? ( dev-libs/openssl:= )
- )
-"
-
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- test? (
- dev-python/flask[${PYTHON_USEDEP}]
- net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),http2]
- )
-"
-
-EPYTEST_PLUGINS=( flaky )
-: ${EPYTEST_TIMEOUT:=120}
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # docs installed into the wrong directory
- sed -e "/setup_args\['data_files'\] = /d" -i setup.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_configure_all() {
- # Override faulty detection in setup.py, bug #510974.
- export PYCURL_SSL_LIBRARY=${CURL_SSL}
-}
-
-src_test() {
- emake -C tests/fake-curl/libcurl CC="$(tc-getCC)"
-
- distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # refcounting tests are unreliable
- tests/memory_mgmt_test.py::MemoryMgmtTest::test_readdata_refcounting
- tests/memory_mgmt_test.py::MemoryMgmtTest::test_writedata_refcounting
- tests/memory_mgmt_test.py::MemoryMgmtTest::test_writeheader_refcounting
- )
-
- epytest tests
-}
-
-python_install_all() {
- local HTML_DOCS=( doc/. )
- use examples && dodoc -r examples
- distutils-r1_python_install_all
-}
diff --git a/dev-python/pycurl/pycurl-7.46.0.ebuild b/dev-python/pycurl/pycurl-7.46.0.ebuild
deleted file mode 100644
index 6e6a3d286743..000000000000
--- a/dev-python/pycurl/pycurl-7.46.0.ebuild
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/pycurl/pycurl
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi toolchain-funcs
-
-DESCRIPTION="Python bindings for curl/libcurl"
-HOMEPAGE="
- http://pycurl.io/
- https://github.com/pycurl/pycurl/
- https://pypi.org/project/pycurl/
-"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-IUSE="curl_ssl_gnutls +curl_ssl_openssl examples ssl"
-
-# Depend on a curl with curl_ssl_* USE flags.
-# libcurl must not be using an ssl backend we do not support.
-# If the libcurl ssl backend changes pycurl should be recompiled.
-# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl
-# does not need to initialize gcrypt threading and we do not need to
-# explicitly link to libgcrypt.
-DEPEND="
- >=net-misc/curl-7.25.0-r1:=[ssl=]
- ssl? (
- net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
- curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0:= )
- curl_ssl_openssl? ( dev-libs/openssl:= )
- )
-"
-
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- test? (
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),http2]
- )
-"
-
-EPYTEST_PLUGINS=( flaky )
-: ${EPYTEST_TIMEOUT:=120}
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # docs installed into the wrong directory
- sed -e "/setup_args\['data_files'\] = /d" -i setup.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_configure_all() {
- # Override faulty detection in setup.py, bug #510974.
- export PYCURL_SSL_LIBRARY=${CURL_SSL}
-}
-
-src_test() {
- emake -C tests/fake-curl/libcurl CC="$(tc-getCC)"
-
- distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # refcounting tests are unreliable
- tests/memory_mgmt_test.py::MemoryMgmtTest::test_readdata_refcounting
- tests/memory_mgmt_test.py::MemoryMgmtTest::test_writedata_refcounting
- tests/memory_mgmt_test.py::MemoryMgmtTest::test_writeheader_refcounting
- )
-
- epytest tests
-}
-
-python_install_all() {
- local HTML_DOCS=( doc/. )
- use examples && dodoc -r examples
- distutils-r1_python_install_all
-}
diff --git a/dev-python/pycurl/pycurl-7.48.0.ebuild b/dev-python/pycurl/pycurl-7.48.0.ebuild
index a904ea3f5926..df64dd7b9e70 100644
--- a/dev-python/pycurl/pycurl-7.48.0.ebuild
+++ b/dev-python/pycurl/pycurl-7.48.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
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="curl_ssl_gnutls +curl_ssl_openssl examples ssl"
# Depend on a curl with curl_ssl_* USE flags.
diff --git a/dev-python/pyee/Manifest b/dev-python/pyee/Manifest
new file mode 100644
index 000000000000..07a5fde0cba9
--- /dev/null
+++ b/dev-python/pyee/Manifest
@@ -0,0 +1 @@
+DIST pyee-14.0.0.tar.gz 97704 BLAKE2B 59cccf47ec8a5236887bce03a36e00e8c53e03fee7fa1f831c638f920258fccbbb628fde260715034ba7d9a6a758d821b6a544880eaeacb6ec796aefa8b20b84 SHA512 4ca88dcd6c1fae15ce7fa3318091b5bf3314e51bf626451c35da4ca0e7af8305299f62bdd3bbd8c4f324578c17081ab52c30dba94d57418eabbfc88a76b52ba1
diff --git a/dev-python/pyee/metadata.xml b/dev-python/pyee/metadata.xml
new file mode 100644
index 000000000000..0ca77c24efcd
--- /dev/null
+++ b/dev-python/pyee/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/jfhbrook/pyee/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/pyee/pyee-14.0.0.ebuild b/dev-python/pyee/pyee-14.0.0.ebuild
new file mode 100644
index 000000000000..c01a74940b45
--- /dev/null
+++ b/dev-python/pyee/pyee-14.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="A rough port of Node.js's EventEmitter to Python with a few tricks of its own"
+HOMEPAGE="https://github.com/jfhbrook/pyee"
+SRC_URI="https://github.com/jfhbrook/pyee/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio pytest-trio pytest-twisted )
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature "trio support" dev-python/trio
+ optfeature "twisted support" dev-python/twisted
+}
diff --git a/dev-python/pygit2/pygit2-1.20.1.ebuild b/dev-python/pygit2/pygit2-1.20.1.ebuild
index fe0d4c3ae938..007b9fe02a3b 100644
--- a/dev-python/pygit2/pygit2-1.20.1.ebuild
+++ b/dev-python/pygit2/pygit2-1.20.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="GPL-2-with-linking-exception"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~loong ~riscv x86"
DEPEND="
<dev-libs/libgit2-1.10:=
diff --git a/dev-python/pygobject/pygobject-3.58.0.ebuild b/dev-python/pygobject/pygobject-3.58.0.ebuild
index 044d707349d2..eb03922d8552 100644
--- a/dev-python/pygobject/pygobject-3.58.0.ebuild
+++ b/dev-python/pygobject/pygobject-3.58.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1+"
SLOT="3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
IUSE="+cairo test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild b/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild
index b248bc96c7a5..82a6d82b3c72 100644
--- a/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild
+++ b/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86 ~x64-macos"
# Note: only C API of graphviz is used, PYTHON_USEDEP unnecessary.
# [cairo] is actually pangocairo, needed for gvplugin_pango.
diff --git a/dev-python/pyjwt/pyjwt-2.14.0.ebuild b/dev-python/pyjwt/pyjwt-2.14.0.ebuild
index c74b8e2a878d..666ff8e71444 100644
--- a/dev-python/pyjwt/pyjwt-2.14.0.ebuild
+++ b/dev-python/pyjwt/pyjwt-2.14.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
!dev-python/python-jwt
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild
index 1c6dfb8c42e4..29ef1f17706c 100644
--- a/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild
+++ b/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86"
RDEPEND="
>=dev-python/markdown-3.6[${PYTHON_USEDEP}]
diff --git a/dev-python/pymysql/Manifest b/dev-python/pymysql/Manifest
index 3ac04e412046..0c0795899d87 100644
--- a/dev-python/pymysql/Manifest
+++ b/dev-python/pymysql/Manifest
@@ -1,3 +1,2 @@
-DIST PyMySQL-1.1.3.gh.tar.gz 91383 BLAKE2B 17be122beca17b4145b1587bd5f737f4093fce552f615381f84f586293980bf7abfb9dd4c26aef3d026f30238de5091ba6bc40b9d8bba7376d8956695f2c6d09 SHA512 7e16e7c93b239fdcacfdac4ddc19c4dbfdc084ae541ae4fd4b2b2c1bfba52c52b43860243aaaf2960068c6409de9da9456a0cae1768630ac518ab387d9491192
DIST PyMySQL-1.2.0.gh.tar.gz 93139 BLAKE2B 1ce119abe468d9d75641d54d6fa8e3025192b9eba22be2bcfa1de811347fba2a2fcb08e6211c53c582881c6067a4866547e0e4ea535b405b4ee4c0d19c09e7ef SHA512 4e4d7675c3cd14c5c9f1bfe51db671adb6cd609965127d54ba577fb5ee0e5ae222a6795a95a539070e0b6920c35d0e503ea9ffeab25ae2d3fa4e0b474467008e
DIST PyMySQL-1.2.3.gh.tar.gz 96990 BLAKE2B a1d7928c67028a23268b5cca3bbd2606c73f699c4c8ebcb135f2f8736f392f5900385439b6e8076f4f11d6d71b172eb0d1c687aa4e70bd5b1ec0a59e72dcfb2e SHA512 a0703c9cc04c985cb26cd0d954ccc4f7b9ebed51ccd2f96ba03a0951061129026801f66b4fd16c663cebcf3c69df00bc111448b5770321d349ee97487ecf2476
diff --git a/dev-python/pymysql/pymysql-1.1.3.ebuild b/dev-python/pymysql/pymysql-1.1.3.ebuild
deleted file mode 100644
index a2a5f5bbc71f..000000000000
--- a/dev-python/pymysql/pymysql-1.1.3.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-MY_P="PyMySQL-${PV}"
-DESCRIPTION="Pure-Python MySQL Driver"
-HOMEPAGE="
- https://github.com/PyMySQL/PyMySQL/
- https://pypi.org/project/PyMySQL/
-"
-SRC_URI="
- https://github.com/PyMySQL/PyMySQL/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# TODO: support other mysql variants
-BDEPEND="
- test? (
- dev-db/mariadb[server]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # do not support socket auth
- tests/test_auth.py
- # require some dialog plugin
- pymysql/tests/test_connection.py::TestAuthentication::testDialogAuthThreeAttemptsQuestionsInstallPlugin
- pymysql/tests/test_connection.py::TestAuthentication::testDialogAuthTwoQuestionsInstallPlugin
-)
-
-src_test() {
- local -x USER=$(whoami)
- local -x PATH="${BROOT}/usr/share/mariadb/scripts:${PATH}"
-
- einfo "Creating mysql test instance ..."
- mkdir -p "${T}"/mysql || die
- mysql_install_db \
- --no-defaults \
- --auth-root-authentication-method=normal \
- --basedir="${EPREFIX}/usr" \
- --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log || die
-
- einfo "Starting mysql test instance ..."
- # TODO: random port
- mysqld \
- --no-defaults \
- --character-set-server=utf8 \
- --bind-address=127.0.0.1 \
- --port=43306 \
- --pid-file="${T}"/mysqld.pid \
- --socket="${T}"/mysqld.sock \
- --datadir="${T}"/mysql 1>"${T}"/mysqld.log 2>&1 &
-
- # wait for it to start
- local i
- for (( i = 0; i < 10; i++ )); do
- [[ -S ${T}/mysqld.sock ]] && break
- sleep 1
- done
- [[ ! -S ${T}/mysqld.sock ]] && die "mysqld failed to start"
-
- einfo "Configuring test mysql instance ..."
-
- # note: ed25519 was removed since it fails -- upstream README indicates
- # it can fail if we used a different server version
- mysql -uroot --socket="${T}"/mysqld.sock -s -e '
- CREATE DATABASe test1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- CREATE DATABASE test2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- ' || die "Failed to create test databases"
-
- cat > pymysql/tests/databases.json <<-EOF || die
- [{
- "host": "localhost",
- "user": "root",
- "password": "",
- "database": "test1",
- "use_unicode": true,
- "local_infile": true,
- "unix_socket": "${T}/mysqld.sock"
- }, {
- "host": "localhost",
- "user": "root",
- "password": "",
- "database": "test2",
- "unix_socket": "${T}/mysqld.sock"
- }]
- EOF
-
- nonfatal distutils-r1_src_test
- local ret=${?}
-
- einfo "Stopping mysql test instance ..."
- pkill -F "${T}"/mysqld.pid || die
-
- [[ ${ret} -ne 0 ]] && die
-}
diff --git a/dev-python/pymysql/pymysql-1.2.3.ebuild b/dev-python/pymysql/pymysql-1.2.3.ebuild
index 950f4cb59af2..a2a5f5bbc71f 100644
--- a/dev-python/pymysql/pymysql-1.2.3.ebuild
+++ b/dev-python/pymysql/pymysql-1.2.3.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
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"
# TODO: support other mysql variants
BDEPEND="
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index d47fd8086cc0..e87d1d65c43f 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -1,7 +1,3 @@
-DIST pypdf-6.18.0.tar.gz 7024871 BLAKE2B e14b829e0b54904c8e445b83f860d76eb306b6541b8575c4320293b740053f832095b6f86596b761dde417ad39c9963e53c68cabc2972f4d3bac2b26f9ffeae7 SHA512 15fb146d9837e4b258b81fa34279e7141a12a79c1b14a87e1ab288bc309a8db789f5fad163e2e147b92eef58b59ef8a3edeeb6f6638f03499a8cba7bc907d5e7
-DIST pypdf-6.18.0.tar.gz.provenance 9694 BLAKE2B 5aedd7c28b8e8b3e778af725f4b20e9a34deb33b60c08bce214356c7ba80da053e970fb6a61b80ac8fba2f3b89bc580c2db67ed40b4f0f33201a658eb45c26fa SHA512 273d4b8bb9da317aa85a8d7fb5c1ea03d7f466b099ada848dd239a3f75cfef018f1085a4b8da87937757440aba839699884c9c928b473c7868ae472f43287d6d
-DIST pypdf-6.18.1.tar.gz 7027577 BLAKE2B 21880eb3da99e5ad432466a76abf57b2e3a3fc8bdbb4add8b4140740a0dcae70886d8a3b4d08878c74e41d1e2a6b9c9d50aada2cc7eca365257d26a915ea4b76 SHA512 c4a452e1c87ae0e7c915df75471de5efb747230d0ee4391d4c6b47dab771a78ae07e85e9ad35736092a8066429237747c48afa0fd90bc140b392aeea1838bcf6
-DIST pypdf-6.18.1.tar.gz.provenance 9788 BLAKE2B 3b073bb57e7d2ea5d98083213dc594e3b147370e4e44c6c743992bdc2e09d52d2b5cee3f9f1bcb99f1293458327ed0af35699c5477aa9d6339d4ae0a194a7e66 SHA512 7c253ea25e4ded5a649d3aa811f41ed94e0dc5e5eb183ca8c5ad4affa981be7bdc1e0e0070c35b2eb4f16df92ef180d0d04755556bfe1c8df63a8eba41165ad4
DIST pypdf-6.19.0.tar.gz 7033266 BLAKE2B 3929cdf43fce4133c13dbbf6db50a94c602f9ff5408db2e2079075162ee4df3713d621df661511ec2d046f95a8719b46315033ce4db32c005eeb6a746a2e0b2e SHA512 61bf1b941500b935966b5dc01a64778d69d2afb9b6331c707cc0b48e165f5c2b316a6b8cf7c97603ff4b836ed09569e3530f1e44e8f655e013419a0e2aac018c
DIST pypdf-6.19.0.tar.gz.provenance 9549 BLAKE2B 3cdf57e48527696229e53909b83e48ba9e5478bea7143c7128bf4b789acd0676ee0550f933c53af8855df16b665af768b632bc4aa41e668dded7a0a7fc29fb02 SHA512 d369583aec1be36f4b79129951345f5134a18c3cb769749a729db80d0ff12dcc956bd10f471a865ede8ae0473047a21cf284784d29c7e63faef0cc7220aba38e
DIST pypdf-6.20.0.tar.gz 7072602 BLAKE2B 077fda66d0c13c430e86964aff1f42ee08d8998ccd5ec435896b0a521aa96137b1144d717efaf822cbac69a5ddfb2b998b3d6d394212bc85c85ce05ea68f43ec SHA512 7a03b5be34dcfa50ede09a742d8263cd96d88ed11f3344708f8113661a7e8f87005787cc7ca94422fafb34dc069585201c2cc8600af8de4ea9ce041403eed75d
@@ -10,4 +6,6 @@ DIST pypdf-6.20.1.tar.gz 7075352 BLAKE2B 37cdad5ac64fcd04d20de5f92e8ebbfc0812247
DIST pypdf-6.20.1.tar.gz.provenance 9621 BLAKE2B e8dfa965f337d79c88de17dbeec0e6d4c00ae93d900dfd8520fff99a0eb86ed3b5d975c91d82d7283558334ae829913a4dbfc77ca25197b14c9be2db9678f51e SHA512 f6edea4c84e085d4a4b62c2550fd1efa277c58ae650b3c6c94a16ec6b82e3da67500ab47ab44f22a3d6653b7af09da08ef842232dc1a5325c089d264eb837059
DIST pypdf-6.21.0.tar.gz 7088285 BLAKE2B d88a8775a88855a3d3c68ad428d2e3cc71287e25ad2f0403dd275109cf6b3c6ecfecf7e3f91e0c5593ee5ba05efdb0a6466b978c6a28a32dd11f592a5c723c80 SHA512 0529c071d661c117fb294748e0a8cc838543c41f91772c7fc752365ae46744be3257a822bcbd159a90128a1a515bcce6010a7661eb2a9dca9bfeaecc6154c19b
DIST pypdf-6.21.0.tar.gz.provenance 9668 BLAKE2B ae490f77ca9169550fb48cdbd1b159e0f5bcef6a09a9e838f0d1bfb741dc41fc0fdc96a871f5d287cb4658894ac9014bffc28a1956013350422485b2da1dfeb8 SHA512 619a8e31272eae7b659cf7374a2409db6a287c8b6c7241d51b526f6cf1826f3d4f9f955a117b2eee8d04b1fea8e98d5e83ca61947923a92964a23ce1b84fd6fa
+DIST pypdf-6.21.1.tar.gz 7088597 BLAKE2B e3cdea6c02aca7c3f16c2531ef3c8250dbd1a0faaaf3895797a9ede3be33b7fd1bc37e2e60c42425868b0c0d5b0c3f1a399ed93095b9d38a5605488ae69136f4 SHA512 55c7729de15efcc03cea0f368f08cc51ad7236f898bc71f972b02345303e544bf4f5084104189a36b3c7f2813434ab400a0034d2e5763582b67ef008923f27bb
+DIST pypdf-6.21.1.tar.gz.provenance 9621 BLAKE2B 34db44b123f964f28d53fa1e9e9d514196943e2e1e64cba2ba77bbff26a31d51cf9ef2a0f6ddffe162a10f40e45b56184bc569eab8336938dd7fff7b2fa4270b SHA512 9b34342f0cb640e5f7c293f8199d1d6a15a0422f21901651d483237983fa9c6b7d5ab44c0c0a44eecc6366822d4ccaea25903f78d758cf9de4abde69d9868b5a
DIST pypdf-sample-files-818dc013ad1f537198e9fcfae8a6b0dffe25ffa3.gh.tar.gz 11850954 BLAKE2B fbd0af91de44f2d224b3266727f0dfc462efb4d23176f4ebff147cbfa37337d891859c468b545d0c00796048584e6b621dc622d667e3d45c0b89b92f29ca3030 SHA512 bc601bfaf17f31c6358f594eaf879479e97028d7f5e5825c309a5d1eb843bfea5080c9e151287a0d915ecbc3f4d4755e326ac8fa1ceeb696c76b9f5ecc0d7e9f
diff --git a/dev-python/pypdf/pypdf-6.18.0.ebuild b/dev-python/pypdf/pypdf-6.18.0.ebuild
deleted file mode 100644
index e865650c4ddd..000000000000
--- a/dev-python/pypdf/pypdf-6.18.0.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit-core
-PYPI_VERIFY_REPO=https://github.com/py-pdf/pypdf
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-SAMPLE_COMMIT=818dc013ad1f537198e9fcfae8a6b0dffe25ffa3
-DESCRIPTION="Python library to work with PDF files"
-HOMEPAGE="
- https://pypi.org/project/pypdf/
- https://github.com/py-pdf/pypdf/
-"
-SRC_URI+="
- test? (
- https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
- -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
- )
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
-
-BDEPEND="
- test? (
- >=dev-python/cryptography-3.1[${PYTHON_USEDEP}]
- dev-python/fonttools[${PYTHON_USEDEP}]
- >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- media-libs/jbig2dec[png]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-timeout )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # probably requires extra deps
- tests/test_appearance_stream.py::test_appearance_stream_rtl
- # speed test, uses tons of memory
- tests/test_filters.py::test_flatedecode__decode_png_prediction__speed
-)
-
-src_unpack() {
- default
- if use test; then
- mv "sample-files-${SAMPLE_COMMIT}" "${S}"/sample-files || die
- fi
-}
-
-python_test() {
- epytest -o addopts= -m "not enable_socket"
-}
diff --git a/dev-python/pypdf/pypdf-6.19.0.ebuild b/dev-python/pypdf/pypdf-6.19.0.ebuild
index cb422e001eea..039643ece12d 100644
--- a/dev-python/pypdf/pypdf-6.19.0.ebuild
+++ b/dev-python/pypdf/pypdf-6.19.0.ebuild
@@ -24,7 +24,7 @@ SRC_URI+="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
BDEPEND="
test? (
diff --git a/dev-python/pypdf/pypdf-6.18.1.ebuild b/dev-python/pypdf/pypdf-6.21.1.ebuild
index c5dfe9f5773b..716a7acd1c4e 100644
--- a/dev-python/pypdf/pypdf-6.18.1.ebuild
+++ b/dev-python/pypdf/pypdf-6.21.1.ebuild
@@ -45,6 +45,13 @@ EPYTEST_DESELECT=(
tests/test_appearance_stream.py::test_appearance_stream_rtl
# speed test, uses tons of memory
tests/test_filters.py::test_flatedecode__decode_png_prediction__speed
+ # apparently we get half the limit somehow?
+ tests/generic/test_data_structures.py::test_dictionary_object__read_from_stream__missing_length__limit
+ tests/generic/test_data_structures.py::test_dictionary_object__read_from_stream__read_unsized__limit
+ tests/test_configuration.py::test_apply_configuration
+ tests/test_configuration.py::test_apply_configuration__nested
+ tests/test_configuration.py::test_get_configuration
+ tests/test_configuration.py::test_overwrite_configuration
)
src_unpack() {
diff --git a/dev-python/pyproject-api/Manifest b/dev-python/pyproject-api/Manifest
index acfe542170b3..faf3cdd1cd67 100644
--- a/dev-python/pyproject-api/Manifest
+++ b/dev-python/pyproject-api/Manifest
@@ -1,7 +1,3 @@
-DIST pyproject_api-1.11.0.tar.gz 23787 BLAKE2B 63846530d8299564466546f8b00bf46c3b2010b95c5661727f80a3966d0d5cdfb36e43a6848b1ac970ca11d489b67aa96e49387d69d5fd36a1170bafd0096951 SHA512 0d42bf451077ad1661c1d0ee5d5dfce1525ef65000e556bc3f71a7ffe5b8324aa25b5688322763b760bbd14130c3dda28e30610351084d95b73c81e706241884
-DIST pyproject_api-1.11.0.tar.gz.provenance 9781 BLAKE2B 956f3099e731974bf28a4b31f7c29f8e34d2f4e5816e15f6c4db0257ff833b349c5b63caf9c83e2590a36d02ecc94d1771fb90488bc7955142b12666a6de3c46 SHA512 01fc7652d185f6f5b255461e3b7a0fd7d1d07680416e179a7ef9ba5cf71e6e813699fafbdb04780f85e9c2e30b9cb7bca02975171d93a5c3c465ac8a46e5b0a6
-DIST pyproject_api-1.11.1.tar.gz 23991 BLAKE2B 29db06754c715a3c60c98974e9c98dd343cc5a75746eb58cb055647968b188d72c5dac67463b1bf17bd6ce0b8fc17b22141e21061d6a723adeb8be51f17002c3 SHA512 f012aa1734ab6108eee56f621ccdf938a07cf57a81e68425a8004c0a2de0130c6c246b131a88d439b07bdad828e9e895833947d27d74e9ea936d21fcea5f33fa
-DIST pyproject_api-1.11.1.tar.gz.provenance 9736 BLAKE2B 056f457a9d5c45fcd7983fc0ff6fedefc3b7ee3b74c7a98d3e9988769d9391f9fe5e803dea6ac5a65a4902d77c51371c7ef77dbbb824b617eab0477a324bd144 SHA512 52808c3501cfa20824de9798b0dba3ec7688e2410019820234f875cad61c4e97122d7875ae33799b4c0177bdac9af5391d96bf77cfb9b6c2c2ed19be5e21953d
DIST pyproject_api-1.11.2.tar.gz 24445 BLAKE2B a7ed162e1550ba6a391846a70067285ff988515faaf9afc45d270b17a56deda3416c2e93aabfe2c307a1ed34ae66662c032d078ce64934cef7062c9079fc4bd4 SHA512 be8529258b135fbf51d704ad948361cef213809e9f82ffa88300eebf14ace6ff63856b4e1d3381ac6cd90dc81563f17d14986a28b27f76a3f63d7e021e218cf2
DIST pyproject_api-1.11.2.tar.gz.provenance 9830 BLAKE2B 2629cf77430ee9e25996689915be1435cd500a8d4a9cb53e807934f93f885d4fa7ed3c35607c359ac23d401a5c687232d2ab5faaa384e61cad5272a1da080f42 SHA512 1130cb68757fa01bf6031722f8cc4a62c50077d192091c7a67bbe3ab439302212062d7cc74634f5a1b3ee28b47f8fcbc2db40b6ffa4e763bd2cdef566c1a97cd
DIST pyproject_api-1.11.3.tar.gz 24944 BLAKE2B eb6fa0bd6e916ffc6bc646dfef4f7bb5202ac43d3102997be413e26534cbb8b28eb7f9bfe39b039acee3cde23198105c64a606ce0011f95991c92a888e2b2e1f SHA512 79eb37db2e0ff7ef28ea27e7d409b5c1f3d7dc7f3f93cfdcc3cb7112e4fdfda4498202274e71674e1d07bc0c5e6881dda8793adc1c4ded8e755bda7a60595ae1
@@ -14,3 +10,5 @@ DIST pyproject_api-1.11.6.tar.gz 25938 BLAKE2B a0e3f1bcca4ef589b0ef9efe94a3d05bf
DIST pyproject_api-1.11.6.tar.gz.provenance 9800 BLAKE2B 125cde76594ae785e5a57762b740e73464f4400feb63902bec492f14ff999bee83642af8481cb6bfc5252e738a45a89cc8b3014d327bcc107be2dbea253e8c35 SHA512 a635f25221b2fab55361913e3b94fed8348e0fed1b92f3e1dcd863c549864340071e671acad1aa36fc9d0954d004abb94a5287d0eb750dd5e3d5c6136bfff1b8
DIST pyproject_api-1.11.7.tar.gz 26054 BLAKE2B 09e827cd649a243a48657b6ca21848e81dbe8cba83946eecdc8b5368e1986d3d6fad8570d81f9c9799d83198e5a3b7cbfd2a606faaca81509c584d569d910230 SHA512 0fbf7cbb9976a459e0b7306114c01d185fea1bc2ca42fb0dae0434674201d28aa4eb673ddedbf2085604ba8d22d59ce4a895612184b6931984ab9e852afe936a
DIST pyproject_api-1.11.7.tar.gz.provenance 9988 BLAKE2B 15cbe4e9b34f7276ccad302092dc18541dccd2e6f787bd62866b63587f717921148fb35e1d606dd73cbc361e4068e99eba8c61f40ae9c98039a8bc6c677bddd4 SHA512 9d53576bbf55ac28b7d73594a8f9b5916f6efe8b2423f7f29c66931e5e031857a2bc9eed23bf18fc8ce7a2545a8ee6b8d8383e964ee6719736a4dc42c7247b9c
+DIST pyproject_api-1.12.0.tar.gz 28058 BLAKE2B 5376b40cda4a2f70d038a7220cc5bc09c27380eddc25b878c7a35bc11f4ba342cb9b5c495f8f05cd69f72f426f39e7ca20a855bca7de12f341a57d71574a169e SHA512 6ce55050743cdf88cfb8110e92891fbe8e9da42d150773080a7e55ddc83a7fd1839d139b24804fd2e75dcafe1821277d0977547de40fa9c2cf5794715cd73578
+DIST pyproject_api-1.12.0.tar.gz.provenance 10090 BLAKE2B 8d1b8680e482ca1c633ba67265b3996632d84f2ff13f34844bd308f2607e06f21cb52ac6d09300dadfcf7c335fc9e2b7b548219e0e68cdd82c25d0688d2c3ccc SHA512 5896ccc30c5fd2e51a9dd189eaa2f1684c743a559af86da01ddf2bc41ef0aba51f5ab4124ff3e664f78284f271ddd9c3940d3d8a19bf9647c5b3dad0bd78d7da
diff --git a/dev-python/pyproject-api/pyproject-api-1.11.0.ebuild b/dev-python/pyproject-api/pyproject-api-1.11.0.ebuild
deleted file mode 100644
index 3c1ce09fd2b8..000000000000
--- a/dev-python/pyproject-api/pyproject-api-1.11.0.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYPI_VERIFY_REPO=https://github.com/tox-dev/pyproject-api
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="API to interact with the python pyproject.toml based projects"
-HOMEPAGE="
- https://github.com/tox-dev/pyproject-api/
- https://pypi.org/project/pyproject-api/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- >=dev-python/packaging-25[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/hatch-vcs-0.3.0[${PYTHON_USEDEP}]
- test? (
- >=dev-python/setuptools-70.1.0[${PYTHON_USEDEP}]
- >=dev-python/wheel-0.40.2[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
diff --git a/dev-python/pyproject-api/pyproject-api-1.11.2.ebuild b/dev-python/pyproject-api/pyproject-api-1.11.2.ebuild
index 81e717ad883d..3c1ce09fd2b8 100644
--- a/dev-python/pyproject-api/pyproject-api-1.11.2.ebuild
+++ b/dev-python/pyproject-api/pyproject-api-1.11.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/packaging-25[${PYTHON_USEDEP}]
diff --git a/dev-python/pyproject-api/pyproject-api-1.11.1.ebuild b/dev-python/pyproject-api/pyproject-api-1.12.0.ebuild
index 81e717ad883d..0fbc85990c81 100644
--- a/dev-python/pyproject-api/pyproject-api-1.11.1.ebuild
+++ b/dev-python/pyproject-api/pyproject-api-1.12.0.ebuild
@@ -20,7 +20,7 @@ SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
- >=dev-python/packaging-25[${PYTHON_USEDEP}]
+ >=dev-python/packaging-26.3[${PYTHON_USEDEP}]
"
BDEPEND="
>=dev-python/hatch-vcs-0.3.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild b/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild
index d68373bb12cf..6c8ea7e10d79 100644
--- a/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild
+++ b/dev-python/pyproject-hooks/pyproject-hooks-1.3.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"
BDEPEND="
test? (
diff --git a/dev-python/pyrefly/Manifest b/dev-python/pyrefly/Manifest
index be801ec4ea8f..095a39042c40 100644
--- a/dev-python/pyrefly/Manifest
+++ b/dev-python/pyrefly/Manifest
@@ -33,9 +33,11 @@ DIST autocfg-1.5.1.crate 18911 BLAKE2B 0547eaf76e14418f5cc105f1127ea6de3182e8960
DIST backtrace-on-stack-overflow-0.3.0.crate 7017 BLAKE2B 90dc45ea4378b47fe73938baedcf1b06e061be0be86d9dfde2cbdf873800e48aa01c3b1dfc792be49d14784f6d639b7240258190f10cc0ecaed9ee618364016a SHA512 5bbc3722725c635611fb2ea0ddd2d8c6fb75185958a2b02509e9ca574f3b1d33959a0f2b5bf9d950f83447f3229cb11faa9558abca8f260886e72cbdcc6ef639
DIST backtrace-rs-df979dcf80027eb047d7bb9e0874710c15009f31.gh.tar.gz 99194 BLAKE2B 4896c2ca90ef6c15e7f18b08c6f2221351b69a74e0e9bce8f48b57c06bc0880802935310a3305f65b3dcb8b55419b4151a7fb64bb9cef3d70682a5b17dcff938 SHA512 4a1e9245d41e9d112a4f743434bf5afd338037e1f93526c6b8b1fd728071e550c848bc8457d322715f44859a556bc989ad35aa8447929b2f77b115f3722caa17
DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
+DIST base64-0.23.1.crate 93605 BLAKE2B 9611a5c1cb40c79c8a67ab530c620b58d2d17d4872b08d1a30e2e0aee2b04ba2e498b5df9a454ad1d4c938537847092e18c0d03c2eaf9cc6cae92a4efd69e8bd SHA512 f9a402e7161a95ba52a14bb0ec8d5dcf6cc70f97b50d40ac4a150c977b752861da6b9feb63e5e9b15f3309b95b3ca0ebe4e789c26e6b96af4e0c69642b140a51
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
DIST bitflags-2.13.0.crate 51280 BLAKE2B 2926a828107adbf689705662a77e6f4f8d12c4d48ba8207d03e6220fe58082a0ebb48252f1652b760f4427e0b951276f31a08dc0467612d5b35b484a9f6fb74e SHA512 5a93a30662effe056132d33cd0b25670feedfe69e927b7e77ea1a417f68104988459f1c3a73eec1752eac08f44ae5333496526e1a96dfb3e7144deca1a94d19f
DIST bitflags-2.13.1.crate 51395 BLAKE2B fdc2047bd877bbff24d9cb98c4fcc96b256f6161f7a2c10e437ea3c05485a1950ff8f1d9bb16a28e92b1755b37244bc3cbf3544688e6b7de147981d641c04319 SHA512 f1f2ac77fe2dcd6bb489a254d0f2e757b188829a7efaeb032acf7bf98a77521cc01f582961c79587ce7e72de706767785eda9bb191bc8b6bfdf294953ab819a8
+DIST bitflags-2.13.2.crate 51678 BLAKE2B 8bbeb87f475eae13e691f12d3cf34f865dffbbaf44e400f99a406b487b59be9b08b3de07e7a3bfcf2a5d04d3ffd9af23386317e964d062973347279bd738ef25 SHA512 362553b15e7f09d30f9aca4c1f991f040c446aea4ae36f46ec9ea460a0cd2b98052fca4b56d2ef48147cf1c73f3f8782cb579aeadfbfdd2a22b55cd4b096022b
DIST blake3-1.8.2.crate 205967 BLAKE2B ec9afd8f3fda5ac545fae869e4af941a4ae30473cb3e5a0b0f128c1dbf0c6231e3cf87decdfc765b69b99e2b2879f3f345ff7bf738911557740fb0445c9e028c SHA512 8635c3ac12c7f333912a6f42c75499395d6178a0dca810d9199bb533facb409970b17bff4b7f55731a7d5d75932e62b236e1651ed0388e2796024bd7dd2852b8
DIST blake3-1.8.6.crate 209674 BLAKE2B ae74757525bca23c725d1f4a594400541efbacba091942f8fbb629403d79db054558ea7a217e8ecce1212b1acb655f31ecd0f81512d946d6c780b21a28c3eb70 SHA512 1e8e679794dcb91ca9bac34ee02fdbd8990b3d6e5c2aa147cc98265b5eed17b0dedfe8a58ebb5e55b2de2fb51a6ded98d868ba5c450c8ff518a796fe374f9e5c
DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
@@ -43,6 +45,7 @@ DIST block-buffer-0.12.1.crate 15902 BLAKE2B cb4f78a6273538b9ea39cff47d36dcb9370
DIST bs58-0.5.1.crate 28483 BLAKE2B 59678bd7f08fddab78329f43131c5fe86386cdcafcb13c0031ec5831c8ab8985bfb1923ae13f70e7470a51fa80354fef0253d6c3998955aabebccf81a5eff83d SHA512 08b0fc02d1f1ef1de99f406a204cd91a58743d67a2d55104912f5c082c530426405df4cc8d01b9d23bc9f3a1155badd6d9d0edc18aa3254e55f6e959a826c3e4
DIST bstr-1.12.1.crate 354916 BLAKE2B 07b8e047c7a115d7d722ef57a37c5ac1e7ddba080e35b4eed78c3104cd92f08af5e67609faaa7a480ae15031f54c3f5d88784e23c96e659a7f4800c42dad45c3 SHA512 63a1e62d43c4dce00f287421b1ec76accbbab7f0897c8df26227f533af325896c0c8921a873f4125381e7b89fbb69a4358a96698ec6ee61191955464ff1c84ac
DIST bstr-1.13.0.crate 355737 BLAKE2B ba3965aa7f326cc0a7ee38ddc940b878d71d6790b60d7efba7a44e77ccf0c452d63474ed75e78dbf4cc1d5e3bbab4dd6d347583fa7fdc29100150442681691b5 SHA512 e81ccc994bbf99ae15afd8ac4745aa4234ede8dbab223cc096575546ddbe98114d8304fe31b0d562eb304579ca750e3e191d4bb1d7881266561a2ca2e07e7459
+DIST bstr-1.13.1.crate 356631 BLAKE2B 074f90244aa6b2914506779636463fb1d418b38213da6a438d4aaf40eebfe6c334884c99eb8ad6da1d9ddb8cf5ffb289bb21ac8cbc4dc75957a9b830ce184b82 SHA512 81ef4fbf5a371c47b933d5405cfe23a826683af76607baf4972c1e6a2b23308f73ce4309f2f7eecefd58e1773af0e9c943d7407095724b75f2695cb17d35a653
DIST bumpalo-3.20.3.crate 98671 BLAKE2B 0b658a45105ef71b599d028f8ae735bb10e843c534eebfa35d156dcc0099d137bf24179ecb5cd7d334d60f1a735897e746041975c22a6877ce88831fba050e86 SHA512 c0e8ebd1c9eaf0a093370251a8a4993f73ed925a95ec852173649e6716741e38fbe1b1bbe15dd7704722fa67e3113f82a76b3e9edb5691f3b5c68a3a55b0c039
DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
DIST bytes-1.11.1.crate 78584 BLAKE2B 4985426ff626d880a0da3d592ba48d697c88a83f48177e2b7380cb55e736a43f3cdf662d99cf0908b599aa8eccfebff2910405559e490b71adcf3f078673cd72 SHA512 7933d18c1a2c1496add2c7193e92c3aa17029c530b7031604ccb7c77c68903f53cf7d41396448b32bdd4f540fef4b37564972dac7b225e6e2ca99cd61179a6ab
@@ -54,11 +57,15 @@ DIST castaway-0.2.4.crate 12546 BLAKE2B 22f5199928387778df87086aa786bb25b79e7704
DIST cc-1.2.63.crate 97259 BLAKE2B 81492f805318c5bbeaaedae7560488a2446d84987377bbba7145347c36c72f3e0bc3e8bbb7edb84d6c50e71acc4fbd309ae8c870e3d17fa3ab25ba86867375ee SHA512 8cf7b103295b586cc94256379eb1a1097ab5bf541cb36c4629063cf053ce4c55b41abe66923315b3c9cffda4d351d0f09150f418ee202eb1932b95cd5914253c
DIST cc-1.2.67.crate 96261 BLAKE2B d9a517653b738025763bba70b56cc7d0bff8fb39544802e6eb4cea1f06d3189dae0730cf069aeaab7c98ffa266d52dd4cd24c4bd85e3c41f2e33191aa748facc SHA512 1bdc26db31537299794a7decd73304e56cd09ea3bdaaddce18f68da17b77b1587df6aeccd104ca14c9cae4378863b8b05cecc8b4579c4c6fe0f206b1c88123f1
DIST cc-1.4.5.crate 101464 BLAKE2B 9a27c7e9816893d541b0ca028a458d79e084118226c4dae78a71106ff937585b1a53187384eb8980b96aae7ae255283cf1700d60c67b741b8b86c13fa675c1ad SHA512 e7123301809160138600ef91579694dc9888f67e60961b144a205fa81af516565fb1742a6233b11be5d0820655e1c800fc4ae101b90806a11e0f07fb2df6fcb6
+DIST cc-1.5.1.crate 108103 BLAKE2B 6531862889b6d20a7038d767818f86c209be6fe50f6fa200d4032f5450af0110c4298ee68ec50bec1f6b516a1491b79a273f68e972a0edeeb1ec8de54b943930 SHA512 3e498145f1a4f61e118d55ff9017a674b21e9f61f00b030e55d82f56f35433cba22dfc172a9bb68123c0b2e4ef0e3c648e0e202ed9f92e5348ec8ee7b07b1de9
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
+DIST cfg-if-1.0.5.crate 9578 BLAKE2B 34d99ee8193178424c3fe35b33990a621d88a5ce94e9166357a3a8b49fc73ad489f56dc52af5a21aa85a416b575db4e93819f3057e44022fcd6bc4fdedc2a8df SHA512 5f93906e4703366f5b064f44c5d834cd402240a7b48cd8f72a40bf198430501f5939507c8ec5235affbdb5004ab6fd13a5680f7716544c6ecc6ae9c19512d75d
DIST cfg_aliases-0.2.2.crate 6527 BLAKE2B 4e0899cfdd5a733df2b66ae16b9f4b427ca106cf68c566e46939b7207dbde153967f0fca7b2277b6ee1d0802deb1703022d946be80d32c9eb0286222bab3237a SHA512 20d2f19d63f5ffd82e289ca4832310ca86d1bba9d626e82f8c29c80dde566f2d895c9d1c08524c954575529556d1d6f466217da69d726c55f779e097216632d1
DIST chacha20-0.10.0.crate 38763 BLAKE2B 84d3d12379495b724b33accdbafe0209d0ddfeec74115b59228fb03e02089f1531f1396783a408b26cfb90372670c809bee8ab056cc847102cfc92ea065656aa SHA512 97e50d8e16118070ec75c086bae3695513b63c2ad3c5d43e3fb57892f21c9634977bc506c0c094aeb61bc8864518cee3eabf6b81504128ab0a876b2f6860b43a
DIST chacha20-0.10.1.crate 38187 BLAKE2B 8f02b0dbe8ac9773963f49ae654254f6b5cd3a937fe3e91eedea2a7bbe766959c1f12e217fd89261ce98fd9dd8ef4c46702db9a41b3c0ef978e03e193f228a49 SHA512 e5b33f39da1beeaf1b8ea04ecb32fe4e9e7292400bc2de5cc7516df9965c6351fa75e4ee0d2c8e7219e02a24990c9822c67f9df787111f56d0499527dc02febe
+DIST chacha20-0.10.2.crate 38197 BLAKE2B 48166059447b20d1a08b13ba02f245d2824075322183ad72147b6844afe1743ea383d778f5279ab899e8af9133e8f36975f15d83e574b2bebb337248869f32fc SHA512 520fdd68425ad8dcc11e385ac4f5343294f9d78b962aa5d4f6cd34e40bd6258631d25fe0f03218a3913bf6cde1ba83d7db16359f1c5b9d0d299cc9b088157002
DIST char_str-0.0.2.crate 69007 BLAKE2B c957f2ef527141e885a412476801fd15ea5d4adf240f80723fca8692c4d56e49766efb43c0a21a25ab1b23cd81bb243f913239a1c30bc5f0bee9be3b2331c987 SHA512 c170bd4a3aeb2a047c285de76a258edb929ebd4075740b1734d2fae5af369bd305d01c446df9c55737e081276adbc6f0a71b5092cf57bbda7ef384acbf874d6c
+DIST char_str-0.0.4.crate 71301 BLAKE2B 588915afeaa42f7f4ae4cb425749b387b4808f2744f31c1aa7a45c04dc9135e09d4cbcfbac19237453f83e4ed8260584745468bd97f5011ec5748ff0d7d0b95b SHA512 3396a449c23e53043c333a8ac5838c0a5a8be3c6fb7928a1d610ee4539d8671c1ee33383cf78cfabe7bf3366d8a187c6220015d20f0e4e5d1eefd2a83980196c
DIST chrono-0.4.45.crate 240866 BLAKE2B cd8c8fb6c5ce1b89ba75e18010f0043af52e7086b444f88e00cb3d8f85cd7be219c28ebbdaea964556f805a6085d5dc5f114a9a2d428214b83e94281d0ac07af SHA512 f275b373f0f085453bd168b822a28ce6db3470cbe42f4c8b216b4320f2b460dbd2781e272eff8977b6d17ae596cb3efd3381a1cffb5e6513e6e7979681894546
DIST ciborium-0.2.2.crate 35611 BLAKE2B 7bb34ed2b16f55af2d762bbc83263bba901a0f05bc7677a370460549297839c4d6e913622e8a6cb3a5c2447b94b0bd17b7d5007228ea8881193d08e5b8deb072 SHA512 8d1af6a09f116e42f0098d7d0e34dd906dc3e718b257ff1a1fde655a235d40619f61f18917c0cf35c55de9160c255a9795d5e7525989037e3512807cc6a900b1
DIST ciborium-io-0.2.2.crate 6697 BLAKE2B 07636da78f59859515af0075cb36d9ca969113ac327ff727953c73b64b60ddae22e5b1b65d8be5aa401f8b13d34074cbc8b47f23abd7a13d551f0b1c78f23575 SHA512 641b8592f9699d5e6c607815c8e6dfc82b2bd01897015e04ef8853420a7d90c2ec5c1140e39eb7623ce05587bea52ef63659eae76baee5b6592d2ac5298ce106
@@ -66,24 +73,34 @@ DIST ciborium-ll-0.2.2.crate 14695 BLAKE2B 3c9ab0b338070359f9565706a504e4f6c6556
DIST clap-4.6.1.crate 61836 BLAKE2B 0e58b564b1c7792c4380284a61e20324495906764ed7ee7e9e62eac159d5f81508a82deb26cb294c85f236f77be79ce0cbf0253ea7544790ea3a5c0941acef6e SHA512 7e1bf1cdfcf8fe1f67251073e9ebabd92b44a7013a2245dbfc3a7368132600a30662416635a329067b97a8845af3c68274ec6ada3bd72d110b0aee5a4d7c986a
DIST clap-4.6.2.crate 62517 BLAKE2B 36f768f62b06c6e79dcbf9c7e1e0b92d65054c654eced3b629bb0c0d3c580df1ace8f0ab598cb161a0ab74d0e4a22706ba9cab7ca3fdcb71e600583acbd4cfbb SHA512 1048200b192845a99e1c469517102ba8316a04c916259643bd72832803c439135151ba7792915a12808cfe413458085ad5f5b31724b75c1ea8480944e639238c
DIST clap-4.6.6.crate 64815 BLAKE2B 56f723802c0f95dc4c91edff9fd0435b655b85e9ad47deca2d68379fb8d5ad81ae807b670cbcfcd5348a5a2db13fe24dac05cb5761c5156d9d3bf2df29a03e11 SHA512 a594c03dcf0fad6786e86f89f9f7cd17d60c8ffe849730cb3cae4301a7ab0a7867772887b0be3cca4284cedc501bff8666bcdc1a67e58c0e723feea200f0b04a
+DIST clap-4.6.7.crate 65831 BLAKE2B e4ae6a0985c452c2840711eff47611724485533f9ebe687b25f571d23a492d05f41adf520a75e5a2c364a18e3e1a8d3d90dba19409a197842d249a8ba78f17f0 SHA512 461ba233b8d6fcbba51b74a3954bd0c83cf4a29809f8cf73a56927a04b63e973506d42eab19db83ac2ecc4a381c265569665a7d8b81dd6753ecaa544095e6f2f
DIST clap_builder-4.6.0.crate 171122 BLAKE2B 0a6ac216ceee45625500379640f9306015f749c377d14c6c9538fab7988da89b39e260bf8736d7ca055c6db32613fa7a9e73f325fc496d7521ba3453c8558348 SHA512 43b26377a8f15d29f8fdc9ada914888d87111084c5e205308d166789a27d91c2d8db6756b24d48ef8a293c92ca4c27dbf5433db21e336b2116d51377116fabd7
DIST clap_builder-4.6.2.crate 170802 BLAKE2B 90562ea9ce22b7499dd5fff26a184fdf9ba67c7ac639b83baf50b1623789c9392144526cbac03139016fa5c85391f190884ea28d1d7391b29f3ff89ecae08cf5 SHA512 1fe12d0d67e937ba4be6982fd6342b0b3e0d29716a5207e8dfa2d61a800ea48a4d1e355004a0d75a2b8fc7a4b17edcf351f08a322c0afd2a842eed119f55b9d4
DIST clap_builder-4.6.6.crate 171756 BLAKE2B ab83419f3d035461d38e4f595ee9e3322ed4b7c755a8ad74e5bc7ae4ef9a30232b659037c8830c449d1b66abf09a1f6b9f612765ccdf0b13840fc5519854e7ff SHA512 e99cc20a95c7e27caee8732c3fc8add06325749feb1c122eacfd3e75bb1a6890d50287b2de15d9ffd5580c94695bb6b4dd3105b7d13e36cbacfa699a8d2f5b33
+DIST clap_builder-4.6.7.crate 171709 BLAKE2B e0d4735f1b0d70a3f83af1555e06023a165e6dd0995e72f70d5df8a5bc2fcc2b1b4515c3257c319d983479b44925d3a3fb8253b6d928bf66e7bef99315d6b505 SHA512 b86750b56cae3f23fbece3b56a18b9c17f49b4564ffc0e3cc0d7f0af921a335f5c96f2ccb602032ca692d896d76ed2a47d72a0f10325861e69335ba8cf43eeaa
+DIST clap_complete-4.6.11.crate 52569 BLAKE2B 6aa88981a24623fd99afec29eec2fbf3723bc398e0d63715f1f193f9219781987bb5347c15356e5dc4a8179201f6af026225b7623b0e97696df500e7ff9c24d2 SHA512 503dd1a873d89f0f071da548c14cbf4a010af78c29c11594cb007f10a7c2620aa24d32738eeeef19b2c0c6187161d4de24fd5431a9b94b94000fd3e8727e5cb0
DIST clap_derive-4.6.1.crate 33512 BLAKE2B 36d4fcbdd0eb22ed872d27da80a1c22baf718533d43cb762f109f80abc8d7e13a92fd293db40ee2ca18709e7bcb8cab0f06eaf48dde336e67df90e83f6dfbd6b SHA512 ed210527cecfe3791b9d5af7279b337890b46b61fa05fa6979c88db1693ddf0ee5a4eb0904dd93e2da76f5c870963cc79b90d87cfc3cecf166a65364c16ffd06
DIST clap_derive-4.6.4.crate 33533 BLAKE2B 200f69cd10fe5aa52c33b9097849f7e8776bb42e52cfe0ee9b5f42d403c12a3420a304b83e3e027fd6ecf9be38f5345f1205c051219d2c16933e02d93d5ae883 SHA512 4f7cb0f22bc6549cfd3e8111aa90a840ccc0c847d82d48d66220c8b9a507246d83e229df8c59b78549dcb83517607c58c2faa911ba8be3b736865806d8af6a07
+DIST clap_derive-4.6.7.crate 33942 BLAKE2B 0d6130cc5b7ca72e18e4451d284c7e77f6379f96b78dee1606438471e398e7995fc0b6ca94e9594a9c879430f968b3138c9a4c0b20095c153564e02f19caba45 SHA512 630d7d45654df92930db9e5bd39535f314ee4581e9a1dd7e2a067a6193828d00e7e286a14b269557d67afc9ed8f50361de8a0129673e2c478cfae66a992d9c04
DIST clap_lex-1.1.0.crate 13470 BLAKE2B 3e4895620e2922bd95ab6e3aee296457adbe70c2b3b2fca24c48e5bb700ed622401c68f494a266b91f1b82a7ee109ca90d4eee7ab6eff35e28b5fe8038398e5a SHA512 d85237e0558ebc745b08a150ba8115133b1ac1ebfbf6b2abf632863761fb70cb329639bb1c30625b9e786bb27b19438af11c123c508fb39e682f13e294ea6d9a
+DIST clap_lex-1.1.1.crate 13572 BLAKE2B 9903f72059f27fc7cfa9cba6165a78f2efcfd413bae1c582364b85aa6f850d94c91bc1c5e200e4e4dd82a6aa1731c8cfb68c0385e95533cc077c0b63486996e5 SHA512 416d1f428e8fd275b6da84c77350b405c584883a96bde775a489782dfa3df2968a9988d528dbf05fa8acbe4cbda929f5a268e48e7c26b5563c63decc83fb114f
DIST cmov-0.5.4.crate 27367 BLAKE2B a9c579693b98b6fd35e4232147bb3eb53473c6a1e14356c59c19e5416022d340174fe067e1c5483d2a12ba23cd3aaed1c94522a5fa98aa42268a74ce844c0362 SHA512 217a407bba36e130170b72454dac76eb708fc57b22b9655b9c3d133fe395ad9da3e337c67652519fe929ff612953ee727ad099ec45af02cf00d3aba94e377f78
DIST codspeed-5.0.1.crate 647128 BLAKE2B 541ca812be3a214b2c4830e8f3919104c733441a38bbfd87c88729afefa6948dab78719dc02a64d1784c1ec29c5d4fba4700e4ae9f120bf56f9e53c6587645bf SHA512 f2d3aef37f9e888e9e19eaa7c41c735f71b263d63a94b92fa117b9448747e2811b03d1b83871317427087daacba0c6928fa3a9ca7fc1b4bf857f056d402c8fcb
+DIST codspeed-5.0.2.crate 657186 BLAKE2B 2fa38f4909db4f96cf6c7bbb8640048937159e1d9d6796e63f51a03b9b34acddb2b6e3a27da2d8ed80e6dd9603a3e1226dd26e1c7c8aa2a5283e6c230e7c30ee SHA512 1b169a5ab3443af7e8ff7dba463a8d1153fa6f53761186133757c8946816a636bed14bc5fd638ba21bf14655b03c9206292f904940ca6699baa1c6beb2a2707f
DIST codspeed-criterion-compat-5.0.1.crate 24256 BLAKE2B f3639bd0e74e2d40b275f09ecd82935f945dcabba649dd7eb85156b25dac729d7df9a7832afe82c2af8e7c679b4681e2a2e717cde69feb6a8eaeaccadc6fc11c SHA512 86bb03b357baaf99f2f683249c3b8e93088590ca1d04b0e205ba945f20e7f5b19e56797b582cb7cf48a7b415bf2afca51b503c587cb4582efa2428f0783e99f4
+DIST codspeed-criterion-compat-5.0.2.crate 24256 BLAKE2B fd73ce0d4c1681f19d9fecbae6c73af41c24b8ea9aa3b751aa668ffebc7308f9cd6a71bb0a7bcb97a01a5ffe87ddccc7fa573dc97f15481f6c4a09455c9afb73 SHA512 800c04f20621706ca1c4c02a2b95c1f025e5f6670d9c416f063bbb2da677a36177a25621eced876dcb995eae960aea307dea775238cf29ced0ef5af6ffcf26f3
DIST codspeed-criterion-compat-walltime-5.0.1.crate 126530 BLAKE2B 0f4794b5c91af31afcd0944da3e375ff78b8c3f7ef2dad56fbc34f61a6b17646ffbd65351dc579d11defd60055714e63ea5da3a5923d6a926c6b429cdbda548a SHA512 71e9eb929e33693665cb0a3cba1309ecf083fdc2b5e9c05f433ddd1b939b4c2ffd2c1bf18305529d89ad5b3f28994bbf8c73d26e362d506a859a6833bcb9c9ff
+DIST codspeed-criterion-compat-walltime-5.0.2.crate 126533 BLAKE2B 386b638ea5d3a483a16db6b8456ad5d59f2e30c42aa30fc47a3550055adc02e5aa6dc67bc717e8d3637c9edef6867e46a61ee05b53a7d4b818a298d0354c950d SHA512 dc01eeb2416b37fc6f2a4167dcc091a1e9caf45e0390913b2de3452c6d110a30155b520974f915ad6699e3d590f6c2fbd5a489afd388bca82bc8f379b637dfe5
DIST collection_literals-1.0.3.crate 4556 BLAKE2B 0e8b23304f4442d552664d06b2ed09672b0f5c19ad9385fb2ec54a4f09ed1aa2bd922b14acca393c984a1a9d2b06f15895e833e172201e94d51fc739d8b733d3 SHA512 b55c5d666768ed101b691ca05b8ff394db02628a39fd06fa9bbfffea31f336e1bd7a10d8297b073c494726dc5fe5fa6379d52d25ec4c22ff5e6207550fdcf0fa
DIST colorchoice-1.0.5.crate 8187 BLAKE2B d6415c5b337e2f4f5176003082e6e8c52f55a45ff959376e7a3f30e5aab1ecd3f84f9cc5e7a8a720398c1b58f99a07cf042695adb0b35178931178cc8d77d2e8 SHA512 af3a5e7e837b280cd8f0578d2ba2a04443d4c5a445577f444af9edeef6cdb47de134f77b07ceda76ea6b2c73b9c10e1d7e3e1beabfd22b85869585c35db88bd5
DIST colored-3.1.1.crate 36216 BLAKE2B ccd7bb46b6ff080e83c7d2a905cb428d07d1ac9ce511c8372618ced9078e7ee08be009d0966b168dbb12a501e75f9da2c0e87ab6a350381734a94d1a5608dbc7 SHA512 7195e68194dfd43c2bce16da8b59474018ce7c9e4e47fddf9938d7ccde622b591df996c9a63c0517f9df7628c2b4fc93b346c7dd671065e6fe325aeb87abbd8b
DIST compact_str-0.10.0.crate 104319 BLAKE2B 22b33dc29fd7b73cb0978a3093fa48173490d6d13e84a011f6a03083afda761927ae1df850775e992271fadb740a017c2bd4b09e5c7acf9c2de41be2023599fe SHA512 4f8dc944fcea567aa5073fd6a3a526aef703caad2e0d4a94a4e6fdcf730badb67ab41f5b4ac57b1811b2bfa275de98780a15fdbcabc17d16b49236f30bdeaaa9
DIST compact_str-0.9.1.crate 88299 BLAKE2B 5fce3177cace60b016ca3d36d0579072ea13622cabfe524101045317a9b927ca69184ff71688f2228667d86904f50adb86d5db63987dc0dee594065898e615d6 SHA512 0e277e6a6b8d026a111d45a602766f802ef63376dcc1bb0a6d1f7ab9a57ef4492e03ae51a57ba10c2907be8234a6b491383d7460f124f1330e897fcc3a20b870
DIST configparser-3.2.0.crate 28170 BLAKE2B 375d9c8ae91b384998f8c4096a98dfd371f16757f7437d1e8a2dd2c2ce0a5fc36e0fab8caa78df7a3402e8105447134f2fc030c576ee6a78991c3ecc1583f6bd SHA512 0423b741cc32cbb18beb68cc6682b5ae9665842838929473c053fba9c48e1c75da84cf24782f8061074b07bb61f119ae67dbfec14416490c380a94a4bcec00e2
+DIST configparser-3.3.0.crate 28576 BLAKE2B 89f39c5cd4a4f9716314dd39e9c13f7864683e1fafea84bbeb53e2b19a8f8c5238c664295916404a4f8a839e88cecde5af2ba245ea536c07d5c6487cce3dbb74 SHA512 30d60b1a2de33bfb7afc0f8f52d3d86aa214b3415d6a7afa938b2e5b7bd467c950888b84774d06b5327af87897951e88a623c881e54a49cb8b1f53a3eff26fe7
DIST console-0.16.1.crate 39129 BLAKE2B beec08ca77c04ff56595ab7a3d7d3237bee31f02f4af9c74ca34c6e9cb47bdb2bf422b2d9151d6be0694fd98d1f5ddccd42b64c0b9d8c100bd2baacbb9f6b20c SHA512 8d3f4e52355f135f98f0ececdf8b7ada8270ed0ee5faf791299d236a194fef42ec87ac84bbddb464619dd32d8ea8b985b26c8710acfc29480bd362507b150786
DIST console-0.16.4.crate 34353 BLAKE2B aca154a28773106a62882f96c6b3e7a482fc8f37e5857e084430696efdea81fe9921ad1c93e1478d775fddcb8bcf6cc1c8103e6c714d8e92f0d8d11d784996d8 SHA512 140f61bf3cf84135f876b3034f2dff5f5366465e0dba718df9334341c78e5ca23f4f97876a35cc90256490045a96d9a74aecf709c1676a83cc083700efaf1a53
+DIST console-0.16.6.crate 38757 BLAKE2B 2776ec7c82f79e5b89f18a17703d6c60f5d333b2ebb9168a7d1e681f147793b8fb8839655530c933baa65f963fd2530ac7d576bb4c55bfdbe6491076e2427bae SHA512 a4a652bd3afa341dc86936041c2115d443f05feb6901b2569619e8ed2c02a547d13c1cdd7b74880a2635af326fae19a7cb0a65454d1fa04c0461ce030ef24fcd
DIST console_error_panic_hook-0.1.7.crate 507196 BLAKE2B 90f2855b54c78258f9e4983849a0c0b41f842990d622bef0ea16ae5e3a93914919022d21b1437bb2ce644333d4e0c6e7b55d960452c4fa437e23bcd0da83a4dd SHA512 49f4fb2175c0068981678f291422ace3737dab7033b1a49d78fd821512c92fdd023c3fe28c7daed88c8f338c30a9c7f82f18bb4583c3fe7839ad8dcd0addd6b9
DIST constant_time_eq-0.3.1.crate 11561 BLAKE2B 9ac06a1b13da2aacfaa20d60e48df4f32f6462e4036fd9ec116c45a9bbe142a18b82cf18d762989876f31b745d98d52ce7e3d32f6c9700a500f16f00649b5699 SHA512 2b6b0d7572c02606b7c3780013fb1d1773b999a0d9934e4b140dd82f94e6c91d2ef82f6daaa1bda94f95bdf6b5997b2f0ea0c8eba8ca7e28a07d1e06b1071b50
DIST constant_time_eq-0.4.2.crate 25831 BLAKE2B cfa8e08e63800b1c88b96d645a965873b168682b34f726a9d3ac6fef0a253378c96e853db3ac12dd5fa474abb10827ab81f41b15a97dc035d39aada0fa945fbf SHA512 552376f3024fd6750d4daafd5f703ecfcc5bec3a2b7f8328de2b5ef2ff3ecfc57c2a4ab636eed19940eb5e118e2c0d354f45354eb9d95d17565ce3b5cb8d5655
@@ -92,25 +109,34 @@ DIST convert_case-0.11.0.crate 31545 BLAKE2B fbf81dfcd98e0f4aba44a144099d707ea4f
DIST convert_case-0.12.0.crate 35772 BLAKE2B e0c32a49a04a8a3366c914e696d19c5e8a0470f7fd2ea23ee899aff94a70e6409e309f3ba84ac37bcf8f1a2c5f76a31cdc64913edf2d42d9ae4972e2f1a1d1af SHA512 f0529483904a7522072e41bce92fe04ce51acf8a5336c0ada9de68b1bb36a6212e89970562acba572d47556d7fa0e6830fb6e1dd94d5e5e36e7b1ff92a5a9cf2
DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2
DIST cpufeatures-0.3.0.crate 14156 BLAKE2B 9408d9b8f314a21702bde22f272d47263ef06e8f6fac116edb2464109ae2ff0d10b9d4f54d465bb6c55bea5722326bb8ee541352e6f5e03116a449930fa8375a SHA512 a842c5e7fe435c4339ba0e12169bcf1a2c2ebf4b0d02cf200f91d88a736607a930ba840a7db6a71afc6b125649a9f14ce0977599db917ee78880ec1ed9600f88
+DIST cpufeatures-0.3.1.crate 14272 BLAKE2B e3bc7b251c68dc85501414ca0a74afdc9b12cad0ff6f273dd728b4249d0606834261c41965b6a568182e48e7715735a83d13330ebc2099a32cb6b34ed8da4f38 SHA512 b3ebdc87dc7c7315fcea3e4d4ea1b712a671c058d0c1731343bb3313d6df6a0ec0b000fd2bcf141b0410014054901f9aa7f78bd12348fdfff2bf2fdf79a41b04
DIST criterion-plot-0.5.0.crate 22706 BLAKE2B 28a50375f2871ce6f168aafabff46f4368bf55cac379c67a2b4396403259372759dba3355786e695b566b1cddee9091a469755a04c06ee949f00aee8e9a28699 SHA512 971e96dcc64a5afa7488f1a99475f0f5639c0ef63f9eeebcada351868697cbff397e99827cc07c0a52e7d7d1a87856fe1fc48c22075776b3bc9c94af62d79f14
DIST crossbeam-channel-0.5.15.crate 92716 BLAKE2B 089f85b11078942328f89f74faf39597e08b221c142a7f06859a65ca4f3c73f13d077e49d8d709a7a5cc0cc205e3f614a457bb6bdb2b48151f66edc9a4699ede SHA512 b5174329fbdb2a742992b3450a6b11e4330e1d542132acd22d0aebaf49332aad8ceb6eb4e52ccaf8617eb02f191f881b011e5521098082919672f06ac70a4e5b
DIST crossbeam-channel-0.5.16.crate 93189 BLAKE2B 80876dce7f8504a5b3f5ed803aa20de0b6fe57fdc1dc2e083fd81aed62d6ec670f296fe3ffad96e0c152ff7028796eb5e99ab727f73bcd9ba66c97d42a3e23f6 SHA512 87b019debfec43724f594602d03beea8f48ac6068666642c2257a05a6970b818e0db574d13d2283be4b69d1f68eed75b68dd6e71eeab5cbb893cd3896ebc265f
+DIST crossbeam-channel-0.5.17.crate 94171 BLAKE2B 5ce8af3ec1d0054e78e9754acd722cb5c50e07717643b0a9ee3688199dd3b8c1cff2d11f5a9d3623a6e3e10f919f70543643071d4fa6d7e9fed5829059f493b2 SHA512 89989b834d532f85cc66296d98f2f678d9ec8d0b7b6508cb0462f46d3f7e5839a3c43230a9cf540827c2d130bef4f7f8d050debfbf53daf12cf252e8a8713c05
DIST crossbeam-deque-0.8.6.crate 22471 BLAKE2B 02b854df171b0430ca8a40349674ff251698d0c322c317055da8678da6661730c945d86737fa4947c3bd824ffe402271ee2f77fd6a505d2d46b4a41454c510c8 SHA512 9368c0c224c4b84356f1d422d8869a5ab4bfb36b0ff69244a9e7a7304ed51f034001cd9b2bc35849df874d36ed34285c66574943573522ea32bbdc5a05df6989
DIST crossbeam-deque-0.8.7.crate 24141 BLAKE2B 64958ea2455a509c8e65d00d1ce02aeb93170022582facf3715998c57f62437146ed2fff15efa2ba55902bce2149577eca572c938342dd0a831be7bd3306c38a SHA512 53fea1d01ee4667b17dcd07fdda1505852c3210c13976ddf88f365353e82c5caf348e1d51820dde796e6f3fc800240af47d41ebff25f6714e0bf93ce8e6d1144
+DIST crossbeam-deque-0.8.8.crate 24634 BLAKE2B b5979d6adc03af42c59cc0931b99b36b4f8ee10ff018753d0f7798e0fee4f98eed7529a907a6b85960252e9ccbe34adb47a8638669341a7183034cc3f9db40d4 SHA512 4ee9d102f2ccdbea90396c3b735ef814bea51627fd0b994c23c5295ea041894c09cfdfe0490e7c59870465ceca7a7ef23c969440f02abb5f0692217594478f45
DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
DIST crossbeam-epoch-0.9.20.crate 47545 BLAKE2B b68834edf7f164f9a0d495ddde74330dcdd39978fb564dc1470005628aa9ae751c5a16c5608c9c229b32e5cd99b75fa706ad7b172687fd7aa297bba1e267d71e SHA512 ee89c4953aae073b6607a3938b9fea812f222a8d8f321806d5150880a171ea01acd5d1cbbcc46d92f2ac7a788f6f20b7cfaf5845bdbd1a21938c7070ce6f4fc9
+DIST crossbeam-epoch-0.9.21.crate 47936 BLAKE2B a0e81692b3f8075a6b54c06ef4506cf08ae9061002a7b4e47d25d9c1809f8134b799ec3365f9083e71d5094cec46ba5a8347ab8b12f46e1f9f23717b82e587e6 SHA512 b13bd03fdbab8d16d14a822ab6b61330405aef39ff7b32ff2e907fefc9df5abe5e30b51f5fb4cef46a2fe1cd795fd73685ce6763ec7107f0342da8d24229fa89
DIST crossbeam-utils-0.8.21.crate 42691 BLAKE2B cd9015c41f532eb3c90101603f32d383f01e6880718b727d6d1fe46872ae276cda685e1b548cf77dd22bb1a05f0d4c4982332c2bde90e1743dbd7f51919022a7 SHA512 6f4aa7ca10c20da291c4714b56ceb1fab1c06b03b2f4e28e474e9aeb95ab6615a25462dc7819713652c3b5f6a06fa0f24ebc92c533fcf35dfcf2655857d975f8
DIST crossbeam-utils-0.8.22.crate 46874 BLAKE2B 576a1775bab7dc671dbee9eebe691d8c7a1f14ec68fbc65e55a176efe95d96f4346c68567601ba5fc5aeb1c734708c5288544e4ba4e84af4e0e31912bcfacfc1 SHA512 09a32151fdcafbd01970bf372ff577b6e7e6a316ab4533a5d1e12b7eac3f3db2a860fb0e9de49d4085a403540f5863348ddc1e8304ccb84ad0b583621cb9f2fc
+DIST crossbeam-utils-0.8.23.crate 47174 BLAKE2B 1a5ec35d66494cd04c1d35f13c95e5ef34e19597946882fe8baab13eca3da89bb6089c6c11f61d14214f4d1d54a3b6a81277f45460d120b61eff647bb3e436a6 SHA512 b6116e4440aa8e0012a3c67fba141ad76fb820fa56f4a76914da2c531b5c1dcd9bb7d8808f41379c67e2abdbf73268101fd6021d95cbcf9f1aee82e10aa5f18e
DIST crunchy-0.2.4.crate 3887 BLAKE2B f957597c82795eb10d43a6a98f7575e19b9484dcdf9fe35ac79ce406035d5d467021a0c563dcfe8f717e800b6bf532fcd72cc11be47e084405e16219b88e67b1 SHA512 72ecadb6c8558dcbf3cbc3a34bcefbf292e42999e7af6f59b9804e1233d87f6f65802b157f346a64cd7d2dc1a92564d5481211b081ba5ea170ecdb06dff9dd0b
DIST crypto-common-0.1.7.crate 9619 BLAKE2B b9a31ed6f3f06e0709e7c5a86a146018c9ef67e366f27c1d4fe07461d97810951eec60e92ec1531e365bfb9ab1b4cfbdd86b6cefd8b06ef2aa170c38f3c9cae0 SHA512 dcf3a6fc81f2b6528696dc762427fb198faa9b5effe1ee9fbda795da08b0560cfd6c286b55f1360864e95284bd9a52edabcf39fa9bcce71ff0621dbfef538c82
DIST crypto-common-0.2.1.crate 15165 BLAKE2B 3a5fa1cef6576582bb1630a57b95b8baae9f1c4a8a4427191319f40aba4646613a9a735660071c8d2cf32c39b3e9df090b2df8ff973303ae809f7661f0605db5 SHA512 d13dc1662ddad2ab5cbd350a9bfe22a1143ec4748d1be2b707bdf32461a3988e9bef20f5a74eab2dc1365c532f653f425450eef9c80498ce16ed4f071cf38ac6
+DIST crypto-common-0.2.2.crate 15449 BLAKE2B 60d28350f63359b7163daea85a79d731fd71515bae1889df5249b97920a6acd89a8d5df8781de34a6aaa84c6f41b9e63a64c04f034b666314e822fe3e4bbfaa3 SHA512 cdf1401a0c18f9924ee2a6c91cdf1e18dbe8a5a064ef3052fa6ccc86d81b23fb2b23ccf8251f1dfe430d40d3958108b38be55d2f13fadae694910bc40cd23130
DIST ctor-1.0.13.crate 48320 BLAKE2B 71464bdc5d5f22bc25666d257bf1a27a49a5221c777c6ddc9ac6c55f6372ca75825c1cc4e61e8005a35f005d4579760edcf64d9c97c5fb7bd3c129ae36eebd12 SHA512 34fad39596199430bf1548fbd87a3e7f64ff242dab4a3e4762742ae28d67cf834f7c30ef380cf46b153d15a6cc561c1b918e2448e7fc6b9fc480680275a5c658
DIST ctor-1.0.7.crate 48863 BLAKE2B e6843d17380269b6f38f0cb3e4f830833eeabfc0cee39332facf37510390e293e3c963f173c2715b66f25a9083c82b7385298975edb957ecf9941d170eaf0bb3 SHA512 eb1b50af4c6f46e50dc0cffea2ba97935887fa8822c37662720e04adb7a9ebbab1e006c38a93eeba7e7406a2f729be9c646152146be84e7bee4cbb432454efaf
DIST ctor-1.0.8.crate 48874 BLAKE2B 04c3bd2f4818aa86e24753377d12ef8a6524c5b52a55cfae0837b145a3b6e06ac69e74c7cbde6f4fc2af18f178136147838539e80d8d79d6ca1be91b5bda4311 SHA512 e34c977ef0e07bfe97e98ece34ba431caced1976d6c18ef39a9e7c97ed59d9365019115de9476d5c8695ad2651a7ae274b589316434daba9b95c03831d6e0db5
DIST ctutils-0.4.2.crate 32739 BLAKE2B 7110fde83b107ebe88a2d9c7da2d444dd0298b31f2e06435202d78204d24a1cde95561724f684638e0104c4d8b91492cd8629d18cf583f10f1f14dd78ab80526 SHA512 e2798505bd16199ee42c49e1c8d6373ebad66ba51c28b7e3146a6adf2f796ea31b248e3fbf0bd132175770f3018b8e33702f0b3a73e70eb424f398b889a8f366
DIST darling-0.23.0.crate 43298 BLAKE2B a207ed640665664402ee07eda679af83e498c3de79a9e41c3fe1fec4b28071ba52acdb1f790d46b6c6c1744da96991c14f96002cf149e080a4982d5a74280b9e SHA512 6257756befa2e6a8b17ee21d64e8430071bfd1e8f72c680f67b3c15934e726ec24e30da37fcb5ea4f4b3d925f81cf4ea22d6c85788f101090b32d95f08bdb2e5
+DIST darling-0.24.1.crate 51607 BLAKE2B 1ac26b702945966837a03861921e6351c4c45150f481d7f73ea33d6e54f4a5ce555f23a9d06adf6fc8d7533eac5bfe5f72334f44eb8fd920d14ef9eb72e374fd SHA512 f46907701ec6e3b5cffbc3843b54d58a96ac586638c90f73aa540d35d182a05027e6bbced9907174a203ef56786a869fdbac0beefc7fe1d97686d435b6bdb486
DIST darling_core-0.23.0.crate 74564 BLAKE2B cb5d45b08fa8927d91f113a37a8eb77f632713e3feaa629d37a6a0fd20112a202bb8ad574a096f0ba7b3b870e7a9982c86641e1cb4f9e33fcee59a65524b5406 SHA512 52ac3dac977b7f1cbdc3c0ee545356495216af6d8a4f179cbb51c8bc80253cf028bd9b624b6f42d6354d913e7fc5ea980234aa2ccf383c8779ca70fde72591a9
+DIST darling_core-0.24.1.crate 83947 BLAKE2B 111f5007c056420dd6584b70584830b0699e191a44c1f78a766d7086218e455428b5ee64aac8f9e0bc8d093ce105fe049c54377612235367b17220c637a3af9a SHA512 5c5b9257d10b58b7cdcf4c7cb2c624d41b7da5926b8d1f34ca465347789af151b193626ec1362844bcac7f83eb89af49bdf42d2a98d34d8482b1b4116be0768e
DIST darling_macro-0.23.0.crate 2480 BLAKE2B e81f6bb801e5fabf71fbaf966735e5388023f75e12b8f9bd32e2cd49608ce05625849ecea54db3d682a9d091f8f0348dd60777c316c91af5186aeb0b97e4cf1b SHA512 f6565876c9846b1295be23eda6decbba817c64c3e2ba56fb0009c2acb68d542481dbb033b0e753dfb1eb967f24f87b781869c8bd5018a7789066229a4919c8c3
+DIST darling_macro-0.24.1.crate 2481 BLAKE2B bc0daa29b2091310c81625f848d71ea3142773468264de47dd6c9abeee4c3fa0104ecf6525895c4e3da32e9e3e5c40631dbe6d33cfa59022d5ec82ffda888635 SHA512 085cb9b084d0f051c6f3e30e802bdb940563db3018177965c3439332dd9d0e02f0f4d47da9ee0f7f6b6f7082bfbf3abb08354bfe845b31d19ece22a273b53f74
DIST dashmap-6.2.1.crate 26885 BLAKE2B f4027bd77c9f7cff711da8e361129c8c8f72485cd8d47cdc3517bd1715d113a4b094a9d1becef110e0b09fb8d17f636151527411d9320b65d2d0f5463ff6a7f9 SHA512 f3b2a3cf51ea869623ad39447e337203f6ce8e4521a7321a722a63a9a1dfea7be74aea7f8eba8e696b179d37f4b7e184924df97b22da0c6d98e56b962867d2aa
DIST defmt-1.1.1.crate 34207 BLAKE2B de0ff9046669df02237a5286f4ec3738c4c3b8d704ff7f496e0de21ef35a54bde94f2f2e34fc27961f382c58734ef9a4581d0a2b12c01962b187a82258b88760 SHA512 d841951cc745397059e266ae162fd8bec99823b24b808d4cbe2b779198abcf8596a76e72f7b3256e1e24ee8ca20262342fa28e1eb15c5bb1c187acaaab02ab26
DIST defmt-macros-1.1.1.crate 27937 BLAKE2B ef172cea7fa282ec83d0db164ed7c0d876428df355db2f88c8a1114a79562134dc0ab46f126f74ea4ce824a6948c087492bbabc4463cb7b1f3b36fa2bb2ca3a5 SHA512 39c3c27536bd8dd1c2fa0d857223b4987b3e4d03aecb15190c6d68b373bd10fa3e23183bec13ca5953ab8d9e65509c50d216d7a8030cc000a95b723e9bb15047
@@ -118,6 +144,7 @@ DIST defmt-parser-1.0.0.crate 10881 BLAKE2B 40fb19b8697f83358ed1924da62ba119bce2
DIST deranged-0.5.8.crate 26885 BLAKE2B 72b9b2025009a0c69a6678f079415937c39c4a4ad307eb8dbed1f8d2d6e125f0ef4e422b65a7d08c2b1043814acafc0c6a0e81b024fd8736930eb29793e000f1 SHA512 cba9189672275a2d46d61ec04ce8d08ed314d7dcd7671029f3d7099106e112879eddcbeed23b8e167467abc9e1f5211786b5a91a7b2c41720badc601e21a17ac
DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da
DIST derive-where-1.6.1.crate 52475 BLAKE2B 2440e4da5f45e325ee89ebc9c47df6bcf59d40776b96b8bbc50bfacae0298d5ecaf636810d1e48293d6c56f36362d2c71acfd9483ff2f2f269f1226ec9f42395 SHA512 1d2b8e148b98733b3b3107a46cdf36990d4b953fa62072fc48afd836eea3df3d6757e62c395147e05a41d1b2d2acdb19f0ca36435f922ab25a624e43648e3ceb
+DIST derive-where-1.7.0.crate 53133 BLAKE2B ec00de874d45e43c4a94a4cad2c61072d66d46da1dcdcbae30c093ad3f0759f9cd584adb431912672742eeb799a6ed94fb14e09f560a004872294480f07753d6 SHA512 afcbcaed6f2c33095ce3f5f91e9543cbfbd219f6b9d1770153330a627df15364f94e550744ffdbd6885ccb0a9a0ca41e9b327d21ddecbd19d5038bf922619d5e
DIST derive_more-2.1.1.crate 88632 BLAKE2B c875dd4b0718ab1ee2e6faa74e1e1206b972f90dc0541dddd97dbcb6e3d2a7489ec55a7d4d6c27371a3d308e0e58d135ad5d0bb050777b5b60d75466a3a9e626 SHA512 cb4de4ead185ad40c6e9e0fe316f16ada2070d5ebc336dcb73dfd8def87605d8ef9beb454c9202096aa4da8da0c32307fd02054f290722b561d6fff83bb91dff
DIST derive_more-impl-2.1.1.crate 99094 BLAKE2B 9fe9720e2cc9b66e849b8598e28d949bdf5422c34945227ca12c2626f80c564ff78edc59ab57863c18c11ef558c4b3e5629bbe037c4fcc0ba323679d04d26880 SHA512 07a6d6c5be2968ee0bc6847ba5bb4809a80a769743868068a71d72fc376516724df5855edb6ebc2ef569ac8f79bf632f34ca30640fa54f030d58ce301de44b89
DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
@@ -130,6 +157,7 @@ DIST dupe-0.9.1.crate 7525 BLAKE2B f9fb29cbd60b567cea5cc25fbde452ed5e05da2f1153e
DIST dupe_derive-0.9.1.crate 7574 BLAKE2B 1948bd4c168f3ebb6206346804a51ec2d77526c22833bc13ed9eb2f808526bd9ff0379c291150ec3bd5b2e20cb7f872de704f48f1c69c409d400350483f67bd3 SHA512 92019c5248d13340abf8068ae242bf910ade376d2a944c6df6b3bdf4ab7b275764e23d49a43f2a27dda37cede97be9ccacc811bf2b6f3923e818e628c5879f69
DIST either-1.16.0.crate 21248 BLAKE2B cbf2c5fd6f031f6d3be20e8b7816f77109c2e111f0c1514f4d00889befd1654b206b6f4a799ef457045461dc47e48821ede6f6a8ea2c8a402edf745b1f3457bc SHA512 043c00daad0dc8b03c1cd120a1a165591c283f5f803d4cbf1418b66539693d8bae94ea8f273442fec31e3e888d008bf74c2d953b6f5d6b432b50eac662dabaa0
DIST either-1.17.0.crate 21820 BLAKE2B 8fde41dd1a4070fa48126fed46968c38c0fc6621a7517c5e04881cd4b0c8209daf05f20c39a0c2da95bc262f78d29d83820896f734740ce249465fe5923f81ea SHA512 32775a1bdd5d204dc0e24afb63b1df1e7ff09323ff4e2e784aee1bf8ed6cd5baa637c4e0548b149cb6945273d7a9c2dbf7afdb92cf0c1698ad95717b664e7a35
+DIST either-1.18.0.crate 22357 BLAKE2B cef6eabc788d34cf10ee2dc7f18b220e485dd387588b971f4375ed109265f32f29e75ba99ccb78b81b80359b02d7836ef3108c55adcd04a3fa01308bb0a9e905 SHA512 b74a704e39869ff7231d47d3e2fefffc52cbdc7da5ef8fbbef0b9b032b67cf91b99330c6134a76ebdf38af9c93ac857ff35376d5fb350ec407e8957684e51535
DIST embedded-io-0.7.1.crate 16035 BLAKE2B 89f2b5835a7bd72f77710cbbfccb4590707afe3697e8041286dc6b7cb17abb6ff57e47f3ad7cdd30b0ace055832a57d9a996809a8c726d13efd24559ef9a5654 SHA512 38a30eb258aa0f10b059a295b12ac7ff1121118b5b33e81a476ac6314e4434be9d5a83e70e8464bd120521e1c62c17ebb1c989b4dc8ef04018d3d3678c9a6a34
DIST encode_unicode-1.0.0.crate 56986 BLAKE2B 76e8915408c26bdc909e9ff2d59a1655344dcb4ca0e6accaf038434b7518f1b86554954fda8c7874285924c7d16cc81f62e68afcb8b0efc639407b558df1470b SHA512 c9a21d48ba9d50750789cb6fbe32afd903c583c9ef05a9741007dcdf64b1344735f71dd882ad71ab9e5f96f8839578ca53bca14d13d57b9e27b8cce2cd507359
DIST enum-iterator-2.3.0.crate 8386 BLAKE2B d3f4de58af412f264faa6d04a3d86265758eb388879058727121694a076f4c448cbb0a9e3de97369c34fbf7115d6f29ebb03b049d273dc0f68eeebb7c3c5f2ce SHA512 7d3db7adfa53603f51cae0d8e8faa5323d5ed18aabe1b52bff2a67065cc087896fb6cb1a70689a3050d847e5ed5bf01e290be009adccea6a4b91df930988f8d6
@@ -141,12 +169,14 @@ DIST fastrand-2.4.1.crate 20773 BLAKE2B 79fe53f19cbd8343ba15c21adad7397ca9e351d0
DIST fastrand-2.5.0.crate 20782 BLAKE2B 6c32deb12c2e946e8eff86a0bafc5a9c4b6ecbd3d0faa10b68fca876638766cbc4b866dfaf52014bb4a1cfe6b58189e8cbfbe2495e9cfda58f90ecbf0f821e68 SHA512 0c7369840393fbd8fe8c6fa94d47ddc8e8c709270d20c9ce81c3902ea6dc9cfaa5ee0cf2e9b5b865453748283545e206264446d905550c838c052534a6088ddd
DIST filetime-0.2.29.crate 16977 BLAKE2B 3e2d198e2e9331192109ededd07c985cc6b31f45a9e8bd970f8c0894ec3c614e6c234601400c1e7f71c4297748a8b51fda3b6e6bda96e6ee6924963911c5982a SHA512 95314f25a34829740e2177c651afad66075f154e461279f67282240bbf815ec03ea6e751d8ce1e8d25c7da7199fe6e4e89dbb643264bb18fa210875742935d8e
DIST find-msvc-tools-0.1.12.crate 31570 BLAKE2B a5738c3dfb652091166a33074cdd67c53f069127f727fc37fbd13506db17674b688e579abfbe2ae25f9e2b2a965f52c04cd87d25279dc858f4d59e18d7234053 SHA512 3914a09833b5dc93a270d2db21b6baccf036b54f42d2190369f691e968bbd88df8dc1e87cb5b8a2e93d4105ea4ef4a3dca6a63db2c4d60a4c29fd61e5b7f22ad
+DIST find-msvc-tools-0.1.14.crate 31390 BLAKE2B 4f16341326d5ace165e087b3c24d1400f43693ce9378b9f70ccdf1174d92b588173c700107ece3466090113f145e7fe7b8eaf937ded7bdbfc2d14122c7ab1c3e SHA512 7257d40931c65d7dfe2a1147c0d3d472efdf17d4142c7660f0e4529d1d818562d66ae95d4e233c7e73749f7e842a2c38e4c43fca59db9bca8f1f21056e403ed0
DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
DIST foldhash-0.1.5.crate 21901 BLAKE2B 22c3a266becac17995ac996f5c9caa8dea77e36786c50464e4e7750d8f3f13321a0a1abd3a9abcfd6ff441ddea257066b2dfb7fc6fcf7468f537dbd1b0db737d SHA512 3a634fdec410d87ffced8aa1bf8dacd9316a04c51424563d60b4dd611617041f09085edfd0ec96e6bb0e0db74a0e950b0616d1fb94a31667af35af1637604c22
DIST foldhash-0.2.0.crate 23329 BLAKE2B 49af83a79ca7954f05d8a52566d7d20cbe057c89c2c767ef76b4c8d83bf099196d053054c8fbaac74da7fd5eb0224fe43731102f2f0bcb18ccdbc0c8150774c3 SHA512 1495281089a8a1b7bbacf8004a5e8051bb00bf37718e9ddce9d43e4e198f529135f864b6850ee4422456b0d4731ae58647f0a1aaae0d67921c389f5d108fc163
DIST form_urlencoded-1.2.2.crate 9347 BLAKE2B e02670f9af81a09e8df16680dbb80708632ac9e708297fda2f821af8076fb827c011ff359d4ce50d5ddb8f4403d4e19f74a4b68d11441f32eabc6fa2e38b3b09 SHA512 07d27d852504e146d586d007b090e53cbe740da140859dfb7d647c83c1b55265a83ea0a0e514587699b1dc6b6ffea2fc913319bcc83b55ebe191801a3b429c8a
DIST fs-err-2.11.0.crate 20449 BLAKE2B 8ffe7c49f4733edcd30ade9b75064e9fcf4ed1c87620d629fcd44dbf87e85e28d23fbaad05a50d8baca877f3eb9e088d8dd744d2ca092c443735fa7129609c9c SHA512 a8bf948b94e7325c583035a04d30c8ecf33d543ac366a550d757d65a0d7575d501e01dd1a80c8b0c278f80b9f3298f8dcd03c3c636810fbfe6a4a910ee8915a7
DIST fs-err-3.3.1.crate 27201 BLAKE2B 59b33100f74f3b7e42dcbea655037a1d76257395bfb589da89785833ce1afd56eea76a0dfe0ff76c952ad1142fec5987a635bb38edeab1c009d32b2c32ae2f83 SHA512 56fb220dcc020cf61c30fbe2b3c4b1a0471db06c254d845fb43858cf3fcc0a9418a05339271b47f386c059f2e29678ce0b03a9dac08a580fe69d7120d3c7d1ef
+DIST fs-err-3.3.2.crate 27324 BLAKE2B e704116b117cb666d21a1b7813c969dd8ab7695690fe362b62fa7207c1e4c9082821a772ba615f073d71d2856fa43e817b025197f20ab7f6b7c87c7ccf81c43e SHA512 2036c9071a8134e92c21bff7235a59adc9bb2847d349c52c01d4f65d49dbb45db3c030bf85089f8e2928b1910280ff81081e154fbc415b428196492fbd25c252
DIST fsevent-sys-4.1.0.crate 4620 BLAKE2B c203c774d5038d4c4abdd7bb9407a6b5f2b203a609bd92a7fde38afaa71248f4610e89c73eaf982a5d76560f9503081b7b10573046b1a91f09de4b642709417a SHA512 e702686629557b879efaccd37b03a7ec515eeea29d8f8ba46f82b8b68ad157ef9d6b188be031f806d8fd27d4e9d2689cdd6bfa14e4ff77493a7d0be3ef1238a7
DIST futures-0.1.31.crate 157731 BLAKE2B bd1c51f7b5c6018547d1aee3ec550fa55ca955b48c04c8e9e91e5aa944540fa69fe590d2296085d7e772c7aaac37dce00624323bd6e31f92af269dcdbf30d511 SHA512 4be7199261201ef4dcdac5a5a237a70eee33d8fad9a81f76d739f4fc7ad39c87fb2f4719ed7e7a7bc5773c5b51196e4aa4ced5375292198c8d89a03f1692b341
DIST futures-0.3.32.crate 61234 BLAKE2B dd15b4558a91d8012bfd9d7ea3cf9764d8b4d9a4d9a2fcdfc10f30465d649989b637045e2cd72948dae060eab3de4ce257f90de263e4b08c3bd0cc37e79bfcf7 SHA512 ba0fab7062af4d01143ebaab728b9d836a6589821e49347751add959f7b85c685f91f99b6a31e44988d887c4301bf657c0f8d969cb3ae219235aef2528aeb4ae
@@ -169,10 +199,13 @@ DIST futures-util-0.3.32.crate 168797 BLAKE2B d804428849635088636df69330881d6847
DIST futures-util-0.3.34.crate 169782 BLAKE2B b71f64120f7cb304ddf8d6899ac3da21654ad0ef30803979b3c3583e5cb4f6484edbb411a5cb0c8fef33ec595aceee490dfc98ae0d8211faf90b1b57ceac7d91 SHA512 c5e6213da3767bd645cf27d91e5f8ae14040079e11ed30fc9332b404f058491687dbcf0a8fbfb3511ed463139db7879785bed0129e99de1fde6ee10c21aeb2aa
DIST fuzzy-matcher-0.3.7.crate 18047 BLAKE2B 934b90a74826393ceccc3e433df7cbc056a10744077e7a2178df9d9edc9db5d4cbc86d006c0ef1f7d82f4fb8ea0d52df71be1c7cc9ee39b433207d7f2126404e SHA512 ebcb6de06dd66da952183c75e4a44988bc60df17f035fe541c134f1c4e3c33d18a7385a9867fc23a99c07cef2b2737edd6128dea6546e243985da2f3a55dd8e3
DIST fxhash-0.2.1.crate 4102 BLAKE2B efade6722efed1cff0bcf307ababd9c9031af297baf410367212758411a21d61a473456c7f9b5cb15e444d115a62120f140c082e70dd360a3ae83f2f71bec9e6 SHA512 638e1c0a4e7f365483a329e715afbc2e57e47c03b32e0e1818c879baa96996e81dce8ab39320e24a3e1633f73dec1e5f18a06c37f3ad38043002fc99b55efc38
+DIST gen-lsp-types-0.11.0.crate 98362 BLAKE2B fd49a7ee939e541d95917df06bd4f3f4816fcd49c133e8ea52c860f24bb550cc3b6ac5868471aef86aecab347ac8629de73feb21453a5b97f47a0b3ff6d2732e SHA512 91180cb383da4d463971a1d8d4691242f2ef6cb7b73bdfea0eef681316e135b3b13339d466b30d913bf629a9337d3174d3d39a7de8c2c4759be25a125e6c5f10
DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
DIST get-size-derive2-0.10.3.crate 8774 BLAKE2B 7a90151357f94ccf893c0245ce9022d3eeebd2ec20bdd6f6fecdd3078ff3247dd98b2f35746a69e13b3ef863c14a8d2635f70e1fcac444bacb943c0208f7d4f1 SHA512 7f5ad79c9255f5fe44bd0c405859658e26f86db3d01af73f913f89692d98d3620d19bed04ae69ea38d2325a3681527ed995a39f0b1e63e2f49eba4e403447f92
+DIST get-size-derive2-0.11.0.crate 9306 BLAKE2B 1021640bcdf5cc6579b7202a1330e5b6d4f7e291c0899dba061c97888d6265c97732023395c0639a2b98c1fb69bca640c6cbc6c8d74ecaea57e936335792b5fe SHA512 197ed00c14bddecee695918f013cfd319dafa5dd8a345141bf131cc8d3f9c20e1c686c72bf7e0018032a5cf032404251c5ecb7c7c4e92dc23b1b8fdc67ec7a4b
DIST get-size-derive2-0.9.0.crate 8767 BLAKE2B 321dcd7a5a10ff7721c2d7d0384eab2032b9db2a8077cb1b117d9fb0c131813c867506b09dfc8fa078da82751c388b4d31955a0b202a0f0269c0f1139fb555d2 SHA512 32e11f2fbcf62dca3eda2bdea633c9644ca9e80fcc18403b959e0f3858dd8c7d6b3d296c682e09dba2753d2df5043388735f1a6beb494dd498f9811012f9b89f
DIST get-size2-0.10.3.crate 27893 BLAKE2B f270ded65468aeaf3f0f5b903805c237f5b66710c142eec13d6f7c7fa3f1cdd9c64123b74f9419ce9eded2808862057b8281a302dacbd43883da82d0130552e7 SHA512 e30e3124934754a2493931fb8261aea703ddb440283c055238cf7fdc9b7fb1f0cc3723fc1708f9de59a5d77f9735a37285704289abdd9ebf9525de116cc57218
+DIST get-size2-0.11.0.crate 28779 BLAKE2B e44437124379d91a4598c239cc7d426cae0aaddc497d8e2a85ac551b199c432f7252d9a77402fd2286765417adda06f84a9888675b05f70b62e6a9b481a96232 SHA512 cce3256aa62d07a7e890f93bf8363f6c09553e16452c4329cead0bb4b71e1ee1f03e01734cf1d2985ac042c3fb0ee685c153d96e8d8cc186d28d2d14a8d1f8c8
DIST get-size2-0.9.0.crate 24328 BLAKE2B 135eb80df47a5766e9be51a87a31c7ec848cfad10f64b274b96367157eb2179282a12ea506e13b2a44b81c0731a947f674395510d4923d190ba020f31d7c5419 SHA512 74693a07c6e61ed97bf0e7eb067b9d62a80a46494c88516589fc7cf0dd6ac2412d96a5c9a28c20443e21ce7349e97775d4c46031f726e2d33ae7b7dbbc198dcd
DIST getopts-0.2.24.crate 21467 BLAKE2B e5468cb141bc8be43ec84606c873fa6e16a49e902e247f7c38a08c6e8088d36964d99b41ae3a98a5350cd8fd15ee8d46762b818c79d1198c0aed576de191b640 SHA512 3b0fd721340f732d3ed3dee38c61a46d83c920d24d96fdc780927c2a02fb9a6910eca4caa57db83d500d76bfb0e7f424a166204fcc4c5a4d87ca3ed30008f5aa
DIST getrandom-0.2.17.crate 40780 BLAKE2B 49168490a12561828bb324273c1a2dcb98017577f8500fe08a8bb7c3accc37afdc459af264da7b95a4608e53c4edf8fcec3cb240741b2ee7b128012fab975ede SHA512 23033dde606eaeacc0557e21b3c5ef732e083b17ae086dc95ac7d1a8bc1b695a9a6a7073b8ae774ec62e7477a8ea0644d417fa5da7841a3c8118694c21813d1a
@@ -191,10 +224,12 @@ DIST hashbrown-0.16.1.crate 147785 BLAKE2B c506e64340b65fb462545c52e85a192b21e33
DIST hashbrown-0.17.1.crate 155512 BLAKE2B 748d3658bf40d6905b47f695e64b70a0c506b9fb0207e023cd50448d5febe92bcbdf19ad8b9be7588f12dad2aba82eab4c8a7a1815adf0a00e17c39f6188f4c6 SHA512 4b6a5a76ec2f020fe34cfa5f5bf4b518ab7d278ece657804663972b6a5ebd64f775bd75d229b7e202702bed9d5b63ddef4de6e274fafe3129809791c6802526a
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST hermit-abi-0.5.2.crate 17435 BLAKE2B 695192149342273199ffb026de57e2d906249757b9b4bbceb6b40d3b2298a942a75390aeaa3ad4cad71e5d44687379dfc49598bacdb2cf989ab48864c4b2b517 SHA512 0392a8350288e5d500967bee8e98626024b47a7da331f833b9528bd7318cf43f41eefa46aa6aebd19febfadcbcb2d7c9f70d6ca3631c1618d63c60366dbe7c15
+DIST hermit-abi-0.5.3.crate 17458 BLAKE2B c4cd7d4d6ceb14c432db04614fe62681262f8dc165a8295619ab2c8cf8ac20a9dd7bd1720f2d1f6ec87d479f9b286e6b999b769a9d004f575c4c816edcda515a SHA512 8979059964e1e8f85fbe68af13799f41df8f9e81fc08c9b5bc8128bf6449ae0e65547e9787705abf6a47839651e6a3f1182e9548409aab728e614a17df25a7af
DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
DIST home-0.5.12.crate 9445 BLAKE2B 22790e93236af05957848cb61a2526da2b70177ec7386cb14c10427a932639e03b7dda04f988cd738de341278bf4bd1389ff0ba722fa25bd17b8888a8774eb75 SHA512 3397947c3dc44749075b3076cd038936993b5755180b8190ea45c31b7ddd1701a14a4fb36c07adc7010a171b750f1a1ccd82c83640d42d350e996ff56c311df5
DIST human_bytes-0.4.3.crate 5654 BLAKE2B 5054137704a827ad43bae10253706010a7a44d335ac925800a149fb1f788ea14ea049b63e38651f1dffc744e32e3dd8dcac7ec58c336d07a0df95aaace593338 SHA512 329586e679f1322d90a034ae4f3038bce0e422342bf7414fbfac3449c3672589e7a9dc509464c4eafdd90ea45ea263ddaa64c0e476d9ef3abbe77c7560065070
DIST hybrid-array-0.4.14.crate 36777 BLAKE2B 102366e020f1514194d5481dd9ef71a5cfcf33e8227557db76ad31572e2cd6e63523e434e1e962dc0b51764a02d6f5078160fce4f93fff044ea59a7404661ba2 SHA512 2bfe6a620b26175462e841b7e57f26548e7b3d06630c31923ef933e3a1507116d911c68669abe36822e75057b2648b16ec8f8f687e3dcb895ba37b0d6169fadc
+DIST hybrid-array-0.4.15.crate 36801 BLAKE2B c5492114636cba8c53c06d5f15f058d9182a0b03250dc46038785da8bb665d617c7b603bfebaa93e34230b300faabec1912d1d7c05dc0fd4468ed246484ebeeb SHA512 d1c8c710f8b46c0c165a91c03d1a48a5d90b8347fdebde26ed70df76f61d48711784cb6c30f68b7c4e19c918e1060f5cc6033d1aab1299a22ca4e79fe29c7f8c
DIST icu_collections-2.2.0.crate 88011 BLAKE2B 6caeec073fb6dea88daa77c7a4d8e3699924bfab2a98f21429e5aee73367e2c1e72e8c183050dcf3ce8f69d432874c69acd800b6a15b08ff440d45b0d683976e SHA512 e7997eca01778c9635fd918d05c850d43abc3cada2b1e79c0a4043f2bf275c238d185f1c55ef06548de88eb3d02c3d04f74061cc20e0843ee46f4776e701818e
DIST icu_collections-2.3.0.crate 87970 BLAKE2B 85faf966dafc6d60153e4cf2ca6bd8eea68b0b910f6517a0baa29433a77b6c2ca1a85af9e7531c775fef2964f199e3485e4bbb2d36360e217c05f446839a9b6a SHA512 0cfaade3f63e6282fc66d216ba5f8ae21e21c6d72f5b2320933d5941900546ec7e2de0bad03ed4b0fb70a24c2b8835db611a87baf0dad552d7197782c1ccbfd3
DIST icu_locale_core-2.2.0.crate 78639 BLAKE2B 106cbc50948d7253bc25c5ac3321e6cc236e23a548f0313267a2e028a74d58f838543a0caca50a2e3550207741f967e7fd8bf84c3b24932683b28f11cb065a4d SHA512 bf29c3f1cd5cea979ce82243aa19d4dada121448ddd974b27cb325ac92e18953fa4e9af2758198ba6a41c367ea659c92e450328e85ebf73d231126674e238c2c
@@ -209,6 +244,7 @@ DIST icu_properties_data-2.2.0.crate 168901 BLAKE2B 47468d4e5235e73818d15918fca8
DIST icu_properties_data-2.3.0.crate 169152 BLAKE2B c1a970db9aa7002eeba7864c022ebe3248897ac89374bb31ce8bbaf8831c401570112fb67fef9a2d11f05d11917fdd585e9f087021feff26218510a25989736d SHA512 ecbe8b68cc97684b81b0318dc5c2312bcb640bd43504ba99060b0dfdc4fdac34fc021e2ec67731f8ddc152f8e274b118e213ed3e864fcb0444a9b451657efc29
DIST icu_provider-2.2.0.crate 51620 BLAKE2B 97dc0dd0f22ab74b80127a4091b8f140427c41189ec0897a65ea8443c307c27a46866b08d6a4e4b348e18c673d96e15258c2086a9513a9fa9c23c1a8dd57bfcb SHA512 a1a193fc08ebe34782efd21b70778c38fd9f6d99c08321cd2bb457d6cc91593ecb806dd61b8179fe9b66d99d79d518081eb1d1e2933b08a3b28158806ad6169a
DIST icu_provider-2.3.0.crate 52272 BLAKE2B 3a4ba1833f0f969c2d6695ebc667bbc0f96444748f5f3aba8f176e1b6e68433770663995f9f2fc5bcdcc37e5a900b7c5dbb24d7eb6884da0c49b438557fc7894 SHA512 61a380eb9463728e5912fc2bd0a3dc60cc059ba0121c335a8cbc8b0b9e8f96f94ec247a3fb5df784d3d8b7f34c7d38e73c316e52d96e8a2541594301ba92da87
+DIST icu_provider-2.3.1.crate 52447 BLAKE2B e4c8bb7a42be678f84201b0fa5d6d136b58e618e1566ac53e49e69a1525ee81c7fa8e210f1df8e203e6449b2b90a6b7271eaf5bfbc53f26a9e88f61e8ef63c2a SHA512 f617ee115bcbc8c683d3c8058333958219b91fa120b2c18e964c2bbf4b43348c6914a9cc503adc98a7f520a39c8df0eeffc4c8a38c1f7af74be1678fe6453deb
DIST id-arena-2.3.0.crate 12883 BLAKE2B 2a7f498c3ea5632af4a369d46f90106e642bccbb8e36ac7fe37be05c2125989ea2cf625db92a782408ecb5f68d3efbf3006413b5b748815ee42b9dcfb28d0ba2 SHA512 99652279014e63680d66bc8022ec3d2373d6e476646ee5551346fc9e62d1fd94b28c945bfc30df14c85d085aefc7fbb9051fe11012f63a9254bc11f03133f116
DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9
DIST idna-1.1.0.crate 148747 BLAKE2B 89c6bec54cc2717741ddb5cff2939c08823189a490b79ec0e9c7acb3aa2b4fee472e33f36d7c345fb6658c863d3c174577aa1f1a10c9bba7558fca9f76b8ae82 SHA512 1d49993145fe694f33f7c71ebe62face416f2229b12690cec23ae2e4be2fc1c5aa5ad5651d815ab70057b68edc450ef6004306a775b920b8773c221c0fe6c106
@@ -218,6 +254,7 @@ DIST ignore-0.4.29.crate 62309 BLAKE2B a5396d07d4c936475a1cc0654eccbfa6d72e80d18
DIST ignore-0.4.33.crate 73872 BLAKE2B 451e02dcbb8b43b941bb4a5b0850c279fe81fbc80185084bf92b6abd3e05eddfc5b643e1a9e5ef8733aa8e0e1905134594dad4c2d1428c056ee9ffbd6b0a5686 SHA512 b31c53ddc4f344e727c4ccedcd79922c4c75dd85cf569a3931b466447d585ba17eab8a9464c24142e4248023875173eef8351558a1c28a546e81d72de4149560
DIST index_vec-0.1.4.crate 28291 BLAKE2B c732283735699477a93e5aa34a9e9031153c0b9d82576d3db6e39753c381043c420bdd221cb3c72a00aeced3ecb0f0629139260fd78c11294416c3d1d274e243 SHA512 25e8ebff671e1fe2d68e4f77bdcac69c878cbc38914a7b742692d49febfe5ef6f208e89077046174cb6647fb5c30b89253be7eb80baa5b55e1b729538de71395
DIST indexmap-2.14.0.crate 104085 BLAKE2B 828d8eede906c2908baecac840757ca8795587a552cc9dbcccde89a3b81444d99395670fd71404c33033aa5a1b905ed0621fc39236024c8b8b385e5d29ca6b5e SHA512 fa6bcaaf1b9bacabc72ae9d0569065325a6741b9ba5dff168ada6ece460175be47741d906d9326b48d30f6c55805d33fb64bfb497490482b4e412ac15a8ea55f
+DIST indexmap-2.14.2.crate 103014 BLAKE2B e398c32cd8fa9a4cafaa0fb82f0111bbe4ec83b6413163b1fc716f4c9c446e4c5c53cd0519b5c20353cb8c7c478c970ea3b418ba856aed12f7d41f46bd91f27a SHA512 ecf5a1a132cda2be21cebf1c447e17213972cf6da1d0f73b25969dedd1d3c444d4124e01c0b31ca9a78c906a5ff68ddd04602b25be6db877f23ee6106e3a063e
DIST indicatif-0.18.4.crate 68731 BLAKE2B 4804334ef2680c3ee0f265edc6cc6699967c63b89365501aa860765db5a5139f9a12bebc8a3c748eac998ef9c26785711b81996c0cbd42d13f8b87f48b641c30 SHA512 6a7484ab982c75c7ddff3846913a74046406b5323af3356bccd51e6fef63bb43ad6ca07cbc6628544cf403b29893a7e095ab096289a6e2f47ca1bbf573a7d78f
DIST indicatif-0.18.6.crate 70598 BLAKE2B 8971df98fe895a537cd51fe4074a897c697e43dc8107fc94ff565a80b50fea0cc30957248ed8bc0d52e2396ada86025398fffd5e66229ebe16cd204e07df1c48 SHA512 994829c519ed310bca7ce103f72da137732ba7f478f19661789d08a5b30b5d93854de3a32ccb2f9e0d70003968c50a67c74a2634676433f5d63ac9d3491e5032
DIST inotify-0.11.2.crate 29809 BLAKE2B 5056d90ab47e0e3b7b2133133284e698d3e27d9580547ab405b105351afa8fed8c1a16f0fdbaf27ef6a7730f30d49a16dc492a51ae379a59eb14210cbd2831ce SHA512 15fba84bcf88c701bff592fa0e90fd6bd140c46378f37fed78360a8edda7ce8c62fe1c4c107419e3edc0bac5e46cce7643acc97b23cb1912f1c4dfcfb823ad0c
@@ -229,6 +266,7 @@ DIST interpolator-0.5.0.crate 29578 BLAKE2B 2c6522b4c0affb8cfd72927088eca1e2a533
DIST is-macro-0.3.7.crate 9060 BLAKE2B 2035633418156c187a58c308ee8ce9f184c0334b3e5a46af1377e05274be11e5c43df2b4ab2805343431a1e60296f12dad74d14099805f7ebc88886c7c885cfb SHA512 3b56dc6a95566711dac83c0b890b53ef86d9ea8ae6f2f51d8ae7b799f4daea372c353ed0a0429c35342934d4d71609194506782714d7816c6bb97cb4a4c87b5b
DIST is-macro-0.3.8.crate 9345 BLAKE2B 8961493a8583656fdaa0f30fd2054243e91dd45e441298a15464e2097436969e4007ab5fd9b135eab09264b95f1b3556800027bcce84b884bb3cedb29aa8b720 SHA512 b09b540e9df4b358dd5570a8df156400032ade83bc9c4a74eb41094e7344d444794345980e93410d3ae15159e8b0a67b6a32c3fe6d72de36c17e718c6e091dd9
DIST is-terminal-0.4.17.crate 7458 BLAKE2B b12ed4c0e540309462de73b8abf9f281676f562c573c9e9663ad0c5ed2ed0350bc98315c60da6998a706b559170dccf11c8d8196f7be7641478066dbb58e4861 SHA512 e11c73fdc237898d0296bcd6dfa9c8acac8cc5e1805f42f5b220d787dbb5192eb8bfa9da9ce724143f4a17ca873b234912f288f1c3a092fe8881a92697ee12e2
+DIST is_executable-1.0.6.crate 9229 BLAKE2B a115be5f605bf65ec3950bf62f1a5cea988fb76548f57fd31b2430fabcf86d492c1d80a2eb71b7d3c1bab0f78e33a4e3c5570979fe01c9979789ee7703628635 SHA512 e2293abb746b09022416b90575b1b84089ed6cb5e78acfa83a359f99700a7ea16b830383197ce0233c1d2cf9b21e92a3a575719f6114be3d05a5162cd3795da6
DIST is_terminal_polyfill-1.70.2.crate 7548 BLAKE2B d84c45a94bc0ede333843ddb5206379f1a7d9df742c7f7940374d6b17b0a9c300e32fed5fe2bc58e6b3bc5d18b5fc58dd4e283c01c2f3b4f10f254b3cf7668c3 SHA512 d62f444e83950bdd441215c0ce681ff774692b35fec2af7181dfa243dd43fe42ff7e10a6e3b1d578712e4130dbfdf471ecdae73a3a584a2856a848d387b6c261
DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
DIST itertools-0.14.0.crate 152715 BLAKE2B 3c075b735a6ae4b66980b1f7ca0ccf4237286b140268ea179e4ac01b1349105da227f03ea9ea721d3e762c3cf8b736cc48b6902148eae73addd864b9c79aa219 SHA512 bb168e21281ef3e43f9c93a079fc1938d79b6db2366fe17e26a90f7ce6fa55df73e54a06334cdb2a7b208b0a64473b5af9de76827a9ecb49378a5f9073d2e645
@@ -236,17 +274,22 @@ DIST itertools-0.15.0.crate 164131 BLAKE2B ba41899a3a7fa0416aaebc5da084597d236fd
DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e
DIST itoa-1.0.18.crate 15935 BLAKE2B 8e41446056ccd94979f6f5a8fe8c48d6c47abaab99a41715cca31816f859b56e0cbacb998f300b62be8b719a6470f8a087f1439b72f2f6662d1cdd3d552ede5b SHA512 8dbad156e2863c28e2b380901a92414ef00e39f1fcdb06d91a0f3fb73108c2f7f36b699ccd93287808c24c29cca7f1783d48d5ca95f2173502963c0abcb2d09c
DIST jiff-0.2.35.crate 676554 BLAKE2B 59a16d20c2b2d74fba71b6757a5087d6f496f8f2d011d103ca739c6db353d2801ffbafe5e64477f42533f561a40ce18f498bb6a55be9999391a4179f586f8083 SHA512 c479a38c8504f7a88621c2368ab59202423b0db865860c9b65a35bf98ce78148d782dab3c2048bfb77278dacb5834f0d12e25755fc4c8d98f19f688e5694ed62
+DIST jiff-0.2.37.crate 674376 BLAKE2B 394a950e10e785e582f16a71e7c7617e18257b771ac25f417d9ffa9cf55df8049b6e6abceae185feee92d495a3b05e3037e51bff5dfef4ad36a7be4113f7989b SHA512 d72b1cb50476084d6124b4ba1be5cd5e7241d85f377e7c05cd5a8b18bba13f08f55916afec08bdeb77de9aa9a5325b9aec66f9445e53d699fc0ccd185ee50cd2
DIST jiff-core-0.1.0.crate 127943 BLAKE2B b653d96ec44d245a80812088ce4371012c8a72d58ef53fae96a629ae1ff1f8d88687f08481605cc3277095ea9a0c1a51e17898087faaf3d221a75fdd8a5190f7 SHA512 f7a64cdc18f39801bc889c779e7086cc913aa61549325c13ebd4d6662bed7ee00a0621b48e7623b31df72d9039899051db6b78508145e085a2132cba5fda4f86
+DIST jiff-core-0.1.1.crate 129192 BLAKE2B caad441f6e88fc00ddb8ee3b3b3acd21d78bc3b1fa70ed688e2c2486a1e7835bb15c218e7e36d6b97e96b21970e14429947614123940d4136b60014f5e083a4e SHA512 fcc1427648a6ee3e5e171627692204013b3d57f42b0054ca5d046b8f1930afe339f932c88a17de8198c6c2927f9cc5dc250d3f0897457b2f03228b3f41c5415b
DIST jiff-static-0.2.35.crate 7996 BLAKE2B 7fa9d6cfd27b7be747e7423a830b3eed805dbfd645cec0963694d012f8718b256eef56b48a12fcdc93b188ff2bcd2b8704147640a6e7f8a6178a801352ab7f78 SHA512 a5f2491d49ea3157af4383f9c15febd6bdf697f4139dd635dcf80dec00ffade9601268de4c8a4c1c16e165bd0800b38c7b4a8e54a7fd4703e6d31adb8fa72fc6
+DIST jiff-static-0.2.37.crate 8063 BLAKE2B c01996168d70be74c43470b992670217a8dbdc209c0fb7fab02dc19d8338ddb57fb52eb3e56ec37262d2fa86b3b077ec30089ed1da9d020a75dd5f0737107861 SHA512 a7d5b88cb0532efe0439d6df266244e33389c1b9cd4eb621a51be4d3dd189dcc27ee271566c41ed22694be2b694407c270968d0f37399cdbe9c547078828dfa3
DIST jobserver-0.1.34.crate 29013 BLAKE2B 4d89234147386d61e8402872e577c52c60fba41b21831acbc6934ec7668b22dd9b876cf78180f5a06b2b26b642a0d7e02c9a67dc36ae7d3aa3b95125dec3d7de SHA512 42fe03eaa4caac030c40b167c742aa104151a126505de9ff4c52ab97ac13cdd2b7219268bff414f1d09061f3f9e36be01bdd6255597b957e18589f9ef4a65549
DIST jobserver-0.1.35.crate 28890 BLAKE2B 07ab08fb5769b8edd4bdeb48df65c4ad065ace92ebcd3abc73387256870405e05d76d1b1c9e054adefde903b7e36c13fa2882b33cd56e3aa693ae4b736fc570c SHA512 98d97718702406f1609b2e3d4a69c3bdcbbfc4e1a35eda87825747124593bc560f316eb6dacd6bc98ab26c81b52ec5bf739f260e7d829a539af67a2f0056a90f
DIST js-sys-0.3.100.crate 108355 BLAKE2B cfc7ec0895063875c0bb2c074a46aeb7497417f82fcac69190aa7ec1c7d5b358ca468a4254d09293b1fb43bcbae6731a85c20f41bd13c761ad662b70aaf4939a SHA512 594761dd7daca5a3318577f557337e04e78ad50cf1f235f43d01e198be48f5e9ff0d8aab506b6343394e7d92618ad23af15b6ff2007bbed7b7cff5ef2ab9b1b1
DIST js-sys-0.3.103.crate 108366 BLAKE2B e126d009ab9f3f1d60d0af36c66cae1c6ae821e1ce2bcf1ec083d69e8cee2ceb13cc0dcd46075cbf1889409629713b86902939c62cee164419cecca5815c9025 SHA512 4709ab94c7e7f6a9ca304afc9ad8b91c2aefed64135d8ad38f9d85eecda8cc9f2891612c1e2e532caa2a466acd0630a85bd5322407b8efbdf07b4544f1f5f32d
DIST js-sys-0.3.104.crate 108816 BLAKE2B 87298f734dc738fbcbb5ea87097508b34474804b4c2a6748d1a36feca01491987f76d1648fa1372bdf28297bfed33ddd7dec846c4f98e54cd00da171ae37827b SHA512 c3142534e5d0f3a8fb62c69f569e91b24580350cf594860a6469576662d5911c6b63f51ccf7967b3634b7254a77558c3b26adbcf18bbf981895da7ff1166e957
+DIST js-sys-0.3.106.crate 113772 BLAKE2B f005841ed62bb2885a2c0caf4bfa3ce736d78107e735713c6755b47c45721e33d4170f8c4d37b9c450052d1505e65712df1fea77b9ac8aa016c7504a5558240f SHA512 da648c817fb1a47ba93baa7f013482e606f90a18476a7d1e8daeea4ae0514bae9900da113dd16466374b03e87d2385bd77207bad0fa187ca5a531bb779fa2cf1
DIST kqueue-1.2.0.crate 28412 BLAKE2B a55c4ee2212a8f51cde25b2a192107ae6f2b8679fd042ae9758465dd9bcbec322e3d07be1b5a0ce78bf10e5ecfc63fbd0230e6caa8133d1be902728d81ce9a1b SHA512 a34f1aecd888884ffbfb65e2e84a7e29591766e5f98b2b1a72fe27814e825e1d1c8739df0d40293cefbc766d9aaf817185adfe5d9c9f147780d6adbda45b2b1d
DIST kqueue-1.2.1.crate 31254 BLAKE2B 970332445bb6a003aa69e2c1a906fe88de523c9b70756cea5ca41f9c37a32c426a8f3f66d1523ba9a6efea5d70b6a520ee54f14b5a4cb2978795778016a733ee SHA512 3c2225bbeafc15c92189179bd49530d2bd3997cf143a6cf1490767bdab46812a5a77ceff84ee0ad9ee8fc498e8c133551eb15d4f7d3bdcb4383cfc190a260eb7
DIST kqueue-sys-1.1.2.crate 8796 BLAKE2B 93858ad3bdb995f05d405e6998bbf2b0d3663861e0de0f6103aee6d688a616265ae3bf08a97b49a0e3209871c71cdb79b759a083de42fcb41abe9a0d4c3d60e2 SHA512 a83a3783d5f2b0b32685c9fdb597f56efcbe23e9f55697f0b3803b937690ddac6ffec8f04cec5bcd121629b24ead27bcf4c97ce708ee0879fc395961c57f4492
DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST lazy_static-1.5.1.crate 13937 BLAKE2B 9f494d192db8a1539799d1184ab471f96039fa2ef143b0ff4c4199d691357b332f2fb84273cb8156dffd1edb08c46a09567786ceec53ada0148776ab94676a46 SHA512 a704591611c60966140599ebb8e49dff157da2b7d6507ac580db65573b45ccc790bac19b980438e064db833f9e675b654a903f179ab6bb820bde6c7786a932d9
DIST leb128fmt-0.1.0.crate 14138 BLAKE2B 6353a2520bb93e0a3cfaade09ffbd8cf981d2cf75579e865941f3fea0dc745c54472b369873b1ef4f26dd7f356860e563bc7ca6e7615d600b272c698a55e54eb SHA512 82fbc7f0786185453fbf11fb3ae58e71fce9780f81eb6a56d7b559e3a0c6825751dd8b64f1266aab73fe65f7483a206e42f31ee1a1b7b1801246c6dc9c2ea817
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
DIST libc-0.2.189.crate 851502 BLAKE2B 05155a249c6880ca96a19bbb7569d4ca7530f544504e4ccb48db1ebca0b70d84e99c6b9532adb9dfbb3d4d1187eca22698a6b2ba6ae40bebf5d6eafdae86c71d SHA512 0cf621171ed4e6bbfeb71fb582ebf037d62ab481bc406ca2fb766bd4a8416f220a189325a0d3cb3e3cb39d80e09312516ca6335fad71b329c5fccddabedf4110
@@ -283,6 +326,7 @@ DIST mimalloc-0.1.52.crate 5382 BLAKE2B be1b2e169109a7d80a23ffbbc007c23d0b19e78f
DIST miniz_oxide-0.8.8.crate 67065 BLAKE2B 8cffe475d689a07246c00f979db6ea37d7e2ec3f8f2e6b5ac548f1182ec97e2ef1374e26ef275edb6f67814f33e32f130f77dc6731fc33f2e786bd9eb3ff22a5 SHA512 3537bb17c9d67c71b601e48008d44c51ba087ef4c827c5fc04b08ab09df92e87392c56b03ff52c66323f5923130580a81f4641d549ebb3f5f7e36bfab90bad04
DIST mio-1.2.1.crate 106774 BLAKE2B 7226f18a50733055919db4adcbd33cda2cbd0b47f6e91bfcb0b800771b332a2b64b657b34733283d61d79550542f553227a4573913918b06e894d40276c03a9e SHA512 040f48999dd656266e8ed6184d1992450359064d9d3ade1b8e4f483ce76cf612a37fcf653fc3f47dda795f22239ad883578feb2dde3f9a9b821ea5320d83c55d
DIST mio-1.2.2.crate 111363 BLAKE2B 5800dc6e91644f3f63efb6f82fe90f008e9257f4cd998213f57ba8377cfe311041683f59d696814c8800627714100028b8aea2b733e56f3958761f05e296b9ff SHA512 018a8310768d7f7114f0b017ee85ee028ed5a97e7694826b63e5cc36ed41921cd2f3b03817231892a852b98611555465f78b1cdffb30e88ee4ff1c515c32d532
+DIST mio-1.2.4.crate 110437 BLAKE2B b9d0b6ac04f45907b431d448f710a9cbe498f632f70aa2fd796239da6f59dac398d214fd9ea2f780d8a51985d31a47639c06547db64e61297f9e34f1d0f0e9f9 SHA512 ee0403b024bcc4afe5685290e289facef59854235132a26114310ef8590659b943346fdbb190872946d72af968a9190ef1aac8c731ec457f67c54d16b5a2ba4d
DIST nix-0.23.1.crate 240531 BLAKE2B 8e03f4edbad39a467c1557083cfbbd6eff4b78d5ec4e0f1ba06eb043f853352f5154f115ce75556e0d672f0499a9d4c03650bc5a1f57ba1b920cd1595cc50ea9 SHA512 23431030b094ebb027200d8cdc05d0ac1730fbb86ee088795a2314f1ba19b76ed5f24373c1aba8125575bf69f8e7d4d9c08344b9cb49a4ae3d8f7987b5f4e6b6
DIST nix-0.31.3.crate 347476 BLAKE2B 36668bf2510dec6047003f9aadad9144b95718685865fb5a0907d75fbea3b4fda69879352e8c371f4ba9887266f2790a51fde504f018001de7050cee19004e39 SHA512 199e8f56355ab115c86a3e166c9cf53b4656a39b4643de69b34658ea74a6d91a94c08bd4d8a06a0e4dceb4cd014ea8df326c12d20b9bdae06030910cdd583643
DIST notify-8.2.0.crate 39067 BLAKE2B 34792d7e0d43dde7ac70158dc3a0059c0cf86cbef9160e8f10a3292581ff866fba5c6cb000212789a47ae083fae0a65ae5180a49b5d40008bb0709b637ca1e0c SHA512 5b68f2437a2798aac5c240a10aac642708ef9ceefd58f448e7d37facd148768080cd3712e352e1736f910b660609753b47d8e00d4c6d0936cc5009c4d32084e9
@@ -300,6 +344,7 @@ DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051
DIST once_cell_polyfill-1.70.2.crate 7448 BLAKE2B 5a90f8eeff25a555987b84b9800f9e0b2aa94fb4827f76678ef45d344c4baeae5a079a288fd02a570d0f0099e9b2842d32dd206dbd609212496e77ede47a4d21 SHA512 9e0d07bcd40e4a5c271646d6fce71677acbfa4439b4e818bb4df823eb31eff976ba78239e3a7e0ad21e80ea8d0d3af3e74a7d0a0a55b308d4c777b9b5e1ef8ad
DIST oorandom-11.1.5.crate 23750 BLAKE2B cbe0b9167e6d1b95e45ecee67ebf3397044c54230732b192fc5b5279cf1c9bbf6bfe1e7d04f6ffc0cd42448268d31ef89b357250a907f6140901384647494e05 SHA512 63daae0b6e352cc52fdb7793aed1ef501ad996507d8e36cf8235068a3feb9f627549961af1a355227b561948c30f6dea17e225dc3f27caebd51116fc4e3a3ba6
DIST ordermap-1.2.0.crate 70410 BLAKE2B 8480757700f887a649d4c3be20ce36a807594c06eeec9007e109b5603ca512088d9ff515d1452523c118ffe8b47964f19818107a87119040833f42fe051a5701 SHA512 2cebc637d738b6c432c290e0a9cd28ecb0d75491f591e8e629b9c8cc497f153164e89ab3bca01282a26196a4263965cea6583996b36f8604f62485f40d785bef
+DIST ordermap-1.2.2.crate 70976 BLAKE2B fc1ff7abdd6b485591dbf1312cb33b5e13d0ff8b38736d1e700ad9da35debac47f5ee294ee618be8f48fd17d9355850efec12e26ad5479a15b8cb0240f551925 SHA512 e66ac81bb396c5fe6aae59443ebccbc1f5a38f5c3f8de41ba5cd77b355f28129c51c54758ae644d10a703790df8349c7ff4e2512e31072bc5e07c6b97da0b2dc
DIST os_str_bytes-7.1.1.crate 28828 BLAKE2B ed9ff946d2e5476b9b433644ae603f70b8cae4c340564369e8048bb3754b57557cedeffe1341603dbdbd466db599b57f08e5038b9d0df3a6f2594fd4e39b486c SHA512 894468e47fef80996e792c74d51ca5507b7f45f1f730f91c784be4c100e06772418b63782974219fd10bb1b5d797c0d2075c9771c972a5862ad9d768e1ec83ff
DIST os_str_bytes-7.2.1.crate 28577 BLAKE2B b79b36874b0b3414e774dc7655321a96d9a15ede186984732e653054568edac1fdc0e7577c4885d654613f2945b0bd1a54d0b6cc1884bd50de8f3bb4d438c5e0 SHA512 5256f3589df6f0038807966c03fb24917a6d5c5f33f58c538a4de5d1c55f43da91c08c16f1f4553d6230a3e976077e4d4f1c8d8bc7c44ff805ad5fcc1ec935d2
DIST parking_lot-0.12.5.crate 46735 BLAKE2B 36d82b682f7cd0a2c308fbc672f0c7023a3b6ba6ff0f9de75067bb26227d2ca460a09ba37a0a5b3867ed788d72a523a5900b99241bc30a67606481aaec30536c SHA512 432639d4a14acfa20127f03741e1101fa591fc63048b0b0369b44ad269d3dcb6fbab7947eb9995c7948f6fba90245abf82154a70df2b7a99aa7365b0b88666ca
@@ -323,10 +368,13 @@ DIST plotters-backend-0.3.7.crate 13709 BLAKE2B 7ba96de1435beaffe0171dd4fd010f84
DIST plotters-svg-0.3.7.crate 6715 BLAKE2B 1437ad7e1c1b3e82ab1f58660ff6931e510f6ea5ea6cae6eb48582d4652bc65c5dad518d3312e25303651c03d90bf56d9abac4c2e3979f8290b4cb35c0b6ba5c SHA512 9a60e19026edfad359a7d042630b60825d7723855fc0c17881ac880c29160a81449ca672a3ae5cea4405293947ae0556f31cb37f519dad4cef56353248350cd6
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
DIST portable-atomic-1.14.0.crate 200703 BLAKE2B 2aafdf454dd417cf7a3ff7ff72cca1bb1274918b8b15a0b1ebd4feadc4bafd87544938c26e001e1bb417aafa641521dba40a36ec50db59d03bbdc04d855635f0 SHA512 4c306fb2767b1689be65e57552260c2367f37808d0a32affafa21fddacd330c7735b0c3c8fe456fac10c4088ca5e8ede980b6d6da2171fadb682b925ff9a2c63
+DIST portable-atomic-1.15.0.crate 202705 BLAKE2B bf956c2bf08953b0ae1384d5c1703edf12c4a9b9d1f035b49043f4fb5e0a1ad005263affaf02331a77f098471fe2da8eee7b16861c33df9ef0d76444c614e291 SHA512 257cd168d0362b7b1d5e6ed9032cde9b0ac6e69d90b7e27347c39702a5ea020159c271e37e8045cf10661170f9354638791cfc972587bff3cba01da137f5a2c0
DIST portable-atomic-util-0.2.7.crate 53577 BLAKE2B 188e125fe8ab3a2aa54f00a6b29d9034cd84141e829fe036f61575d13a4aa1ff1b341bca74a7df434d303828c56ade1946a42d68267f88f28f4103eca9948aa1 SHA512 3666894a94351bbc788a2c02027af35fd8932ea677d02da64e1d161d474eee3017c618ed6f44e894ee4f1389a85196ecd120edef51b1edafeb82e81310bb1d86
+DIST portable-atomic-util-0.2.8.crate 53874 BLAKE2B 835a61db79a2302fa16135e9a1397d76962070389704cad42715324d8fa83ca6dadfec2587aa7d13e75a270ff09f0291f70528940142c8e70599289ea1c899b2 SHA512 fb1b3b8cbc06fa4ad966cb8809e28924c86e30dad9c53c151e304d3cc6a9f73ede054ee9ba7e27c5fad8ec904a6573a38502c694cbcc4950f52fb8bd85fdf70e
DIST potential_utf-0.1.5.crate 10189 BLAKE2B 0d8967cfc088089bb8d9ce70e9d92f69fc92532c5c24eec8c46ba0b1e40819195c745206f596d63cbdcdac436112d770ca378abe99f3ca0c0d2588b2bc339f62 SHA512 72950504acbd0aeeff44e0169f1857461f7627e7c638698ee005958c14cc0e68b2cfde33a91afafdcce98eac7ba7d54a125ae22562c4120c31e4b745bf298b54
DIST potential_utf-0.1.6.crate 10420 BLAKE2B b7f263dcc7803cf03ad2eb12db0655abb1c844875c3243cf74520f23687d817d163de587811e42454a84b31cab5fde328526fce35eb2959b021bc18cdce970ab SHA512 2180af56e064b7cacba94d597f688e95e213700a9adbb7fb9b78afb7c36a4fd4c2c5bdb64049fac8772f22323255ef2c294ccdc30ff9d160c7baee5a12166ba9
DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST powerfmt-0.2.1.crate 16184 BLAKE2B ebc24698e6928fa5e8db07fcbd52fe423e4a6a1b513e69e86aa0ac038e6469c0ffda6cce06eba3eec0287eeabe2a8a7e05e7cc128a4ad8dd57c6c8b5e9f106bb SHA512 526314c966a0fb946b9deb6812bac0049ef5b21c0871f070342cbd09e0eac5ac410b6675ea650483758575d65f5bf6dde1f1855d3ab9be9765918d72eb820a24
DIST ppv-lite86-0.2.21.crate 22522 BLAKE2B 150b2ae019f296dc0a15090bcabcf4981bc58159d592b07da729565ef8976e3d1b4416381c6ecaac77874d8e259995254255c8831861ac20922b810753128cd4 SHA512 94710d5b25b67539cfa828476367849e1ecaca744f2e0429b48c05b47ec48cd57f950fb9845a361fbfd96f361ac00fd2d47cc27c584b79ce3d9d8fc133f5b7bc
DIST pretty_assertions-1.4.1.crate 78952 BLAKE2B 016df9fb2f24304b68a6bf4fc8e144387f07a5a15fc8d92757cffad11b4a00e74559abf597d4ac8619a3dfea705c82df1b8c8620c5f32c61ea8f212fd9cbf9f5 SHA512 474f77c61cc17bbe9914c56b98a80e5918450205827cd059d693c2d603ff61a0897cad25dde645cb495200e61ddc14333d15eb8bf2de090a2eb68deeb9aec8b0
DIST prettyplease-0.2.37.crate 72033 BLAKE2B 997c8d855023ba6dcc7aa3a8f1c0ac6f6ca72dab2804cfcfb0987832ae044ffc5f5d7541e66d7ff5b0679065e5217078a832333e6cb92d89a93660aedaf0b447 SHA512 3273621f42cd2f4f892ee81e130f50e7d30f7254f922a84e55e454c0157bd0a59c678ee352e05007fdb0a62cdab2d7693185990354b81d2b1f5d08b51cff77d0
@@ -341,6 +389,7 @@ DIST pyrefly-1.2.0.gh.tar.gz 31612883 BLAKE2B 74fdcc5e32f32b13c32ffb074a682ad772
DIST pyrefly-1.3.0.gh.tar.gz 32304340 BLAKE2B 9db5ca6a433830d81ade742dbe2094706ad184d0fcc05684fe646716a6d3c02f66493f80732c641fa382a36e9a6c8a9234fa4d6fa579e3b21ffb1d78f1fb4351 SHA512 ca7fad80334d252ba7d545e2e3ceb0e12a94bc29dc9afcfe7bdbe3adc52c1fccd1aed13375e254103ce4e610033e8f57d69ccb9838433d01ee615e4024f62195
DIST pyrefly-1.3.1.gh.tar.gz 32304229 BLAKE2B 349327072e1041896de02a00e80c067a05a64b007046c5a9e0d91b00437245f3f35dd188993341a59caaf1ac8c54228e92f61fa6115656bc70b9b8852b49bad9 SHA512 5c311af0008c282b57c1ad24cb53fd642f10312c383a443a7914b6dba7a971b3854b45f9927e0ef0fd4e1aee16166e0f8bb98131016468d3ce2e00e4b79f567f
DIST pyrefly-1.3.2.gh.tar.gz 32308318 BLAKE2B 25a6c298883e1e6e9a59d95c5ad4b8b63f8d755d4549aa9396e383144331ccb3c8080dcf19ea99983b8bcfc91b67047c4ed8228f1e6e6e9d5c950d8a682cb477 SHA512 a843b7d4ce7b536dfa26783beb55fae21c953874ad4157505357dd94c66cf2e2ab5ba79f248d1f9758c2e97793c656fe77db6b871b7644277579a09b0fec9601
+DIST pyrefly-1.4.0.gh.tar.gz 31847853 BLAKE2B b069dfa359c70b7c6339019fadf2c6fd86e8bbd469b20ef1884dd4b54811062a69e279000777ce427efb080f21ccf675f687bd00424dda56d1f2639905187a85 SHA512 8db6aba9084a92c3a516a1bcdd0f6745e0dcdaff6ab117a5997e9eef558bb32c42440cbcc28c44e185dbf4fce75c37e3d9faa9432529857a672fc72e2992458c
DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
DIST quote-1.0.46.crate 31628 BLAKE2B b004131fc9942e278d3a89e9a68ea76098b94a488a4e5577074f59983809d92bb4803f759c47426a683191cc23bbe9783bbebbcbcaed6488d45a0e01b787cd36 SHA512 f51e65743b9f15b491d20bb6c3a0df921cfec29df8bafca36c9dde034b5117fe3f4eedcc258126c6cb1729be1ffde5fcf7e5b0fb0c3de4a618f46ab3cd803e77
DIST quote-1.0.47.crate 31622 BLAKE2B d912f17bdb5f2db29f5349e976e12da52db9d2197dd9900cb00e907d1e9b06ab177e9b020c1d53f6a6cd087e3a973aed5af63eac282da77792b2a6d6e1b35b07 SHA512 544f4324d425ae011905e0d1b52e367d4660bc34457b2f802af94e1def1e6c4e39ffba3beeb40d75753967d15b6dccce18fea273e7f3d46b63d5c89898d19441
@@ -350,6 +399,7 @@ DIST r-efi-5.3.0.crate 64532 BLAKE2B 54bc882e333f7ba52b6dd6ac92b8a282581c10b47de
DIST r-efi-6.0.0.crate 65303 BLAKE2B 79a28aa1e41721ad39ad95837d60a7034f9eedf0f5a32017849e7f4abebf6eb55e79cc144cea52030cade11d6be6fc5ba863e711a74038ffcc67b0d6eef47bfd SHA512 65f8c75c0201c3b922e6bf032ba9e6c648840f60939615565287b9c64d44f3fccbde209d8fe691937949cd76307b59c53801e6bd43ed7b8ada46d5d8fccf7012
DIST rand-0.10.1.crate 105801 BLAKE2B f442da8e90eace94adb0d7a1835d54091b0940d5ac75adf60b337edc1964776c06ed06f0e97fd719d7fce4c187d33d7fdc29fe74d5caea05eb2d81e12bb05882 SHA512 514af678610fd4a2abf7cfb8f9e0d738e600b492dce8dff0d30b5e637de5f84995cde4fc29e7ba4884361693087fe94c27544d2ddfc1960fa724d2e375de9f95
DIST rand-0.10.2.crate 104493 BLAKE2B 3aa9c466444f67d7baefa1ee063a8fb3f63edd0676914596ce904dd2d1675394e1e150fbfc6f2519934ef4e3eee2e090a08ff57104f1a503a8aab2ccc2eeb0c1 SHA512 1c50a5ddceb5cfc0282774ab3252dc76a15d19cfa5d8350064d120ea5264d260beb024f2c86244a58631b4baff5b8c8b03f71a3c857f7c4988e4a81e9f8af387
+DIST rand-0.10.3.crate 105994 BLAKE2B 056ad25a64161bb227b94f7d6f8129ebec3dfa12bc9b38085882840a4bf6fc29a34cf24437dacce12e1f1a5e5bdb8a4f929fdf8c3ae0b353db110c023754631a SHA512 2fe2397bf700ff1c9b495fa8f503e1f8836d4aa34c6e20d407687ae6278d541d84e603f623cd8dc9e5e51a13aa775e4253638c0ee1c2cce887b04273362bb9dd
DIST rand-0.8.6.crate 83339 BLAKE2B 4e1936f76530f1c04d03e0f0028f6688890b8461f65873961bf75a2175a1d64449a7386f0ba4b817bcae28da1c68239bfb96c5b043048eb6e7f4a195e10a9887 SHA512 d7e887b161dd9191cab618efc367364c6bd5b31a55753f63aa08442b370c159673f21b0dbe020880601caed25535bda9e6b59e171699b00191db7668747b712e
DIST rand-0.8.7.crate 84123 BLAKE2B 87f6827df91c8ba4f2fab53127cb27b67bb207856d0707325b18cdeeab3494f9b40daeed0bc059dfa252f97de38d45bf7628d7e1a865a76ee1ed72cd8450c3b9 SHA512 95939e1185d9aaac5d7fc3020e5337fb9b937ea78dbd71ebc9e0b12ec833025dd75c7b56dc9ad8fa67ac3c80add7bf586ef726fa2df615bda5d0cfbe33b31724
DIST rand-0.8.8.crate 84217 BLAKE2B c3c8c0d6ed49f2975f1373630e3eee3cbac6cfe45f8962b1dea1749798f17b23ddbff252cc00a2747e0b9c3048899eaa381976b7db86c16eeb7a139f6f842a83 SHA512 2267a99af194dacf4b2620f7072c848550839c2df7dc078b3eca578d8d251261e6da19a4d25f5597151b483bdba893489d638ee08168104c1114bdafd2498b59
@@ -373,22 +423,31 @@ DIST regex-syntax-0.8.10.crate 358781 BLAKE2B fc7961b2c6e4d297f4dcc73cb3f6a82d7d
DIST regex-syntax-0.8.11.crate 359055 BLAKE2B 5e1cad4cb361ad8231c3bf1d3956658de9d69d4e44120ef5add19d86fe8e1e07e6445db7bb4f532a2313250907c61bc8d4873b0749b1187c367eeecd8c0edfba SHA512 8bf74e8798d935392212e20c249a8bc4a82e8e440cdd65418a403691b33374d28220bafebbddfbf742a3d7070a1fc0fbf6cfffafc585032de1ff082184b67d12
DIST ruff-db5aa0a5f1b92cb91d910bf0866a967554dd94f5.gh.tar.gz 11714136 BLAKE2B 88224a4cb8af3af9b33554b064b88ee145231aa3a1eaf15e8793bb833e89edae27101bc6e8c0bdefd93b390378dc04a2afdb2b4e037707e39b3fc861309c254e SHA512 de0a39fb576adb55310d9b4a1d85bea1a7ea3a51fbc32ddb162dbb900f6fc0ca0b7bed63ffdb316b5e2b166b758cb12a22ab4e95fa76515657ae4114a954a70e
DIST ruff_annotate_snippets-0.0.11.crate 120396 BLAKE2B 718cee980d54cb1bc656e792e30a02f1faf1d301fa6adc96440582843cbded952a52997dec9df3b0856913a8af27fa20dea2af2065cb0a0c9bed609c8c523ffc SHA512 8f4714795663d12a04b0d14c8bccffc70da196d916c673506baca5440caeea83b00c64a6f297c67a13b28c03df5e4a0cb672f4fd662b8b28752c7f9882b6c773
+DIST ruff_annotate_snippets-0.0.14.crate 120385 BLAKE2B b02a34d29d37fb3e5a3514b22b6b26504b157e64dfc7a57f9022ec22a8b57ebdefa82cde4d408823d421213c97cb480b233be96a671e8247e13555d61d21b51c SHA512 75237bfe7a78a186b8d2def81e6d7d912a26e12ad164a8002e8bda2a8e6e5982377adefc22daf5658d2872d28c4aa344afeebbaa0caf745e98acec5df1d77708
DIST ruff_annotate_snippets-0.0.6.crate 46819 BLAKE2B c042b781d676d99be68bd847aaab61cacfb16014faf46684eb295a0242437ed8a8cec8047caa701734bab11c9b027b9d2945212d17b1caaffc932f9a0e326176 SHA512 b8f17392efc59f5dee03c25d3e67b035f33076cd49d009b360d98823b7c2a5760def514b07b4e8646150e37827f8708c31beae9be24f904314f7983234de86e1
DIST ruff_cache-0.0.11.crate 7019 BLAKE2B 64365a0a12d619c6d55f231e6e56fe57f7b8ea946818d5918a61cac09f287b54746d17f7e9acab0cb8db6e4b6adfe992b54eb87bb34d6aa0b6e3f22e772cdbf0 SHA512 0001e8b730c6c2e536d542a90ed389caa93cf7624476d70d978018e6f6f83eeb91ad11573e27cb4fb061e7cf6caba66bbe518293a777f432e3f4995484df4f66
+DIST ruff_cache-0.0.14.crate 7019 BLAKE2B d91d61a7789ac1fbd83d602d4ae6559c770d49a1c4da264a60017b285d7ddcc2fde6c056896c2abd7e0465aef2a240afa5e57636c65353d1cd932d464493360e SHA512 00bf74bcb1ae8547ea618ec29139db47e1bcb280d1fe7872a7a9f9284f9b125a22f6429abac8363918b8aebf3a9763b144bea55638729179384d0d685d79d031
DIST ruff_cache-0.0.6.crate 7025 BLAKE2B 14b13e3150768ac4d64e610c5cd18c83497ddb86fcafa776037614898814a2e65ce6730c96cfb91790325a7d647b7899d484ecad92965985b7fee65719bf132d SHA512 4ff62e95e68dd3d1e2475c8fd7c64a360a569ae7c71f847b022212dcbd0efd63c169bba55efbcd3585a7320dea537223fa8cfa20cdc53b382672fe0b15a23a31
DIST ruff_diagnostics-0.0.11.crate 6909 BLAKE2B ebd4711236307c17b61af106fc955d18c6a31811718ef3382c7093cc57cf2126b781fbd19151efd53608b70fd551ae9737d2c567729f207e47d82fda81b70e7b SHA512 7a2f18db1d2645ab91724db1f7f5531bc7dc89b0f3670058bb82679d308cb815bd6b5ceedf1cde33e2eeb39057d3c457b609a98f9f50dc24a94ef765a381d76e
+DIST ruff_diagnostics-0.0.14.crate 6943 BLAKE2B 226049cbd35d8961175fadf0fc9d97da7b302dc3fdc2eb4bfedf7d60f664f7f213ec1e16379303a564edabf9d1f0004e90c0dda40d8b73cf7e920b2af2888201 SHA512 87a117d24f6cb6b169226a045866f49849374df2f17b87c3b3e8bbe32a0500f60c89c13821ed28fb8adb21973ac8fba5683322587231a61bcc57ae09db46c32d
DIST ruff_diagnostics-0.0.6.crate 6874 BLAKE2B ac49a537ed85315022248138f4dc87f9fb7f506e1b99ebad4c0c67dd9bbe7b1e9d25158e344b54db049ab3d747db6de055329c6409ef2726bdfda304cd295070 SHA512 8e0b9922aca12ab9f4f3ad140de403f6ff78ada5590cbb1c6f03ec1ebc0b5008bf0142c6771413b7329b00f2e7d3373dd85c338f044ec286ea301e4a290c56e4
DIST ruff_notebook-0.0.11.crate 22895 BLAKE2B 1acfa0c2bca5c07023187ec78cc7b17237bde29f1d1b5552b8e545a2df6b635f41aeeedb3ec5968a3be2a92c875378bbf4de6f58c38100db00b68f90cb718fa2 SHA512 d07afff0b9cc5f10d3ccc6dee703b039634efa33927ed8b4747e99d0e37a4bb3dc5582fceee7787951b50148c2079f568b6ce11393a12f70bf47e40b6b641535
+DIST ruff_notebook-0.0.14.crate 22891 BLAKE2B 21583c0db4937c318bebdd3bfcd9088b27f3975559e00ada5a66662dc88b00a56cc735662fcfa690744972e0779c1fd7ebb149e6c9198959ee346862911742be SHA512 34540ae135594b9b47a51ace3ab720151a63332865b1f06f5157bb0e4c7f7077ab0ba77978e3a1c1d3d80217a8720d4c8cf31566ffaca16913954ccb41275bd2
DIST ruff_notebook-0.0.6.crate 22830 BLAKE2B be6423a1369891a197c2ddd4459a8355bffc5cab3328208429e72262b8f7e5e9b3f1c47bc2bf8cee2920de6bcece85807d271c5f03176a8313a6bbe4727c6e4d SHA512 c83d4aa971bdb82c640c806be27e8d270df4b8e6748c143a3fcbf7044786ffe573a04e2783a2070bac12c5bd422eb58bc556dcf297f0fef40c56953e8bbc5f47
DIST ruff_python_ast-0.0.11.crate 144033 BLAKE2B 88171f5d99a15fe43fed4119d3983b54fa6f2965dd9b28e31520f22097b88e2a3c7896fa01d6bb659205215914e275f840cc4ed4cdaaec0859a1c65ffe4296ab SHA512 c4ccb272f22e21038790711d005e87bbbea5ba4d7af8e09e8104264a5d475b4309e37b2a3ef046ec0a1caefd056b5b31aa37edc11a36e00a9a7d083cee0b8434
+DIST ruff_python_ast-0.0.14.crate 145951 BLAKE2B c893313f6d85119f44744337df1c35f2b5f1b93f147476b6776e3aa6cbe0d9bcf4aceae2e93e56bb539dae48edc1eae3d2f0c22a2bad689eb72929b7287bf31c SHA512 8d77bac7d9fcc84c0a9ab4c5c309dde9b7b9cd76fedbf322bdf6152789c7730d3d5041f253be0bcd793d8363b3fbf43fee01a866a4246bb9f94d367964126ef3
DIST ruff_python_ast-0.0.6.crate 142182 BLAKE2B 223c86cd4995a8db082bbdf1a2726226a08728e468bb0d01d21cd285c2d3db323afd7adfb7836b398dba65d6c2ec7b3afbc08d8cd79afdbcf4e34b8d744d2377 SHA512 0e39821b88b7c2b9349343a0818c644cbd225a65a1d1ad88745d399a2cd1e379edfe69fd78bfed98f8cc9e671bf7eeea9b49dbd0f538d91a512f9fb5a722a255
DIST ruff_python_parser-0.0.11.crate 564019 BLAKE2B d5360a93a0671e137340ab73fba9e089e2b00b0c986976a663a8b80e4dc1e04d14462b1e1e005bbdc36ebde830e0136764c14ba7479b8c913dadf27a4b179e7d SHA512 a2889a44c3a963181e30ebdb7821b29aea1e7e5265233015fcc68cd5158af6f5c8517c6c018e1ed14ae973e400c831564ea94abec6fa74562c158ea7bab4fea5
+DIST ruff_python_parser-0.0.14.crate 565564 BLAKE2B 83f5af187274d6c3715315d69a5b62b6d9557da36ba21224ce4489e3759550c858bcb7435ecc5096065cee66e486e0b97eb013177885c68f0887fa0af9816892 SHA512 ab8ad363916034ff0d0485e99f950c306f50aaf2eccd79c2e3935f69b64aca7070e61273d750af060a544660b814c7473dbdaf7e1cf60d5c97f1aad1e83fb669
DIST ruff_python_parser-0.0.6.crate 561779 BLAKE2B 7744291142488553b6ffb89eb7dc72e47d87636b061c6740641094502cbd12330fbb1701e885a1d7999bcc52fac5852320ead995d033eb097ed35e465ad3f033 SHA512 c4ed08f11a3e2dac0c045ba0428ae8f3934538aa03aae41eb03053c3e4cdcdaa4ad615b2231445c109a582d4c6f4fb3a4bb562ce31ccd580cda85c11ea75e2b7
DIST ruff_python_trivia-0.0.11.crate 17480 BLAKE2B c51aadb744354d0117e654d3abbdae3111e3a7daab44b885adea489b5226ddf35a4487f1a4aa8af39439383e246ed09ba6f52010bad778af9a8b3e1f9a33b503 SHA512 5b0adb3373f1a1ae0c8d6dadc2f1950d9273dd379c6c47a483376f3c489e7e5c6ffcfc995b6b77791bc73e28377f7bb5e24caebcafa7d447d1919cac2c34c3c5
+DIST ruff_python_trivia-0.0.14.crate 17479 BLAKE2B 036e95467ac34486d2529ca0e49c818a1a7bff2319e1c91c16725132fe416325b3f79fca7bc567be92e0dd1a44ff287b9eb1d3fa02dd48e47c30bbf439ab76c0 SHA512 61efcd798c50502a26528c0602d3d395a8dea91d1c7b45ebdd2373c08eed47e4e3bb09d1d717081242457e7ee4d63da07764e8cc166245aa85f975d9ecaa79b8
DIST ruff_python_trivia-0.0.6.crate 17453 BLAKE2B 1fcc5382213f9bf841e4e373863a2d505e4479dc444292cbe76a8578132bc92157ce797175560a354c4f6ff38a9ef85e413e102775a510d43035231191c89bbc SHA512 a569c7a5268a89e791f4b1b8d94d4bb9aa4c911fac793d495ba25df1d86f51a20b563b3306ce3929f53475cc45b2dea9c34763d265b6893c48d1c2f3e53a6ea7
DIST ruff_source_file-0.0.11.crate 15666 BLAKE2B b0b802547b9f0004a8542f98985d37e4d4e1124f2d93b287e65515d04a9311fd5e51927bbaac74ae256dc5755f9dffaff0c44f379e2713b449e6954ec1eb587d SHA512 7ce038d19ecfa5c1829c025bdda8c9086d01f5510d9cc5d253685dfc30bad622372ffef3b9a2975908e5c98a21f1a5af1c04a9c50b8943b8800b709239c9a399
+DIST ruff_source_file-0.0.14.crate 15663 BLAKE2B 0a87da06555db2526da8ec97f048b69f8520d9814fa68b70603330bc73559b3dff381d0e09a25bfd1afb3ba20167756f3a4a09ea26e9ed252e96710650b2d2cc SHA512 29f815827da249d27cc372acb5fac90a95b6ef727bdf77531fa676527c1e953bd98ff049c1b43f6d656473c0cf21a33909e6a5545adfdde1cf43f4b0752104c4
DIST ruff_source_file-0.0.6.crate 15709 BLAKE2B 3d10adec91455078e788738052e131ae1d2e3d5f6f23b5ea68667e41971d6cdd818665b86df08ac47cbdfec10c0aefb5f39f0c7cf7c0f7afd018dc977c608bca SHA512 7cf8ef8878d447fbd20591f33101dbecf17d8211a677c0bc76d7e4157870505959e807f0a39d1a1d634aff369c96436902d3b43b7d4cca0f745c67a31fa98c0e
DIST ruff_text_size-0.0.11.crate 12202 BLAKE2B 180e47e7e4e7531d169e39649a811750f8b7dbe8aa41ce9601b253429d15cfae2735c7413b64f94fe92615709af6c4ed6cfc0055a9faa6f282454db06bf37857 SHA512 b8897678d2f2d11d3a044e40c76b12e305243ec254cd57f15ac75b6699ab23141b10a0ba397ef4f13a175a6dddd6286cbfed926ece463d4cfad21bfd076c17ee
+DIST ruff_text_size-0.0.14.crate 12198 BLAKE2B bcf8543e4b777b565eab40ee540deac9c40c66c1f073e3a6f0f80120b65f4a8e9387f9291d90eaf0e97487021ae9b49ccd9d3637c4c462b465edc54bc15f40cc SHA512 0bc7a4175a3d264240de1bef7909e8e2ee66a68342371508b590fb4d07a638108ae57a927970dd6fdfd6265fabeeb397f838283772faf0bd123f3c5f0a466496
DIST ruff_text_size-0.0.6.crate 12133 BLAKE2B 0dc5dc5efd44b2e7d1b3e89fae5d969515ab6e14a4353108deb404088b0fb6f646cd71f40b2c67abe9605a3c7c815783e1beede8285953c9cc6cc267ea15d85d SHA512 9257b0a8ea2caf2c7c208ab041aebd2594b5dc8c6851adb1f7b929b25d5349403bc2a7adc7f74d16c628bacfa7905f67b0ec9484093f37a0cafdb70cfa88285f
DIST rustc-demangle-0.1.27.crate 30448 BLAKE2B c301ebc7d127c679d95dc77798f738263aed592a9d08cc6a5e3f53a4b48fcdb8ddc824550c35c6274093315d71dd720588e1bb7d6145d1e3975dcdef72c45932 SHA512 da827b28e0be62af85b4b5dc15de06d78058bdf19888ebc7c55a46b533d81e2d8ba922bf032bcfa5334c6c43dd5bb272ae9510ffcf9ca2711a284bfbe245fcc4
DIST rustc-demangle-0.1.28.crate 30857 BLAKE2B 31b6d585541db03aca743eca652bdc082de8f9c8231e2304b7c4fd5c902aa6084e5812bd229a859e871b2794d542a87e2129f37fd84edebd642cbf8e2fa84b54 SHA512 dba9b342306c4b1115497a058e605c291476a5ac6745a2ddd1704cc9eec0c5175fcd0c0c937595c043e4e77f70977b014cd5bbd25f9c446f5600e83035631e91
@@ -397,6 +456,7 @@ DIST rustc-hash-2.1.3.crate 14811 BLAKE2B 97f5d4a011d8488d382d34f53a387969e815d2
DIST rustc_version-0.4.1.crate 12245 BLAKE2B 0ed627c560d88e5ade830cc5f72c62f6ba88be3e30d0f8db34761fcd0b284e5b2fc063c240149aabdfb12c8410ecdbe50cb10a3544500b5a020f95a31cd6709c SHA512 7aa8a487ca7411b6d23cae62f7568fa3474a7b1fd1589621071be3428a550ed3b7c4ad68277a8f86849e5900397d7d0e9d678f5d423742a045dc7c660fa6c598
DIST rustix-0.38.44.crate 379347 BLAKE2B 780efaa7c9e7fb78782c552345ead692e4dc87a6e68fe9c972097ed4ef9066b54633c565d4f1b4752e08a1ceceef15ed5d8c11286c7cf17d971648ac5f9d399f SHA512 b7e66a27c9188eff307aa9912852706f686864852a97af0696ac5fc5dccdf2e4d22a69266fa74ac71aa123e2831f24b898b7ee9121850d65cfb56e12bd647d8f
DIST rustix-1.1.4.crate 425241 BLAKE2B d0d710cecb9b20fa755e61a27d23b946a5b860211a9e63f34cfde2012bca2b9cc6952b546444a8a06a97ab8bb5817f87fd7fcdc7e3075640fbdb86f189f7f443 SHA512 33619ed2434963a98b0846414656bcc4945ca0e9b883821869fe0cc86db4a74c6961ce1375963ae49c6b5044ad0536eda807dac1320209739c9d669bd80fd75c
+DIST rustix-1.1.5.crate 425681 BLAKE2B 89bb51007ef46a0f9f10af95fb2486b810bb238ca7f876047dea4c43b444785ae5a32b1447212f18f207b53c7b8a61cd213b338342300b8399b300af65ea295a SHA512 ec72cb0c867b7d184c06e45def67b1e333a5d4b6ae3b3cbce620afd844f3765460832ce907786359b75279b8ea6cfbdae350a8dd197d58eaffff71a3b2e2e08d
DIST rustversion-1.0.23.crate 21013 BLAKE2B 80c4938e8663b095668809e4c81f4621582c4951b8b42eecbecedf5577e7555bf80944b6753101f5f87bba6f9856781e402ffd952600820b1c5830a181066798 SHA512 95baec2c1d8475661677ea35a724c392ed10b1151a1f4522b44133c6d691824bf4a42327ebc9d631a1f64f944dc721843e0aa0e19354fc4fab89aa048f1c68f5
DIST rustversion-3f072e049635b7463275fc4edebbbed3840d9297.gh.tar.gz 19035 BLAKE2B fd3fc701841a8834b927d64bcfb22114c22b29205a25315bdc0268b3044f3570bff5e3bbd73f6648850a0f7759b530e5f379eabcc43cd6d61af91bbd0cd33b5f SHA512 9af1bb39db13cd82e7679b04704793284d27163703c05c25d31696c532c27accfe23e9d65c601df2c343fa4a6e453bc2090931fbad73d7c1800a0290c5551f05
DIST ryu-0.2.8.crate 42798 BLAKE2B 393eba320c417af8d2cc23f5fc2874d7813fc3cd4804f7cba1d374f073f74bda4de8208544f30a5650d21cccad28611c8ab2bbdce15ba63b88d6b17100ac5ea7 SHA512 15a17fa06cb971847386013b7bc80e0483bb30f62062ac1e3200d588cb52771a7d34cdd74aba51de46341d303bd29065cf1f8cdcc17c23576cfadaefe63384b4
@@ -422,16 +482,21 @@ DIST serde_repr-0.1.21.crate 12412 BLAKE2B 5850dbdabee27c893488c3e6798f881485048
DIST serde_spanned-1.1.1.crate 11025 BLAKE2B 24329285e068484b2480d603a6ab7f041f111e03eaaed6db00ac94e36e608c810b7f19040265c51e9d881e65a107cdfde98068b5f1f56dbb8e1fe6677683ac58 SHA512 ed6f0cd52d97985458d530a1ff973aabef8b611a17e739d5011aa50293e4cc994af24992e07ac55e0d2a8fa8d0577ebdba4b42b920cde505e05dadf05382e545
DIST serde_with-3.21.0.crate 205649 BLAKE2B 79eda5bb9d8187af1de4e88528e175fa38d9f591aeefbf5c2d108fca4f001d00e2c8a0230a4ba37e822d7a6699d4178a5f0c9bae251268818810bff29e06d43f SHA512 418ed3a0a445f58eee3fe2ad3db929ac86ac9ec2167791884ce2d3d2e02734cd69367ff6a9678c72d4672d752113090818ac0334bc19c43ba7322eda7986ddd1
DIST serde_with-3.22.0.crate 211486 BLAKE2B ca5405649feb4d882ee47b8b89bf03e6d9c33a98c4b59a5d53f50416b4b405f715f67f7c45817a7ffcec03d84a660b4d24bd7ade526d65914965f5e64ddd11d7 SHA512 cb9bfc7b2eb495a09cbe1bd6645f054a5f518ea94b66ce2687bae83f7ae1de5c89d5491393154fa67900f4fe39fa5cb54b56fc24878970ff02eced8feebb5b30
+DIST serde_with-3.24.0.crate 211568 BLAKE2B b0ab84bcb7364d63db9695b5c7a2b41267e5213b897fa13e64a689fcac0902a8c105339d6f519a57eccb03662cdb6d6a4814ef692fc7f68c3ba252d426b0f2cd SHA512 6fa9fb9d0b46c382651d506d6e9bce48336ebbfb733884fa423b72d3abe49ad3a89d1f6408d59016384d8bf1c76e8842cb25f0197d01b42d26041c2e3e7ca819
DIST serde_with_macros-3.21.0.crate 38159 BLAKE2B c881ff76a66b0acbb223b0fd1955ddd5965c16f51e8b42852942d48acb9e95f6f346e14743ea7206718d4d9b70db1edfc3497363d08a49ea74ffe375215572be SHA512 ca15d96f774a34af02d9dc3ae6b694f947671859feaab93d016070f4f0d1ab8bc589b030689b80eb2cbcbf17112e04842208b903389aa3444ad80ce938a596ef
DIST serde_with_macros-3.22.0.crate 38174 BLAKE2B 29afa3b4ccdba3beecfbb14205ba93a3d3436d6ecb6ca0826fcd1db5dd18720cd1de7b4556702455f45f9554a76a2e27a0903d45771bbd296c6275275d80afbb SHA512 99550dc9b48e74ec104085aec89e50006b9dad0fd4cec48108685be1248c43a0faa74bf4c881699bfe82e9c683133fe7141f3ea219e3a579bd513b521600e380
+DIST serde_with_macros-3.24.0.crate 38082 BLAKE2B 2c416e774b9ae454ff168930b762250f77fd225e54b1f993e0f44e23ad3e3e453bb24c5aa0c3a20f487822d4175b07925eb7f63aef0de9be20c923a6634ed791 SHA512 4e3a9fbc03d4b3aa43ec6425ffa622c5ffcd4bf75a29a59a52eba474bd96b86e20166ddc7160d54f5fdad4593e12787b63b35162503a4ccd76c8ecbf6158dc8b
DIST sha2-0.10.9.crate 29271 BLAKE2B 1d614e0efe085cdb40e05726578a9b4ca6bce93f6d3324f5dc0444cb37054912cdaf5d28d468eac2c0046030d920fced2ccd006953b80865ce8a2d43ef3daa81 SHA512 963adeeb4ed8b0e7fc19085e8721ea13e9b3aea5d115ca1b3dbca495ad14810c6450991dd3753807c293c415aaeb1054b8b4124c72e7090cd9e86f09fcbb4f80
DIST sharded-slab-0.1.7.crate 58227 BLAKE2B 9b4c4e4849ed324cf48c2b905f21139d1d65aa5ab13e7fb11817cac9a32ad09f8dbb1e50a93d40cafa0aba872792bc92f7bd2e219f62f80695409e949c07978b SHA512 3be7438d4a75debb14463477f34de6db1ac38abe958ada5d5dae7ae8d5993e245da69fcb989d91aaaffda5f2b085d4bcc88d10e07ec567b7f40a21437de6d4cb
DIST shlex-2.0.1.crate 19332 BLAKE2B db2b6c5f7f30ad2f968d2dd386d39b362b8d19d7e17fffbb7407d6f35a4e165432b6607f3897c66cf8d32bf6e795ba7297080608c855b796fcf19842f4c509fa SHA512 d1bf35e2c5a93c718d3cc395fc4b06cc0c42d4891c0f37247de7e179492478020f0c57ae74c461d5bb1f833b071fd5c036d8d6d6ab8b61be6140cb64ae525921
DIST signal-hook-registry-1.4.8.crate 21668 BLAKE2B abaed3ca8f07e1631aecaa4bfcc9dea94f2bcd2ab227c9e44d543663392d5e7c7b3beea4d0624ff48637d4fc7544a722ba3d4113d109a77ec1a3b3c0d06580c5 SHA512 6625d842e5040fb15c3a6a03994aabe8b3d0b752773805866858452fb03e5cab2663c89367caa15a34dc0ee7c2b830e302d9be664130c093bdbc17d7b61f045c
+DIST similar-3.2.0.crate 100297 BLAKE2B ab05252abee1d7ef5fe2ce91b2305a6463b263c7e528e56a4e68559696a6fef17f45bad278d2d584d5e20bae05064495ffb272ff1a43c6626ced3a212aedd30c SHA512 d4308622122e803d2d4f7b6d7f2182823837f73f23248a862972af9e7e786bfc204c4889da2f0aa667a54ab48a0d0cac1f7499db490ad89bacbb05b57b773e51
DIST siphasher-1.0.3.crate 11643 BLAKE2B 88046e55d019f0b43e90db9337359b74ccc0023e5274856d5cd83763ecfebfc1ee814d5267caa3bd1db75615a58f909c268a50415c69779cdd5c877823cab16f SHA512 dd0416e6fa8e835c25b10bf93c793c263679d64b8d56288313bf93b989e4a5b271065da11e9af266e9878db7dd73396852e2e9b164aea6c2ad837c8ff0f73bcc
+DIST siphasher-1.0.4.crate 16131 BLAKE2B 87b57cdfee2da4d1e7271f5a026667ef023870ff7738ff8c1f6e250b6511dd307aff79b3d487871775184491ada19c6654b92737e5d338d7edc1a196e362ac0a SHA512 341aeb6d03e2e841b0416fa5fac71bf9716ad10b1417a09b454df9e253b7317da3d2b64ff6ed69f33a4c6d2989f51d19a735237e0454538fa10f942678e282e5
DIST slab-0.4.12.crate 19080 BLAKE2B 785a1b899fe01c8825f24d90b0b0bb31bded234810f59c71b7e44221387de33fcae220a7d0745f59f79c267673b76e7c8d9fa4c0dcbf8fc5d68be6562018d49b SHA512 cf7c971b99b043d8bc102732a109717cbbec114160e4f7cc4009c66739177778623403c33d6a32efd1620e0ac7b8743c36e0e5563082af7f92f1e4caeceea0d9
DIST smallvec-1.15.1.crate 38116 BLAKE2B 8dd779d7726694672945e928399e0459f4973d284a6c2d664c2fc757ebb1177658f47c812d9800e982479cbd7413fd4283c64a4d248ba5cff6397f96b758676e SHA512 c26b097a063353beedfcc921129cd0fb838c1c9420218993a05b2655b47b6ec16f11e0054312018658b4abd893beee140c5d2739401a5e5aea2e64575f237047
DIST smallvec-1.15.2.crate 34899 BLAKE2B 7210d9534e373c4d68db3dad04b9d680e30e7fb01b4beadb58fd4307bb8a59be7f3e8aded3127b86c3051ad34d1690bd18e476ac8e794f5efe9265a70a2334e0 SHA512 8c19ab367289dee2e60c9169f977d66723e219b7e56f8f71b2746bcddd84da7de4d17f32b49233dc87bd897063bee0c8cd679c9bdd0895696a189eb11fa83051
+DIST smallvec-1.16.2.crate 34874 BLAKE2B 66535147385d84068958d2d6a573d93b328c7c29768e4a87eab04f898651f760c48776563c4632f94b09290223ea56b21e839e8082d047246e34dcfcedaf60ef SHA512 672edd712fbc9643cc7a72590eeb6558a372a1ac29bb0f6b71f086c4c89618322cbf72292f1e1fbd06eff2ef1ac48b1c8c8c8a397d5641817f6b21a4d65adc3e
DIST socket2-0.6.4.crate 59888 BLAKE2B 67476a3856ab0d5c5b5699bc67cd1e81f48b3ffb707d16a6f8292bd84218fe1dfa805c05acb2d50a411744d218025597972ebbc93d8efa4fc700b11ea1ee28e4 SHA512 87c45fc297eec8d104e74b0ff324a53cc3885f3faefe6bf477ac39e1c2fb431786a7851c35e5ee0facdca6847cbf000ec4d5817cf74a2133205bb5d0ec550655
DIST socket2-0.6.5.crate 60031 BLAKE2B 5e5e380338615d05d0a42901a05a5323e127919560cb6b5c0ca72645219d40f915724912f103ad4fcdd4a7b5653cf8151c9fee1904427775f19d4e617fbe947d SHA512 eb72b2cb7683cfde4ddc4f6efd64f859738ede22120d40b4498e7ec05bf53429f2c13612a33d8e69089122ede3382eb731d816d40beb0619fcf416dce7cb6575
DIST stable_deref_trait-1.2.1.crate 8186 BLAKE2B 6408959d169d1228c1b0802ef31c850206405f8259168f169aabc91f63683dcdf347ff0e74fb3535ab05d7642889dd2637afbdea389b43b0925e0d6cf441ed67 SHA512 630721d3f8e9f3290efc250c42aba13e2325839e62167a2a611618c18c6aa58c08a53622db61a9aa920284570626b98df26b3c28009cf45b6ce1ec134b9c9f5c
@@ -450,18 +515,23 @@ DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
DIST syn-2.0.119.crate 307407 BLAKE2B 0be3bce1250db4818af7246a03352ab50faeca02b81126fd623bd473d7223693f43914e88e07baa0d7fa5473192e390406165f83e00dbff048c1ea373085eced SHA512 4f2493e334b71c2b0c467e19915d385942c10dc4c0142dd989dcfab9809dea552c45ac3da0b0039956a961f7aca2973c0845c6978e9dfe25c03fdc52dfb1dec0
DIST syn-3.0.3.crate 312999 BLAKE2B ae046c584255201ddd110fc4ddf0ea559838e58b7b7af9b0f6bf07bf8cd73c5871fc1180c54456ccef57d450a326633b90a52ffef0bc608549a0a06f437c82b4 SHA512 59a74d28ae1cec8ee4402c20ec3b77aba8ff8fa3ddef7921509d25e4809474e6f9da86aa78245d8108ed7de6aaa9a0471dabf21ebbcb50a5365f60ad3bb1910b
+DIST syn-3.0.6.crate 313821 BLAKE2B 5c33c101bd1ccd35c0f906b924f5ab6400fc173335da7f83299d0a4fb551c4e29f2a3f11def321db1647d46754fe8afe05faf8d4a544ccba3cf8a009d9e8f5ed SHA512 9c0c411c7300471ce6f34f57c482020d2d93f2a191ded0533b4ec28f7b74510488006535f620434375bc9fe151b1589c8c72654a4ffd759ab9d9f0a52faabb7a
DIST synstructure-0.13.2.crate 18950 BLAKE2B c475f370d901a371262f466dd98e3914dd6f36aa473a33362866c0f781d27b1813233f96b02208f3463a825e8012cab0f8872eed848d9aa0eac88b581a0d261e SHA512 2698f4e80b93f7cf1d8ae97c4c42a7f61e7b7081f7f1bbb94d7f48ab7ae813a666d73c49ba3812cda9155e0138b55cc246fb96e5858e411a8d32bafb3e2b2afb
+DIST synstructure-0.14.0.crate 19010 BLAKE2B f433b737e7e78a7886aa53a3be158cd0d2ee61f06f2534d373173305bfaa2c2e4f5a2bbfd3208eca0d3611e3c589dc921ab2ba211e9f20724f002893a884b903 SHA512 3f7ba6010075ddddd968e177dd1be51566abd7e8e23f1a8f206eee0fb23ee3a8ccc5ad8869fa6c637b93d58fc02daea584cf2b238faeb7c160c2aaae2139ded7
DIST tar-0.4.46.crate 70809 BLAKE2B ac232539dbf4fea1fe903b9669c317daa684fc8b2bde730a7cd0e05d67061547dfe8d121d05533c0de065e3125e8e7f3f9c2753bab9cc623f93aa6e53ab941ed SHA512 7e703def0d0fa16c6fc35e12adc11bb059efd927d7ec9fa3185b4f160fde7fa930c36ac08faf19fde8d2002c1247c30221438e02fdf7c3e304425d68eb8d9e78
DIST tempfile-3.27.0.crate 44780 BLAKE2B 898b8b00613c4617271febdd54dd1e5f66aca54c1e4b60067e508c87c15fe32f0ce2d30b3dd630ecf7083b046d579f31064fa72de09067981c920f4aab86f2ba SHA512 bb20b9b0c5d3301ad05f73f1de538ae240366d9aefa25ca823ba40041a8a11b4a7361a6a9ec03871b14230d42038d7af6d0b652c8c471935b481a1628b59314a
DIST terminal_size-0.4.4.crate 10022 BLAKE2B 217873a3d3ff353e03c8612a4c428570b9ad10f1a01b7ecbf276082716e04934cd5d5a8f8fdf29f6eafa61a7909a4720bfa5b0ca139a4a25365b480dcf0877e9 SHA512 85061564489b4fcb8c5a958c66f6c26de4ac3ef7c95afc38464c0b294e56420a9a5bf533691db2282e6429de5405fe7b6273063c4e79c7c72ed0d00748e6008e
DIST thin-vec-0.2.18.crate 39421 BLAKE2B b9b09b35426a2e0a19dcc952573fefe8b1295612394ce0e915fe1218d08d6f9c3889f5ee72c63d3aa877bace7d1e312409bb7bf594d01cd11b687a2b0816d736 SHA512 3ef785eeddd291cdf8f6a313213a402e221333acbb7d1826ad995fca4ff27f4f5dee844cfacc4904a44606597798d503e552dde24b0e10e6e287718b33320eb1
DIST thin-vec-0.2.19.crate 39711 BLAKE2B 07566ab734a8f19c15556ff8e12591a985978dffcb850af07a0587cad59ea6ee00b7c656ee7f05298abc565357ded3a33908f9e050dedddaa97fe010196d80ad SHA512 94a908d15bb8ac5ea51ebe18d19ff5b49a4cf1b43de57f9aa6f618c8a66b436ea960a268e31c0adcaacc3797c64ee7a3a14a621bd1558f3aaf92ddca385ade60
+DIST thin-vec-0.2.20.crate 40793 BLAKE2B 2ba7d94b6a5f02760c0666d2c0588740c7a9892005fa4309d874a9470873132d7586b77630a760cb0b7b8f6eb403740f4a619f6699ad2988554892c819962554 SHA512 22d3aa8795c909612c5c507b084240f907189da49a182be4536052b8c211cde173ac4d17e4a988c1b95e93119b7bcc1bde1bfac12e011ba0c8dbe283afb00e29
DIST thiserror-1.0.69.crate 22198 BLAKE2B fdd8ca8c8ca78702377d0bf7b253440519018275b105db980d63229d0d44aa5c39a703e14aa6fe453c779b3c864d8044009dfef893d2a5294950f067656d7a80 SHA512 ef50d2867d965da1dfb29d26faf6de273b5fadf78f95313f6caf44d68bfc610b9bd4b7544200b05bb0861231cfc84e961007f8db83c7905244c492037fd31899
DIST thiserror-2.0.18.crate 28875 BLAKE2B 4edeb4a39f27204d417d673dd3e2c1dec67a5bcdf44aeea70a02715b6101da290b5ac1534908001bb7d758528777f5be30b428eaf13cf0d8afffdbece054f3f4 SHA512 5e20261c0f8898574b5668c743d292be1763a78f6431918f33eea2ee2badb40743af4f668ed245ad685a90c3ae23631a2ae8266569d8f1e7dea111f08ef12352
DIST thiserror-2.0.20.crate 28969 BLAKE2B 08c3d1822d7f570ffd7ca21f8cf4e1f6de2c72ba7e69e136ed8bd8823e8eeb031a577b55471ef8efb8b92c41b6c080819363c6e03630a7ef9fb868548338261c SHA512 c58119059a2a204d96876b865744397b6b8a1835ddde4b4db1870b4dda28de0c583f700663723ba456d8ffa3b3aab423a28c945b8b97d13e66313d094f4a7e46
+DIST thiserror-2.0.21.crate 29021 BLAKE2B a59caf3e786d3f2484e7c49f76c1de3fc5062e0c87205999203abb103c1d4575ba8266a0639c3fc0b699b902e5b4fe5314a6eb9fe7564507b21e17f288ac88a8 SHA512 c4e4700fdb2b04af8fca2248b3041c0bbfdd3bd32f619896b5071fd8f9ed1d9a44790c947b4ecfd4a96644253c5e30d2715eed923720b7922d3b19d77b49db0d
DIST thiserror-impl-1.0.69.crate 18365 BLAKE2B 51663251ea6ec99c59aec35fe73c5f9760809d6b6b7eaa8ecbc8f6939acdc4d0ebc11f9034d9204dde7bd689d5e8303ae0be86e298745e9ef96825bf73453a08 SHA512 579eb796c8885feb01d27638862823acd96c79440655bb444c3445ac00121852603396ce7439aed617c0a0ac69f62102167fde5845411c906997574a46d6d9e3
DIST thiserror-impl-2.0.18.crate 21413 BLAKE2B 38d2dd849f6919b2735b23e32250c0750366f2a5ef9dc385262ec00fc8e0cef17ef902211bdacaffef4e59dfcde9ca2d84a0ce4d052a96b4233a21b168e6bfb3 SHA512 52a7b5a98cdc32f7d6911451d75f008599ba3775fecc1f7483b161cc4fa176e5b19659f10abf8189748d769fa23d3a22b774cc5102fce395c6f77a5f107b0553
DIST thiserror-impl-2.0.20.crate 21436 BLAKE2B 25ca3a4a226c9f85fdf83db1d45b4d82c392859ff64944f58e7453ee1a05afe029316d54dec7f4fc6cb303adcb892e51257628cd4f3906c8bde45c723eb7c44a SHA512 080fd52a0248094a4118fd27fb1155efbebd2d7a478fdd821bbdab85fae2a094fbfdada68425af506fc510acd711401e75b9321bcfbe8af0d75b46c2341d1768
+DIST thiserror-impl-2.0.21.crate 21637 BLAKE2B fdc4d589d0d18be78ff2e9165f1a36000321605bd4fa891c38d15a13e2790a2ee107714b1aa763602583cc97a9976a3adbbaffa7b5d5b9f3a2c19edb7ce9e0e5 SHA512 fcea1229a024f2f83ca573ceaad2d2422d0884a35a32e483e43fdbf87a577354ee89aadd230f33f2c759083c939fba145d2cc11256190b24d2add1bfb131ada2
DIST thread_local-1.1.10.crate 16361 BLAKE2B e6b176cd63e218b2605376324c735274ce895fb25d951603cf5e0666f05c7820c19ef49dcec6350c4937a5cba98661be26a5b35259d6763e62bc179088676ec2 SHA512 b448c7c1379fd2d81a317102580b898370861b64418292af5b4a7c3b3f47affabc92f743bd58913e41a1def165e574ea4451f46aa74e71c5aaedaaaee6a5e367
DIST thread_local-1.1.9.crate 19315 BLAKE2B 31151ebc58e76753ef8c15a8b283a2b3a8f833aa4431ff1a28612d6a700088315839abe09a6d582ae0dab824978e2d2b67ec00e46cdbbb4c962fb72788b5368d SHA512 80fc2548bae302f22de10d8240d0701efd64cc41eb48b06234426d40f0e05716132e08a8bfe89e17754d61fee37d3359394cbef8e16af307dbfa76e1524de7d4
DIST tikv-jemalloc-sys-0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.crate 900826 BLAKE2B 402200007671a33bc9f2994d91198866b875b85d95dae5ea139570fb4a80aed9a32930b15a790e29b3cb03e5f2db13b72fc5e415f6b04b5f893a28a0a930ded9 SHA512 01aab571381f9965faf0083240a4b65ea56a39f36feb7b540183e39ca20adec159bea773a79b29172e01ba52b06dba95c9e8b1ec0b62b380f659b0b66cbf7214
@@ -478,19 +548,23 @@ DIST tinystr-0.8.4.crate 25003 BLAKE2B 0cbb568f51dfa4f4fe7c00f8f6f851a7eb9dd8322
DIST tinytemplate-1.2.1.crate 26490 BLAKE2B af39d96f33f63238e455a4e38fde1d1730fd9661ae68be7b05df6ef9d2ab1a04db1332cc4ec9deb6da3a8e22b124df81b0fa8916d8491b808742bb733c8e48be SHA512 0cc080057e096f0796e72004343e1a8332c2e8a12e43f6ade150ebf632e9c29c7ad04de0b940cd57df81efdc4d07a6607da9b86a30d8383e39ac3d7be185edb9
DIST tinyvec-1.11.0.crate 53096 BLAKE2B 58b2a97f9883e557073999502bc3f1b08d075b216b0818beef19336c505926a352d1cdd8e596e929c2068912d2f4967cecc663b3834931bb73d845ffb49c3660 SHA512 5b07b93f5fa38a4e5512ba38a424df38582e5dbf39bec11b8b486d2b5b0726bad9b2c4b43ed1312b2ab6c8debc6bf78c48c05eb9c1c9c8187220f60a3c6f748f
DIST tinyvec-1.12.0.crate 56568 BLAKE2B 477146d38f7f2b396f54814cf87ecfede1d2cf51c9680bbbfb24ded2bac4a7e4469ce42ee46ccf4dda5d467278d7a8e0e6d1bfa67c22dd22dfd3a7cbb79671c2 SHA512 80f60f28fd4629b3321d3b9b5d251307639339b0ff2f5169da498de8181871500169c38a49cdf57cc92d37e0a75870ae6ba35adedfe9ac841c654886977a6ba9
+DIST tinyvec-1.13.3.crate 60306 BLAKE2B ccc96cb828c288fb3ea4047be535eae80c5473c903c877a53dd44d6c10b8176d002ac8cb0be22d37dba3e4348ff30afaef55506c83477afa9286e84bfe148f69 SHA512 30b44dd28fceccdd7bda24967f1774f53a92913f5e6f341ba73190a1f3623d713e1e9d57c590d7766532d74b0358dbd1c91d1b3f46ca9cf2796d17389a03ed71
DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
DIST tokio-1.52.3.crate 901393 BLAKE2B ebaac354c59a86bb2c74e7c4734dcdbf76d25422e0b02ed6db6eaa9de4dc9481882904edac1305ddfaf1e08cf01efed6e05fa9424a291b751c26213d9eb399c9 SHA512 8dd961765d86012be4bc4c24b71b495403aadb5a20fb5ded5e47ae2c49e5f117a793aeba87427edbd67eb885bd91a09d4b2f3def3cdeb1f752156556b291ee50
DIST tokio-1.53.0.crate 918914 BLAKE2B 687887609f1acb5c72208ade3a4afc71f69761421b68227cca8ea20bee42594c428cdfd51fcd8db1caa2bafccaa1d079202fae70ce3e01eb72f393d5c562520a SHA512 bb56db4dfa3ba261c11838e3a1af7c2251a250350f1427d9e6847e6907a017b989436095bde248967fce3a7da927f6ad0b694c8e5f3250bf2a0ae5395803ec40
DIST tokio-1.53.1.crate 920101 BLAKE2B 6ab9ea2aab7e0ce7c60c4ef30abaef74c0aa32ee285e35ec90d4fe3d9465827af6736c16848e4f124b79fe07b48a910cb66bcf780dd6cc50e77a794643408110 SHA512 fa68c75c8a795ec6490eff7d57f585440d58776c2561a37796c4327c20474f2f9ec5a5073d410451301aca7f868e86f55bc0665778ddf7bcb3f065c3f345d592
+DIST tokio-1.53.2.crate 928280 BLAKE2B 03945687a1b7e9fc028f080496942dd8969ff76780c90fd980fc008c3cd8ea46a80d875ccc302cd217a85717fe629ae561d4c49fa885cc6f64fd9014cae5367f SHA512 858ffff0dba8fed829c8021703289abd548b443d82a0c5f6f89d706c99d88748da9205f09f4a842055680f05d6c025a8fd2e824f94e6405adcfa5196e143b9b5
DIST tokio-macros-2.7.0.crate 15859 BLAKE2B 430d68352a433d070dbe80146860179023a01cd8fc7923a55337f48743269dfed914cb69989eda8ff969c74a96b28cd32f0a59caa87d5b2f3e3828d878d0b026 SHA512 c93653ec669b092e928f71ed1e7af8783a5e9899739265389ee24301a0a5a9e2b98c69539937f78926e47c13a36aa70c70eae278ba6c082306e4044a7021c2c7
DIST tokio-macros-2.7.2.crate 16081 BLAKE2B c796b9af27e13ae1d944ea8ba3f9688568b5d58f763e087b9ffe1931eec6e0e717be485b3a7dcd08dff8309a03d58fa31b1883997e37b5d5385e9c11f0077955 SHA512 21dc60bdb05176704b08ed0bf3e474381ee3b6defc13fe7c5820fcc9e876ba7b4b1a915235c8a18f9be896c0917c284ba55c584647c6f30aaab527f947c03187
DIST tokio-util-0.6.10.crate 71140 BLAKE2B 54dae89f8c3886feeccb905d371d9c3f1411fecc398eeb388677e364583fa42ecaa3ea21f10ad76e1873eb91da017ad19ab56befcca81d4e89ebc1253a9bf029 SHA512 0fbf96817b32fe561b26793e599377e9b58c28513e48d0ac070e81f64c0c64fb4d41a626f27b841e88970e8beb75fc2e94a8e9564e63416719756a9d845d8bc1
DIST toml-1.1.2+spec-1.1.0.crate 56327 BLAKE2B 089a3ea3e47f18655db4fac61437135b613241e9df110c72e3e16d2ff782d4d77c6588cf453df0422e6eaf003a75be7f81758c2f8af82663e6280e5543a13026 SHA512 d7b6bae5bfc9163b91f054d36b9960f45bc4f42fabbd4f6d6cd33815863c9114c355bdb5839da61c28adad6d04ee48635401c71a8b9db89ab18a0a04ad9ac261
DIST toml-1.1.3+spec-1.1.0.crate 56358 BLAKE2B ecf3c560ccc977fa3c24077a186daabe9b91e64057db84f6b7254dc1752e457be3eeb9e01825f2bb88642ffea309742f32e4005bba26400a2241042f8999bbbe SHA512 a688160c68baf1d5ca46f6547b18af2681f2355f31c2f7b42fe444a6813631bec40492e00232e2189fb4db815acf7975890510829c3b1fe0c836543155397115
DIST toml-1.1.4+spec-1.1.0.crate 56447 BLAKE2B f1c10760fee15163e7d1c2793a5a7ecfd06c48207f0934a43a330649f2603191bb278b8cbfc1a1ef8c529cb1e4d33bb83a7fdaa5f597da6e21960b57a09f087b SHA512 6f389ff3868896b709fc2e7219252b8feb90735bf82088ffd5365e13b6232777c5e79fd059bc001b9c4a2b877feab99e84762f283a1d94cce39a6782dc2149a2
+DIST toml-1.1.6+spec-1.1.0.crate 55947 BLAKE2B 827d93b54deeaef10f562ec6f9543aa501c554abed55bf152ae2e12acf856fbd298a4d84f9827fc83d0386f93ae800409b274e8b82e3ecc37c3c9bea914bc3ae SHA512 c5a53b18456ca54d55fcdca1241e70ab34c5364e7ab4f54b9c1ffb720bd31906eac456f781df058aa5b8d9c8a94a8b37abd7f4784cae73731d6f85723e3f3c0c
DIST toml_datetime-1.1.1+spec-1.1.0.crate 17982 BLAKE2B 0552b1cd242430876cbe3f1b4209c21d5b8aacf70c3235087dc742bccc55bd0994013b021a48ba69c4a2802bd458eae56cd8a96999f43affefff0a5f6b2958ca SHA512 74e13bc2f616b407d11e445e3a416dc7cd819774a5d747baede2d71ac42573ea29fd77cedd2648ff1b286b879053e764b8ad07cd9e9fe1164f6cc26f12931808
DIST toml_edit-0.25.12+spec-1.1.0.crate 68620 BLAKE2B cefe49f137618db7170589755a5c3a77f6a13feb71611c9bee5b01a703b67454d76a9b6535ff668e0f8b39183b729a5fb300c8e5fb4d9406d0001e1bdef69a5c SHA512 c23c14d54e0fb10cc877633c807f0961b2f8487971567f0873d332c25d2d2b8d172aeb0c936f3250b0beeaa16c0fb9dd1a40cf7e5632fe44e0da513a7381d3f4
DIST toml_edit-0.25.13+spec-1.1.0.crate 68589 BLAKE2B 1a474234ffe2f09eab1860946d62e0756701709f485912eb8d21a17fc337087d0eff807b9e451ff063a92b0522d3ab3a9a9d2f921e239c45ee482e346c9234ee SHA512 a17d707f4bbbdd8f2bc89614dd779e69ef911956f51691480ad34165b89221984f95f321d1ae34499652fe6d5e47763715b81f50661f8803d0b1e2df5bb2262d
+DIST toml_edit-0.25.15+spec-1.1.0.crate 68207 BLAKE2B 15479673911e43fb4b32800f6ccfeff38258693f53c8e46993b038a71f7fc925b23e731952230943e0760acd23f232335526e817a0fc3b40f50320c66ec467e1 SHA512 ab2de29147f29b5c4c78f674017732d90de3a15343f9a7647c42ec53957800459961d666e3db907eb3fc71735996659981e01d68542ba8ea11fb66949a79292a
DIST toml_parser-1.1.2+spec-1.1.0.crate 35485 BLAKE2B b45ff5281d25d002fb9807005f6593e218aed03573d99ec0837ae75e4e19c40cf21759b0813556904d5060e5c8c309bf406485766ba14e9b464771886deece15 SHA512 11d4a5489337f9e2eed3f47b04376b0d00f9962a8fe6fa59518a4b5f0c7886aa8416f4e34ba640102a3abc45fe7ce628d1fc5327a4453dd7866a7f16fb45cd9b
DIST toml_parser-1.1.3+spec-1.1.0.crate 35888 BLAKE2B be644d7de774a2ac2a460acc705a77db5ebb6a6694a39c379816a9be5a315333ef7c59f8d7c66744e629654d386f4e19f3c5d6ac065c0a2c480b663c0a94374b SHA512 1e59ee837016e095f93adb4a6ef63c33adc94c09c005cb68a0ac310c32696e4c342f3eabae9fc4f23d4f0fa1d6a958bbf61938ff214e03830f95e24b6066b164
DIST toml_writer-1.1.1+spec-1.1.0.crate 18841 BLAKE2B ff11963c7dd3469bbb9042d10c9f201aa78d4cec5b0aeb3943d17f2a632243f0bf0358989c618b0bb8cd067827f20e06dfbb1ba54a0d55e1ed1cf45f3c2c2567 SHA512 f8114a147e81c99b7cfff81c9c337b04d27199259cfa853ff1df4f56fd65d7a2d845d90e21ec51c36069b11f7e4b7a6fbcc69a9594954ec032c75998b2480697
@@ -500,8 +574,10 @@ DIST tracing-attributes-0.1.31.crate 39733 BLAKE2B 5a345c85a36414241fa88bb44cfee
DIST tracing-core-0.1.36.crate 63967 BLAKE2B ed35889974aeca741414d425c874232c3d0722aea1740a68f1e2c8054b7dfc11d3c19de078a4a88a189d9a00afecf2eb5bb779a5ef0cffabee7fcfdc6387ecbf SHA512 7cecb6c2f1deeb6d23ab466c376e1c1300dd9226301c112deeb2483eea13f7bb514fe57ece707a8c67450245062060872dd4d7be390462008b369ca3dfc57dc6
DIST tracing-subscriber-0.3.23.crate 213773 BLAKE2B c47dbb00620dfef7b629f5f39549040ba1a7fdb1e511bd57212234396be248c66baddd5b12cfee49bad8bd9aebe9d4e9dd663df7e4e0230047fc028f9c4decc9 SHA512 9d69512c39fe2a4d9f4e27f373e3c79d2b23dc6a8e10e8388c5bba87d6f80048edd1e70541fb4311b9708d53510a53dfe69f32c1e3e36ea85c6dfaafc2c01f74
DIST typenum-1.20.1.crate 105479 BLAKE2B aa3ff221502fb140dd500c302b09279f5d161123093d0f97d7b1a8761ae465ec71f7035109651e483b735121f8267ca2ff21a64825e9a91f83fcce4e7e1192d6 SHA512 ad4768b49dc06808e3135411ffaf21453572d152f71d73c34b7fe5d00e276d3e121dc78ebed57d620cf46b5ab24b5b5e0787f38ad9ce8bd12330b499cbbde5e1
+DIST unicase-2.10.0.crate 24312 BLAKE2B 51e3a63015fabd29e0f25720d75518fb873a370a1f4a64afa9b7c2cdff17335ebaeb44c417478586a313bce3eda80fb5c3bc1ab74e5bbb73120d874e4b049a59 SHA512 a606fc4cc27a1d56559e475b01ddc6ad749f3adcbd139d2adb5439d5ddba5136ad1c884e9846280402bc88306ecd8d73721909d6844fc98ff87b27e6d3851588
DIST unicase-2.9.0.crate 24368 BLAKE2B 6564ceec45d9bbac876cc12015e46f4efb415fdda4a37a62f8dc00ac93fa7a6a643887035caf0c6eb13b07571a2145e393080930fc5d1f71899794a942440409 SHA512 1255c6eb4cb7217f0ccb698f790115d88dac3dae3708832f9cdb135f6cd914b2653048463036bc396d0da0cf415251b53c70e27ad5a1cf39a9bb18d8112aae44
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
+DIST unicode-ident-1.0.26.crate 48425 BLAKE2B d615360eb4874b898657770cd8adcb39350e51dbc76a3109f5e0589a8017b89e19b13a49c0170643cd4988296482bdc293f22437d44f06a1e0af9b76b3a0fa1c SHA512 216d13c655e47dddf888fac997a6345bb7c6d1f0ab6b67ed06bfd9013a891fda8e9e8d71b763639957c15b951145ffd77243ee2056a20ed809d2cae48502c472
DIST unicode-normalization-0.1.25.crate 128462 BLAKE2B 20f8733bdf09bfb5b039f0be20eeb4af657b3cfae520660a107d7310aa58389757cdebcf0e88c6c0036d4ba090b9a97138254695dd8e679dc902c7a9cfda6223 SHA512 265f8088e46d445174cdddba0203457acb329c4ab20b039caccd8739968b50a76f253e2a82ebe3873237fbda1f6228e127f147f546af0512471a368ab0973727
DIST unicode-segmentation-1.13.3.crate 112325 BLAKE2B 4767480bbb171eb9f9cb026c4101c7db58f37ef3d0ba12233c612392b48e1c63efa61e66c321a4bf772dca214794906cfc82bafb87e59a755bb164b0b2304c45 SHA512 927f3d2662c40213c6d824c410e3559f180fba5736abdea566ad9f3ed357c5a82f84f63e7fb89c6b18dfba2903d2dc43663b79d0b9f7672a42926e0ba49c85d1
DIST unicode-width-0.2.2.crate 282768 BLAKE2B c03a04bb159969f32447c7823f50b2686c515dff4f7778d2cac07a87cb9488d44844b0bb0b51c6996d8fa1fcb65cf4e6a8a9e697d95c1be8373535bc8d7c4215 SHA512 a0ff6ccc1d154e5a100808d3109fe30afa048c3ff402f0a0de34dbff2d58a7403903002185b33bee7b04dcb578c9dea66225a8697f3cd997205680ae3abce965
@@ -516,12 +592,17 @@ DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57
DIST uuid-1.23.3.crate 63570 BLAKE2B 60ded22d987145c4b64b664441009f5dba43710fae0193b1b26ee45a7d7b11e12c6469b75e6ccf794601aa90cca5ab0c6285f58c2b140dbf0674b02b627a4a30 SHA512 367cd2fbc96c3b17f8a9080abb6e62d69b0e47c496fbe9ad947f9de6a89ef9f275249bd2b8c09f710a36d7aea0efde7c0bb899156e8e753f77e592dd715380db
DIST uuid-1.24.0.crate 63882 BLAKE2B 548522a652a92aa2732a4a5309da9f94b701af056f8d34ae9e1373e130e367770a3aa9db8729f7d3023ae419c53e636ef3141ab1fbc92f3f6068457d02983098 SHA512 03e613e906a3d3cc6f27495b2bf239ae4cf40dd921a213e5a770c39ca3bdf4109942f75db14382400f0a15bac077cb3457948335ee0eb50add61b2b51c03f701
DIST uuid-1.24.1.crate 63953 BLAKE2B cb4110aec04c6c8d1e8e3b541ab493f583febd482790c3662d082a3b1673aaaa0a9636efcdb38bdcae586dc9181a2e8e24776c4805e5c154c11271b95b84d518 SHA512 1df3eb33c7958ec088987869b7f158969b110118a5f14851fe86ebc1b80064b5d1fd928b5739bf3e2f8e8e9c3e56aca62271ea8b46c003eb07ff9441f355298c
+DIST uuid-1.26.1.crate 65928 BLAKE2B 492e00b0962ffd0511743a6e041d043de57535e8a3576407c0e6e444fb69c5db4f37bc40d481a20c5fb6db001ac2fd401102791cd98f68535f7e8ae299208df8 SHA512 298b8197a7c94d4d70bfe0860e21373421cbd53fb9681190171c71889b4b7de6d7bfa58d4e7ab99ebb4dc8bc718ede946f208eacb1cf9a08d693eef551cb422f
DIST uuid-rng-internal-1.23.3.crate 4111 BLAKE2B 5e1d108850b5cc1934b90aff0458d96d21dd60f2281a7e722e58bcb4d824cffdad34ef64b92a7c8e581eabcdb1c3562799778b3dc4fa97c2727514f55a3c4e95 SHA512 efd290e6288e5b8870a27f8c7d3f68848513a1f3746a5c6c21c55c1b2a7f11d961501a10bd877ab48ff8e0200793f7cc0efaab417ffcf842bebb07287db0f050
DIST uuid-rng-internal-1.24.0.crate 1829 BLAKE2B 11bbf2db7c4a24593c5e0f575e3cf8bb12fafdf914466531bf026330d5d4c2311f869c6231a4b537ea2a4cace71023e0a0e67c47218d82b2de985b73cd5e65c2 SHA512 ec70a4dcbec9869884382ea5b5f5a092b3caabf43f715c48fd68843bfcc23cc76d547c2305b8017dad2cde0715e002391b476584e1bdcd95fb02d3708f60a81c
DIST uuid-rng-internal-1.24.1.crate 1827 BLAKE2B b406683b3b57939e8a1ab5195359ae2b7ae82e6f4c4d0840ca853c6b90366d0a9caf1d0603b992e40000b74a1ba1111b7f5729d8569e459cad6ea277fce574b6 SHA512 378bdfa54370b4c476c9041b52af2902b641cf60805507a1668d4c1635185d79cfcd7bc51d627fdd3cbe54e0ac0a0214c375a43a07642d598c5a28f429086d5e
+DIST uuid-rng-internal-1.26.1.crate 1827 BLAKE2B 09ba786a5dad7f2cee37aed100f42c13a18793821a11aef83ab0168389a8a2b42bb0578a60f7aa8807b5ec03093a00f16b0ae832d4569a17ad3886d06f0c0f64 SHA512 71960d5be8dbfdc6bf5a909a288fdd24707d07878cca55f88313acd184bebab477bce9659abbbc29a418872183115b2d903897e883022fd5a74b72a506abf8e2
DIST uv-cache-key-0.0.76.crate 10356 BLAKE2B 50c05fe2303b6bfe73a0d73fed97b44e6ea56754d9968911b25b31e016766bd8425a8016c356eb03df313945d11601d9713698f9a29c1920901ca14876c6f1dd SHA512 3db4704ccaffd960f9e9a392a4f28246c27d673a74a10b34ffb269709c5c996dffcb032e63677bb69eb408f1642affbd5a0f89cb157e47e24d264ddc95506d00
+DIST uv-cache-key-0.0.87.crate 10384 BLAKE2B c8bf79ebd9e5f138aedcda689a516433477feda35feb50957d6d88895e614c4fba7a5ea96796c60dee5384d19045193eace2bbefe0c062fe3b97124b57c16ef0 SHA512 1e87e9ba1e9a6d3479544c7424ccd347288c900a1f2eca4d80c024e26c5af70f91b8e32ec9abb78167831fe04c26bb48fa88cd556002d6f62640c9db591dc517
DIST uv-pep440-0.0.76.crate 62457 BLAKE2B 8f4b419530be387ea5a45f4315f22d64c3f926490e389837ed310f766c709439da6454f9bd7c9a1fb12dbe56efa8610da8095bdd0c0d0749b421ee2833171ca4 SHA512 f54963920e188d1faed713056499ffa696557dddfc5382137c5f874c7b09fcfd747563cf7c445f53f594d6ba1e23a0869a6057c31bc3f86244ee6958895d6cbf
+DIST uv-pep440-0.0.87.crate 62580 BLAKE2B eb71dddcc47ca1b8c501784224f5a848e9f9faaf5f5601f46cda0819ca8dd70b3e5de78b3cc2ff00dcd93eb2016b8f43f9f05fd2db9c582d32cfe99ff0a7b510 SHA512 459b1454fc08af9e4d1add4a14c1617d7a2af54bfc86b569f7ea52405a7b99213ffe1198343c3948876d536cb1b10cfc43bd93a09725e8dcff308a181f0174ee
DIST uv-redacted-0.0.76.crate 10971 BLAKE2B 43ca536de1a6f5c5c2f0151b1109cfe4bf4b8eb40406d11f19636bd1fb20497979e1b631a602f2733e6090185066580191b0532bcc1a7847311d2656a5fe207c SHA512 b8f3f1be0ce88be4d5513e740f52e959d3c9837801455d8f5f24cb342ae4825e4147e666e43ff4c4446a09380303f916f57c42edfca32373f41a682598a01e6f
+DIST uv-redacted-0.0.87.crate 14168 BLAKE2B 1e0a36a9e7a45bf19bdcc3fca11ee3fa4996b3da08d6ccc4975b7100235260db63f985abcc074ba847f31978127f399e0c0e48e3b48d643dfb29d47dbe8f8ffb SHA512 07a244c4a8256c0077b899ff04afd55190ec09c328fd9613d22935ef0ef630ea7c6e31135ee96f7dd4283f6ab15328b34c70e7323de8c28089924036442c6567
DIST valuable-0.1.1.crate 28679 BLAKE2B 33a68f81cb0448fa737fd7416f2dc1f0e4f171851692e5f759bc375ca8ffbe6eb53912823a59da44228029d379729b669e8213f00928c9b1a182c5d26c0de8bb SHA512 d8a4bffdc8a166d1ee11b87dd91cd68e5c898916b14db7039ad2faaad34f4bfef76f3fc3d17d6e7bf05e495778f7c9d5223fbf45331bd114f93fb6ec950eadbf
DIST vec1-1.12.1.crate 34165 BLAKE2B b941fa0077ff3757eda77f3b295fb505881c10de6a340888ace26a537f913af55a17622947e0d7bb47e7080c4b361fef5e6e0015fe9fd20ad0f4e52a1278bb24 SHA512 4029c43c0bc0c72747954fe64684f33092693bb1bda6b59118d0edd460f1927e849817c27ae71200e5ff2312fbaaf8000edc17dd542a33d3948cf1ad9c9a1e85
DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
@@ -533,24 +614,30 @@ DIST wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.crate 123354 BLAKE2B d8251ea31999f954
DIST wasm-bindgen-0.2.123.crate 67489 BLAKE2B 23172249af62c5044de6a200870ffadb690d969d160bc704bc9a8971945b2b74cc60c23e14d215649f4775ed727c9f974426189e2a5cb93c11112a78c5bdc522 SHA512 e4514b61f5d72c05a633ef03ed791cf665284377548e7ad8034ce77468050aa2040086f19298881e5e3db67a31df39dea1ef32cd507f806722eedbced43daddb
DIST wasm-bindgen-0.2.126.crate 67461 BLAKE2B 69929f4fd69fb3928fd650031a0e9ca96e46ba9318c4d5680be991a81ef82941d875f7a33a59d089e17b014fae8ae54a89376b170b786dfcbf0317e328816ac6 SHA512 3b4a9a7aa13a9e7f9a85592eb7ae88211a1db3754f72a94859127dcd9a117e2363f4edb9a6dc9d3164fb742f78bae193d41a7ee41cd329224d39b8f049441ebe
DIST wasm-bindgen-0.2.127.crate 68138 BLAKE2B 584298cc6fc1cb7f542b85dd16a5fbe598334069d88745f4d67b26534723443b355e15162956d9e3914b1ce1c37348c4ee319a04dcb872a9ee0daef818b45acc SHA512 ae759a04def97e23844858020e59214b660af77d8974de45cea950236df978e47a506f36e28200ac38b2062de3609e361a7e21559f166aa2cd3ab25489a32f4e
+DIST wasm-bindgen-0.2.129.crate 70859 BLAKE2B 9eedeeda57ed080226c3c612e122de72ca04384467ac315061e37181e263aa2f89858aae383337acd50656324abf9612a47d8d4840ebd3c06d130d8a7772d6ce SHA512 337e70b6982e0accf33fb7d63532021410940436de44c39dccc30dc92d47c7233a0d5160aa74c37aa826ff17903fbaea033429dde5b9cd3f331b2919538ebc77
DIST wasm-bindgen-macro-0.2.123.crate 9304 BLAKE2B c5e63c82d580d79eeaeb365c62ceba2ba60d93d39c274b1690a23671cae7e61554a986ecb864d53e464368c56b6fe822ca1390b0ab51e6cfa46fa7c56ecbba12 SHA512 9372fccf13f239cdd63717b88bfc5c1edaaf9436c1de89c32d9bff52265c650abaacceec2f6a229a24e4824c8a8caef9feed30ee7a33d635bec12bb4e933254f
DIST wasm-bindgen-macro-0.2.126.crate 9303 BLAKE2B 024b185a3865445c486f117d4c59573743ded2f20f8fd40ab2143d0247665b9be3198bbb06eb03e68076fbb67c02886a3bc950eb08a23a473110fd814f8d04db SHA512 7e7bf1c4891379ede7969902f2eafd6bcb554de7d84f4160524964b5e6b12a4bf43554d17f878d433410121d1fcc112c01895c6a7f4de24f12d11864d48e4fda
DIST wasm-bindgen-macro-0.2.127.crate 9372 BLAKE2B 145b74723d428edacd6240f2e0b7b197220458bf93b67ce7b61b219d3d6736782c008a81a82ea86198c1a2b1946f2017aad89443101b528107fd3d15ba6ce892 SHA512 8c6a11646864bcd9a1a9e18b3fbacb4d686fe2fe3d4540c4e466150cf36282c8f32edad11c041f4dfbd9b0f48f1bb9e6275915e0cac2c0de3fa45d41c1ac0c87
+DIST wasm-bindgen-macro-0.2.129.crate 9612 BLAKE2B 7e316d050860597f8db2cd4629876439dec11a7aeb7521291adae049ad6ebd4b5d8309f9ab9c2383bf901302a540ec76ac15e83822c2d63a8c3756b1a0773200 SHA512 d5f5be387917df42b8e92ebcf9f1d84029e0d8501ead91b8511dd98880799a449ae30c44d4bb08b07855f9500c0c44f43ccf39dec93761e00f032f32a4703935
DIST wasm-bindgen-macro-support-0.2.123.crate 82676 BLAKE2B e6885aa439c270576b6ae647b92b3c9b9974e882a7793be9cf3e737c9ba417f95110855ce7a0b8a0673437ad1209b6ab2ad85f89b5b33e69cebba9fab5250880 SHA512 06266a09f6a629453b9c7fbe0d16cef72f97616c62f50c0e568b8a1120bbdff06507e6eae780a06cb979b722733ca43e3502e51a8e2706be50498a1318421f2a
DIST wasm-bindgen-macro-support-0.2.126.crate 82688 BLAKE2B 60362b957909f2423d49e1c21a04a9ac51cd467173157cf3e6c937c5d45e07bebc50ac8cc80ff89472a60645b5bd01dde4b01c04208a811a281fe3dd3be56bb8 SHA512 76f3e4d6cb39bdf827f47cf6906b1500e9cb02beb0dce60764ddb134b4b48a0ffeb70a89d35b8b491e261ae76544cb422ae55fcc4a9afadec194359c187dfa31
DIST wasm-bindgen-macro-support-0.2.127.crate 85236 BLAKE2B c70acb2f504761fdd897968742d87a4962c71dfd3eeb49b1e0c02519b975898444c7af94d2d7602664538e304158b5b37622b4a45b8a72932ee787a46290d4d5 SHA512 2fd1bf07d26023b8a612826fb75ff1a85b5082087ca895c7f8e9ed70bd789f251d2a820b9eceb21cabc36c5ebf6a61737a7e9a8858a287ec2970345b8c9cc0e8
+DIST wasm-bindgen-macro-support-0.2.129.crate 120366 BLAKE2B 546b2e9438e61af0875ad9ca809d09698afc1dd30e33d3693cb7bd4da2f4dd71a3a17217610d05354b50b2aa691fe348985ed2283c6958473fde83d7d1aa53c9 SHA512 1ea78197ffb0ef6657310d234d2c3d6481600a4b9f2d1eaa91a040f42ea025641e481fe56a04242cbe92c940c48c4e64efc84b632c9df7482d4b3fa1e2e47002
DIST wasm-bindgen-shared-0.2.123.crate 11285 BLAKE2B ef2b9445fb11adc8912881a8222f03ca2b29ea96b2743a1d4ddc9fb239d43cc5ed4390cfe5147fbbe194bc3b1058f37ae7a43c1277b66c10c6dac5082586a919 SHA512 058025edb1f0c19a62f6a4b610fab42fba8fc06e69579c5ac7fb8989799d1c5d0f42a3a917166b7d8ef081bd4ed552e4ff7d1114d1630839672d10d2b0fcd316
DIST wasm-bindgen-shared-0.2.126.crate 11287 BLAKE2B 054b0f2632193fb2a62549897f2de029510399df3c1a7d8a1732e4b7f24cfabe30f3a554e365dbe0833197ba01400032bc11b01ba36cb1561b4ee05fed2f7d1d SHA512 705b83b8a90b185c94cb62205786c78ab4dd25611e3c6c22ffa2d82d8aa6a9860223b72cd81a6a18a91785bda7b60b2bcc03b29de652cfa095d1c7e49c04c0f4
DIST wasm-bindgen-shared-0.2.127.crate 11291 BLAKE2B 4780a4ddb0a853bcd4a6ee87cd1fcb57ddc50ad05bccf923327fc88bc3a1af7515cbe2e32f6293344ea5167ff13acc33721f505ab8bb23d361514d9470618018 SHA512 9e065a19ef5cfca3c5db95c5d4803e962f8bcc0c8fca4e5a2fe08e8ed16f02d069e99090a267d75a1124833fe9b186a52dcaa3bf6f8f87eed1801a729b7ffb1c
+DIST wasm-bindgen-shared-0.2.129.crate 13023 BLAKE2B cce639af764f0eb5770447c3a8a24fced658b88115804ebd48422ec1a4f8a05e5d01efc9d0dbdfa48786bdf492c1fc900c8cbd80506d34be83d4893b557ed8c9 SHA512 a95891daedf9fcc51210b4cf4df65035ac4594218952cc34b6f982f69e073ec52585afe4e5466651d61ddec5973eab756d10c365199bfb842aa034d2f39ef6a1
DIST wasm-encoder-0.244.0.crate 85804 BLAKE2B 6dabb55c635d13d1d56711a43c655dfcb74bb9f0be10bccd412c21b5dcd63a46b73ff40955ff28aa0fba9341fe22161c8d253762afd587eaf69a7ca49c06e285 SHA512 ab78662abd6bc9edcc14531a87a848eb6c26081ce9bcb9ff15415ceecb48dad98ab6066638947780c65d7689d11502d4dd2353ff3462b4f49e1c1a8c00d2c1d2
DIST wasm-metadata-0.244.0.crate 21500 BLAKE2B 8da1035b6302c23b00792d90153f74f35eb9cbe913366b43ff7e5d81481c903396b32ad54a416a14b40ff8d4ba329c6fda8c203e4b16f1ab80b3bf4535cde72e SHA512 77677c68dafabacc9697c6090d01fdb171c33ca1663c86dcd3612630b2ea6c41232a7cee125ba416d373edb34ea8e0926d164012461e2ddca8d4d18597feb855
DIST wasmparser-0.244.0.crate 265607 BLAKE2B fb982e84536afde140d972614bf6c2875ef169f0b68010393e61d8a1041e57d5355e8f0a57df0681ce4159f830e30a59affbd733656aa9c633ad959225007b11 SHA512 d1a1f549fe93e11cf4155a8f5840fa444505ca9184e28163917bd8ddb1d53cb4d2be0335e183ec24625a7db22dd5d7e22c93c697bdd4de0d537b54af4ed7d834
DIST watchman_client-0.9.0.crate 34077 BLAKE2B ac603a3039150affd094fba66cc69e5d789e9e3fcec27c361a09bddbc5c2f6e59c4c82bcbe3b75cbf7e80923f8953e2f2456841453757d3bd439dc5a6dfa72c6 SHA512 52d8ed427b544ca34a4a7b387205460cc0724d7843585209f1bb51a89bacfa21cd595f0a19b61b2a6468a62d1e825361a42ffc93ea6322bdd8e15a9b15df4b09
DIST web-sys-0.3.103.crate 675560 BLAKE2B 3518e3ea0d808786c1cc5970adae650dfe2953586afb56089e7fddef67f70028cf729a0fca8afd4c3dd6061df4122b4cf49188b65e5f30ea001bd9a2160a249d SHA512 8413b25228ee21fded9f805233dc4a88a448a39507baf899372c993703eb9d221882d42f9084c77d1b3d0dfce22ffc10b4d75574eedc7ae3fc59fe9440abe0e5
DIST web-sys-0.3.104.crate 682013 BLAKE2B 04e0da9899422361d4467b25c1e2de7816790afe33a3f7217a5ca64e4ec7fe6f669aefe85ab4253268b0c9738b955e77e3886b352bdff1f6910d69ed47209a7a SHA512 eb200f973b824fe7236006724a22f316caa507908ef50f142edefcba03bbc2d2c78de0269e58902b46690953355a82d61b76aabfd8bfe25f8657e551b2cc9e37
+DIST web-sys-0.3.106.crate 682645 BLAKE2B 2b4876368968ed9ba0a9c1189f6f12a4c00fd796b64069e2cf7f5a454e914c86902ec44b1d6eb148318b6479c3d09e9b1862383466279260aad25606e1dfa856 SHA512 1d114917ea921cccbcde61ac172c741085219eaa17f99c717961698926d66f870207d8e9d13239a5190629312a8b7d8af8a284a5c80b151a9ad40e303033c0ef
DIST web-time-1.1.0.crate 18026 BLAKE2B cd72e384aca90c79e587448160587531c417f31a32e9ded23e6b78d492d0e517520170fd03177f28870c313b9302b28c32069a2408acccc076a1e4939a2c8f8d SHA512 73e4ef9851de089fde9381a595cb9e37a434f563f1fd350e345f2617b701caf57a9aef739b922b5b10cda131cdf2fd0af42c55603f8973a623a8b6ae70f6cc9f
DIST which-4.4.2.crate 15953 BLAKE2B 40ca22cd2f625cb035a1d919ed457a300b482c7751dcee4441974c53d56ce13f1f502535e1f7c0746a01981f4de2e2f761c3a255902d6353db1a4c3c62637448 SHA512 2d12aa1d4c2dbc140e39c8f15bd4ee1eeb8e8de71bcdf579479ef4be860fb0839eaf4cdb818addba242d50420f6e08acaf2bfc979a889e092c83644819246fd5
DIST which-8.0.5.crate 28193 BLAKE2B 43620059f46ee487438e3e8c562900c80d74e3da9da5fb435d4a7fd3fc8fbee487718ba450478d8c2b48c7e0d079c331c1dac44aca84dbaac776154e18703554 SHA512 f92ab2b9c9267f19505fde896bbc37648b5f83ff873420b6c9a12b4b19ca9dd2ddad437485ce44460946335e51171ecf9ec3c012f5c43d8b58db4c11247b5edb
+DIST which-8.0.6.crate 29053 BLAKE2B a93dcf5caec76b2a8475b28d6b2a4c089fd2f540f6e3523fd9c79e0935c50e802015185b99e5e7e400728caca441541652e4dec1d2151512b1c0d7ff798d62b1 SHA512 833250fb19be43dd9c2825145dd1690c4de18bf77fc8866a55d10f8b4c4c9dfbba9fc925eed16225823a67a5db4e1f7c47ba978de3313ba867de113f67a578a1
DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
DIST winapi-util-0.1.11.crate 13368 BLAKE2B 164f49c84952ece6e566a9a23f32ddf34e16f3930ff531f8d7527bcc18768c9a118cbee748ae6a753a172b4ce8d0f22108142382992b2918b442387ee5904545 SHA512 cc1511c004c2a81da4d7a0414973f09ab711033fbbadfd597f56df2cc6c99b3c1822f0b8de1952e78400a88462b9050acd85d2e4b36db72254049a2d6f725a01
@@ -592,25 +679,35 @@ DIST xattr-1.6.1.crate 15952 BLAKE2B def5f9063d23cd2ba35a902030de550e6093509cd93
DIST xxhash-rust-0.8.15.crate 21515 BLAKE2B 0d82ffaecfedc3001e4273c7cb3211e847c110334c0558099c02c2457ccc1f6381b5b1c9c13ec87236e23f4e5551e3cb09101bca75358481ed7ae8ecb83d4866 SHA512 80a73a93249cfa0043a743e883f078d9e4bbedc236dec239d9f89b6816715c614f212930fe8842f0598275d2676a0e406a1ab7101158c163f50b9d1d00265925
DIST xxhash-rust-0.8.17.crate 23158 BLAKE2B 06855826614c0127408c953e6e6fd5fed3147cc48457f59804d77e7927e8ab5d496b670421fb41b9dd4815f2e8d6ab8aacf490a139aa2179b1ec6aeaa3947695 SHA512 ce63b949ab44da604dd157ff1ea2ad57160e8a9797252ca1ed60719b480239b9fd595e2425afe9a2673b9e511543c716cc1dabdb4549a84dcf87b7bc3ef4a093
DIST xxhash-rust-0.8.18.crate 23473 BLAKE2B e349c69b253e053dcdc8213b5fe40638661ee337de8ef74857f8d7f881828ea201c27c925767cc8eff0eb2ccfa3aa9911791277f50613e5fe8f8cfd5532cda57 SHA512 3a6183620534526d5c535aa5e06c0d6cbb5700a786d87e76437694b5b22ad1500dc273b07d280bec536fdc177245c5326cb775543bc3c315179138d0c23104eb
+DIST xxhash-rust-0.8.19.crate 23487 BLAKE2B 678a8d9a9bb4d2c148cfd61e5d8271cdd6ee64814c6b92b150b7005e7e8ec0eed5fed7258e3b1721b1085110c2a377540f94abeb64df97e5090dd00c4fe08b94 SHA512 795bdea6aecaed88e7eca01d52f6ebf2dd99cac5d6bc3adcd10e380b89c82739245c7e17a6edf63cb68d9a9eb344f134bb1721b09f52992df05fc6700d9582d7
DIST yansi-1.0.1.crate 75497 BLAKE2B c0d396c93a733ed6ec12aca3385d816f39b1f1fbed75da460f491f0cbfc30ba462842ebd1627fa8e5d2b7c0f37913a23747e5f5e23df1cb7c85d965e6c37159b SHA512 182c8c6c60a30a727d8f8b90bbf0527d91fa8ae9d8eb20e5414614b43ee6dc532f4b19241adbfb9299cb0004b39fe627036269b60b0c3860d9e1ea4413aca541
DIST yoke-0.8.3.crate 33132 BLAKE2B 79d0d7d7fa38704d072a5f2543da8ef6baa3e9776857ef8518eca09a0849c80fe889ef6385611d8845ed28cceae39e7a635b66eb18e07b4ccdc07a47089a4bee SHA512 1ce402bb9f3384d29227a2a2fb70c9917ad90b30952db7d0c5f089f8901fc737236760c53f48e5b97550cde95e727d72f416a9483afc591cc5c67f043dd977ca
DIST yoke-derive-0.8.2.crate 15077 BLAKE2B d067fa9c5a9d1978c0a86fa58034b4aaec8815c106aabc4f91d9d1e5c297a03ed287daa35374a2a2c3946e73abb05e159c118014cdb01b9c939f7eae5416bea8 SHA512 ed37289fe2dfcafda13be24b3e4aae1fbbdd6f52c42a1f2d770771f458af0d17b4cbe487941381b4bd692388e9818b45c686bdcd6229918e0f5b6fced1068ca3
+DIST yoke-derive-0.8.4.crate 15054 BLAKE2B bfe662d82b53b53cc6b07e6d830c89887e45594d4ab81fa22e265b438a295b371319b9b7dd26283a6e8c6db194ce75e6b80fcd9a1243ab18374ac127ee92a136 SHA512 63882fa14bd002832d867b9c2ed870a87570da85e286b1eb72fca188f18840b1a79d44ce4a1e1a8d9459c8d2b7b13e2b114c6682686774c74ba40f87bec7adbf
DIST zerocopy-0.8.50.crate 287760 BLAKE2B ae2349c45cb359f679345d629091bcc875d795625c10eff3fedc253e9859ed60da006b9feb5640426e9891f40af4e7ea603f17b69ce8cf03841cedfd8df2ad56 SHA512 a56b07dc578d20e78d16b32a9230754328c24fc31876ac005de34623074435a54edb5d7e31c261826abb0ceea1b3be0aed8953202acd0eb172eb19548912e8ec
DIST zerocopy-0.8.54.crate 284752 BLAKE2B d3e21f448fa37f25d84ce7c3883ab3c5c41a9fef7cb7b77dd920ff43687a2a6f05ef716e6862b7b95053cf85afd669091c5892314b7c51bfd054953f85c9b13e SHA512 b040b530113f327860668680ce3b936fb709596542a80fb979e1c21f3f3b536aa94a850004e129a00335435a5008e2cd733a98a20c7950e96861750f78c1ebfd
DIST zerocopy-0.8.56.crate 284907 BLAKE2B 1a65852357dfe72a304511871cfc748192722be600fa57fc6056c1c4db3db4c6e1454aa1bd60ba1f6e5c7d35609412635b34c65d556849a62c6247f01a64ddfd SHA512 7c9884de059210c2c99098b8241e82b4f23690c0d08389e03637605b822c62903b684666dcec95d33adc4faf2b40c0b81dac6c1ccff9ff3fc9064cde8a2be23d
+DIST zerocopy-0.8.59.crate 287462 BLAKE2B 6ced90014b13e7973910973622402d76efbe2bb2a8dc8ff6034b29c3c96971beea91bb3c0d6c6df1ddcaa7157c3f8053ae08bac8221f08ae1e38c968f2cbc9ed SHA512 ad764935d562230ac4f644fb89efb27528e823b82c4bf853e3d1065f11dd106c50aaabfe8c1614a6a28c9de4429dd9ca802952e876581375e863869bf67f3e47
DIST zerocopy-derive-0.8.50.crate 97640 BLAKE2B f4c72821433e03e4a85ed9c617062e2bb0f8851c7f0378c294ac41e6248653c7a1939c69ff464a87e3a5348d8b1734c6d6d50a3bf2634a7025c251c3a9cd6bff SHA512 15466a372cd1ed262dd5b5961ad574d6383f94938bc1e56cb11e9bd7f9204401e18b5491e16a694b31afa6d70d692a1047e5a5cf2a233fbb8a57667f736ee2a2
DIST zerocopy-derive-0.8.54.crate 98703 BLAKE2B 62367b4acc05efed4ecdfc5c6facbd5678deea70346ee1c526329f30e54ff443d20ea01f2d53874a6a03ab2ab7712130f95130430e580572a040cb1c985b7083 SHA512 ad0c00bbdfd29924eded3201b51fc1f459c00d587c5a94f42e297622122ce19c33439434426f653fe2d328a9d3cbef9ce0d9f72ab3187a5ed749e0a6f9003507
DIST zerocopy-derive-0.8.56.crate 105007 BLAKE2B 4c3fa9f369a0aa63fb660473dbdd064fcefd5bda3cc7985d8acd14cb2e4a4d83e3881eed522bcf15eaf72b887e9aed3a4cea4c9480e049d0369f4ab290b20d27 SHA512 f8cb1afff03cf9ba6773129e627d6992938e752dd3412dc4249b5c8088a2efa604806934b8b19c298791992f5feda17b3084b10b0ae3b9b8594d06d961773665
+DIST zerocopy-derive-0.8.59.crate 137212 BLAKE2B f82b80d4989db34a12b2dd97cd3e03ab4ac7a59072507086fb6d6bc41cd0dee4d01c225912b01bd7412f40b26b89d01929a4140d6a2df0f3581c69496f346ee9 SHA512 d894e5beccbc7190b5c0d9cb1a71eb7df40167474f5bcdea46645c027a5c1d59986d3636603779ecf5c79c7c6789bd829a25e7f60f657e7151ddf7f6d1c2e3b8
DIST zerofrom-0.1.8.crate 6156 BLAKE2B edc4be24f6a3312d2940266493889e24b45ff68b139802f057bc204d21a7dd1cf8c8fc681c4d64ccb3595d37245cf3676f5f80e642574e4abc3b7f2aa3802cea SHA512 a58d39960368594c7f1fb8aac29e8032c079439d1302a40a4b5a2f8d33b8de934f745a77fffa856c371118701c27e3841615dd68b27a838dbf8d6aa7a7744e51
DIST zerofrom-derive-0.1.7.crate 8853 BLAKE2B 26b8932561c7705850ef88f1816141fadfa2077742cf5bb2eb66042cb657f2b3b76a2855cf49c1bb5a934f4147a29a73144fdcbc435c6ca4ff1a562ef103557d SHA512 22de0ee75a7463e6b263f17d91291d2e2800ae0b5066304b24459b58de8e528e36de77dda149d74abdecd26cab58f0ed34aa603b3361f00976929efdb3371da6
+DIST zerofrom-derive-0.1.8.crate 8834 BLAKE2B d5bb129d8a462e7c068d24b3f7cd9e5f91d8d104c0d1a460acba83af9fe838c61835551a7accb05f1962b148633b43c6846b819d44a5bb20379484d3c49d2e82 SHA512 638c34421ddea958f95a0afa4666be7523aa26fcc0e8c91cc2dabdba9f5dd68e3664d62cd6286817394775ab6439c6aaf761787e073f20c7b5ba5f6891cc722e
DIST zerotrie-0.2.4.crate 83690 BLAKE2B 96f443dd0c9501464031426e6aeae9cee78cb604a2c151da4707c21eb317b55b4a415ab28836213d56613e40c5f0911b68b0ea3dcb9c0546ba64d81f4af5ddf2 SHA512 daaa133ef8916a14ee12af2de5e042086d6817822fe498c49fbadd2c03c5512f0adcd5ada268fa5bf70ae2dd23f14245a0f099a37abe09251478303c069a410d
DIST zerotrie-0.2.5.crate 84204 BLAKE2B 74ba85c251755d29032887bce52a596a3e9f0960b1299e17630ad00c90440c6506cb16018a25e2dd5d18901611ec31ab10528b7bb0b7505fd0b3324747feb1be SHA512 8f8d89b62b6b8f58a17e10750511e116a2312c9dbde4d98b27a824119ed2d66a6d2100f4d97a46d0ea61cfe6c097a59670739cf0aaf9ddfa4ea50829a9aad615
DIST zerovec-0.11.6.crate 128583 BLAKE2B 32be3ec333c124894009ff13feadcc6548a93485444eef0d1085a995a55e73a8165e77589b13893a5f6bf585ddad750cf0364e8fa14e00eec239150f14bb0adc SHA512 9a0b22654ce3b76cd5e9bdfbcf8d5344dff4116f37f6e22ee4687677c7fe8a69122a2cc86b0d722ff2040547a810528a5a0d9bb5d8c4ac2d3fa0323dcd18320d
DIST zerovec-0.11.8.crate 130820 BLAKE2B 4022c968fb9676ed10b2108b156326cdb17853443b8e0a6ba64399eda922eb2f5285fbb0e6d285ec7ca18f2d637e0d3f5c1c2c293a436f703e37443781e38ebb SHA512 dc59d370c2b627907f04227511a642466216e6229b8834b518f132a533d7010a16650e32a84d6b335287a43d8998c8b3f7aad685543b88b57c5310e9753aa8ca
DIST zerovec-derive-0.11.3.crate 22115 BLAKE2B 4669526abb7a51d35045bf765017f6070e371aa33d06e66870f043401bd118192b53c422794d08ee2cf9c41e2eb8922a80ed0f450bf3c8c5e78d3f437f984ce2 SHA512 1195cf266a28cf1bdc48a02b2b721f24c785b317dc421475818cc0fe616230bbb91468ab2f67981bf6d3ea2b830eca2e10b85502f622ecb06880e4fff376d29f
DIST zerovec-derive-0.11.5.crate 22870 BLAKE2B 3b2ebb6e9313d539d4ac2f9c847a933a08415b11417da692ece0c160dcce471119bc3fbd8341e9582956167d39858d6efcdfdc30f99606acb760f091a2c3dcc5 SHA512 f24255340c7c26aa8116b6baa6df65aa46a416305f202b87f398de738691973fb345fc65828217d5afb452e3733b05935e36e5f24596847afc9726519d0f4332
+DIST zerovec-derive-0.11.6.crate 23102 BLAKE2B 879195255bc944ccfb1a711d5f3056ef2161cc3a65b815b95eb58c5d83db624cc0d8187f9eaa558f76827bbf2286ba084207bb8155dda33872b2b13d303d3588 SHA512 3044c2bcbdb07df5a6e2b5ce3eb45defb21307ee1acb14d720cd4f0d343c384f70aeda22541f72c247fa1ec9ebacfa1c0f05e4c05f87ef166f97c23ac621859e
DIST zmij-1.0.21.crate 26665 BLAKE2B e958b58e2213ad13185ec6df55d07e6c80169afa56133038fa66cefb4a9f49aa786249a486dc09b2d0a2f74e41c0d0d713135f38a84dff8f6239636a6bf3cadb SHA512 a488f11ec8721ddfe42e61d028a128818551de8fccd69d7824504e4ae2efccdc38f716fa5a10ef4de07a8a087e75e819c4a1e0790817e8539b5db697bde14585
DIST zmij-1.0.23.crate 28612 BLAKE2B 5b1fda50a365ae6bba79ed8444f15dd184d0ba0d7b993c8f119355029b5d7cf6a4fe5d9f36eec722221725ed747cad5108eb707ef14920670ffa45843edcbfec SHA512 12f8d9726b232b6be68cefbe294505debb7a98715c11b95d89682a596fe1a02d9d7b2a6cdba97f2e8d47fa947ffbce9506a18568f2cab749ca3d03121e5fb66d
DIST zstd-0.13.3.crate 30514 BLAKE2B f849d794a4e9157c95d7fcce57551a0fe25098348759086219adab57f37b328e9701b65994da30d8756adf12feae4407f5be92f6c1ca43a57807097520fcd04f SHA512 07e1589ebf2aa169cdc50381f5078012574e3613cc89f3d02914b286d37a9028124c6d40ee8efd75ecc50f31e51a24d2ad0a6e83e669d7dc6477fc43878d4751
+DIST zstd-0.14.0.crate 33824 BLAKE2B 5ae67892c6e47656a8e130532737cf1f1a736329dda238251608810692543bfaee55b80e19141e58f3c1a2a9d927f2df3e1f4dec418546298eccf1fd39ddee33 SHA512 2c2492de0e6d52c2c426b3f9b3f5789662d14f7181c6e361bb49286a16cb831514291d1f747fb007bd436a58e696f384c2559fdb7ceac045c6a0f123376e3bf8
DIST zstd-safe-7.2.4.crate 29350 BLAKE2B d14a28f39faf7ed77b9dc11d79cc3b0b79f904a2cf2e78b184a0e57f02bb4a5c49c71c6693352a4f1e6d4653e570c491d52a4dca80293a7f98f49659d1d2ca82 SHA512 b4f3a4dc63814a2a088e549a0fa0bdeeba3e5ab3416c414207eb9ec1772f8913002f3b94ccf0675b651af94ed12eda427cc90dd40a8e81b3ed565ce80f4db1de
+DIST zstd-safe-7.3.0.crate 26367 BLAKE2B 985673db3c9a6bc8c0f8b44fa7545dc050a1e0cca6ba6f451d0f849a882758b11b296d1f853149766e0f820f3a32954ffd358fdfa42f96c1573e88cb23eafdc2 SHA512 6aae171aa1acc1c141753b834727e30304810ee644585c385e797086d329d895e2472e1272bb43b2dd4f5a874d147350532ece97252e6b8b047b51638f9fd320
+DIST zstd-safe-8.0.0.crate 29475 BLAKE2B 2a44de785b783aac2631a49fad97fe08757816ccf9e157312c8f42720bfd03736a360cd9b2b8b70817b9a88f31b4aaf41c8c7042bd1952b1828ce82ef4627727 SHA512 32dd611415f17c6a113cb48f16dc96ee0f15d7ad71aae367d26b08e4d22efb1b1df2732065ffb737843c0d7553eef2a5d0fcab40deb92416813a1d062dfb5fb8
DIST zstd-sys-2.0.16+zstd.1.5.7.crate 775620 BLAKE2B e2e7e887605e84f9feaef0ce121c52f72620b56b1a892c3cb42ae7630109f37f5a687cb18a5993bd54ea5a18870771edf275330ead43d0db77436e5605669599 SHA512 4bd56e78003a084a27d916ce845f90ae4657725c0f34d56290a8b0c463309e10d2980d1ee6350d6a913cb7906950271ef3da7f25f56b47d02e4b4a5d902ac7ac
+DIST zstd-sys-2.1.0+zstd.1.5.7.crate 781981 BLAKE2B 997f2b5164336dbfd749601a72722a3025080bb037f90b495fb1cc738ce2277a22c7042b8cf0a2b5939162f7f6dbe905183fac299d840a9f71448cce0aadf074 SHA512 8b2c7e666e63bc1550636c90f0917cc2f61fb22f8e6c26679807e5fe647be1bcdf8e8e03c8af058f9c1a08937e976cb36c9032a95d91528b79aa5187e8ad050a
diff --git a/dev-python/pyrefly/pyrefly-1.4.0.ebuild b/dev-python/pyrefly/pyrefly-1.4.0.ebuild
new file mode 100644
index 000000000000..888023c6ffae
--- /dev/null
+++ b/dev-python/pyrefly/pyrefly-1.4.0.ebuild
@@ -0,0 +1,535 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.16.0
+
+EAPI=8
+
+RUST_MIN_VER="1.96.0"
+
+CRATES="
+ addr2line@0.25.1
+ adler2@2.0.1
+ aho-corasick@1.1.5
+ allocative@0.3.6
+ allocative_derive@0.3.6
+ allocator-api2@0.2.21
+ anes@0.1.6
+ anstream@0.6.21
+ anstream@1.0.0
+ anstyle-parse@0.2.7
+ anstyle-parse@1.0.0
+ anstyle-query@1.1.5
+ anstyle-wincon@3.0.11
+ anstyle@1.0.14
+ anyhow@1.0.104
+ append-only-vec@0.1.8
+ approx@0.5.1
+ ar_archive_writer@0.5.3
+ arc-swap@1.9.2
+ argfile@1.0.0
+ arrayref@0.3.9
+ arrayvec@0.7.8
+ atomic@0.5.3
+ attribute-derive-macro@0.10.5
+ attribute-derive@0.10.5
+ autocfg@1.5.1
+ backtrace-on-stack-overflow@0.3.0
+ base64@0.23.1
+ bitflags@1.3.2
+ bitflags@2.13.2
+ blake3@1.8.6
+ block-buffer@0.10.4
+ block-buffer@0.12.1
+ bs58@0.5.1
+ bstr@1.13.1
+ bumpalo@3.20.3
+ byteorder@1.5.0
+ bytes@1.12.1
+ capnp@0.25.6
+ cast@0.3.0
+ castaway@0.2.4
+ cc@1.5.1
+ cfg-if@1.0.5
+ cfg_aliases@0.2.2
+ chacha20@0.10.2
+ char_str@0.0.4
+ chrono@0.4.45
+ ciborium-io@0.2.2
+ ciborium-ll@0.2.2
+ ciborium@0.2.2
+ clap@4.6.7
+ clap_builder@4.6.7
+ clap_complete@4.6.11
+ clap_derive@4.6.7
+ clap_lex@1.1.1
+ cmov@0.5.4
+ codspeed-criterion-compat-walltime@5.0.2
+ codspeed-criterion-compat@5.0.2
+ codspeed@5.0.2
+ collection_literals@1.0.3
+ colorchoice@1.0.5
+ colored@3.1.1
+ compact_str@0.10.0
+ configparser@3.3.0
+ console@0.16.6
+ console_error_panic_hook@0.1.7
+ constant_time_eq@0.4.2
+ convert_case@0.10.0
+ convert_case@0.12.0
+ cpufeatures@0.2.17
+ cpufeatures@0.3.1
+ criterion-plot@0.5.0
+ crossbeam-channel@0.5.17
+ crossbeam-deque@0.8.8
+ crossbeam-epoch@0.9.21
+ crossbeam-utils@0.8.23
+ crunchy@0.2.4
+ crypto-common@0.1.7
+ crypto-common@0.2.2
+ ctor@1.0.13
+ ctutils@0.4.2
+ darling@0.24.1
+ darling_core@0.24.1
+ darling_macro@0.24.1
+ dashmap@6.2.1
+ defmt-macros@1.1.1
+ defmt-parser@1.0.0
+ defmt@1.1.1
+ deranged@0.5.8
+ derivative@2.2.0
+ derive-where@1.7.0
+ derive_more-impl@2.1.1
+ derive_more@2.1.1
+ diff@0.1.13
+ digest@0.10.7
+ digest@0.11.3
+ displaydoc@0.2.7
+ drop_bomb@0.1.5
+ dupe@0.9.1
+ dupe_derive@0.9.1
+ either@1.18.0
+ embedded-io@0.7.1
+ encode_unicode@1.0.0
+ enum-iterator-derive@1.5.0
+ enum-iterator@2.3.0
+ equivalent@1.0.2
+ errno@0.3.14
+ faster-hex@0.6.1
+ fastrand@2.5.0
+ filetime@0.2.29
+ find-msvc-tools@0.1.14
+ foldhash@0.1.5
+ foldhash@0.2.0
+ form_urlencoded@1.2.2
+ fs-err@3.3.2
+ fsevent-sys@4.1.0
+ futures-channel@0.3.34
+ futures-core@0.3.34
+ futures-executor@0.3.34
+ futures-io@0.3.34
+ futures-macro@0.3.34
+ futures-sink@0.3.34
+ futures-task@0.3.34
+ futures-util@0.3.34
+ futures@0.1.31
+ futures@0.3.34
+ fuzzy-matcher@0.3.7
+ fxhash@0.2.1
+ gen-lsp-types@0.11.0
+ generic-array@0.14.7
+ get-size-derive2@0.11.0
+ get-size2@0.11.0
+ getopts@0.2.24
+ getrandom@0.2.17
+ getrandom@0.3.4
+ getrandom@0.4.2
+ gimli@0.32.3
+ glob@0.3.4
+ globset@0.4.20
+ half@2.7.1
+ hashbrown@0.14.5
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ hashbrown@0.17.1
+ heck@0.5.0
+ hermit-abi@0.5.3
+ hex@0.4.3
+ human_bytes@0.4.3
+ hybrid-array@0.4.15
+ icu_collections@2.3.0
+ icu_locale_core@2.3.0
+ icu_normalizer@2.3.0
+ icu_normalizer_data@2.3.0
+ icu_properties@2.3.0
+ icu_properties_data@2.3.0
+ icu_provider@2.3.1
+ id-arena@2.3.0
+ ident_case@1.0.1
+ idna@1.1.0
+ idna_adapter@1.2.2
+ ignore@0.4.33
+ index_vec@0.1.4
+ indexmap@2.14.2
+ indicatif@0.18.6
+ inotify-sys@0.1.8
+ inotify@0.11.5
+ interpolator@0.5.0
+ is-macro@0.3.8
+ is-terminal@0.4.17
+ is_executable@1.0.6
+ is_terminal_polyfill@1.70.2
+ itertools@0.10.5
+ itertools@0.15.0
+ itoa@0.4.8
+ itoa@1.0.18
+ jiff-core@0.1.1
+ jiff-static@0.2.37
+ jiff@0.2.37
+ jobserver@0.1.35
+ js-sys@0.3.106
+ kqueue-sys@1.1.2
+ kqueue@1.2.1
+ lazy_static@1.5.1
+ leb128fmt@0.1.0
+ libc@0.2.189
+ libmimalloc-sys@0.1.49
+ link-section@0.19.3
+ linktime-proc-macro@0.2.3
+ linux-raw-sys@0.12.1
+ litemap@0.8.3
+ lock_api@0.4.14
+ lock_free_hashtable@0.1.4
+ log@0.4.34
+ lsp-server@0.10.0
+ manyhow-macros@0.11.4
+ manyhow@0.11.4
+ maplit@1.0.2
+ matchers@0.2.0
+ memchr@2.8.3
+ memmap2@0.9.11
+ memoffset@0.6.5
+ memory-stats@1.2.0
+ mimalloc@0.1.52
+ miniz_oxide@0.8.8
+ mio@1.2.4
+ nix@0.23.1
+ nix@0.31.3
+ notify-types@2.1.0
+ notify@8.2.0
+ num-bigint@0.5.1
+ num-conv@0.2.2
+ num-integer@0.1.47
+ num-traits@0.2.19
+ object@0.37.3
+ object@0.39.1
+ once_cell@1.21.4
+ once_cell_polyfill@1.70.2
+ oorandom@11.1.5
+ ordermap@1.2.2
+ os_str_bytes@7.2.1
+ parking_lot@0.12.5
+ parking_lot_core@0.9.12
+ parse-display-derive@0.8.2
+ parse-display@0.8.2
+ paste@1.0.15
+ path-absolutize@3.1.1
+ path-dedot@3.1.1
+ pathdiff@0.2.3
+ percent-encoding@2.3.2
+ phf@0.11.3
+ phf_codegen@0.11.3
+ phf_generator@0.11.3
+ phf_shared@0.11.3
+ pin-project-lite@0.2.17
+ pkg-config@0.3.34
+ plotters-backend@0.3.7
+ plotters-svg@0.3.7
+ plotters@0.3.7
+ portable-atomic-util@0.2.8
+ portable-atomic@1.15.0
+ potential_utf@0.1.6
+ powerfmt@0.2.1
+ ppv-lite86@0.2.21
+ pretty_assertions@1.4.1
+ prettyplease@0.2.37
+ proc-macro-utils@0.10.0
+ proc-macro2@1.0.107
+ psm@0.1.29
+ pulldown-cmark-escape@0.11.0
+ pulldown-cmark@0.13.4
+ quote-use-macros@0.8.4
+ quote-use@0.8.4
+ quote@1.0.47
+ r-efi@5.3.0
+ r-efi@6.0.0
+ rand@0.10.3
+ rand@0.8.8
+ rand_chacha@0.3.1
+ rand_core@0.10.1
+ rand_core@0.6.4
+ rayon-core@1.13.0
+ rayon@1.12.0
+ redox_syscall@0.5.18
+ ref-cast-impl@1.0.27
+ ref-cast@1.0.27
+ regex-automata@0.4.18
+ regex-syntax@0.7.5
+ regex-syntax@0.8.11
+ regex@1.13.1
+ ruff_annotate_snippets@0.0.14
+ ruff_cache@0.0.14
+ ruff_diagnostics@0.0.14
+ ruff_notebook@0.0.14
+ ruff_python_ast@0.0.14
+ ruff_python_parser@0.0.14
+ ruff_python_trivia@0.0.14
+ ruff_source_file@0.0.14
+ ruff_text_size@0.0.14
+ rustc-demangle@0.1.28
+ rustc-hash@2.1.3
+ rustc_version@0.4.1
+ rustix@1.1.5
+ rustversion@1.0.23
+ ryu@0.2.8
+ ryu@1.0.23
+ same-file@1.0.6
+ scopeguard@1.2.0
+ seahash@4.1.0
+ semver@1.0.28
+ serde-wasm-bindgen@0.6.5
+ serde@1.0.229
+ serde_bser@0.4.0
+ serde_bytes@0.11.19
+ serde_core@1.0.229
+ serde_derive@1.0.229
+ serde_json@1.0.151
+ serde_jsonrc@0.1.0
+ serde_repr@0.1.21
+ serde_spanned@1.1.1
+ serde_with@3.24.0
+ serde_with_macros@3.24.0
+ sha2@0.10.9
+ sharded-slab@0.1.7
+ shlex@2.0.1
+ signal-hook-registry@1.4.8
+ similar@3.2.0
+ siphasher@1.0.4
+ slab@0.4.12
+ smallvec@1.16.2
+ socket2@0.6.5
+ stable_deref_trait@1.2.1
+ stacker@0.1.25
+ starlark_map@0.14.2
+ static_assertions@1.1.0
+ static_interner@0.1.3
+ statrs@0.18.0
+ strong_hash@0.1.0
+ strong_hash_derive@0.1.0
+ strsim@0.11.1
+ structmeta-derive@0.2.0
+ structmeta@0.2.0
+ syn@1.0.109
+ syn@2.0.119
+ syn@3.0.6
+ synstructure@0.14.0
+ tar@0.4.46
+ tempfile@3.27.0
+ terminal_size@0.4.4
+ thin-vec@0.2.20
+ thiserror-impl@1.0.69
+ thiserror-impl@2.0.21
+ thiserror@1.0.69
+ thiserror@2.0.21
+ thread_local@1.1.10
+ tikv-jemalloc-sys@0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8
+ tikv-jemallocator@0.7.0
+ time-core@0.1.9
+ time@0.3.55
+ tinystr@0.8.4
+ tinytemplate@1.2.1
+ tinyvec@1.13.3
+ tokio-macros@2.7.2
+ tokio-util@0.6.10
+ tokio@1.53.2
+ toml@1.1.6+spec-1.1.0
+ toml_datetime@1.1.1+spec-1.1.0
+ toml_edit@0.25.15+spec-1.1.0
+ toml_parser@1.1.3+spec-1.1.0
+ toml_writer@1.1.2+spec-1.1.0
+ tracing-attributes@0.1.31
+ tracing-core@0.1.36
+ tracing-subscriber@0.3.23
+ tracing@0.1.44
+ typenum@1.20.1
+ unicase@2.10.0
+ unicode-ident@1.0.26
+ unicode-normalization@0.1.25
+ unicode-segmentation@1.13.3
+ unicode-width@0.2.2
+ unicode-xid@0.2.6
+ unicode_names2@1.3.0
+ unicode_names2_generator@1.3.0
+ unit-prefix@0.5.2
+ unscanny@0.1.0
+ url@2.5.8
+ utf8_iter@1.0.4
+ utf8parse@0.2.2
+ uuid-rng-internal@1.26.1
+ uuid@1.26.1
+ uv-cache-key@0.0.87
+ uv-pep440@0.0.87
+ uv-redacted@0.0.87
+ valuable@0.1.1
+ vec1@1.12.1
+ version_check@0.9.5
+ walkdir@2.5.0
+ wasi@0.11.1+wasi-snapshot-preview1
+ wasip2@1.0.4+wasi-0.2.12
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-bindgen-macro-support@0.2.129
+ wasm-bindgen-macro@0.2.129
+ wasm-bindgen-shared@0.2.129
+ wasm-bindgen@0.2.129
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ watchman_client@0.9.0
+ web-sys@0.3.106
+ web-time@1.1.0
+ which@8.0.6
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.11
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-link@0.2.1
+ windows-sys@0.52.0
+ windows-sys@0.60.2
+ windows-sys@0.61.2
+ windows-targets@0.52.6
+ windows-targets@0.53.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_gnullvm@0.53.1
+ windows_aarch64_msvc@0.52.6
+ windows_aarch64_msvc@0.53.1
+ windows_i686_gnu@0.52.6
+ windows_i686_gnu@0.53.1
+ windows_i686_gnullvm@0.52.6
+ windows_i686_gnullvm@0.53.1
+ windows_i686_msvc@0.52.6
+ windows_i686_msvc@0.53.1
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnu@0.53.1
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_gnullvm@0.53.1
+ windows_x86_64_msvc@0.52.6
+ windows_x86_64_msvc@0.53.1
+ winnow@1.0.1
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.51.0
+ wit-bindgen@0.57.1
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ writeable@0.6.4
+ xattr@1.6.1
+ xxhash-rust@0.8.19
+ yansi@1.0.1
+ yoke-derive@0.8.4
+ yoke@0.8.3
+ zerocopy-derive@0.8.59
+ zerocopy@0.8.59
+ zerofrom-derive@0.1.8
+ zerofrom@0.1.8
+ zerotrie@0.2.5
+ zerovec-derive@0.11.6
+ zerovec@0.11.8
+ zmij@1.0.23
+ zstd-safe@7.3.0
+ zstd-safe@8.0.0
+ zstd-sys@2.1.0+zstd.1.5.7
+ zstd@0.13.3
+ zstd@0.14.0
+"
+
+declare -A GIT_CRATES=(
+ [backtrace]='https://github.com/rust-lang/backtrace-rs;df979dcf80027eb047d7bb9e0874710c15009f31;backtrace-rs-%commit%'
+)
+
+inherit cargo
+
+DESCRIPTION="A fast type checker and language server for Python with powerful IDE features"
+HOMEPAGE="
+ https://pyrefly.org/
+ https://github.com/facebook/pyrefly
+ https://pypi.org/project/pyrefly/
+"
+SRC_URI="
+ https://github.com/facebook/pyrefly/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+S="${WORKDIR}/${P}/${PN}"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0
+ CC0-1.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/numpy
+ )
+"
+DEPEND="app-arch/zstd:="
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+
+ local crate crate_patches crate_uri commit crate_dir host
+ for crate in "${!GIT_CRATES[@]}"; do
+ IFS=';' read -r crate_uri commit crate_dir host <<< "${GIT_CRATES[${crate}]}"
+ : "${crate_dir:=${crate}-%commit%}"
+ crate_patches+="${crate} = { path = \"${WORKDIR}/${crate_dir//%commit%/${commit}}\" };;"
+ done
+ printf -- "[patch.crates-io]\\n%s" "${crate_patches//;;/$'\n'}" \
+ >> "${CARGO_HOME}/config.toml"
+}
+
+src_configure() {
+ # zstd-sys https://wiki.gentoo.org/wiki/Project:Rust/sys_crates#zstd-sys
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+
+ cargo_src_configure
+}
+
+src_test() {
+ local -x CONFIG_DOC_PATH="${WORKDIR}/${P}/website/docs/configuration.mdx"
+ local -x ERROR_KINDS_DOC_PATH="${WORKDIR}/${P}/website/docs/error-kinds.mdx"
+
+ local -x TEST_FILES_PATH="${S}/lib/test/lsp/lsp_interaction/test_files"
+
+ local -x PYDANTIC_TEST_PATH="${S}/lib/test/pydantic/third-party"
+ local -x DJANGO_TEST_PATH="${S}/lib/test/django/third-party"
+ local -x FACTORY_BOY_TEST_PATH="${S}/lib/test/factory_boy/third-party"
+ local -x ATTRS_TEST_PATH="${S}/lib/test/attrs/third-party"
+ local -x MARSHMALLOW_TEST_PATH="${S}/lib/test/marshmallow/third-party"
+
+ local -x GLEAN_SNAPSHOTS_PATH="${S}/lib/report/glean/snapshots"
+ local -x REPORT_TEST_PATH="${S}/lib/test/report/test_files"
+ local -x STUBGEN_TEST_PATH="${S}/lib/test/stubgen"
+
+ local -x COVERAGE_TEST_PATH="${S}/lib/test/coverage/test_files"
+ local -x SHAPE_DSL_TEST_PATH="${WORKDIR}/${P}/tensor-shapes"
+
+ cargo_src_test --no-fail-fast
+}
diff --git a/dev-python/pyside/Manifest b/dev-python/pyside/Manifest
index 8190813b0ede..3276ba359cf7 100644
--- a/dev-python/pyside/Manifest
+++ b/dev-python/pyside/Manifest
@@ -1 +1,2 @@
DIST pyside-setup-everywhere-src-6.11.2.tar.xz 18053248 BLAKE2B 128a4c0df55e5b59d84955d2de92429b9ec8795aa2bfcf9fcf077053c4a3c75559734b63027b012d6b2bb655dd465dd31675fdf7d55aef2382303926a113930b SHA512 aefe030d8e2b0d5ae0eb4d7f124c68846b29e7539dee66433719cf5a41c6bcd00d9c494c8300d8f7e7f9f07fdf3c12fb7128496bf98cf384f96eeb4ff6746993
+DIST pyside-setup-everywhere-src-6.12.0.tar.xz 18211772 BLAKE2B 32a38a83e1e630b7fb2252e5a7ef2f731d204585bb77c9535fc6ce1ea1e60061f0e58eae9fc291214ae00968cb3a3a41d287bf7989b4e34a4aeb50c4f9f0c508 SHA512 b7d5e494bc31ced40b27d1911ab495fb7337cfda136b1f1543a45e51458adeda21b4a7c3c6a4fbf0109968cd0692d1ad0875cde23cfaf3108077ec7fd13f5d94
diff --git a/dev-python/pyside/pyside-6.12.0.ebuild b/dev-python/pyside/pyside-6.12.0.ebuild
new file mode 100644
index 000000000000..b9042fde6eb6
--- /dev/null
+++ b/dev-python/pyside/pyside-6.12.0.ebuild
@@ -0,0 +1,602 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# NOTE: We combine here several PyPI packages, we do this because
+# pyside can and does break if it is compiled with a different
+# toolchain then was used to build shiboken. This bundling ensures
+# that we always use the same toolchain for all components.
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+LLVM_COMPAT=( {18..23} )
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+
+inherit distutils-r1 llvm-r2 multiprocessing ninja-utils qt-utils virtualx
+
+MY_PN=${PN}-setup-everywhere-src
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+
+if [[ ${PV} == *.9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI=(
+ "https://code.qt.io/${PN}/${PN}-setup.git"
+ "https://github.com/qtproject/${PN}-${PN}-setup.git"
+ )
+ EGIT_BRANCH=dev
+ [[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
+else
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="|| ( GPL-2 GPL-3 LGPL-3 )"
+QT_SLOT="$(ver_cut 1)"
+SLOT="${QT_SLOT}/${PV}"
+
+# If a flag enables multiple Qt modules, they should be ordered
+# according to their dependencies, e.g. for 3d, 3DCore must be first.
+# Widgets for various modules are handled as a special case later
+declare -gA QT_MODULES=(
+ ["3d"]="3DCore 3DRender 3DLogic 3DInput 3DAnimation 3DExtras"
+ ["bluetooth"]="Bluetooth"
+ ["charts"]="Charts"
+ ["+concurrent"]="Concurrent"
+ ["+core"]="Core"
+ ["+dbus"]="DBus"
+ ["designer"]="Designer"
+ ["graphs"]="Graphs" # plus widgets
+ ["+gui"]="Gui"
+ ["help"]="Help"
+ ["httpserver"]="HttpServer"
+ ["location"]="Location"
+ ["multimedia"]="Multimedia" # plus widgets
+ ["network-auth"]="NetworkAuth"
+ ["+network"]="Network"
+ ["nfc"]="Nfc"
+ ["+opengl"]="OpenGL" # plus widgets
+ ["pdfium"]="Pdf" # plus widgets
+ ["positioning"]="Positioning"
+ ["+printsupport"]="PrintSupport"
+ ["qml"]="Qml"
+ ["quick3d"]="Quick3D"
+ ["quick"]="Quick" # plus widgets
+ ["remoteobjects"]="RemoteObjects"
+ ["scxml"]="Scxml"
+ ["sensors"]="Sensors"
+ ["serialbus"]="SerialBus"
+ ["serialport"]="SerialPort"
+ ["spatialaudio"]="SpatialAudio"
+ ["+sql"]="Sql"
+ ["svg"]="Svg" # plus widgets
+ ["speech"]="TextToSpeech"
+ ["+testlib"]="Test"
+ ["uitools"]="UiTools"
+ ["webchannel"]="WebChannel"
+ ["webengine"]="WebEngineCore" # plus widgets and quick
+ ["websockets"]="WebSockets"
+ ["webview"]="WebView"
+ ["+widgets"]="Widgets"
+ ["+xml"]="Xml"
+)
+
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep -E '(set|list).*_deps' sources/pyside6/PySide6/Qt*/CMakeLists.txt
+declare -gA QT_REQUIREMENTS=(
+ ["3d"]="gui network"
+ ["bluetooth"]="core"
+ ["charts"]="core gui widgets"
+ ["concurrent"]="core"
+ ["dbus"]="core"
+ ["designer"]="widgets"
+ ["gles2-only"]="gui"
+ ["graphs"]="core network gui qml quick quick3d"
+ ["gui"]="core"
+ ["help"]="widgets"
+ ["httpserver"]="core concurrent network websockets"
+ ["location"]="core positioning"
+ ["multimedia"]="core gui network"
+ ["network-auth"]="network"
+ ["network"]="core"
+ ["nfc"]="core"
+ ["opengl"]="gui"
+ ["pdfium"]="core gui network"
+ ["positioning"]="core"
+ ["printsupport"]="widgets"
+ ["qml"]="network"
+ ["quick"]="gui network qml"
+ ["quick3d"]="gui network qml quick"
+ ["remoteobjects"]="core network"
+ ["scxml"]="core"
+ ["sensors"]="core"
+ ["serialbus"]="core network serialport"
+ ["serialport"]="core"
+ ["spatialaudio"]="core gui network multimedia"
+ ["speech"]="core multimedia"
+ ["sql"]="widgets"
+ ["svg"]="gui"
+ ["testlib"]="widgets"
+ ["uitools"]="widgets"
+ ["webchannel"]="core"
+ ["webengine"]="core gui network printsupport webchannel"
+ ["websockets"]="network"
+ ["webview"]="gui quick webengine"
+ ["widgets"]="gui"
+ ["xml"]="core"
+)
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep 'check_qt_opengl' sources/pyside6/PySide6/Qt*/CMakeLists.txt
+declare -ga CONDITIONAL_OPENGL=(
+ 3d graphs quick
+)
+
+IUSE="${!QT_MODULES[*]} debug doc gles2-only numpy test tools"
+RESTRICT="!test? ( test )"
+
+# majority of QtQml tests require QtQuick support
+REQUIRED_USE="
+ test? (
+ qml? ( quick )
+ )
+"
+for requirement in "${!QT_REQUIREMENTS[@]}"; do
+ REQUIRED_USE+=" ${requirement}? ( ${QT_REQUIREMENTS[${requirement}]} ) "
+done
+
+# Minimal supported version of Qt.
+QT_PV="$(ver_cut 1-3)*:${QT_SLOT}"
+
+# USE="tools" is heavily automagic based on what other qt tools are installed at build time.
+
+# WebEngine needs sound support, so enable either pulseaudio or alsa
+RDEPEND="
+ dev-libs/libxml2:=
+ dev-libs/libxslt
+ =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl=,sql?,widgets?,xml?]
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ ')
+ 3d? ( =dev-qt/qt3d-${QT_PV}[qml?,gles2-only=] )
+ bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
+ charts? ( =dev-qt/qtcharts-${QT_PV} )
+ designer? ( =dev-qt/qttools-${QT_PV}[designer,widgets,gles2-only=] )
+ graphs? ( =dev-qt/qtgraphs-${QT_PV}[quick3d] )
+ gui? (
+ =dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
+ x11-libs/libxkbcommon
+ )
+ help? ( =dev-qt/qttools-${QT_PV}[assistant,gles2-only=] )
+ httpserver? ( =dev-qt/qthttpserver-${QT_PV} )
+ location? ( =dev-qt/qtlocation-${QT_PV} )
+ multimedia? ( =dev-qt/qtmultimedia-${QT_PV}[widgets(+)?] )
+ network? ( =dev-qt/qtbase-${QT_PV}[ssl] )
+ network-auth? ( =dev-qt/qtnetworkauth-${QT_PV} )
+ nfc? ( =dev-qt/qtconnectivity-${QT_PV}[nfc] )
+ numpy? ( >=dev-python/numpy-2.1.3[${PYTHON_USEDEP}] )
+ pdfium? ( dev-qt/qtwebengine:${QT_SLOT}[pdfium(-),widgets?] )
+ positioning? ( =dev-qt/qtpositioning-${QT_PV} )
+ printsupport? ( =dev-qt/qtbase-${QT_PV}[gui,widgets] )
+ qml? ( =dev-qt/qtdeclarative-${QT_PV}[opengl?,widgets?] )
+ quick3d? ( =dev-qt/qtquick3d-${QT_PV}[opengl?] )
+ remoteobjects? ( =dev-qt/qtremoteobjects-${QT_PV} )
+ scxml? ( =dev-qt/qtscxml-${QT_PV} )
+ sensors? ( =dev-qt/qtsensors-${QT_PV}[qml?] )
+ speech? ( =dev-qt/qtspeech-${QT_PV} )
+ serialbus? ( =dev-qt/qtserialbus-${QT_PV} )
+ serialport? ( =dev-qt/qtserialport-${QT_PV} )
+ svg? ( =dev-qt/qtsvg-${QT_PV} )
+ testlib? ( =dev-qt/qtbase-${QT_PV}[gui] )
+ tools? (
+ =dev-qt/qtbase-${QT_PV}
+ =dev-qt/qtdeclarative-${QT_PV}[qmlls]
+ =dev-qt/qttools-${QT_PV}[assistant,designer,linguist]
+ dev-python/pkginfo[${PYTHON_USEDEP}]
+ )
+ uitools? ( =dev-qt/qttools-${QT_PV}[gles2-only=,widgets] )
+ webchannel? ( =dev-qt/qtwebchannel-${QT_PV} )
+ webengine? (
+ || (
+ dev-qt/qtwebengine:${QT_SLOT}[alsa,widgets?]
+ dev-qt/qtwebengine:${QT_SLOT}[pulseaudio,widgets?]
+ )
+ )
+ websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
+ webview? ( =dev-qt/qtwebview-${QT_PV} )
+ !dev-python/pyside:0
+ !dev-python/shiboken6
+ !dev-python/pyside6-tools
+"
+
+DEPEND="${RDEPEND}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ ')
+ dev-util/vulkan-headers
+ test? ( =dev-qt/qtbase-${QT_PV}[gui] )
+" # testlib is toggled by the gui flag on qtbase
+
+BDEPEND="
+ dev-build/cmake
+ dev-python/distro[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ dev-util/patchelf
+ doc? (
+ >=dev-libs/libxml2-2.6.32
+ >=dev-libs/libxslt-1.1.19
+ media-gfx/graphviz
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ test? ( dev-python/pkginfo[${PYTHON_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.10.0-dont-vendor-ffmpeg.patch"
+ "${FILESDIR}/${PN}-6.10.1-pass-ninja-opts.patch"
+ "${FILESDIR}/${PN}-6.11.0-find-cmake-helpers.patch"
+ "${FILESDIR}/${PN}-6.11.2-fix-llvm-version.patch"
+)
+
+# Build system duplicates system libraries. TODO: fix
+QA_PREBUILT=(
+ "/usr/lib/python*/site-packages/PySide6/*"
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # Shiboken6 assumes Vulkan headers live under either "$VULKAN_SDK/include"
+ # or "$VK_SDK_PATH/include" rather than "${EPREFIX}/usr/include/vulkan".
+ sed -i -e "s~\bdetectVulkan(&headerPaths);~headerPaths.append(HeaderPath{QByteArrayLiteral(\"${EPREFIX}/usr/include/vulkan\"), HeaderType::System});~" \
+ sources/shiboken6_generator/ApiExtractor/clangparser/compilersupport.cpp || die
+
+ # Shiboken6 assumes the "/usr/lib/clang/${CLANG_NEWEST_VERSION}/include/"
+ # subdirectory provides Clang builtin includes (e.g., "stddef.h") for the
+ # currently installed version of Clang, where ${CLANG_NEWEST_VERSION} is
+ # the largest version specifier that exists under the "/usr/lib/clang/"
+ # subdirectory. This assumption is false in edge cases, including when
+ # users downgrade from newer Clang versions but fail to remove those
+ # versions with "emerge --depclean". See also:
+ # https://github.com/leycec/raiagent/issues/85
+ #
+ # Sadly, the clang-* family of functions exported by the "toolchain-funcs"
+ # eclass are defective, returning nonsensical placeholder strings if the
+ # end user has *NOT* explicitly configured their C++ compiler to be Clang.
+ # PySide6 does *NOT* care whether the end user has done so or not, as
+ # PySide6 unconditionally requires Clang in either case. See also:
+ # https://bugs.gentoo.org/619490
+ sed -e \
+ 's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${LLVM_SLOT}"'/include"))~' \
+ -i sources/shiboken6_generator/ApiExtractor/clangparser/compilersupport.cpp || die
+
+ sed -e \
+ 's~set(libclang_directory_suffix "lib")~set(libclang_directory_suffix "'"$(get_libdir)"'")~' \
+ -i sources/shiboken6/cmake/ShibokenHelpers.cmake || die
+
+ # blacklist.txt works like XFAIL
+ cat <<- EOF >> build_history/blacklist.txt || die
+ # no mypy
+ [pysidetest::mypy_correctness_test]
+ linux
+ # Tries to execute pip install
+ [pyside6-deploy::test_pyside6_deploy]
+ linux
+ [pyside6-android-deploy::test_pyside6_android_deploy]
+ linux
+ # FIXME: timeout, complains about wayland
+ [pysidetest::new_inherited_functions_test]
+ linux
+ EOF
+
+ if ! use numpy; then
+ cat <<- EOF >> build_history/blacklist.txt || die
+ # Requires numpy support to pass
+ [sample::array_numpy]
+ linux
+ [sample::nontypetemplate]
+ linux
+ [QtGui::qpainter_test]
+ linux
+ [QtCore::qrangemodel_test]
+ linux
+ [QtGraphs::qgraphs_numpy_test]
+ linux
+ EOF
+ fi
+}
+
+python_configure_all() {
+ export LLVM_INSTALL_DIR="$(get_llvm_prefix)"
+
+ # see pyside-6.10.1-pass-ninja-opts.patch
+ export NINJAOPTS="$(get_NINJAOPTS)"
+
+ ENABLED_QT_MODULES=()
+
+ # The order matters, dependencies must come first so process
+ # REQUIRED_USE and recursively enable modules
+ enable_qt_mod() {
+ local flag=${1}
+ local modules=${QT_MODULES[${flag}]}
+ if [[ -z ${modules} ]]; then
+ die "incorrect flag=${flag}, not registered"
+ fi
+ local dependencies=${QT_REQUIREMENTS[${flag//+}]}
+ if [[ -n ${dependencies} ]]; then
+ local depflag
+ for depflag in ${dependencies}; do
+ if use "${depflag}"; then
+ if [[ -z ${QT_MODULES[${depflag}]} ]]; then
+ depflag=+${depflag}
+ fi
+ enable_qt_mod "${depflag}"
+ else
+ die "${depflag} is required but not enabled"
+ fi
+ done
+ if use opengl && [[ ${CONDITIONAL_OPENGL[@]} =~ ${flag//+} ]]; then
+ # match key in QT_MODULES
+ enable_qt_mod "+opengl"
+ fi
+ fi
+ if [[ "${ENABLED_QT_MODULES[*]}" != *${modules}* ]]; then
+ # modules is whitespace separated. We expand implicitly.
+ ENABLED_QT_MODULES+=( ${modules} )
+ fi
+ }
+ # Enable specified qt modules
+ local flag
+ for flag in "${!QT_MODULES[@]}"; do
+ if use "${flag//+}"; then
+ enable_qt_mod "${flag}"
+ fi
+ done
+
+ # Special cases
+ if use widgets; then
+ use multimedia && ENABLED_QT_MODULES+=( MultimediaWidgets )
+ use opengl && ENABLED_QT_MODULES+=( OpenGLWidgets )
+ use pdfium && ENABLED_QT_MODULES+=( PdfWidgets )
+ use quick && ENABLED_QT_MODULES+=( QuickWidgets )
+ use graphs && ENABLED_QT_MODULES+=( GraphsWidgets ) # requires QuickWidgets
+ use svg && ENABLED_QT_MODULES+=( SvgWidgets )
+ use webengine && ENABLED_QT_MODULES+=( WebEngineWidgets )
+ fi
+ if use quick; then
+ use webengine && ENABLED_QT_MODULES+=( WebEngineQuick )
+ use testlib && ENABLED_QT_MODULES+=( QuickTest )
+ use qml && ENABLED_QT_MODULES+=( QuickControls2 )
+ fi
+
+ # Arguments listed in options.py
+ MAIN_DISTUTILS_ARGS=(
+ --cmake="${ESYSROOT}/usr/bin/cmake"
+ --ignore-git
+ --limited-api=no
+ --module-subset="$(printf '%s,' "${ENABLED_QT_MODULES[@]}")"
+ --no-strip
+ --no-size-optimization
+ --openssl="${ESYSROOT}/usr/bin/openssl"
+ --qt="$(ver_cut 1-3)"
+ --qtpaths="$(qt_get_bindir ${QT_SLOT})/qtpaths"
+ --log-level=verbose
+ --parallel="$(makeopts_jobs)"
+ "$(usex debug "--debug" "--relwithdebinfo")"
+ "--$(usex doc "build" "skip")-docs"
+ "--$(usex numpy "enable" "disable")-numpy-support"
+ )
+
+ if use test; then
+ MAIN_DISTUTILS_ARGS+=(
+ "--build-tests"
+ "--use-xvfb"
+ )
+ fi
+
+ if ! use tools; then
+ MAIN_DISTUTILS_ARGS+=(
+ "--no-qt-tools"
+ )
+ fi
+}
+
+python_compile() {
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --build-type=shiboken6-generator
+ )
+ distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir
+ read -r pyside_build_dir < <(
+ find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" \
+ -maxdepth 1 -type d -name 'qfp*-py*-qt*-*' -printf "%f\n"
+ )
+ export pyside_build_id="${pyside_build_dir#"qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-"}"
+ export PYTHONPATH="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package:${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install/lib/${EPYTHON}/site-packages:${PYTHONPATH}"
+
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6_generator"
+ --build-type=shiboken6
+ )
+ distutils-r1_python_compile
+ export PYTHONPATH="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package:${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install/lib/${EPYTHON}/site-packages:${PYTHONPATH}"
+
+ # Copy shiboken6_generator files to shiboken6 package so we can reuse the shiboken-target-path
+ rsync -ur "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-2))/${pyside_build_dir}/package/shiboken6_generator/"* \
+ "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6/" || die
+ ln -s shiboken6 \
+ "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6_generator" || die
+
+ # If no pyside modules enabled, build just shiboken
+ if [[ ${#ENABLED_QT_MODULES[@]} -gt 0 ]]; then
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6"
+ --build-type=pyside6
+ )
+ distutils-r1_python_compile
+ export PYTHONPATH="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package:${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install/lib/${EPYTHON}/site-packages:${PYTHONPATH}"
+ fi
+
+ # Link libraries to the usual location for backwards compatibility
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)" >/dev/null ||
+ die
+ mkdir -p "${BUILD_DIR}/install/usr/$(get_libdir)" || die
+ local lib
+ for lib in */*.cpython-*.so
+ do
+ local base=${lib##*/}
+ ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so" ||
+ die
+ done
+ for lib in */*.cpython-*.so."$(ver_cut 1-2)"
+ do
+ local base=${lib##*/}
+ ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so.$(ver_cut 1-2)" ||
+ die
+ done
+ for lib in */*.so*; do
+ ln -s "../../$(python_get_sitedir)/${lib}" \
+ "${BUILD_DIR}/install/usr/$(get_libdir)/${lib#*/}" || die
+ done
+ popd >/dev/null || die
+
+ # Symlinks for compatibility with pypi wheels
+ local dir
+ if [[ -d ${BUILD_DIR}/install/$(python_get_sitedir)/PySide6 ]]
+ then
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)/PySide6" \
+ >/dev/null || die
+ mkdir -p "${BUILD_DIR}/install/usr/share/PySide6" || die
+ for dir in doc glue typesystems; do
+ ln -s "../../../$(python_get_sitedir)/PySide6/${dir}" \
+ "${BUILD_DIR}/install/usr/share/PySide6/${dir}" ||
+ die
+ done
+ popd >/dev/null || die
+ fi
+ mkdir -p "${BUILD_DIR}/install/usr/include"
+ for dir in PySide6 shiboken6 shiboken6_generator; do
+ if [[ -d ${BUILD_DIR}/install/$(python_get_sitedir)/${dir}/include ]]
+ then
+ ln -s "../../$(python_get_sitedir)/${dir}/include" \
+ "${BUILD_DIR}/install/usr/include/${dir//_generator}" ||
+ die
+ fi
+ done
+
+ # Install misc files from inner install dir
+ find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install -type f \
+ -name libPySidePlugin.so -exec \
+ mkdir -p "${BUILD_DIR}/install/$(qt_get_plugindir ${QT_SLOT})/designer/" \; \
+ -exec \
+ cp "{}" "${BUILD_DIR}/install/$(qt_get_plugindir ${QT_SLOT})/designer/" \; \
+ || die
+
+ for dir in cmake pkgconfig; do
+ find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install/lib -type d -path "*/lib/${dir}" \
+ -exec cp -nr "{}" "${BUILD_DIR}/install/usr/lib/" \; \
+ || die
+ done
+
+ # Uniquify the pkgconfigs file for the current Python target,
+ # preserving an unversioned "shiboken6.pc" file arbitrarily
+ # associated with the last Python target.
+ if [[ -f ${BUILD_DIR}/install/usr/lib/pkgconfig/shiboken6.pc ]]
+ then
+ sed -e 's~prefix=.*~prefix=/usr~g' \
+ -e 's~exec_prefix=.*~exec_prefix=${prefix}~g' \
+ -e "s~libdir=.*~libdir=$(python_get_sitedir)/shiboken6~g" \
+ -e "s~includedir=.*~includedir=$(python_get_sitedir)/shiboken6_generator/include~g" \
+ -i "${BUILD_DIR}/install/usr/lib/pkgconfig/shiboken6.pc" || die
+ cp "${BUILD_DIR}/install/usr/lib/pkgconfig/"shiboken6{,-${EPYTHON}}.pc || die
+ fi
+ if [[ -f ${BUILD_DIR}/install/usr/lib/pkgconfig/pyside6.pc ]]
+ then
+ sed -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
+ -e 's~prefix=.*~prefix=/usr~g' \
+ -e 's~exec_prefix=.*~exec_prefix=${prefix}~g' \
+ -e "s~libdir=.*~libdir=$(python_get_sitedir)/PySide6~g" \
+ -e "s~includedir=.*~includedir=$(python_get_sitedir)/PySide6/include~g" \
+ -e "s~typesystemdir=.*~typesystemdir=$(python_get_sitedir)/PySide6/typesystems~g" \
+ -e "s~gluedir=.*~gluedir=$(python_get_sitedir)/PySide6/glue~g" \
+ -e "s~pythonpath=.*~pythonpath=$(python_get_sitedir)~g" \
+ -i "${BUILD_DIR}/install/usr/lib/pkgconfig/pyside6.pc" || die
+ cp "${BUILD_DIR}/install/usr/lib/pkgconfig/"pyside6{,-${EPYTHON}}.pc || die
+ fi
+
+ # _IMPORT_PREFIX breaks on split-usr/merged-usr plus weird random issues.
+ # These are not duplicates, the generated files are somehow different on
+ # different systems.
+ sed \
+ -e "s~\${_IMPORT_PREFIX}/lib/libshiboken6\.cpython~/usr/$(get_libdir)/libshiboken6\.cpython~g" \
+ -e "s~\${_IMPORT_PREFIX}/shiboken6/libshiboken6\.cpython~/usr/$(get_libdir)/libshiboken6\.cpython~g" \
+ -e "s~\${_IMPORT_PREFIX}/bin/shiboken6~/usr/bin/shiboken6~g" \
+ -e "s~\${_IMPORT_PREFIX}/shiboken6_generator/shiboken6~/usr/bin/shiboken6~g" \
+ -e "s~\${_IMPORT_PREFIX}/lib/libpyside6\.cpython~/usr/$(get_libdir)/libpyside6\.cpython~g" \
+ -e "s~\${_IMPORT_PREFIX}/PySide6/libpyside6\.cpython~/usr/$(get_libdir)/libpyside6\.cpython~g" \
+ -e "s~\${_IMPORT_PREFIX}/lib/libpyside6qml\.cpython~/usr/$(get_libdir)/libpyside6qml\.cpython~g" \
+ -e "s~\${_IMPORT_PREFIX}/PySide6/libpyside6qml\.cpython~/usr/$(get_libdir)/libpyside6qml\.cpython~g" \
+ -e "s~libshiboken6\.cpython.*\.so\.$(ver_cut 1-3)~libshiboken6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6\.cpython.*\.so\.$(ver_cut 1-3)~libpyside6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6qml\.cpython.*\.so\.$(ver_cut 1-3)~libpyside6qml\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libshiboken6\.cpython.*\.so\.$(ver_cut 1-2)~libshiboken6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6\.cpython.*\.so\.$(ver_cut 1-2)~libpyside6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6qml\.cpython.*\.so\.$(ver_cut 1-2)~libpyside6qml\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~\${_IMPORT_PREFIX}/shiboken6/include~/usr/include/shiboken6~g" \
+ -e "s~\${_IMPORT_PREFIX}/PySide6/include~/usr/include/PySide6~g" \
+ -i "${BUILD_DIR}/install/usr/lib/cmake/"*/*.cmake || die
+ local file
+ for file in "${BUILD_DIR}/install/usr/lib/cmake/"*/*.cpython-*.cmake
+ do
+ local base=${file##*/}
+ ln -s "${base}" "${file%/*}/${base%%.*}-${EPYTHON}.cmake" ||
+ die
+ done
+}
+
+python_test() {
+ # Otherwise it picks the last built directory breaking assumption for multi target builds
+ local pyside_build_dir="qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-${pyside_build_id}"
+
+ local buildno=$(find "${BUILD_DIR}"/build* -name "${pyside_build_dir}" | sort -V | tail -n1)
+ if [[ -z "${buildno}" ]]; then
+ die "could not find any build directories for ${pyside_build_dir}"
+ fi
+
+ buildno="${buildno#"${BUILD_DIR}/build"}"
+ buildno="${buildno%"/${pyside_build_dir}"}"
+
+ local -x PYTHONPATH="${BUILD_DIR}/install$(python_get_sitedir)"
+ local -x QTEST_ENVIRONMENT=ci
+
+ # test shiboken6 build
+ virtx ${EPYTHON} testrunner.py test --buildno "$((buildno - 1))" --projects=shiboken6 ||
+ die "Tests failed with ${EPYTHON}"
+
+ if use core; then
+ # test pyside6 build
+ virtx ${EPYTHON} testrunner.py test --buildno "${buildno}" --projects=pyside6 ||
+ die "Tests failed with ${EPYTHON}"
+ fi
+}
+
+pkg_preinst() {
+ # Avoid symlinks being blocked by directories
+ rm -rf "${EROOT}/usr/include/"{PySide6,shiboken6} || die
+ rm -rf "${EROOT}/usr/share/PySide6" || die
+}
diff --git a/dev-python/pyside/pyside-6.9999.ebuild b/dev-python/pyside/pyside-6.9999.ebuild
index 8db74dde4b70..066b1462a4b4 100644
--- a/dev-python/pyside/pyside-6.9999.ebuild
+++ b/dev-python/pyside/pyside-6.9999.ebuild
@@ -9,7 +9,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{13..14} )
-LLVM_COMPAT=( {18..22} )
+LLVM_COMPAT=( {18..23} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_EXT=1
@@ -36,12 +36,13 @@ else
fi
LICENSE="|| ( GPL-2 GPL-3 LGPL-3 )"
-SLOT="6/${PV}"
+QT_SLOT="$(ver_cut 1)"
+SLOT="${QT_SLOT}/${PV}"
# If a flag enables multiple Qt modules, they should be ordered
# according to their dependencies, e.g. for 3d, 3DCore must be first.
# Widgets for various modules are handled as a special case later
-declare -A QT_MODULES=(
+declare -gA QT_MODULES=(
["3d"]="3DCore 3DRender 3DLogic 3DInput 3DAnimation 3DExtras"
["bluetooth"]="Bluetooth"
["charts"]="Charts"
@@ -87,7 +88,7 @@ declare -A QT_MODULES=(
# Manually reextract these requirements on version bumps by running the
# following one-liner from within "${S}":
# $ grep -E '(set|list).*_deps' sources/pyside6/PySide6/Qt*/CMakeLists.txt
-declare -A QT_REQUIREMENTS=(
+declare -gA QT_REQUIREMENTS=(
["3d"]="gui network"
["bluetooth"]="core"
["charts"]="core gui widgets"
@@ -132,7 +133,7 @@ declare -A QT_REQUIREMENTS=(
# Manually reextract these requirements on version bumps by running the
# following one-liner from within "${S}":
# $ grep 'check_qt_opengl' sources/pyside6/PySide6/Qt*/CMakeLists.txt
-declare -a CONDITIONAL_OPENGL=(
+declare -ga CONDITIONAL_OPENGL=(
3d graphs quick
)
@@ -150,7 +151,7 @@ for requirement in "${!QT_REQUIREMENTS[@]}"; do
done
# Minimal supported version of Qt.
-QT_PV="$(ver_cut 1-3)*:6"
+QT_PV="$(ver_cut 1-3)*:${QT_SLOT}"
# USE="tools" is heavily automagic based on what other qt tools are installed at build time.
@@ -179,7 +180,7 @@ RDEPEND="
network-auth? ( =dev-qt/qtnetworkauth-${QT_PV} )
nfc? ( =dev-qt/qtconnectivity-${QT_PV}[nfc] )
numpy? ( >=dev-python/numpy-2.1.3[${PYTHON_USEDEP}] )
- pdfium? ( =dev-qt/qtwebengine-${QT_PV}[pdfium(-),widgets?] )
+ pdfium? ( dev-qt/qtwebengine:${QT_SLOT}[pdfium(-),widgets?] )
positioning? ( =dev-qt/qtpositioning-${QT_PV} )
printsupport? ( =dev-qt/qtbase-${QT_PV}[gui,widgets] )
qml? ( =dev-qt/qtdeclarative-${QT_PV}[opengl?,widgets?] )
@@ -200,9 +201,10 @@ RDEPEND="
)
uitools? ( =dev-qt/qttools-${QT_PV}[gles2-only=,widgets] )
webchannel? ( =dev-qt/qtwebchannel-${QT_PV} )
- webengine? ( || (
- =dev-qt/qtwebengine-${QT_PV}[alsa,widgets?]
- =dev-qt/qtwebengine-${QT_PV}[pulseaudio,widgets?]
+ webengine? (
+ || (
+ dev-qt/qtwebengine:${QT_SLOT}[alsa,widgets?]
+ dev-qt/qtwebengine:${QT_SLOT}[pulseaudio,widgets?]
)
)
websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
@@ -280,9 +282,6 @@ python_prepare_all() {
# blacklist.txt works like XFAIL
cat <<- EOF >> build_history/blacklist.txt || die
- # segfaults with QOpenGLContext::create
- [pysidetest::qapp_like_a_macro_test]
- linux
# no mypy
[pysidetest::mypy_correctness_test]
linux
@@ -291,18 +290,8 @@ python_prepare_all() {
linux
[pyside6-android-deploy::test_pyside6_android_deploy]
linux
- # Behavior changed and test not changed to accomodate
- # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-3135
- [registry::existence_test]
- linux
- # Doesn't appear to play well with virtualx as it tries to use wayland
- [QtUiTools::loadUiType_test]
- linux
- # py3.14?
- [sample::multiple_derived]
- linux
- # Doesn't appear to play well with virtualx as it tries to use wayland
- [QtWidgets::qapp_issue_585]
+ # FIXME: timeout, complains about wayland
+ [pysidetest::new_inherited_functions_test]
linux
EOF
@@ -383,6 +372,7 @@ python_configure_all() {
if use quick; then
use webengine && ENABLED_QT_MODULES+=( WebEngineQuick )
use testlib && ENABLED_QT_MODULES+=( QuickTest )
+ use qml && ENABLED_QT_MODULES+=( QuickControls2 )
fi
# Arguments listed in options.py
@@ -395,7 +385,7 @@ python_configure_all() {
--no-size-optimization
--openssl="${ESYSROOT}/usr/bin/openssl"
--qt="$(ver_cut 1-3)"
- --qtpaths="$(qt6_get_bindir)/qtpaths"
+ --qtpaths="$(qt_get_bindir ${QT_SLOT})/qtpaths"
--log-level=verbose
--parallel="$(makeopts_jobs)"
"$(usex debug "--debug" "--relwithdebinfo")"
@@ -443,8 +433,10 @@ python_compile() {
export PYTHONPATH="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package:${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install/lib/${EPYTHON}/site-packages:${PYTHONPATH}"
# Copy shiboken6_generator files to shiboken6 package so we can reuse the shiboken-target-path
- rsync -ur "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-2))/${pyside_build_dir}/package/shiboken6_generator/"* "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6/" || die
- ln -s shiboken6 "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6_generator" || die
+ rsync -ur "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-2))/${pyside_build_dir}/package/shiboken6_generator/"* \
+ "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6/" || die
+ ln -s shiboken6 \
+ "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/package/shiboken6_generator" || die
# If no pyside modules enabled, build just shiboken
if [[ ${#ENABLED_QT_MODULES[@]} -gt 0 ]]; then
@@ -508,9 +500,9 @@ python_compile() {
# Install misc files from inner install dir
find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install -type f \
-name libPySidePlugin.so -exec \
- mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
+ mkdir -p "${BUILD_DIR}/install/$(qt_get_plugindir ${QT_SLOT})/designer/" \; \
-exec \
- cp "{}" "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
+ cp "{}" "${BUILD_DIR}/install/$(qt_get_plugindir ${QT_SLOT})/designer/" \; \
|| die
for dir in cmake pkgconfig; do
diff --git a/dev-python/pytest-codeblock/Manifest b/dev-python/pytest-codeblock/Manifest
new file mode 100644
index 000000000000..00df85e01aaf
--- /dev/null
+++ b/dev-python/pytest-codeblock/Manifest
@@ -0,0 +1 @@
+DIST pytest-codeblock-0.5.10.tar.gz 123172 BLAKE2B 2c7c1586d0d3feba39825478271f1728c7672dc2b07ff5b8d99702edd36e1e02031b2c38af799cc89a09d3217223d75c563cfd4c16cc0468b8e2d5a53dbb05e6 SHA512 3e0a8d3b3981655543bf97890e5bda698c5a96de2abdba3b170cafe4669d9df4a65b4f9827f1eb4c6c99799847b7d5941cbf08addf725914a7bc4da1d4b569be
diff --git a/dev-python/pytest-codeblock/metadata.xml b/dev-python/pytest-codeblock/metadata.xml
new file mode 100644
index 000000000000..8682f1cb7633
--- /dev/null
+++ b/dev-python/pytest-codeblock/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/barseghyanartur/pytest-codeblock/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/pytest-codeblock/pytest-codeblock-0.5.10.ebuild b/dev-python/pytest-codeblock/pytest-codeblock-0.5.10.ebuild
new file mode 100644
index 000000000000..81cd1982f0b0
--- /dev/null
+++ b/dev-python/pytest-codeblock/pytest-codeblock-0.5.10.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Test your documentation code blocks"
+HOMEPAGE="https://github.com/barseghyanartur/pytest-codeblock"
+SRC_URI="https://github.com/barseghyanartur/pytest-codeblock/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/openai[${PYTHON_USEDEP}]
+ dev-python/respx[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( ${PN} pytest-django )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # Tests call `pytest` as well, so let's avoid code coverage altogether
+ sed -e '/addopts/,/^]$/d' -i pyproject.toml || die
+
+ # Having this variable set breaks all Django related tests
+ sed -e "/DJANGO_SETTINGS_MODULE/d" -i pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pytest-env/Manifest b/dev-python/pytest-env/Manifest
index f39ef17e84ff..9ca5cd9bb554 100644
--- a/dev-python/pytest-env/Manifest
+++ b/dev-python/pytest-env/Manifest
@@ -2,3 +2,5 @@ DIST pytest_env-1.7.1.tar.gz 17091 BLAKE2B 64b726da3660c87456a52d89b25b32be3bd3c
DIST pytest_env-1.7.1.tar.gz.provenance 9767 BLAKE2B 4a0563d9fdff25824fc5e0f6be2ec53b8ad226719100b325bb251c6a6797098bcba13dbe001440cd2223749188dff61e227d7eca936541d5a0a8404b287f0ef5 SHA512 1f25f4f74de81a53a9eb141ab56bfdce0757bbf1d19d776e25810b96f39acb3b1928670fbac2663a6bf4beb275cb01810e2811611c236afc4f3dc4501af36aec
DIST pytest_env-1.8.0.tar.gz 17363 BLAKE2B 63d9dce217ee3136c9ff2877f616a78567c5f9055cee63c1f8415bfcae9135dde5977a56dd5794458f36e341b2834650f6e17c4325b1fd07d5478c3a638d5f6f SHA512 7f48da79caa364fa5a8581952a895dbbcfcfa7e42e0e8160bfa273ac654f0b91fa46cbd2ec08d58561f8a58cacf3eb6f62adb548a5eaf4dd6415f2b9b49fec52
DIST pytest_env-1.8.0.tar.gz.provenance 9592 BLAKE2B a57b4704368963923000af291e77c60f267732b10c4f114ec391294724cf405045ca95954ba841f37edcdd909822a5ccb3d8502267db6e54e55f8911cb2b8d77 SHA512 a9aee2bdbe1ceb4fb27ab57bf644d5a49307a9c7f6d32e98f90d437c463d517062176d36b8c09b8f802c6f28e3ce12506bac79943491bf22ea63ed27f4788184
+DIST pytest_env-1.8.1.tar.gz 17852 BLAKE2B e136556e1cb80f6c28c2312d41c892b6abbd9e7087f9f6cc8d1fb28fbb5a09089c76820c42b049f0abfb7beaf3ee7fd304e60a2508610a4b4e080dce3a0bee69 SHA512 be06ac2e0ad51107f83a7f74a6cbf4e9fa79cb88a24dfac5365e7dcdc4d865e81655b00569e8ef210e3578bb39cc1cc53224eb7a82d1123330c454b0e5a1b811
+DIST pytest_env-1.8.1.tar.gz.provenance 9886 BLAKE2B 4c99dc4f0aa1439ec728168d252ea933c125c45cf0af3d5546fdcf44ebea2813bddbaf7de477d4f46c8f2efb2ba4c99fb6026df5d2fb88d60ecdb7121aa85aeb SHA512 e7722a59e9c45996891da407a183f23a22e42af3ef95a351fb127cc95635331f1782d20ae3b1dd4eab2034e64f15b6fd3c381e4b1f7f3a089ddfa6ac5cab7388
diff --git a/dev-python/pytest-env/pytest-env-1.8.1.ebuild b/dev-python/pytest-env/pytest-env-1.8.1.ebuild
new file mode 100644
index 000000000000..7ff67d64ea2b
--- /dev/null
+++ b/dev-python/pytest-env/pytest-env-1.8.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pytest-dev/pytest-env
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin that allows you to add environment variables"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-env/
+ https://pypi.org/project/pytest-env/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/python-dotenv-1.2.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-9.1.1[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/hatch-vcs-0.3[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+}
diff --git a/dev-python/pytest-mock/Manifest b/dev-python/pytest-mock/Manifest
index 30be9eeb6a91..0a6ea0a8c3b4 100644
--- a/dev-python/pytest-mock/Manifest
+++ b/dev-python/pytest-mock/Manifest
@@ -2,3 +2,5 @@ DIST pytest_mock-3.15.1.tar.gz 34036 BLAKE2B bfd7a4ec32612b4a4351c43ff36e7a4ab05
DIST pytest_mock-3.15.1.tar.gz.provenance 10055 BLAKE2B 158410280dd839301fceb807ba80c199d248efd38b643e5bed0938e041fcbe99e3a6f04cda0f1aa4b2ad226331ede1a2477425e6c477e636e371d4e54e33eb64 SHA512 356eddc3637f622b53ff7791474d82ff116b0ce16414b8ee5b595cd3dd08b32c266e5e133ce79281775f1826613fb5ed01643aa87abcbd816c3a178120a49198
DIST pytest_mock-3.16.0.tar.gz 35362 BLAKE2B 48a259f7cc4349b69813bfb3933d6c6db38765ce872b7263201560b7375c2d28044ae93b184bb248ff4f1ccd62dcb8d5dce3e88555213874c1711ad219e09771 SHA512 fbaa1ee9d4d4d12a28aa62e09f22ddd6eada041faddcadd58291dbb9c2e5d24143fe2c74516f0444ed61786ee6b3a6e3f0969188e792ffbab8fa05b7d28bd86f
DIST pytest_mock-3.16.0.tar.gz.provenance 10095 BLAKE2B b031154665a1d6b1f9d8f5d738ae6766ec0655520d21ae9ca0d508080b37f32c1d0263c730152eb83c2dec16422cfb4480cd69c12538c70a52acea124e0442cb SHA512 3d4a406449f0773f22e029b8587b77b7bb683569091a24bccdf70c43da0b99b53583a9d520eea93e7046f9fa14d9403e2b1b00a61de10c28ce77b9962b2cff06
+DIST pytest_mock-3.17.0.tar.gz 43064 BLAKE2B 739bd2c3ec2075ad7b51d41b0a8e90ae8ef25975699e403748de4e5090bb15ee64044e7ba2e2f00842451162f18b7f03c29b9941ab63788d17052e9cb6734f5a SHA512 e9948a8086ced8366f3de291950258b145e78977dc1e873147d9045e2676ad0bd40a7362c2f2cf2a5c7583d9a5668c09d49c971427d85d8cf0ad4a8a3985c873
+DIST pytest_mock-3.17.0.tar.gz.provenance 10120 BLAKE2B 8b3309a9c6d7e0ba5bcc968be226dd651d4d66e2f92603179c7eb6e4615a22ee0609d645c4b955a5647ae9d267f4cbb983016815394ba2a44294b1793ee7108f SHA512 88d1b47c2b2d3c84d4031d164de95827e4acf69bf2a2e33d2b8f36a63b2d2122e1645de5d0e60d77d711231482f36677032d7d5265ca1572306f4f03a3138db0
diff --git a/dev-python/pytest-mock/pytest-mock-3.17.0.ebuild b/dev-python/pytest-mock/pytest-mock-3.17.0.ebuild
new file mode 100644
index 000000000000..b714251e427e
--- /dev/null
+++ b/dev-python/pytest-mock/pytest-mock-3.17.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pytest-dev/pytest-mock
+PYTHON_COMPAT=( python3_{13..14} )
+
+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"
+
+RDEPEND="
+ >=dev-python/pytest-6.2.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( "${PN}" pytest-asyncio )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+distutils_enable_tests pytest
+
+python_test() {
+ 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/python-discovery/Manifest b/dev-python/python-discovery/Manifest
index f4c0d169129b..e37eb675ba61 100644
--- a/dev-python/python-discovery/Manifest
+++ b/dev-python/python-discovery/Manifest
@@ -6,3 +6,5 @@ DIST python_discovery-1.6.2.tar.gz 86921 BLAKE2B e5e79967f4781e17c18277b00e55031
DIST python_discovery-1.6.2.tar.gz.provenance 9679 BLAKE2B 6da1fc38df4ed46f9101b1fb8182e2bde68f04d3c9192f87a667dba3ed05500ec0525003ea7140acb467e14860357ae046acc5a0380df79b8a8cb561667a52e3 SHA512 e0abc195f761676ee3b497fddd4ee0569620372a1d4322c43b2f34c9c534522582c60b052746e1ea6ff6c28a8bde0a8077e03533dac9edd3e1e9059a0608c309
DIST python_discovery-1.6.3.tar.gz 88998 BLAKE2B 12417fd68545ad417856aec7797fca2534f3451295ffbd612a9fe422d74c804d4c9a627ea84f12aca22bf0a931ebee8d04309f70619f03236d0a76725de8761f SHA512 4f92b73674a972831cc1ccf30ce081731667087dc278070ce1679e8bffb28819be52f3aa63835a08cd6595fec394affdc220fe6e3da12b9f1a8426e3e8e73004
DIST python_discovery-1.6.3.tar.gz.provenance 10055 BLAKE2B 51bb3f963c04bbce5fb80bdb946a95aa374fe7dc763441a79a7aac7b713a4367c9e94dd84b2b3f153d191a9c77b34de7febf581d7f019f799eb47be8ce3fc1d5 SHA512 fcc4bc79a7a7c3ac08bb90e8a119f954184aa5cef6655c0d9c5bfebe6fccc688897c14501a99e5b6735ecb4963ccc14eb03091a167cd6f9c12f6d7e8952458e5
+DIST python_discovery-1.6.4.tar.gz 89883 BLAKE2B 7946ace99c717b71fb9e4a24da380649e114a1680abc47227e881eb3a057f225771c175427f95786653c8e15a47061e04e029d624a0d4a4fbefdf9778e6df5eb SHA512 35ad58d1848135f70c7da2fac17bf502a78f19fe48237ab764d3ecc135d4bbe5259161be6afd8c7939e290d184885633a66d3ae7b7a19090a939cfeb1366f88a
+DIST python_discovery-1.6.4.tar.gz.provenance 9726 BLAKE2B bb899bda11549eae92900e8f63e6c780b9515c9d2c30bdfe42af194e30d55239d53c7461cb4cc8989d5b926ad1c8b3e8b065c1accbe62652a15c3752bf7d91e8 SHA512 cd100c02083da95ea8ce1f51298efb7a1db52ed6846399456b4eee2c418f2d77436918be56e5ba844e302ae75c4d0fbe2ac01c23e575fb44cf29edec5c8da4a8
diff --git a/dev-python/python-discovery/python-discovery-1.6.4.ebuild b/dev-python/python-discovery/python-discovery-1.6.4.ebuild
new file mode 100644
index 000000000000..fddf512947d9
--- /dev/null
+++ b/dev-python/python-discovery/python-discovery-1.6.4.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/python-discovery
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python interpreter discovery"
+HOMEPAGE="
+ https://github.com/tox-dev/python-discovery/
+ https://pypi.org/project/python-discovery/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/filelock-3.16.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/setuptools-75.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # TODO: package vermin?
+ tests/test_py_info_collect.py
+ )
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ python3.*t)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_py_info_extra.py::test_satisfies_path_not_abs_basename_match
+ tests/test_iter_interpreters.py::test_iter_interpreters_dedups_symlinks
+ tests/test_iter_interpreters.py::test_iter_interpreters_no_key_includes_running_interpreter
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/python-ldap/python-ldap-3.4.8.ebuild b/dev-python/python-ldap/python-ldap-3.4.8.ebuild
index 3776e37fe032..faa8e583a990 100644
--- a/dev-python/python-ldap/python-ldap-3.4.8.ebuild
+++ b/dev-python/python-ldap/python-ldap-3.4.8.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-pam/python-pam-2.1.0.ebuild b/dev-python/python-pam/python-pam-2.1.0.ebuild
index 6bbfcfdf19b5..a9928eff76cd 100644
--- a/dev-python/python-pam/python-pam-2.1.0.ebuild
+++ b/dev-python/python-pam/python-pam-2.1.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
diff --git a/dev-python/python-slugify/python-slugify-9.0.0.ebuild b/dev-python/python-slugify/python-slugify-9.0.0.ebuild
index 8d3e1f16b336..ba1e3d0c642b 100644
--- a/dev-python/python-slugify/python-slugify-9.0.0.ebuild
+++ b/dev-python/python-slugify/python-slugify-9.0.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 x86"
RDEPEND="
>=dev-python/text-unidecode-1.3[${PYTHON_USEDEP}]
diff --git a/dev-python/pytimeparse/Manifest b/dev-python/pytimeparse/Manifest
index 806fe020d540..a3265a28a21f 100644
--- a/dev-python/pytimeparse/Manifest
+++ b/dev-python/pytimeparse/Manifest
@@ -1,2 +1,2 @@
-DIST pytimeparse-1.1.8.tar.gz 9403 BLAKE2B 671a96f0f7d517e6cd137b8ec7bda17976993a683ece5e06f857cb07063cd4d7fdd08a98f838dbf35251a8403b68f7dc538e5450db3abe644e8c7c4f6c76b645 SHA512 9eb4530d779b940d66412920eefa4f4d3c43719aa3e4104da4f337c05421bcbb6ad4cb2d6459ddfac770fc9f19960a9d8ce578e67f2513499a7bee8efe9541ec
+DIST pytimeparse-1.1.10.tar.gz 11613 BLAKE2B eda79602eca19a55a70a29e934b5e092cc510084d8cefedf94b29a22df48eaea977b19970ab38d3422d82d9e1771beaa530eebb0982b2241f46f4b54f9c43fb2 SHA512 bb966fca91503fe9d307c35c42f3a593c55382d946931b465004113ea73ca8d91b54af3d342d0613537c9931bab50948ffa1c396a1c8d0c8603cdf1b5516090d
DIST pytimeparse-1.1.9.tar.gz 10955 BLAKE2B c2b4d7b7e0521391acaf0c1831293db003bddcbb1d78c0d7bb05156436054bee3a935c0a425618523103be488f648ee6d68993c4f8bb3adf7ed02de29a2d18e7 SHA512 d4bdf1617930bea071e3c0e06fd85925e9d0c643488aaf5114b580f450f8d9cfcc271a88081af9ee712e845879b31e5fcdbf5a7de2a2f5cad2418327aee26326
diff --git a/dev-python/pytimeparse/pytimeparse-1.1.8-r1.ebuild b/dev-python/pytimeparse/pytimeparse-1.1.10.ebuild
index 3b84152ae8b3..3b84152ae8b3 100644
--- a/dev-python/pytimeparse/pytimeparse-1.1.8-r1.ebuild
+++ b/dev-python/pytimeparse/pytimeparse-1.1.10.ebuild
diff --git a/dev-python/quart-trio/quart-trio-0.13.0.ebuild b/dev-python/quart-trio/quart-trio-0.13.0.ebuild
index 0280a59ab536..c48308cf849b 100644
--- a/dev-python/quart-trio/quart-trio-0.13.0.ebuild
+++ b/dev-python/quart-trio/quart-trio-0.13.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/hypercorn-0.12.0[${PYTHON_USEDEP}]
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index 80ffbe2f14b0..8e3be6059744 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,5 +1,3 @@
-DIST regex-2026.7.19.tar.gz 416440 BLAKE2B c7e922fca496731dba5130bd7f572df56adfd5c31db6812f935ede24060b3fb6abca57836f3d0a0ad7bcee6433e1520b14611657495e6e844fc2d5d99d6dba32 SHA512 807b987dd5fa12f5fdb95c79955823f263f03f23059c8ec1783958bab5dadb1c38dab022a3e519ebb6810b6e03692c14b4d354506ff7a00a7323ee79d61f4e34
-DIST regex-2026.8.31.tar.gz 416646 BLAKE2B b151ab7f142878e3e84bf32d42451fe47aa70802f252ac55902eebe07d413a117c68d889a561d2255adf1cf4565347e1cbbe4953682b87ef5a23b910e78744c3 SHA512 1f0191caa4e9c2e5e9b848ba2f85d2e48a678d6ba4ec9bf3c530b201c9edf54059e517946839df86bb00cfdf64111f8d8943abb2bc9df68d1ddf4489e110ba87
DIST regex-2026.9.10.tar.gz 417072 BLAKE2B dcaa82df983b22c64fe5a48354cfe3a0cc9a47bb8d8ea707e66e40003ba6d9ca616c847efcbf7617a5af3f753f0ff56568bf678b0bc6fb1efeaf688cf846c1be SHA512 ec7c1b2d6c549941ac6731a5490936e8fd3deffe8c34f12600b23c73dacb3818c02fc27fa88eb34aab6b3279ef6554d269565ffeb5530fd0707caad02b2d3c1d
DIST regex-2026.9.29.tar.gz 419199 BLAKE2B 70affdbfb5c306c9714d8e986ea8d6e82057c750622dbad5a09b92a13e945ae1b35493b0b9a9d7563c4304c4dd0d66488bd81b25f054803995b317e8d88651ff SHA512 2be4133b38831b35c210fec3fe2ac42a921d6334de0dfe8872122e8068a49278ee2de0b787fe8ed7147a1eaa0f3a4d22ba97272b830493c3b702e5a293a1a7f9
DIST regex-2026.9.3.tar.gz 416720 BLAKE2B c9a5bf8a95e03708e4b0bfd789d565aea8a5b36a33d3d5754351d5d14ec2e29dc77aeb6331e1cc88b44a9ab95d3a5f134ed2f0cacf0253c152d924a0cd72aede SHA512 e0608fcd9bfa1b61a8bbdd1299ffac7ab310a2e88ad3f11297780efe300e1bbd62904e5234b8692e3e7fda9063502b6d7c0faf11df3c378af34d8751bf8a9130
diff --git a/dev-python/regex/regex-2026.7.19.ebuild b/dev-python/regex/regex-2026.7.19.ebuild
deleted file mode 100644
index 9e76573eb2b4..000000000000
--- a/dev-python/regex/regex-2026.7.19.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-# pypy isn't supported upstream because of its UTF8 representation for strings
-# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Alternative regular expression module to replace re"
-HOMEPAGE="
- https://github.com/mrabarnett/mrab-regex/
- https://pypi.org/project/regex/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-IUSE="doc"
-
-distutils_enable_tests unittest
-
-python_install_all() {
- use doc && local HTML_DOCS=( docs/Features.html )
- local DOCS=( README.rst docs/*.rst )
-
- distutils-r1_python_install_all
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
- eunittest
-}
diff --git a/dev-python/regex/regex-2026.8.31.ebuild b/dev-python/regex/regex-2026.8.31.ebuild
deleted file mode 100644
index f45afd466843..000000000000
--- a/dev-python/regex/regex-2026.8.31.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-# pypy isn't supported upstream because of its UTF8 representation for strings
-# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Alternative regular expression module to replace re"
-HOMEPAGE="
- https://github.com/mrabarnett/mrab-regex/
- https://pypi.org/project/regex/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
-IUSE="doc"
-
-distutils_enable_tests unittest
-
-python_install_all() {
- use doc && local HTML_DOCS=( docs/Features.html )
- local DOCS=( README.rst docs/*.rst )
-
- distutils-r1_python_install_all
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
- eunittest
-}
diff --git a/dev-python/regex/regex-2026.9.10.ebuild b/dev-python/regex/regex-2026.9.10.ebuild
index f45afd466843..9e76573eb2b4 100644
--- a/dev-python/regex/regex-2026.9.10.ebuild
+++ b/dev-python/regex/regex-2026.9.10.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/rencode/rencode-1.0.9.ebuild b/dev-python/rencode/rencode-1.0.9.ebuild
index 4cee3aa51b2a..3ec73cae996f 100644
--- a/dev-python/rencode/rencode-1.0.9.ebuild
+++ b/dev-python/rencode/rencode-1.0.9.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~riscv ~sparc x86"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
diff --git a/dev-python/rfc3161-client/rfc3161-client-1.0.9.ebuild b/dev-python/rfc3161-client/rfc3161-client-1.0.9.ebuild
index 30f103ad7307..d22f8c3daa45 100644
--- a/dev-python/rfc3161-client/rfc3161-client-1.0.9.ebuild
+++ b/dev-python/rfc3161-client/rfc3161-client-1.0.9.ebuild
@@ -109,7 +109,7 @@ LICENSE+="
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 ZLIB
"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
RDEPEND="
>=dev-python/cryptography-43[${PYTHON_USEDEP}]
diff --git a/dev-python/scikit-learn/scikit-learn-1.9.1.ebuild b/dev-python/scikit-learn/scikit-learn-1.9.1.ebuild
index f3d779913db2..7e64e6102187 100644
--- a/dev-python/scikit-learn/scikit-learn-1.9.1.ebuild
+++ b/dev-python/scikit-learn/scikit-learn-1.9.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${P/_}
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~amd64 ~arm64"
+ KEYWORDS="amd64 ~arm64"
fi
IUSE="examples"
diff --git a/dev-python/selenium/selenium-4.49.0.ebuild b/dev-python/selenium/selenium-4.49.0.ebuild
index 6bc9836d962e..39aca3c2a8a5 100644
--- a/dev-python/selenium/selenium-4.49.0.ebuild
+++ b/dev-python/selenium/selenium-4.49.0.ebuild
@@ -30,7 +30,7 @@ SRC_URI+="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 x86"
IUSE="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/semver/semver-3.1.0.ebuild b/dev-python/semver/semver-3.1.0.ebuild
index c5e7e6f7f47a..1771cfb04e65 100644
--- a/dev-python/semver/semver-3.1.0.ebuild
+++ b/dev-python/semver/semver-3.1.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/setuptools-scm/Manifest b/dev-python/setuptools-scm/Manifest
index 0b688e2d5a67..c5853ef67b2d 100644
--- a/dev-python/setuptools-scm/Manifest
+++ b/dev-python/setuptools-scm/Manifest
@@ -1,5 +1,3 @@
-DIST setuptools_scm-10.2.1.tar.gz 154237 BLAKE2B 250978fc39815dc05f79aa5da3a688330c5a0a553e62e631f6781dda9551d5b077bb9bd07c70dec0fe340296f66d247a287bfe04dae60051212cd0b11bee1f65 SHA512 9ca752d7b6f56e4ba8d84d619099be04b0711719926e9e0fcbe9776bf42cb9485c78014532d0b787cf625820f664863a086dd7b600e8d1c54ae58ab6725187c0
-DIST setuptools_scm-10.2.1.tar.gz.provenance 10217 BLAKE2B 305ce26746d8239bca467956131f6d61b10084218e72e668cdee2108af9c03da6597d663d7bbc8309e056c3865d4808538ac7187c31dcfdeb9f659571754ef4c SHA512 e1620b0da56d77d6ca658e993d7663a86ac3cd5eb7d4e31ce147d156ad3365d922aa28ab42cf61c8c85f0f8e2cc350590d1f5cf4b2a63def8517d963125f870f
DIST setuptools_scm-10.2.3.tar.gz 67696 BLAKE2B 43d36a0ef3221f96d980311b5c4ac884320b7f54665fefe4f56e03ae3172954bd95f29bb881074bbb04f3c248c6140e7281b2ae5232f9fa09770449a5c7e5fcb SHA512 845403e925247c70f9399dc98da08e13fd5bbdbabb339ed380abccc07590eaf35efc592c04f5b8b44e55bbbf63d5c92e423fc12cf06534efafff20fb70c53f57
DIST setuptools_scm-10.2.3.tar.gz.provenance 10125 BLAKE2B 581394d2844a82bd6f4eabc86a6c77d355a573573140e151a4b0d99525e51ea0df8fec8cbae2c331764f4377b3c4283620d8f1336251218f1c14b58318a2e31a SHA512 304b057feab4715373caff13d24b4599e73711a9de0833b4f0e6422914be997ad63fbb4fb15b14329c03e772c89493c5b68d97d6b0a37e6d99c5907db77c4298
DIST setuptools_scm-10.3.0.tar.gz 71052 BLAKE2B a9b5917a7829ae994a2db34d263e8f9e062bbc1afad9114c791cba5804f92b11d280a734fbe3ef3fc03e0563b7364b3a0d2e481ebac01001daddb3c841ce20c4 SHA512 aa4c078f087eaf5d4bc2e8a05df52967bb80b87f549b80a8f48985e9a000e46d263c0345deb31da37b697e946266007b4a08d3c9d94267315406218e19126694
@@ -8,5 +6,3 @@ DIST setuptools_scm-10.3.2.tar.gz 73958 BLAKE2B 239404a8153e8f40b59515e27f577a0a
DIST setuptools_scm-10.3.2.tar.gz.provenance 10215 BLAKE2B 4125d21450c497895d07b53bd18ce21912964c3a8deab5a26f45cfdc943597a8d2851915f3217d46b81a05587dcb0af2364d1672ea7e59886c964598ce82b025 SHA512 020138c5794031ea6e98e0d0263ba6aff06c0685c751d5ea296bc48472da487708050d1bdfe9ea48f6b494c0b85f2c4fa7c05eae40bfeb9503fb228db151998f
DIST setuptools_scm-10.3.4.tar.gz 78410 BLAKE2B 890dc3e7738c9e39d60a01e3c7b2c0520e39898e5f9e4575f11bf2ddc02558a996f33976fafea7fd3570a67ea0005a7528d6648532587c3e40003754e1af9b79 SHA512 e78e0563aec6b9ae5b1f445cee5515c4db85d9533d720d04a68edb3d1f0399c79ccefff0338a026ca0fb4bc6d4a57d7e22074a4560c875a64ec67f0369f527a0
DIST setuptools_scm-10.3.4.tar.gz.provenance 10407 BLAKE2B 803da5fe253a03e70b48dd3511c432c4246108690daf17b4e8a36ed3e27b515d35fcbb5f0748e0a7ed00a25c9c31d98fefeff2ed449b5cab8316d3c3e9b94e43 SHA512 5ed0e79bc14afa5433afb8dd613891e7b3207d5785e3e78c019a8667f25afb3e6db1a9a9402292f215cbeb5009a9a9ef0cf9df4678b4ef32b3419607f05bfed1
-DIST setuptools_scm-9.2.2.tar.gz 203385 BLAKE2B 8577c4c6265ae851212be04b245b3da8b49d541174f5e675dea916c76b3cba5b5ab9f6264a97904e2d5ca02dee4e3f8eb88c9e8badbba2ed53bed531fe9f6b6c SHA512 757ca11a3d13601606b6914ea70e3d271d287f26ada976ec77334fc0f611208669585d2580994f1ddff830cd698a837d3e882dd5cdccdaf9f8eba34fdd8cb708
-DIST setuptools_scm-9.2.2.tar.gz.provenance 9705 BLAKE2B b710df7f8cbb324aa2927243ab0416869319813016d64f589b7a9f565576fff58c1aee18da4ea9bc3fb5a969cf74c1fcaa1332812bf88267ec9f2bf437876e53 SHA512 6ac563d0ab5f1afce28976eb030364a451508ec7d47b6e99668c37b8ba09e3b56500b104d62ad6047fad9f6be0b2b6ebea66b561041485b9d15b84c39fe92313
diff --git a/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild b/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild
deleted file mode 100644
index 9defe301b2cf..000000000000
--- a/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Manage versions by scm tags via setuptools"
-HOMEPAGE="
- https://github.com/pypa/setuptools-scm/
- https://pypi.org/project/setuptools-scm/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# there's an optional dep on rich for cute logs
-RDEPEND="
- dev-python/packaging[${PYTHON_USEDEP}]
- >=dev-python/setuptools-64[${PYTHON_USEDEP}]
- =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}]
- >=dev-python/vcs-versioning-2.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}]
- >=dev-python/vcs-versioning-2.2[${PYTHON_USEDEP}]
- test? (
- dev-python/build[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-vcs/git
- )
-"
-
-EPYTEST_PLUGINS=( pytest-timeout )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- testing_scm/test_functions.py::test_dump_version_mypy
- testing_scm/test_integration.py::test_xmlsec_download_regression
- testing_scm/test_regressions.py::test_pip_download
- )
-
- if ! has_version "dev-python/pip[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- testing_scm/test_integration.py::test_editable_install_without_env_var
- testing_scm/test_integration.py::test_editable_install_version_file
- )
- fi
-
- epytest
-}
diff --git a/dev-python/setuptools-scm/setuptools-scm-10.3.4.ebuild b/dev-python/setuptools-scm/setuptools-scm-10.3.4.ebuild
index f9aa94514d38..c659268760ed 100644
--- a/dev-python/setuptools-scm/setuptools-scm-10.3.4.ebuild
+++ b/dev-python/setuptools-scm/setuptools-scm-10.3.4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
VCS_VER_DEP="
=dev-python/vcs-versioning-2*[${PYTHON_USEDEP}]
diff --git a/dev-python/setuptools-scm/setuptools-scm-9.2.2.ebuild b/dev-python/setuptools-scm/setuptools-scm-9.2.2.ebuild
deleted file mode 100644
index a835e4e7ae20..000000000000
--- a/dev-python/setuptools-scm/setuptools-scm-9.2.2.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Manage versions by scm tags via setuptools"
-HOMEPAGE="
- https://github.com/pypa/setuptools-scm/
- https://pypi.org/project/setuptools-scm/
-"
-
-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"
-
-# there's an optional dep on rich for cute logs
-RDEPEND="
- dev-python/packaging[${PYTHON_USEDEP}]
- >=dev-python/setuptools-64[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/build[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-vcs/git
- )
-"
-
-EPYTEST_PLUGINS=( pytest-timeout )
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # the usual nondescript gpg-agent failure
- testing/test_git.py::test_git_getdate_signed_commit
-
- # fetching from the Internet
- testing/test_integration.py::test_xmlsec_download_regression
- testing/test_regressions.py::test_pip_download
-
- # calls flake8, unpredictable
- testing/test_functions.py::test_dump_version_flake8
-
- # incompatible with current mypy version
- testing/test_functions.py::test_dump_version_mypy
-)
diff --git a/dev-python/signxml/Manifest b/dev-python/signxml/Manifest
index 85974febc8e9..6e9288eabdd3 100644
--- a/dev-python/signxml/Manifest
+++ b/dev-python/signxml/Manifest
@@ -1,6 +1,4 @@
-DIST signxml-4.5.1.tar.gz 1615677 BLAKE2B ae7808d5910383e313c04cf1be10c224d7f05cfc7344240e0811460ee25a44b15ad5d27e4573d7fbff3327fd2961e0d3097ef084cfc1092776b1d712732bdd7c SHA512 a0956c0b63792a930b83647eda39a071fb17b6f49a469cf53c444fb28044a49c0f33f3faf3038d810684a2de921a0da14306b5458e63bd265672e49aa7dea5ad
-DIST signxml-4.5.1.tar.gz.provenance 9920 BLAKE2B 4dee9161bfb4b2ba5a2bf664c3703745448daf0a411cc29f716525065276014a62beb5b9405b9e42c79a312275112bf62ffe9c1809b014158cfd4e77af8ba6a8 SHA512 bfad600e9b7b8fd11d9876b31f76b50b6441ca023aa4dc4df57a51f7ba3b12e41be3b1e5b847192e6a7cfe760d2022ed39352305ed45179644818986b5abaa21
-DIST signxml-5.0.1.tar.gz 1617378 BLAKE2B b99ff9c4407a237b18fa03b0051ff1cfd121d46a8df0b68c4bf3ff6840167b91de1d6b247ccd80e87584a9ca3268964f57fe778768ccd549534dc318fd8425ee SHA512 9e345e3252c9c27b08c0d403d3493c703874d3b0358b2caab828b5dd0a12b01364625b026f849a39df5f31419b5571276e3732f49f0dd307517be8b6ab4deaf5
-DIST signxml-5.0.1.tar.gz.provenance 9814 BLAKE2B e4139200754dacba53272db1c914b290e8fb8b3b609afe64cdc1510b9a5c8c9cd57a2c5599620d3d93acd5000782f35390f9e32b5e4d5f6fcdeb1f0e029abc59 SHA512 1eb9e0823563a857832c6ef8d84945df3e9de5d836c5093fbdcb1374643634b2b6ed5adb99ec27a5d1859e9f13326eeb503431395bc92a3bf42a8030e49f7060
DIST signxml-5.1.0.tar.gz 1623299 BLAKE2B 94c1050b9608029c99b3087a9902207f64faee00ca13d20664fa4d8fc1d042bcc7bc76c2c64b8d0448e55c47220414d41d585e79d409008d2fc5c20a5b18ebc1 SHA512 8eebf9655a445ab074e4251ef749aa4710123579cd75cd4747cac86970032ba4330bb92b2b7a5261b4f0de8b105270be6ae249aaaecdd9ae437c50183170a702
DIST signxml-5.1.0.tar.gz.provenance 9767 BLAKE2B 11b2cd8b64936ab19705fecfbbd676e298bc383488c4df32bc6936b36a9146c8437fa3abfcf8229c02049046baa6c03b2f5582488fbad28986cacdd34bc29d90 SHA512 df1a28fb48976ddca5c5b81de259adaab7638cc4b8af6688ec403ce93f781fbe0eb27de77d8af4eadd6837aece204fbeeb39722dcbc70812525e72230ac2a3cf
+DIST signxml-5.2.0.tar.gz 1624371 BLAKE2B 0b21a1c619f2c8fb395d9fa52f46667d3fdcc16710035fcf3caf511d266415079c3cdb4770e93e202a239137521f6aaf0d1968fa72bd210d6cc1f89b32785bc2 SHA512 c4d90d65fa36d4b5affca50315e78ba0e810dc251c8fca7033293f94eb499eb5b09fb364aa6a781295b73d0f391cae47636a1ba9d1d8fc92381fa026cd09475a
+DIST signxml-5.2.0.tar.gz.provenance 9794 BLAKE2B 9ed207fbf1b6fbc64641a6bf974d511ada81c2e9e600fd02f424823b205bcb895a9eaaa995c6991afb496d2e03914294ab8aabac7242cdfd3894023a7b3fc50a SHA512 d3835e7af03fb22a1ba51782a34702cef221120ddb52cf57870f6cc774e1f60c36520b1a04d3fb3a479bedc078ab4a2606de6ed63b1d2a2b8131bd81a62350d6
diff --git a/dev-python/signxml/signxml-4.5.1.ebuild b/dev-python/signxml/signxml-4.5.1.ebuild
deleted file mode 100644
index ffbfd98011fd..000000000000
--- a/dev-python/signxml/signxml-4.5.1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYPI_VERIFY_REPO=https://github.com/XML-Security/signxml
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python XML Signature and XAdES library"
-HOMEPAGE="
- https://pypi.org/project/signxml/
- https://github.com/XML-Security/signxml
-"
-
-if [[ ${PV} == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/XML-Security/signxml.git"
-else
- inherit pypi
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv"
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/lxml-5[${PYTHON_USEDEP}]
- <dev-python/lxml-7[${PYTHON_USEDEP}]
- >=dev-python/cryptography-43[${PYTHON_USEDEP}]
- >=dev-python/certifi-2023.11.17[${PYTHON_USEDEP}]
-"
-
-python_test() {
- "${EPYTHON}" test/test.py -v || die
-}
diff --git a/dev-python/signxml/signxml-5.0.1.ebuild b/dev-python/signxml/signxml-5.2.0.ebuild
index 8bc3d22891c3..88be6abb68ae 100644
--- a/dev-python/signxml/signxml-5.0.1.ebuild
+++ b/dev-python/signxml/signxml-5.2.0.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/XML-Security/signxml.git"
else
inherit pypi
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
fi
LICENSE="Apache-2.0"
diff --git a/dev-python/simpleeval/simpleeval-1.0.8.ebuild b/dev-python/simpleeval/simpleeval-1.0.8.ebuild
index fd3cd97d5229..d67487b94cf1 100644
--- a/dev-python/simpleeval/simpleeval-1.0.8.ebuild
+++ b/dev-python/simpleeval/simpleeval-1.0.8.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
distutils_enable_tests unittest
diff --git a/dev-python/sphinx-autodoc-typehints/Manifest b/dev-python/sphinx-autodoc-typehints/Manifest
index b4b12dd2af4a..85859a720cd8 100644
--- a/dev-python/sphinx-autodoc-typehints/Manifest
+++ b/dev-python/sphinx-autodoc-typehints/Manifest
@@ -1,7 +1,5 @@
DIST sphinx_autodoc_typehints-3.13.10.tar.gz 100076 BLAKE2B a3cd612ee32e78920461d32c0a42e337c76ef5257f3e8ddb8484d6776a6a3aab77c9612102aef6bfbbad4da64efe808c935c2ef3835fac548080e8dc57533c80 SHA512 4f36fbc66b79c7fa80886af119210ab38d5171d503395a7c23fb3b2d17842f236fc44b7d066120259f38c3df30215bb5cd27094dcd29d3ed60fbcb73880f84b5
DIST sphinx_autodoc_typehints-3.13.10.tar.gz.provenance 9810 BLAKE2B d5a048d784052749c399ee9cdd932846c21a5130f1262edbbc8ff226898f15693b71ae9c76e6c38989aac6999dbdda40b58922d75705300e3543dcf6320ee8fd SHA512 80f97d4516bae5dae93facd16d74af90d6b204d73b8467e5a9c46b7bf3e00072534c7bd22195d83924d3e00644964b5620b3c26e1c9ae08ceb934a5c8cc05c5f
-DIST sphinx_autodoc_typehints-3.13.6.tar.gz 95235 BLAKE2B e9574881509897dd4822ac70612ef46fb6203812bf1508c0a3939874ecab4e538b5960b58ecc4922f8d23bf4a409453acf826f15cf63de8f048d06afdf6004d2 SHA512 2f3d314a6bb69271468b45ce4e12aef4f888c37d416dfa09e2539d73d016766a7af128f40cb1a747c41085fbd9f8d40e6775bd7f011084b5c66f7b86742681e9
-DIST sphinx_autodoc_typehints-3.13.6.tar.gz.provenance 10227 BLAKE2B c5e584dfa6b6dc7045aa791af8dcc0340713e818bf519f897db85cb46910c580d69415a869f3d32762809fb92ee51303dfc3e87e72c6d071d7bbb62b196e3145 SHA512 235d2185f022e080d47e938fefd8f4f962c48fa6e5582219ca65f43a0a30e757b5b4b1d661f0a1a2867519ec0b9bf0984b4a0eb1d861333728b0ccfcdd502c52
DIST sphinx_autodoc_typehints-3.13.7.tar.gz 96990 BLAKE2B 3f81fd81ce6e041e68d0e8bc9a7d65eaba70aa63b84513033845a3453345a1d495207663639e591c543ad9b343c9105c153c2b864e7d1a3fdca3025da6ac1360 SHA512 01f069cb1a005037621299983d1c4b2cff62cec5d7e7726e50713797535dc4dd1d64cde8ff40acae312a458a61bf4f7793a771a8102f7ca79e40f82a617380a9
DIST sphinx_autodoc_typehints-3.13.7.tar.gz.provenance 9945 BLAKE2B e3d9e37540f0f57e0c99b5e9ec8c7753eaf9025e4c40f7e14d32c7653c2ea90fb334ef64fe0d47e5696cdc16a8d7f90908403bfd972c28da1656e6d9fd1cdd14 SHA512 fbc546cd985536f36f911d24ccc2cad6ab953080d6f1ce470c6587fb5a7c9c692c7fc793cf49f1bdddb0348b7465c855794ff697b96be16baa6e5569b6711ce3
DIST sphinx_autodoc_typehints-3.13.8.tar.gz 97092 BLAKE2B 1481942fc699d784f1dbf88379e3cb418374e5005b4ff347159978d295d8b41d27785de2f06d49215e533f0a497e0eab7f2a137b9602b2f1370d0f6bb8a6ad0f SHA512 5030f010dd3be05e54e10b6919c883a83b0a0505a5ba323e3bafd97be6252294c98c1e22935f199f0bd31ccf926f15cf7d9e1adf34841d00c64af0067aaa7a75
@@ -10,3 +8,5 @@ DIST sphinx_autodoc_typehints-3.13.9.tar.gz 97745 BLAKE2B 9ca4a81581ff875a688693
DIST sphinx_autodoc_typehints-3.13.9.tar.gz.provenance 10064 BLAKE2B 2cea9575b864d12bf2cc6ef0e1b70a2dfeda295179c33a97ed3cb9b39e46b6c79abd5fddf9890b25ce39c41659809b32f236a3986f670c7de233779cf22b5d49 SHA512 aca83e39274b1060c9be594ee10da94e547f0fe1d118763e9f303c14ea10a6e082332f53aceecbe9f019faf6d7e53c2bfed54fbf676dabf34772dee3ba508d61
DIST sphinx_autodoc_typehints-3.17.1.tar.gz 569671 BLAKE2B 583924f2e4aabd97712a5e711d70dc4cdf92b939b70a30a57420f987a20468a1f39c0c2ecd0ae59895bcd977a9af5eeab8b1ed1e5565a284b2a2b1066c35d5a3 SHA512 7cd716785dd368adc08183a7e616a3ad7ab9789b03f959a472c71bf5c3fd3b028f08ed6074800f3f056d504766d72a593fa253565884f90eb6c3faf2527e164d
DIST sphinx_autodoc_typehints-3.17.1.tar.gz.provenance 10272 BLAKE2B c234b81565643cf1f3fd38c1208a0f0bc8d8d2386bf84ab63ec653d2e23f1ddff6068dd89621b38c7a23267e5907ba18ab0179460202184032533060011db666 SHA512 c3243c47ffe427d0bcb94fa5d55081681f38a35e9c8a5929c5f768fc95297bf4c0eba3e52cb4499c1f625b3f7535de0e65c1766c5b20f093f6e7331726c83546
+DIST sphinx_autodoc_typehints-3.17.2.tar.gz 570767 BLAKE2B 12b8391522a6744ff39650b459be014d32333359708627aecd3f18dec4c121e5acdd835d97aaf380496479a03b15e6bd733985b8c1c0b0f2f5885dad32084b12 SHA512 3b64c3b53bcdfb624bcefc90d264c3017b17cfc11e619897d40efd406dd63f7b8da61d16b795c2114d4e2a4b32823861cefef2b985f15b08dddad4f942eeae61
+DIST sphinx_autodoc_typehints-3.17.2.tar.gz.provenance 10299 BLAKE2B 21e5e3ff89ab8779b4830903353c3d87a76e66e617e69431f1705f4dce17931acd3568200f7deca19785f418f508b1b1e6a04e605be4aa8ac5e7d3007a5f0e64 SHA512 584b0dcfa7a7c88aa33e3ff5c557f855c212fed3217f6dd807cbe26cd84c4ce7098791773782763d424c79d6b4dde200bfcf29e8f152515c7a347a6276213954
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild
index 238733c448a1..fc631287b941 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild
@@ -17,7 +17,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-9.0.4[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.1.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.1.ebuild
index 035241172498..63872faded8e 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.1.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
RDEPEND="
>=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
@@ -30,8 +30,10 @@ RDEPEND="
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
+ >=dev-python/annotated-doc-0.0.5[${PYTHON_USEDEP}]
>=dev-python/attrs-25.4[${PYTHON_USEDEP}]
>=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
>=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
)
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.6.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.2.ebuild
index fc631287b941..f5bb938088e6 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.6.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.17.2.ebuild
@@ -17,18 +17,23 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
RDEPEND="
>=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.16[${PYTHON_USEDEP}]
+ ' 3.{12..14})
"
# skipping optional test dep on dev-python/nptyping as that package
# is horribly broken and on its way out
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
+ >=dev-python/annotated-doc-0.0.5[${PYTHON_USEDEP}]
>=dev-python/attrs-25.4[${PYTHON_USEDEP}]
>=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
>=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
)
@@ -41,4 +46,8 @@ EPYTEST_DESELECT=(
# Internet
tests/test_annotations.py::test_format_annotation
tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
+ # requires sphinx_design
+ tests/test_live_example.py
+ # TODO
+ tests/_resolve/backfill/stubs/test_find.py::test_stub_path_reads_the_properties_of_a_module_proxy
)
diff --git a/dev-python/sphinx-gallery/sphinx-gallery-0.22.1.ebuild b/dev-python/sphinx-gallery/sphinx-gallery-0.22.1.ebuild
index bedb837c29d9..47211fcf2ee2 100644
--- a/dev-python/sphinx-gallery/sphinx-gallery-0.22.1.ebuild
+++ b/dev-python/sphinx-gallery/sphinx-gallery-0.22.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 x86"
RDEPEND="
dev-python/matplotlib[${PYTHON_USEDEP}]
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild
index b46152f6c679..de47d8afec0a 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
IUSE="examples +sqlite test"
RDEPEND="
diff --git a/dev-python/sshtunnel/metadata.xml b/dev-python/sshtunnel/metadata.xml
index 0d0651391ca6..11e6224d585e 100644
--- a/dev-python/sshtunnel/metadata.xml
+++ b/dev-python/sshtunnel/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
- </maintainer>
<stabilize-allarches />
<origin>srcux</origin>
</pkgmetadata>
diff --git a/dev-python/starlette/Manifest b/dev-python/starlette/Manifest
index 64f7b99087dd..1b15d8533f39 100644
--- a/dev-python/starlette/Manifest
+++ b/dev-python/starlette/Manifest
@@ -1,3 +1,4 @@
DIST starlette-1.6.0.gh.tar.gz 2720742 BLAKE2B d8e72166045fdafdced1367b2f42ca4117c891577b9b0008590bd62b2d32a61eecf00f406c510511602a88d72908cb94ec3b6bb63f03027b99e7c31ab5b2a9cc SHA512 b415a5fde7572a1ee1965c7fdaeb0cb5a9b5f7ab8471f3085de730141f531302e7eb0fb61546c65af54f7d8a7a5a49ff2e2f03b544b99358dcaa499082b5d3bd
DIST starlette-1.7.0.gh.tar.gz 2738875 BLAKE2B aba95d92ed3f6b9b0f684fc2b0c7181c8deb90dd7a736785cc10a5de9fd955894031aee8be3192d69716dc0ea47cccfe077e1a7157d4ff05282f7e35db3304f9 SHA512 cb599db97c50a75a343ed264c9296900db76b3677e3149938b33c457c6190a3493506d016d66db03adb1f7bc74980dda28b19cb02034fd590762848dacbc5924
DIST starlette-1.8.0.gh.tar.gz 2733341 BLAKE2B 629b48a85001962af0aac9555a2fca1b979779cc4dda9efd93fb2a5df3e9fb0964255e656ce4094d8caea00d9633aaebdf5a3a9860d3e63baf2a5b0a3d9638bc SHA512 fda29f1af0233dee6f1be3c535cf57d3a695045931af31792c64c6c1cd51972d2ade4fe90d8f2d58146803c48b3b479cf6c90d9869236f8acba7048ad699d812
+DIST starlette-1.9.0.gh.tar.gz 2735383 BLAKE2B a3e5b05248ff4bd0108c430b18811ff54021251064146e03f982a51b36870c43e04eaca346bec3eaaaab025f5db6b0315a9b4040593b8ee3f40586dac955d080 SHA512 c87a2723d6b008a5b6dcd6a86b76445aea573a1b617de59068ad4cddd05bb96fbf9474b2138e13a0cb41402b1df1d48ea53b23b7c8abbad80fa2d7de1cdb475e
diff --git a/dev-python/starlette/starlette-1.9.0.ebuild b/dev-python/starlette/starlette-1.9.0.ebuild
new file mode 100644
index 000000000000..032fc6fce554
--- /dev/null
+++ b/dev-python/starlette/starlette-1.9.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P=${P/_p/.post}
+DESCRIPTION="The little ASGI framework that shines"
+HOMEPAGE="
+ https://github.com/Kludex/starlette/
+ https://pypi.org/project/starlette/
+"
+# no docs or tests in sdist, as of 0.27.0
+SRC_URI="
+ https://github.com/Kludex/starlette/archive/${PV/_p/.post}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# TODO: default to httpx2? add some flags?
+RDEPEND="
+ <dev-python/anyio-5[${PYTHON_USEDEP}]
+ >=dev-python/anyio-4.0.0[${PYTHON_USEDEP}]
+ <dev-python/httpx-0.29[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.22.0[${PYTHON_USEDEP}]
+ dev-python/itsdangerous[${PYTHON_USEDEP}]
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ >=dev-python/python-multipart-0.0.18[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/blockbuster[${PYTHON_USEDEP}]
+ dev-python/httpx2[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-sdk[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio )
+: ${EPYTEST_TIMEOUT:-180}
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # Unpackaged 'databases' dependency
+ tests/test_database.py
+)
diff --git a/dev-python/strip-hints/Manifest b/dev-python/strip-hints/Manifest
index dd3a0eff5a19..6fa5a3df8363 100644
--- a/dev-python/strip-hints/Manifest
+++ b/dev-python/strip-hints/Manifest
@@ -1 +1,2 @@
DIST strip-hints-0.1.13.gh.tar.gz 24743 BLAKE2B 1c448fb1b22ef69dcacdc47c9bf0bb623b5726fb82779779e140659f28d9a9b57ef70e6b8d8dbb2c15863ba04e5f5261f50672fe7b01223de40f00a93ac18b04 SHA512 61b364492578420e89de1bdf6ea18ac622cd2ce49d0691864ad531cee6e8b44684bf1d2ab487403455607f9d8b1da1373fb686962ddad57330e0fbd44adb6b47
+DIST strip-hints-0.2.0.gh.tar.gz 24743 BLAKE2B 1c448fb1b22ef69dcacdc47c9bf0bb623b5726fb82779779e140659f28d9a9b57ef70e6b8d8dbb2c15863ba04e5f5261f50672fe7b01223de40f00a93ac18b04 SHA512 61b364492578420e89de1bdf6ea18ac622cd2ce49d0691864ad531cee6e8b44684bf1d2ab487403455607f9d8b1da1373fb686962ddad57330e0fbd44adb6b47
diff --git a/dev-python/strip-hints/strip-hints-0.2.0.ebuild b/dev-python/strip-hints/strip-hints-0.2.0.ebuild
new file mode 100644
index 000000000000..9453248fa9e6
--- /dev/null
+++ b/dev-python/strip-hints/strip-hints-0.2.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 edo
+
+DESCRIPTION="Function and command-line program to strip Python type hints"
+HOMEPAGE="https://pypi.org/project/strip-hints
+ https://github.com/abarker/strip-hints"
+
+# Using github tarball due to missing tests in pypi archive
+MY_PV="8e55ffaddcc8c8a0fc968729718e0c6abe2b71e9"
+SRC_URI="https://github.com/abarker/strip-hints/archive/${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+python_test() {
+ cd test || die
+ edo ./run_tests.bash
+}
diff --git a/dev-python/syrupy/Manifest b/dev-python/syrupy/Manifest
index c259835ed9ab..5fe6ba3548da 100644
--- a/dev-python/syrupy/Manifest
+++ b/dev-python/syrupy/Manifest
@@ -1,5 +1,3 @@
-DIST syrupy-5.5.3.tar.gz 91614 BLAKE2B 5481efc54b256edf58a849881a7cdf4ebfa84f25f5df5c7539f176a6fa54d1b9ac293d83e1c760d750b60f2b869403b26785f2f264d31552399f9ce3b2a5f8be SHA512 b2c5a1d1d0f9651b3781a0e647cf988a0b30e7836355d803bfe90f816f8dc16d8a0cc252b2108642862e3d4140eca1c796af27d7d189bcb3e258cc78545f870d
-DIST syrupy-5.5.3.tar.gz.provenance 10174 BLAKE2B 2c903cddf3df51f8f1a325fa6a5e476ba3dad5299bd17a3e0ef8376439fc0394b8b591bfc0a204b0812754f39cfa7e84f2f807a03afc02f482469877abf36302 SHA512 56ca1a127baae757dbec0490608b67d29167355e8c3e9d2de3e78b3d01b4e825dd942b5475b2239bf6d474b04548c879011d0043bae5137b73f13778f73048fb
DIST syrupy-6.0.0.tar.gz 99435 BLAKE2B 5780a6c085a7c78c77d41c277b2dc04b7a80a94cd60c5a7c039ce10dbdc7b50052c4f3f185c8829ae9539a6f8fe6520f5ba1dcdb68fac055ce5fa4865f5146fb SHA512 7dbb7a156b724100aae072f9316f264492b258fb1d5756b90f20c34acc453a1bafa1a0a195b0146b2ab536a27b6e6ce081976a4f9fdd7854dce10e5a50246e67
DIST syrupy-6.0.0.tar.gz.provenance 9792 BLAKE2B 26f7f3e2cddf34d0cf25334b75abaad68983d47a7535acddc56520802d92aba43b74fbd818110a1f02d35a3d28a4f09e1705fa85baec1c6805540bfe183321be SHA512 f7b8a80151de9a300f22e90e20d501373303ddb9cfc5d1a0358c1ea12199d907aceaa0db900ab1cb6ef039f747fc323accccf034fe537fd281ad2fe5ddb7f13f
DIST syrupy-6.1.1.tar.gz 109705 BLAKE2B ae0fc3f486515c76be8389641353a14c75f581ee8644144b6efdba9f0f1f54fb0436271dd48c60f1d0216e2588712537b47421a57faf08864fcf0f0419a3e2a4 SHA512 b4d0c35cbe13ad9d14f4d16df0bc67026e873752feae66c2138f615f7134409a2d16224b4214fecadabe217bba6c3217265880f1782e4674b8de2648adbf3cf0
diff --git a/dev-python/syrupy/syrupy-5.5.3.ebuild b/dev-python/syrupy/syrupy-5.5.3.ebuild
deleted file mode 100644
index 09be33be6780..000000000000
--- a/dev-python/syrupy/syrupy-5.5.3.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYPI_VERIFY_REPO=https://github.com/syrupy-project/syrupy
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="The sweeter pytest snapshot plugin"
-HOMEPAGE="
- https://github.com/syrupy-project/syrupy/
- https://pypi.org/project/syrupy/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-RDEPEND="
- >=dev-python/pytest-8.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/attrs-26.1.0[${PYTHON_USEDEP}]
- >=dev-python/pydantic-2.13.4[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-# pytest-xdist used inside tests
-EPYTEST_PLUGINS=( "${PN}" hypothesis pytest-xdist )
-distutils_enable_tests pytest
-
-python_test() {
- epytest -o xfail_strict=False
-}
diff --git a/dev-python/syrupy/syrupy-6.1.1.ebuild b/dev-python/syrupy/syrupy-6.1.1.ebuild
index 8835100d3b09..09be33be6780 100644
--- a/dev-python/syrupy/syrupy-6.1.1.ebuild
+++ b/dev-python/syrupy/syrupy-6.1.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
RDEPEND="
>=dev-python/pytest-8.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/tavern/Manifest b/dev-python/tavern/Manifest
index 1f0b222a6910..fdf67c58172a 100644
--- a/dev-python/tavern/Manifest
+++ b/dev-python/tavern/Manifest
@@ -1,4 +1,3 @@
-DIST tavern-3.6.1.gh.tar.gz 734344 BLAKE2B bb3ed80c9c290e7c050d1a0590804cbf499fc9584567fab6cce0beeba8ba798319c0c4edaf614cb3cd6fe9a02313e1ff4c47042ece755ff8b408e4125f0f4805 SHA512 1178df1ec0079022dd3cd5afe214e27d0455b7e0f2cd315798f8291d671ae85a51d3e480743d19f5a340ede8a4989700f74d96683ddb99ff7c2212298e2bccf5
-DIST tavern-3.6.2.gh.tar.gz 768394 BLAKE2B db97acfc7395eaa481bbcbb08d7e09978a395c202c88536803c0fd9659258dec717c0f08e866a3bef8283658a82342fecc2c63c7c0ec1ab857811a1d1c62e8d2 SHA512 f73991f996ed979e227886a8867ddc4a5837ce1292eb4c4c0f696971366b0c7695adbe2f242f64535ebcd61ac081efa1fafdaf8f10f3f767a3d490abc37a6ff0
DIST tavern-3.6.3.gh.tar.gz 769747 BLAKE2B 7f81d9bce49f212c8855775ad98b9a5d1e9d958170bef6769057472d2a3198d45251e0a873d2efdefc61871e48d7d060066da7cecb3a7597fb46f6f50581b34d SHA512 e93454fe8e15a18baa8dae8cb727dc6da03e1125a2e8968045cd8cb44e96b2f2bf8e1e9ce04f26c6770f5cc4ed41aded7aa49c9dc5c798f0bd02a1f69f90e36d
DIST tavern-3.7.0.gh.tar.gz 776796 BLAKE2B d1ad141f95177c7a8231b37950050ccb02f74b261989aa44b55cc46487f3fab92143e8a469b644c34eaeb6fb395d80cc00bafae9fbfb87fbc2188dd553ed48d7 SHA512 f81def1db77cf0ea6b459f5e16c2c0f3b950b5ec0ae14a809e9d9286a9cfdb348a956d1bad5fb0c891bd88267cbb89b4c639e2c21eda3a87c91505532d022cf7
+DIST tavern-3.7.1.gh.tar.gz 806853 BLAKE2B 918c8cf10331c7f291d561b9cae2591fdf6d731959ba993e9f29c9b09be594ec3e1128501497bd6fa5d8c0d5902164ff7bcd17429da565e637d520bf66558ae5 SHA512 5fe85746eef5929f239e91ff247e84729f713681f10c8c92f7a5c6d4d91a6b42ac5ca038bb413f5ff7819fa97592732ec090911881fb55dbf5f495593e96261e
diff --git a/dev-python/tavern/tavern-3.6.1.ebuild b/dev-python/tavern/tavern-3.6.1.ebuild
deleted file mode 100644
index 53b673c2ffd1..000000000000
--- a/dev-python/tavern/tavern-3.6.1.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit-core
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="A tool, library, and Pytest plugin for testing RESTful APIs"
-HOMEPAGE="
- https://github.com/taverntesting/tavern/
- https://pypi.org/project/tavern/
-"
-SRC_URI="
- https://github.com/taverntesting/tavern/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64"
-
-RDEPEND="
- >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
- >=dev-python/jmespath-1[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4[${PYTHON_USEDEP}]
- dev-python/pydantic[${PYTHON_USEDEP}]
- >=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
- >=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-8[${PYTHON_USEDEP}]
- >=dev-python/python-box-6[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
- >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
- >=dev-python/simpleeval-1.0.3[${PYTHON_USEDEP}]
- >=dev-python/stevedore-4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/colorlog[${PYTHON_USEDEP}]
- dev-python/faker[${PYTHON_USEDEP}]
- dev-python/paho-mqtt[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( "${PN}" )
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # requires grpc
- tests/unit/test_extensions.py::TestGrpcCodes
- # broken with paho-mqtt-2
- tests/unit/test_mqtt.py::TestClient::test_context_connection_success
- # TODO
- tests/unit/response/test_mqtt_response.py::TestResponse::test_same_topic
-)
-EPYTEST_IGNORE=(
- # require grpc*
- tavern/_plugins/grpc
- tests/unit/tavern_grpc
- # require gql
- tavern/_plugins/graphql
- tests/unit/plugins/graphql
-)
-
-src_prepare() {
- # strip unnecessary pins, upstream doesn't update them a lot
- sed -i -E -e 's:,?<=?[0-9.]+::' pyproject.toml || die
- distutils-r1_src_prepare
-}
diff --git a/dev-python/tavern/tavern-3.6.2.ebuild b/dev-python/tavern/tavern-3.7.1.ebuild
index 508d63607e75..d83575dfb425 100644
--- a/dev-python/tavern/tavern-3.6.2.ebuild
+++ b/dev-python/tavern/tavern-3.7.1.ebuild
@@ -20,13 +20,13 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm64"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/hypothesis-6[${PYTHON_USEDEP}]
>=dev-python/jmespath-1[${PYTHON_USEDEP}]
>=dev-python/jsonschema-4[${PYTHON_USEDEP}]
- dev-python/pydantic[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
>=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
>=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
>=dev-python/pytest-8[${PYTHON_USEDEP}]
@@ -54,6 +54,8 @@ EPYTEST_DESELECT=(
tests/unit/test_mqtt.py::TestClient::test_context_connection_success
# TODO
tests/unit/response/test_mqtt_response.py::TestResponse::test_same_topic
+ # BadSchemaError; grpc incompatibility?
+ tests/unit/test_schema.py::TestGRPCErrors::test_valid
)
EPYTEST_IGNORE=(
# require grpc*
@@ -71,3 +73,8 @@ src_prepare() {
sed -i -E -e 's:,?<=?[0-9.]+::' pyproject.toml || die
distutils-r1_src_prepare
}
+
+python_test() {
+ # integration tests require flask-httpauth
+ epytest tavern tests/unit
+}
diff --git a/dev-python/texttable/Manifest b/dev-python/texttable/Manifest
index e7aa3da83f7d..0f7450aa6c2c 100644
--- a/dev-python/texttable/Manifest
+++ b/dev-python/texttable/Manifest
@@ -1,2 +1,3 @@
DIST texttable-1.7.0.gh.tar.gz 11928 BLAKE2B 7f8ae7b7c249d72dcc6b75ee78128bfe46f49b4ca8612a6fc23967f19b6f5ac1fd5e8ebf1b53734cfb7e067c8ee06e2b15dec8be58b0186bfbef8379d0d87464 SHA512 30b99abe0448fd4ab7a0ef70f5762a388978c2c09acd843e0a669a7870b6b73df8bc638e94853d77186df104bfa2d689f8b72d11df90b6844355ae0b38f6e549
DIST texttable-1.7.1.gh.tar.gz 12318 BLAKE2B 5e7391177ab8147084ab8730fce4b660a0ddcdb514c79d2c7a5852d7c8eade20da3f3b3615c2a2d671a3d9caa3f5d96bc9a8a5de5bcefcf8aadcf4cc93e77bae SHA512 43a1068011923cf3b4155cf7a64d76ca4b66f099f85a205cbe18f0463aa199aaabb4ceb93d8b66419c2464766dc9ed0ff023ffbaee79034fc534bfcce3462291
+DIST texttable-1.7.2.gh.tar.gz 12521 BLAKE2B f826c492b0c6e3de53c6840baf499e4fbb40666e175d23fcb03309e6dfdef89222cb5365718ad6c60da568d579dbfad930067937d78cbb7f4f41cc2a4e702dd4 SHA512 9f225bd1dff004076f7fa2ef5d724ae7f7d741d76b38763dd943a1fa32dbb8dcce8ffb026a338a5bf696c892d14b205b1289ab92608828e26056b76cf05a9bf4
diff --git a/dev-python/texttable/texttable-1.7.2.ebuild b/dev-python/texttable/texttable-1.7.2.ebuild
new file mode 100644
index 000000000000..3cc4e768b2b2
--- /dev/null
+++ b/dev-python/texttable/texttable-1.7.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Module to create simple ASCII tables"
+HOMEPAGE="
+ https://github.com/foutaise/texttable/
+ https://pypi.org/project/texttable/
+"
+SRC_URI="https://github.com/foutaise/texttable/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest tests.py
+}
+
+pkg_postinst() {
+ optfeature "better wrapping of CJK text" dev-python/cjkwrap
+}
diff --git a/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
index 008367aebffe..0c3973313c3b 100644
--- a/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
+++ b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86 ~arm64-macos ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/time-machine/Manifest b/dev-python/time-machine/Manifest
index 64d6fdf5ddf0..58d401cbb357 100644
--- a/dev-python/time-machine/Manifest
+++ b/dev-python/time-machine/Manifest
@@ -1,5 +1,3 @@
DIST time-machine-3.2.0.gh.tar.gz 85884 BLAKE2B dc771f17c8089a6f121cf99ad8dcf5f0e9aaec345dbdfb0be4ccfc9123b10561cebc116dd9db6d1b4c939cf49fa80e16d8be75e9adfe394ad5392dc1dfe2c12c SHA512 84ff8d2e9c9bdde90efe3548bc151f38f812a4ba624cc9556dd2a89f72d664d73dca8be64a65ca2a5019393e5a8f91e130804313685b23dccc4932a9e05f973b
-DIST time-machine-3.3.1.gh.tar.gz 106731 BLAKE2B 2bfa1278325a8e09b5ce98b9b16fcbe6bc783d0ee45713f341815c12fb0e573d52d5595b2e542139b940cc1136d173c2260523193eaa8a653da5288ab5136904 SHA512 29db83914ffdce0a00a6f84bf4638c1ccaf7d4a3d85e9423cb0b9c5700ee89d11710e754bfb448fde5e9a4cb8acb455143c0896af8ca34919296c06cd1380fe6
-DIST time-machine-3.4.0.gh.tar.gz 112256 BLAKE2B 08a915d2e72b1d416d4b8a629bad5de29e9b96166af397d31b47669531b59cf710d8276c2bb2b77799d7f28506b287628bcaef17837190c9a17903f19f159bcf SHA512 539c6be5ed35331698ccd9d95beb969c201c9e8427f19ddd4db0e5edc1a6d22c63960674115964e40bfd59d03cade800a581d68b01f63b927c819042bf5a404d
DIST time-machine-3.5.0.gh.tar.gz 134115 BLAKE2B c7b23c0efcb6e179416bd44d245bcc7bd235f4d46a601c3db3cd0afd5bba01790369f1341ff717549c73326cd4883674ee001231c3aac9a394709186b62bafc7 SHA512 418e5d868995448624dbb63dcb0032801b368d43bb43027e51b5b737b752e879c6bb10029efe302c63018fef290b92148e6925f4aa6e0567c50b54a6166b4d7c
DIST time-machine-3.5.1.gh.tar.gz 146210 BLAKE2B dddcc578bb23cb038b46c7a37640ce769369febe7d64d97f6ace4293c776b6cb374388bcd5705d7ccfd42000311e86fa214429c07655d1e15f2ac3c73d85c70a SHA512 04b365a010cb1a604a3ea214855bc016890c00795214c1bd09b1ec3d4b858e9428284a6c94308a7510fd3018f4c8974f2dba6836983807975d2994c30eb06be9
diff --git a/dev-python/time-machine/time-machine-3.3.1.ebuild b/dev-python/time-machine/time-machine-3.3.1.ebuild
deleted file mode 100644
index 907484072dbc..000000000000
--- a/dev-python/time-machine/time-machine-3.3.1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Travel through time in your tests"
-HOMEPAGE="
- https://github.com/adamchainz/time-machine/
- https://pypi.org/project/time-machine/
-"
-SRC_URI="
- https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-BDEPEND="
- test? (
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/tokenize-rt[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" hypothesis )
-distutils_enable_tests pytest
diff --git a/dev-python/time-machine/time-machine-3.4.0.ebuild b/dev-python/time-machine/time-machine-3.4.0.ebuild
deleted file mode 100644
index 907484072dbc..000000000000
--- a/dev-python/time-machine/time-machine-3.4.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Travel through time in your tests"
-HOMEPAGE="
- https://github.com/adamchainz/time-machine/
- https://pypi.org/project/time-machine/
-"
-SRC_URI="
- https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-BDEPEND="
- test? (
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/tokenize-rt[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" hypothesis )
-distutils_enable_tests pytest
diff --git a/dev-python/time-machine/time-machine-3.5.1.ebuild b/dev-python/time-machine/time-machine-3.5.1.ebuild
index 11af38908765..83acf3506841 100644
--- a/dev-python/time-machine/time-machine-3.5.1.ebuild
+++ b/dev-python/time-machine/time-machine-3.5.1.ebuild
@@ -7,7 +7,7 @@ DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1
+inherit distutils-r1 toolchain-funcs
DESCRIPTION="Travel through time in your tests"
HOMEPAGE="
@@ -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"
BDEPEND="
test? (
@@ -34,3 +34,19 @@ BDEPEND="
EPYTEST_PLUGIN_LOAD_VIA_ENV=1
EPYTEST_PLUGINS=( "${PN}" hypothesis )
distutils_enable_tests pytest
+
+src_test() {
+ local EPYTEST_DESELECT=()
+
+ if ! tc-has-64bit-time_t; then
+ EPYTEST_DESELECT+=(
+ tests/test_fuzz.py::test_travel_to_aware_datetime
+ tests/test_fuzz.py::TestTravelMachine::runTest
+ tests/test_time_machine.py::test_datetime_today_exact_far_future
+ tests/test_time_machine.py::test_datetime_today_subclass_exact_far_future
+ tests/test_time_machine.py::test_date_today_exact_far_future
+ )
+ fi
+
+ distutils-r1_src_test
+}
diff --git a/dev-python/tinycss2/metadata.xml b/dev-python/tinycss2/metadata.xml
index 64a9ada78b8c..7dc1d2678cfb 100644
--- a/dev-python/tinycss2/metadata.xml
+++ b/dev-python/tinycss2/metadata.xml
@@ -5,10 +5,6 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
- <maintainer type="person">
- <email>titanofold@gentoo.org</email>
- <name>Aaron W. Swenson</name>
- </maintainer>
<stabilize-allarches />
<origin>srcux</origin>
</pkgmetadata>
diff --git a/dev-python/tld/Manifest b/dev-python/tld/Manifest
new file mode 100644
index 000000000000..5abca7af0df0
--- /dev/null
+++ b/dev-python/tld/Manifest
@@ -0,0 +1 @@
+DIST tld-0.13.2.tar.gz 464689 BLAKE2B 5bd5f3f6d01a0417868b4e25f6f87efe8a8da85a3efe7e2d064189eaf8206f03aa44a263cc233a9221ee3dd038fcd754a05ebcba17aad5518429947de425f889 SHA512 0af2cf52d91f120a51bde9cb5aff8df2471029da4f4ab43a1584b4b7d157d2f416397f6fcaa0bb2583e5f02b245484eea4c92dd1d333698ae3e51aa4e67a45d5
diff --git a/dev-python/tld/metadata.xml b/dev-python/tld/metadata.xml
new file mode 100644
index 000000000000..73e4a9d598bd
--- /dev/null
+++ b/dev-python/tld/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/barseghyanartur/tld/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/tld/tld-0.13.2.ebuild b/dev-python/tld/tld-0.13.2.ebuild
new file mode 100644
index 000000000000..c3fe5f76fbd5
--- /dev/null
+++ b/dev-python/tld/tld-0.13.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Extracts the top level domain (TLD) from the URL given"
+HOMEPAGE="https://github.com/barseghyanartur/tld"
+SRC_URI="https://github.com/barseghyanartur/tld/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1+ )"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ test? (
+ dev-python/fake[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest --override-ini="addopts="
+}
diff --git a/dev-python/tornado/tornado-6.5.10.ebuild b/dev-python/tornado/tornado-6.5.10.ebuild
index 68d483b79d3a..6488359b331c 100644
--- a/dev-python/tornado/tornado-6.5.10.ebuild
+++ b/dev-python/tornado/tornado-6.5.10.ebuild
@@ -20,7 +20,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="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 89a2c15d25db..27c82ac48293 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -1,5 +1,3 @@
-DIST tox-4.61.2.tar.gz 306825 BLAKE2B 71159dd79aef91c04aed340bc56cbb7cb1bc9b0e11655b7d8663ba3fc483a559f730bbb2082b8eceaa7ed845ddaa18dbf78f4c72498a55f47c6d57e5f58fb352 SHA512 8ba3dfd3f1595077b756204b159721f7b28279425b1cbc7f04e46282c9f08b81496827fcf4738fa056ea6da2a82ce85d69e826b89fa7163b7fc57f2fc60e378e
-DIST tox-4.61.2.tar.gz.provenance 9818 BLAKE2B b6f6d6d2ac83a7c5598df9ba0942a87a7830ea1b2ba5936fd2653db6febde47187a4f9e705504d4a42d7c898b2b850bc005709d9ffc24f787f4ce0dd62977a78 SHA512 c452837d29391310bdba4fc82ea7d0d6464efa394ed5a6629bb997db9578c9f97bf9322174aafb66212f88c69349f85cf73c587029aa501f7d475a4ecc90227b
DIST tox-4.61.4.tar.gz 308140 BLAKE2B ae284f0ac7fcca7d4bcb0ff7442c97b19e8b783d1218336b02e65ba6916cbcdf9a9aa1560b92d0c250d421fa7547e5d15aacc6ebb39989f79ee507e0ea1838b0 SHA512 6fbaa3f0380dc55d90d23a4dc204ef691085970902dedb99a1d9dbcd3713f784896a8cbe33fc367daeb044c367d4fc968da31829f0033e9091a2ef3c1dea5a71
DIST tox-4.61.4.tar.gz.provenance 9548 BLAKE2B 3fe6f9b3f0fb5461b30dbcba77407ebdb420858c31f12a69e78dc3f8b5490f35ae0df658a2e6222686829064a247975bd7747d29531e7dc0309a7ab636c341a6 SHA512 f3c144d2ffcbb8407f2a516a5d8b068e44e862bf163f62ba00bca73e6e543aa765afd0f18f5dbc97591bc4e640b14c68377b29729c0b69c54aadee9b24bad439
DIST tox-4.63.0.tar.gz 310965 BLAKE2B 6ddf45f8bcb2f673136004e5da559f07a64ad5120ae2437f2cd498beb39fcdafe543b4242b90088b56de167516efcc9856914a003c9a79d104742c1d2f3f696a SHA512 4f266d3eff95592aa6648e6e868c6d61c149e4975d092ef2470085819f343ada1027c1484723e8720b030fee495ded957c0c60454a100da7efd46d7a0f54368a
@@ -30,3 +28,7 @@ DIST tox-4.65.6.tar.gz 344248 BLAKE2B 51035fbc0901e2e6cec013afa6ab6568624a3b6173
DIST tox-4.65.6.tar.gz.provenance 9624 BLAKE2B f55d088386544d9b0e7e9770d0f511dc202c12af35d2366ba16c482dd462617b839bb99e04cd1c0ad18b1b6c95a0dbcf0df8bab284e0c52b6f25f660d974a486 SHA512 8f80e86241104d8f0b36d6d79495343785e957dd27671c90a6004494ba424810af350f7a04b1be8ae5c9a4be63595ac96d8e9c7c6dd10d769e25fdf121e6c4ad
DIST tox-4.66.0.tar.gz 344679 BLAKE2B 4d7a437caf1c90c2fe7b02ef919557787aa99fbda0719d5c3ed2e93c491003fba585fb8d17a0211e35d9bc3d7bccd026f698e70bcd08701ed61c5c6b701ecc05 SHA512 d5b42f3e21f488d4417d674b06aba8be5060d46a077c156d3cd0e9102602c61222ded2516988e9f927dd3bc9175df32f26cc34077576d6ebffed4094184acdb8
DIST tox-4.66.0.tar.gz.provenance 9244 BLAKE2B c2cfbcd12de6f9312887e675784e7e2879d23b669acbdd4b984dd359e60077e49a9d5880ab904583eb53a3d8a7cab510b4ff5e908dfd3c9e7955f63b1d5842e3 SHA512 40a99a6a6798b587d1c665fb7857c5867be2fcebfe00c5a3e8c41fc05eeedcc956ea0ed6e4b156dbe7fd4ac15552121ce62b5e4c2080d00938e03da018ca11ad
+DIST tox-4.67.0.tar.gz 346271 BLAKE2B 34ce9a6e6e0e9238d55139cc72d9f9c9479f31c84f02dbd1c8d3ac114437594d70f9700162a645bbb16d28af2f7c3340ca6373b4adc939b8fd06416320961e2a SHA512 1ce9746db4caf5d53a4f6ae34fd1d6604a4588458add4c03d9f9eeb65a9d215a0c75f1c67c4f81b936a6023f48a6edd4c1d3fd72066d8d735f1fdce22ad19a01
+DIST tox-4.67.0.tar.gz.provenance 9655 BLAKE2B c78a747013d7adb270905d22cc230058d1ff24fe21657d517061e5534022e8e06608d4faf1b3ce7b813b18bba9f011fd01cafbe387c24c53464b5fd3372da76c SHA512 e2da096ddf6afa4919c8ab67afa91863398d390d1b9edecc4e9f18227e33eab70404a9c1f4bdd2b1631963c21f0af3addb3911d8091cad008ccb63d3969e8611
+DIST tox-4.67.1.tar.gz 347211 BLAKE2B 2040abee08359939a65d6dfbfa119291926ce6a5db160b891dd6851614200817ba703faa962587b161da1272c422a3bb884b6815872f20cf34716a514e704a55 SHA512 136d2346746f66fdcb4314e4c90e119f9137d5d0bdec39c46c8010940e07fd8005cbba57125147e6df25758bec93defc4059b448864f7c85c828a0053941423d
+DIST tox-4.67.1.tar.gz.provenance 9565 BLAKE2B 7abacdacd7eff1c4d0649611e62885e3dbcf9100127aaac953b99cc6ee72d3db37faa32e7f4c03de65dba2d2faa7d523edd244eaf45ca04cf6ea8d9f6e35bc47 SHA512 544582b6d7e6213979bf577259bdfb5c1c0c343bd98543b16d4c6a3282dc4380b592baa8d00454de4a4134727322f7233bd22a4b1c7fe20194724d830a7bb6f9
diff --git a/dev-python/tox/tox-4.61.4.ebuild b/dev-python/tox/tox-4.61.4.ebuild
index 8eb35c40185e..3bac2113b5ce 100644
--- a/dev-python/tox/tox-4.61.4.ebuild
+++ b/dev-python/tox/tox-4.61.4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 x86"
RDEPEND="
dev-python/cachetools[${PYTHON_USEDEP}]
diff --git a/dev-python/tox/tox-4.61.2.ebuild b/dev-python/tox/tox-4.67.0.ebuild
index 3bac2113b5ce..9d80c8ee22b8 100644
--- a/dev-python/tox/tox-4.61.2.ebuild
+++ b/dev-python/tox/tox-4.67.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
RDEPEND="
dev-python/cachetools[${PYTHON_USEDEP}]
@@ -51,7 +51,7 @@ EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} time-machine )
EPYTEST_RERUNS=3
# upstream timeouts are quite short
: ${EPYTEST_TIMEOUT:=180}
-# xdist seems to mess up state between successive implementation runs
+EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/tox/tox-4.67.1.ebuild b/dev-python/tox/tox-4.67.1.ebuild
new file mode 100644
index 000000000000..9d80c8ee22b8
--- /dev/null
+++ b/dev-python/tox/tox-4.67.1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/tox
+PYTHON_COMPAT=( python3_{13..14} )
+
+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 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${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/python-discovery[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.15[${PYTHON_USEDEP}]
+ ' 3.12)
+"
+BDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} time-machine )
+EPYTEST_RERUNS=3
+# upstream timeouts are quite short
+: ${EPYTEST_TIMEOUT:=180}
+EPYTEST_XDIST=1
+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
+ # require tombi
+ tests/session/cmd/test_schema.py::test_schema_tombi_lint
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ epytest -o addopts=
+}
diff --git a/dev-python/tqdm/Manifest b/dev-python/tqdm/Manifest
index 6d083a92b498..2e01cdeaeb32 100644
--- a/dev-python/tqdm/Manifest
+++ b/dev-python/tqdm/Manifest
@@ -1,5 +1,3 @@
-DIST tqdm-4.69.1.tar.gz 793046 BLAKE2B a8c96922147fd13bb04a75ea4c08ac1d1ed5a076ddebd143e2df8c4f10532f6aa9931a88e57a2c499744f0a4bd874436722824248867aa1149c5da448940aafa SHA512 33a3831c48a90c39588e25a6a90ff7716d5bb1886f5a8edce3cc5bce11c9eae0e1624132baac481d7cd84b291512683d4df25184005ff2205c3f2b3dd5fd3409
-DIST tqdm-4.69.1.tar.gz.provenance 9573 BLAKE2B 4ff0b33b10620a586c9bf6fce89c78891361eefe966e5cd72ca2517bd104a055d418111aa33d1049b0619ee6bf7d4604703a1f8ea1bbf103e8d25f61a557ee3c SHA512 0dd45e0cc9dce5228b45c2b0f4037fea8fcd4dc58971961f0b1f7ae56e2dbeaddcfb934af81cfd537c1166f62cc6d14aed287ea359a8c1778b8166308fc244c1
DIST tqdm-4.70.0.tar.gz 795438 BLAKE2B 7548bff6157c7356a0b4c011e3f6a5a143ac8ac31d445ee282fcc989496a83000a3f85eee05150e9bd0714cb506924b5fa096d3eeda0a73065fc7dc67134a953 SHA512 34f9cde7df0c9c914769c9254800ddf8668ca04a31316752253056a9cbbde9b0ae104517be51259e0220c7a1beb81587f9d91e920841fe7ecd8600c3e3570b51
DIST tqdm-4.70.0.tar.gz.provenance 9663 BLAKE2B e7de4e53436b5c2115de0751a9bc9bd02e3e6fdd20f264c564797c25500e6cc7eff3606c6cef8f75bba0ad495e13531a9b2a16381628737935b21bcf6324430a SHA512 287259aa31f75f7d80e93c94d5e997f6cbb868c69182d7288b106a4b27f8fa3d885338de3afbc079d48081f5667f30b9e640f91302af17e2cbf7c42e369d18f3
DIST tqdm-4.70.1.tar.gz 171846 BLAKE2B abd5cff0d0c314dc0dbd2c9f95a648800403bba10d21e6d6baaf1d7a769fc3d0b433de14a8ee16307e3a07566719e8b264e67f4be70cfe1e8d775be016f17ba9 SHA512 4751b31258842ff25fa09a3ffeea68dbc373d5d0c20c3c34570b8d3ba3bb4feb246e141c413915f7b59435c6cfc5b23a52d13bbefd681740c4ea388e9219dda5
diff --git a/dev-python/tqdm/tqdm-4.69.1.ebuild b/dev-python/tqdm/tqdm-4.69.1.ebuild
deleted file mode 100644
index 833cf1a4b208..000000000000
--- a/dev-python/tqdm/tqdm-4.69.1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/tqdm/tqdm
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi shell-completion
-
-DESCRIPTION="Add a progress meter to your loops in a second"
-HOMEPAGE="
- https://github.com/tqdm/tqdm/
- https://pypi.org/project/tqdm/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-IUSE="examples"
-
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=(
- # Skip unpredictable performance tests
- tests/tests_perf.py
-)
-
-python_install_all() {
- doman tqdm/tqdm.1
- newbashcomp tqdm/completion.sh tqdm
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
- distutils-r1_python_install_all
-}
diff --git a/dev-python/tqdm/tqdm-4.70.1.ebuild b/dev-python/tqdm/tqdm-4.70.1.ebuild
index 1830f731430d..833cf1a4b208 100644
--- a/dev-python/tqdm/tqdm-4.70.1.ebuild
+++ b/dev-python/tqdm/tqdm-4.70.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples"
BDEPEND="
diff --git a/dev-python/trafilatura/Manifest b/dev-python/trafilatura/Manifest
new file mode 100644
index 000000000000..500948ffc9d8
--- /dev/null
+++ b/dev-python/trafilatura/Manifest
@@ -0,0 +1 @@
+DIST trafilatura-2.3.1.tar.gz 31322599 BLAKE2B 648fb5df76315ac5b9f36552198978427c96c2b318e2bc0d54d44fd10343cc7f5459123f04351be1e0cad3f0aa80561d1ad4df5f06a960937b6ba8418c771f9a SHA512 d5b3e152e5e1bb08e474cece446ce59d24c66014fddb8ebd0fb8337b2daadb7dc524e07525e2b9e4a25f2ad74e26a78d5b00afae39de020263b4f21239d0f916
diff --git a/dev-python/trafilatura/metadata.xml b/dev-python/trafilatura/metadata.xml
new file mode 100644
index 000000000000..1976d3d0e075
--- /dev/null
+++ b/dev-python/trafilatura/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/adbar/trafilatura/issues</bugs-to>
+ </upstream>
+ <origin>srcux</origin>
+</pkgmetadata>
diff --git a/dev-python/trafilatura/trafilatura-2.3.1.ebuild b/dev-python/trafilatura/trafilatura-2.3.1.ebuild
new file mode 100644
index 000000000000..21063c3f5da2
--- /dev/null
+++ b/dev-python/trafilatura/trafilatura-2.3.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python & Command-line tool to gather text and metadata on the Web"
+HOMEPAGE="https://github.com/adbar/trafilatura"
+SRC_URI="https://github.com/adbar/trafilatura/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/courlan[${PYTHON_USEDEP}]
+ dev-python/htmldate[${PYTHON_USEDEP}]
+ dev-python/justext[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ "tests/downloads_tests.py::test_fetch"
+ "tests/downloads_tests.py::test_is_live_page"
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature "curl support" dev-python/pycurl
+}
diff --git a/dev-python/trakit/trakit-0.4.0.ebuild b/dev-python/trakit/trakit-0.4.0.ebuild
index a7e48a7a0afc..4541dfa539bd 100644
--- a/dev-python/trakit/trakit-0.4.0.ebuild
+++ b/dev-python/trakit/trakit-0.4.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
RDEPEND="
>=dev-python/babelfish-0.6.0[${PYTHON_USEDEP}]
diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest
index 5e922dfe91a2..709bb210576a 100644
--- a/dev-python/translate-toolkit/Manifest
+++ b/dev-python/translate-toolkit/Manifest
@@ -1,4 +1,2 @@
-DIST translate-3.19.17.gh.tar.gz 1419163 BLAKE2B 6dbfd25d4a8ca2e22be4da2c6f4e1e081ac2902d5911498d0e4d13fd182dff3f338cfe36a5ef93e4ad9c276b443f84bac6b44b12cdae1ac07a46830dec36aecc SHA512 8f28c6d312e6a6a9aef3b177981222ee8f80751b1ea0075f0ad7ec7774840822a50d806d9fbbcb21ed95d4dfdf491a8added8ef7bba1166665160613d5e08444
-DIST translate-3.19.18.gh.tar.gz 1430779 BLAKE2B cd8276ede35ac17df538688c5bc4d9135799f651dafe56daaecae78a2369fe5782c5c4d9d26e81e5a666c81eace1e68fa747a0f7b3e17941d49565ce540db95e SHA512 83e05ff2a200fde531d390d36da5ed8915a8aa61184c6fe924223fbb75c5e27eecce29af1252c89c3aee393fe8fdc68f88b6d7df4f97881406eb8ab204f9c1b6
DIST translate-3.19.19.gh.tar.gz 1436103 BLAKE2B 05d4e3e9b39e363af629ef352eaeaf0da6668ed2372b4a1f69c8373f421a8d868fc7f75947f4b41df99e60147c76871ae2f47c936e3c14d80418dfd87c741d25 SHA512 f9eeb572b8003ade578a5bf67eb8c482e200088da5df99f72751d5bf2a58a5094bd2602cff778d4565c48bb3de31f2a0381bf527403a8b73e1079384bf50bccf
DIST translate-3.20.0.gh.tar.gz 1460876 BLAKE2B f5bc82a77db2f99980e5bc778963f8e242629b88a8e0f39af740fc802b3fc855912635695443536d4df16fa670d7abe264904a2ba672c53487c22ab63584cddd SHA512 355302b2862d223a8c237ebf067339d456baabd1fe6e0c2c62e2ffca05218316052aa36d298c6d21a77f9b773469a34c8358319ee0f99a517284d5a601f9c4c5
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild
deleted file mode 100644
index e3e3737485ca..000000000000
--- a/dev-python/translate-toolkit/translate-toolkit-3.19.17.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-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/tomlkit[${PYTHON_USEDEP}]
- >=dev-python/unicode-segmentation-rs-0.2.0[${PYTHON_USEDEP}]
- >=dev-python/wcwidth-0.2.14[${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}] )
-"
-BDEPEND="
- test? (
- dev-python/phply[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( syrupy )
-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'
- )
- local EPYTEST_IGNORE=(
- # unpackaged fluent.*
- tests/translate/storage/test_fluent.py
- tests/translate/convert/test_fluent2po.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/translate-toolkit/translate-toolkit-3.19.18.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild
deleted file mode 100644
index e3e3737485ca..000000000000
--- a/dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-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/tomlkit[${PYTHON_USEDEP}]
- >=dev-python/unicode-segmentation-rs-0.2.0[${PYTHON_USEDEP}]
- >=dev-python/wcwidth-0.2.14[${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}] )
-"
-BDEPEND="
- test? (
- dev-python/phply[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( syrupy )
-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'
- )
- local EPYTEST_IGNORE=(
- # unpackaged fluent.*
- tests/translate/storage/test_fluent.py
- tests/translate/convert/test_fluent2po.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/translate-toolkit/translate-toolkit-3.20.0.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.20.0.ebuild
index 451b2d4da920..721701e8158d 100644
--- a/dev-python/translate-toolkit/translate-toolkit-3.20.0.ebuild
+++ b/dev-python/translate-toolkit/translate-toolkit-3.20.0.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
IUSE="+html +ical +ini +subtitles +yaml"
RDEPEND="
diff --git a/dev-python/unidiff/unidiff-1.0.1.ebuild b/dev-python/unidiff/unidiff-1.0.1.ebuild
index 660240acb87e..3a8a281bc3f3 100644
--- a/dev-python/unidiff/unidiff-1.0.1.ebuild
+++ b/dev-python/unidiff/unidiff-1.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~riscv ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/urllib3/urllib3-2.8.0.ebuild b/dev-python/urllib3/urllib3-2.8.0.ebuild
index 34f352fc9aa7..b6d645f3783f 100644
--- a/dev-python/urllib3/urllib3-2.8.0.ebuild
+++ b/dev-python/urllib3/urllib3-2.8.0.ebuild
@@ -28,7 +28,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/Manifest b/dev-python/urwid/Manifest
index eb429eb96904..b637e2c13822 100644
--- a/dev-python/urwid/Manifest
+++ b/dev-python/urwid/Manifest
@@ -1,7 +1,3 @@
-DIST urwid-4.1.0.tar.gz 929987 BLAKE2B a66a8830bcad394ee4d6c7cb59533325f7dadcea1dfb0277ad130649b9da3879bbbf48f876d63241afba03d40ba9936b58156f2b7b4dde44bb752c9b26fd4d35 SHA512 f364bb288a0e2a2767fa7554da71a6d4b9a5fa4b84a65f9d44a30792c1744ce65705503d69921ca061a93d0a3478679ad7318e36a30e3ab6ef4f356051691a57
-DIST urwid-4.1.0.tar.gz.provenance 9448 BLAKE2B 5b62f268c52e6b3f3565f2e37d805d614455004e8ec1051b0699036f5c8107f10e3e0c24a5fb55ee62c26df34510b9efdd049b9f4ac2e2f71b27c396ecb621a3 SHA512 acec0570ee000146a801f7511cb5bc92b4f342634afea8750cbffeb84f44fe094260c66924778e87cd68204f9b1888fea293b5591e2be97bb25fc935f7635b49
-DIST urwid-4.1.1.tar.gz 931618 BLAKE2B e95dd2d7e6b3031bef3c18ad281061b4d28c4e94c0a37d7c2373bc5de3a9d95e0414cb175f725788e59ef5e0ff3258a8718ec07912433528e8eb4f8dac33bd83 SHA512 3c6e0fe1c6d88fe4ccacc62265d112cefa671a856c06061cab41dd63ed038dd38e7fffe23bd0d35e8c1e645b518284da5803960dd55022c3407fc17b7b268001
-DIST urwid-4.1.1.tar.gz.provenance 9585 BLAKE2B 6d7c6f2771f44b0d58dc1637f1ee2619a0984e6f18d90040e748bc8e825574dbeab7945718212b94c7e6eb2b0517d994cf61aaa459dc6f4beb686bf7342636b2 SHA512 eddcc53048ce59d01caa6c9f8a6f7cc936fc98148d10f856f6ae68b4033d77957b454333e8a91af383a4c3cdf492f1aec8e36666b6a460e2145c1c1665dc6828
DIST urwid-4.1.2.tar.gz 941510 BLAKE2B c375bf938541e1df1bf1ca3c3ed9b6e91d8ab10741f8545197439502a28f2e7fe5eca7c08836082be1f0536b424683b08b72edadc27e4cd3c092759603f6bcee SHA512 d83d3a30602410ed1b9370a760cd540f9e1f8837596cee3a731e6d3446e54f390c1df424fa003259fc8d1ad7f6c1911c8e549ca9f2287263ca27b78a485ea751
DIST urwid-4.1.2.tar.gz.provenance 9620 BLAKE2B 95fdeda020824cd77e2e5a7aea0c7cb6baf36b43b1c817956fbfbcb3218befc2b175d2ad3a5ce530e806f540602c2d1f49b37acfdad180f368906e4f07d713f8 SHA512 10adfa1e6b78d556b45b6e05dd56612211a8ee300eca1653d715c6e4a1fa6e52df660ff1f074b18a070c6d52c954a243936f98e0a0fc05cf39f929305a297eb0
DIST urwid-4.1.3.tar.gz 944854 BLAKE2B c683dcec93c42e838665f98d7cfe5190b700b1a1a37efa1c8e92a405b954dd25dcad60fc11355ea4d5f2d86ae917a56b0e7e8104044e2c3191ddbbef037f2227 SHA512 52146221d6cf94190c1be79df469c262e9f4846e0d9c76d5e1f02af72ec393e8a867d7bba13d182fc801d20cfa6a32d74db51d0c657a3972df85c8ba33c3d41f
diff --git a/dev-python/urwid/urwid-4.1.0.ebuild b/dev-python/urwid/urwid-4.1.0.ebuild
deleted file mode 100644
index ad1835cc6ede..000000000000
--- a/dev-python/urwid/urwid-4.1.0.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/urwid/urwid
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="ncurses"
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="Curses-based user interface library for Python"
-HOMEPAGE="
- https://urwid.org/
- https://pypi.org/project/urwid/
- https://github.com/urwid/urwid/
-"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-IUSE="examples"
-
-RDEPEND="
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- >=dev-python/wcwidth-0.4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e 's:--cov --cov-report=term::' pyproject.toml || die
-}
-
-python_install_all() {
- use examples && dodoc -r examples
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature "Trio event loop" "dev-python/trio"
-}
diff --git a/dev-python/urwid/urwid-4.1.1.ebuild b/dev-python/urwid/urwid-4.1.1.ebuild
deleted file mode 100644
index ad1835cc6ede..000000000000
--- a/dev-python/urwid/urwid-4.1.1.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/urwid/urwid
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="ncurses"
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="Curses-based user interface library for Python"
-HOMEPAGE="
- https://urwid.org/
- https://pypi.org/project/urwid/
- https://github.com/urwid/urwid/
-"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-IUSE="examples"
-
-RDEPEND="
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- >=dev-python/wcwidth-0.4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e 's:--cov --cov-report=term::' pyproject.toml || die
-}
-
-python_install_all() {
- use examples && dodoc -r examples
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature "Trio event loop" "dev-python/trio"
-}
diff --git a/dev-python/urwid/urwid-4.1.5.ebuild b/dev-python/urwid/urwid-4.1.5.ebuild
index aba0d14bbb3d..ad1835cc6ede 100644
--- a/dev-python/urwid/urwid-4.1.5.ebuild
+++ b/dev-python/urwid/urwid-4.1.5.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
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"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/uv-build/uv-build-0.12.17.ebuild b/dev-python/uv-build/uv-build-0.12.17.ebuild
index 65d94f2051ae..5194825c5c54 100644
--- a/dev-python/uv-build/uv-build-0.12.17.ebuild
+++ b/dev-python/uv-build/uv-build-0.12.17.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/uv/uv-0.12.17.ebuild b/dev-python/uv/uv-0.12.17.ebuild
index 9826f9045941..0f29cd7a6335 100644
--- a/dev-python/uv/uv-0.12.17.ebuild
+++ b/dev-python/uv/uv-0.12.17.ebuild
@@ -39,7 +39,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
diff --git a/dev-python/uvicorn/uvicorn-0.53.0.ebuild b/dev-python/uvicorn/uvicorn-0.53.0.ebuild
index 9da45f27f6d1..609890d23839 100644
--- a/dev-python/uvicorn/uvicorn-0.53.0.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.53.0.ebuild
@@ -18,7 +18,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"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/valkey/valkey-6.1.1.ebuild b/dev-python/valkey/valkey-6.1.1.ebuild
index aaaa0ed51f2d..892aac7e7068 100644
--- a/dev-python/valkey/valkey-6.1.1.ebuild
+++ b/dev-python/valkey/valkey-6.1.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild b/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild
index f253689d01b8..66c6ba3b5f2b 100644
--- a/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild
+++ b/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/packaging-26.2[${PYTHON_USEDEP}]
diff --git a/dev-python/vcs-versioning/vcs-versioning-2.6.0.ebuild b/dev-python/vcs-versioning/vcs-versioning-2.6.0.ebuild
index 815862a9a47b..01ac6047d070 100644
--- a/dev-python/vcs-versioning/vcs-versioning-2.6.0.ebuild
+++ b/dev-python/vcs-versioning/vcs-versioning-2.6.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
>=dev-python/packaging-26.2[${PYTHON_USEDEP}]
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index 546b068f0dd2..f621e97955e9 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -4,6 +4,10 @@ DIST virtualenv-21.13.0.tar.gz 5399552 BLAKE2B 458c552f370a0685cbe3cb5337944be16
DIST virtualenv-21.13.0.tar.gz.provenance 9722 BLAKE2B 65b18975cd0b010b94a12cb97d4940ccc4b3e402a61fb9efa59c325da0c6464e0683e45df5a309b05129fcaa07f7379ad266cf6867081b49011eddb9ebef2d5b SHA512 fe54ae02d74a5e647f763817792df6487485a3dca2cbac2e51772a50d871e3a1f9706a0d44bb9e48534395690b7f6bcb45196fb5e006feb0b43d63c8531e298e
DIST virtualenv-21.14.1.tar.gz 5462838 BLAKE2B f2b871a9a49ed63908041eefaa8ca60082ae98029e6b58b0bf1ab806bbd910515184bf6bd1c304a69e4680db3850a21659d18f43a6d7b73d1348f64416df9cd3 SHA512 3a4ea0b03bf5bfa8f47ea217e6e316b378daad90a97496f39eae970a80f23c5cec2c3f49198da70ec8b8b75855bcfee584b9a52185a2e9da55d37d3749cfbcd0
DIST virtualenv-21.14.1.tar.gz.provenance 9487 BLAKE2B 1d4ad31cd32693e47fac8cc5641c11e811034df7957779ab5051099125d9244b3017a9fde1fdd89307426ee61738100e1917cc4169cf1d1c4bfdc9613a3136c9 SHA512 68cf4f7187ffaac9e412c628076febb96f12a78ebf8dfb52af1c908aeb4eccbab8660fda6f03aaa44876491ffa1814e6dbc4bde7d279b96c370792a982c49dd4
+DIST virtualenv-21.14.10.tar.gz 5501185 BLAKE2B e7e0af87a1d923ca899db15ac92a1a8766a832c5f6538a588cd27de8f4ce6eb86f44482f12dd091e432e245f52e1831ebc3a921260fe3ab63b2d15179965deaa SHA512 41af3f015702a441da7db0a2631977cd977b3c56f76c418e7ed5aa736a4396a1afc158cbbef5571913a1a97916cd1aa3543d336d02bd55dd7413176e2dc182f3
+DIST virtualenv-21.14.10.tar.gz.provenance 9622 BLAKE2B cefdd192e473a913d659fcd9f9da0dfd44a96f8b2c3638a94adced0246d0ec585c3f01893ee390a848d01f5340ea4b1324fe2c4acb9b3280af18eb789c09eacb SHA512 c856eb9343a104cf8f5388be5bfa0cfb6f5286d2cbdfb425d4613b32b38d0be0a530eb6bf9f89d2deef040dc009e6bb657b23334120c3cedb1e3a96cb316e8f3
+DIST virtualenv-21.14.11.tar.gz 5503091 BLAKE2B 73e59fbf96059002e43819076f17912a2fb1a70cc6b188e10d62eb9d39badf3156dcbcdf5f7280b5bba793a42c0a6cdec734f90534eab59c5c67616f577961a2 SHA512 426cf1fa668754df3defb33f8fb92808b57c8093d573269005345206bbf4adab6fca1a8aaa669fd94678681c3fcd685cb545bf4ed1092b01608e32743d9fe65d
+DIST virtualenv-21.14.11.tar.gz.provenance 9939 BLAKE2B f1b9d5aacc24af5f6da163863444c58827b272312a03fd5986dd4425298b28d4948e66ccf61614adc76c3f341e084e7fccf6a0a8da20834cb798dcfc3b9d8ea6 SHA512 84f2025ce55b8285dd5fd82f8a5c7c8a6e1743ac775aa9fb3a502f9314dc72d0c83584e9534c907cf3572b7b2226786102614f178730f7a10d68feb60774bf88
DIST virtualenv-21.14.3.tar.gz 5464634 BLAKE2B e82707e1a51d55efef6b902fd8f5aa617003fa43d61558a504d7c26186fd64cbf5c559ccb17b0710b2bde0dea7130652d606cc71dfd82936ffe51c046bb74499 SHA512 6ed46584d704a2ea4b4241348a0c8a3dcc7ae0fb5096fe096f60cac1e589b7f634ef46c377b31f3db220b8b0d2cc2f4f1a46294171c662d8fbd8d2d4a569caec
DIST virtualenv-21.14.3.tar.gz.provenance 9808 BLAKE2B 2bd41496285aa992dcebae332feda3bc0b6f6c06483ae09278ebb4e9835df510a66d29806033afda3cce87ea3899aeb4d5eee8f53ce1df2d2543ee32e13127fd SHA512 98c0db6aed32e36ce3b88ae8193a725e9abecff06cbe7e3821e172c82f9bfa03e2e247f50314740f700a0c2d828b254d6bbfb0e74a7919d10d5d33ebac54701b
DIST virtualenv-21.14.5.tar.gz 5467127 BLAKE2B 029434d3c647a5898664b98ddd9fcb7577bc6cbe4e7e5cce308bcac83181e48d55556a9936b4928c26f9f5365bf3551047742d29a82b2233cb047df88336db3c SHA512 d58e9332fc6d79a04d534db9b597cbc7e4abebab11858223baa29cf0284bca72646a909c844c0d141c35e63f7b999879af1eed53d0c51e8e4213c3a494ee615f
diff --git a/dev-python/virtualenv/virtualenv-21.14.10.ebuild b/dev-python/virtualenv/virtualenv-21.14.10.ebuild
new file mode 100644
index 000000000000..f7348466af1b
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.14.10.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.1[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ >=dev-python/ensurepip-setuptools-70.1
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/hatchling-1.27[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-21.5.1-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ # Internet
+ tests/unit/create/test_creator.py::test_create_distutils_cfg
+ tests/unit/seed/embed/test_pip_invoke.py::test_pip_reseed_removes_previous_version_metadata
+ # we do not use bundled wheels
+ tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
+ # requires bundled packages in pip
+ tests/unit/test_sbom.py::test_sbom_spdx_declared_license
+ # require pre-commit = internet
+ tests/unit/test_wheel_age.py::test_generator_converges
+ tests/unit/test_wheel_age.py::test_generator_updates_license
+ # TODO
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_pip_launcher_record_matches_contents
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_skips_local_pip_module
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest
+ # some platformdirs nonsense (bundled packages?)
+ tests/unit/config/test___main__.py::test_module_entry_from_target_install
+ )
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine )
+ local EPYTEST_RERUNS=5
+ local EPYTEST_TIMEOUT=180
+ local EPYTEST_XDIST=1
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}
diff --git a/dev-python/virtualenv/virtualenv-21.14.11.ebuild b/dev-python/virtualenv/virtualenv-21.14.11.ebuild
new file mode 100644
index 000000000000..f7348466af1b
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.14.11.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.1[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ >=dev-python/ensurepip-setuptools-70.1
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/hatchling-1.27[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-21.5.1-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ # Internet
+ tests/unit/create/test_creator.py::test_create_distutils_cfg
+ tests/unit/seed/embed/test_pip_invoke.py::test_pip_reseed_removes_previous_version_metadata
+ # we do not use bundled wheels
+ tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
+ # requires bundled packages in pip
+ tests/unit/test_sbom.py::test_sbom_spdx_declared_license
+ # require pre-commit = internet
+ tests/unit/test_wheel_age.py::test_generator_converges
+ tests/unit/test_wheel_age.py::test_generator_updates_license
+ # TODO
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_pip_launcher_record_matches_contents
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_skips_local_pip_module
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest
+ # some platformdirs nonsense (bundled packages?)
+ tests/unit/config/test___main__.py::test_module_entry_from_target_install
+ )
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine )
+ local EPYTEST_RERUNS=5
+ local EPYTEST_TIMEOUT=180
+ local EPYTEST_XDIST=1
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}
diff --git a/dev-python/wcwidth/wcwidth-0.8.4.ebuild b/dev-python/wcwidth/wcwidth-0.8.4.ebuild
index 75230a0cfae8..5fac730da5ca 100644
--- a/dev-python/wcwidth/wcwidth-0.8.4.ebuild
+++ b/dev-python/wcwidth/wcwidth-0.8.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 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/wrapt/wrapt-2.4.1.ebuild b/dev-python/wrapt/wrapt-2.4.1.ebuild
index c0b172cb4e24..ab43c09d38d9 100644
--- a/dev-python/wrapt/wrapt-2.4.1.ebuild
+++ b/dev-python/wrapt/wrapt-2.4.1.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
fi
IUSE="+native-extensions"
diff --git a/dev-python/xcffib/Manifest b/dev-python/xcffib/Manifest
index 933ee7ab848f..0530def1f367 100644
--- a/dev-python/xcffib/Manifest
+++ b/dev-python/xcffib/Manifest
@@ -1 +1,2 @@
DIST xcffib-1.12.0.tar.gz 131116 BLAKE2B a99cb38ae57bc5e46b797315668a7bdf0a55cbdc60286cea6a576cefb4597eecf8935163fa6223d2729a97f55c03c5177d6f9b2e667dda82fa1972a12ac8a8e7 SHA512 5c799bf394e25cfd2d03c6802ad3fc05ed98eaa7232dff6e9d77b1fd775f3a139ad4935e521a23d1de081fd7fa9f5f81bb6f7eb8f96d8f2101fddc0c88721ecd
+DIST xcffib-1.13.0.tar.gz 149280 BLAKE2B d0e5d9dc986bb62b01e80429556ec5d07cfaa2548bdd52ec127e41b0e8e48f8920cecb2fb095bdab1cdce9cf0aae32e725ffe14754b800b6c6f9829ba2404694 SHA512 7e981b39d2b23650696028e1e09aabb763b2d0bdaaa108d12073471993df7b2c108bb1e807b30c4e5a2b9291889e6293dac64424e5131b32fecd853af0a96243
diff --git a/dev-python/xcffib/xcffib-1.13.0.ebuild b/dev-python/xcffib/xcffib-1.13.0.ebuild
new file mode 100644
index 000000000000..3b86fcc5b217
--- /dev/null
+++ b/dev-python/xcffib/xcffib-1.13.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
+HOMEPAGE="
+ https://github.com/tych0/xcffib/
+ https://pypi.org/project/xcffib/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+DEPEND="
+ x11-libs/libxcb
+"
+RDEPEND="
+ >=dev-python/cffi-1.1.0:=[${PYTHON_USEDEP}]
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ x11-base/xorg-server[xvfb]
+ x11-apps/xeyes
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ rm -rf xcffib || die
+ epytest
+}
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild
index 787856574075..08ba139152c5 100644
--- a/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
RDEPEND="
x11-base/xorg-server[xvfb]
diff --git a/dev-python/xxhash/Manifest b/dev-python/xxhash/Manifest
index 8512aea073af..181d26ab79e1 100644
--- a/dev-python/xxhash/Manifest
+++ b/dev-python/xxhash/Manifest
@@ -1,4 +1,2 @@
-DIST xxhash-3.8.1.tar.gz 86223 BLAKE2B 9edee0dcc6374e0f3a89c8d51d44b0f9cc18770b638d2b127019eba425b5be2dcc2df66a03482403a6d76fe18b3dbf570cec76d45952fd1cb286fc27af4c4cb5 SHA512 dd834acfa80f8916fecd553b192bfaee03895a9ab0b2f812390f9f66b454560060d9f56c16b6a445b798539296ee7ec907ae099f109604b4b1fbdff5b308e890
-DIST xxhash-3.8.1.tar.gz.provenance 9553 BLAKE2B afa12824c3b7960bba72ad7631e4b52cd74eb4206d15c4a318d0fe4a13d957efa5a7e269562bb022329d57c2695e63e0ac2485e11bec21b86bbfd792f4be5902 SHA512 d1b8b53e9c1caebde83af9be375661e0e55e7bef2e366182412018b919ae1595a140293f625fd35f31485c5c8690c2c1c7c75aba830e174a4f524d0ab9d4ef1a
DIST xxhash-4.0.1.tar.gz 101513 BLAKE2B ab2dd9aa8804c2fc18976cf94e9691b97bdf2574c5465422789a5ac5e3a93b67642c93b8967c13026cea8762dff05e8d65fcf660c9c54456fb530b5895340b28 SHA512 747512496e732f7ee41c97be57c13b04d4d7e9b34df530b026cc53c2285d52c8f68531103635e3ffec796357119a9ef041e15395974caa3dcb33070b02663e0c
DIST xxhash-4.0.1.tar.gz.provenance 9759 BLAKE2B 82fd3f5ec43c9a4839ffc2aff8d11c7dd9f6f1128fea8b78538b14b91fd1eeb2fdaf2f7419816cae3f7f3adbf5a2c9fad8477824bcf1bd1f7e2948bce20bd511 SHA512 57b4be483b420602b849ea4c96ec9c5b0fc4720ccaa523544f9b9daa09c754f67d5a0d0ccf4e953c7f7e3b96042843072784567ad983a89c43652817f3e423c6
diff --git a/dev-python/xxhash/xxhash-3.8.1.ebuild b/dev-python/xxhash/xxhash-3.8.1.ebuild
deleted file mode 100644
index c08db4dd9787..000000000000
--- a/dev-python/xxhash/xxhash-3.8.1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/ifduyue/python-xxhash
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python binding for the xxHash library"
-HOMEPAGE="
- https://github.com/ifduyue/python-xxhash/
- https://pypi.org/project/xxhash/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv ~sparc x86"
-
-DEPEND="
- >=dev-libs/xxhash-0.8.0
-"
-RDEPEND="
- ${DEPEND}
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=( tests/test_benchmark.py )
-
-python_configure_all() {
- export XXHASH_LINK_SO=1
-}
-
-python_test() {
- cd tests || die
- eunittest
-}
diff --git a/dev-python/yarl/yarl-1.25.1.ebuild b/dev-python/yarl/yarl-1.25.1.ebuild
index b378da5d9b45..977ab5b19ce1 100644
--- a/dev-python/yarl/yarl-1.25.1.ebuild
+++ b/dev-python/yarl/yarl-1.25.1.ebuild
@@ -18,7 +18,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.12.3.ebuild b/dev-python/ytmusicapi/ytmusicapi-1.12.3.ebuild
index 7cd2ca8683c1..12ae3148f0c0 100644
--- a/dev-python/ytmusicapi/ytmusicapi-1.12.3.ebuild
+++ b/dev-python/ytmusicapi/ytmusicapi-1.12.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="https://ytmusicapi.readthedocs.io/
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RESTRICT="test"
RDEPEND="