summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-07-05 03:04:45 -0500
committerroot <root@alpha.trunkmasters.com>2026-07-05 03:04:45 -0500
commit7d0655e0f85be0eec06807898321a634968f9336 (patch)
tree92e9bb71bf8517948f78ab1d52a1b06717367c62 /dev-python
parentd5f9077fde66bffd2bc6d193ae7c967e352a5562 (diff)
downloadbaldeagleos-repo-7d0655e0f85be0eec06807898321a634968f9336.tar.gz
baldeagleos-repo-7d0655e0f85be0eec06807898321a634968f9336.tar.xz
baldeagleos-repo-7d0655e0f85be0eec06807898321a634968f9336.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/a2wsgi/a2wsgi-1.10.10.ebuild22
-rw-r--r--dev-python/aiohttp/Manifest2
-rw-r--r--dev-python/aiohttp/aiohttp-3.14.0.ebuild160
-rw-r--r--dev-python/aiohttp/aiohttp-3.14.1.ebuild10
-rw-r--r--dev-python/anyio/anyio-4.14.1.ebuild10
-rw-r--r--dev-python/anysqlite/anysqlite-0.0.5.ebuild2
-rw-r--r--dev-python/anytree/anytree-2.13.0.ebuild3
-rw-r--r--dev-python/apprise/Manifest1
-rw-r--r--dev-python/apprise/apprise-1.12.0.ebuild44
-rw-r--r--dev-python/automat/automat-25.4.16.ebuild3
-rw-r--r--dev-python/base58/base58-2.1.1.ebuild2
-rw-r--r--dev-python/betamax-matchers/betamax-matchers-0.4.0-r1.ebuild3
-rw-r--r--dev-python/blessed/blessed-1.44.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest6
-rw-r--r--dev-python/boto3/boto3-1.43.14.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.18.ebuild2
-rw-r--r--dev-python/boto3/boto3-1.43.34.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.35.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.37.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.38.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.39.ebuild53
-rw-r--r--dev-python/botocore/Manifest6
-rw-r--r--dev-python/botocore/botocore-1.43.14.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.18.ebuild2
-rw-r--r--dev-python/botocore/botocore-1.43.34.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.35.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.37.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.38.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.39.ebuild67
-rw-r--r--dev-python/braintree/Manifest1
-rw-r--r--dev-python/braintree/braintree-4.44.0.ebuild39
-rw-r--r--dev-python/cachetools/Manifest1
-rw-r--r--dev-python/cachetools/cachetools-7.1.3.ebuild27
-rw-r--r--dev-python/cachetools/cachetools-7.1.4.ebuild2
-rw-r--r--dev-python/cbor2/Manifest11
-rw-r--r--dev-python/cbor2/cbor2-5.9.0.ebuild39
-rw-r--r--dev-python/cbor2/cbor2-6.1.2.ebuild2
-rw-r--r--dev-python/cbor2/cbor2-6.1.3.ebuild (renamed from dev-python/cbor2/cbor2-6.0.1.ebuild)11
-rw-r--r--dev-python/cbor2/metadata.xml6
-rw-r--r--dev-python/cfn-lint/Manifest10
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.49.3.ebuild64
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.50.1.ebuild64
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.51.3.ebuild64
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.51.4.ebuild64
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.51.5.ebuild2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.52.0.ebuild64
-rw-r--r--dev-python/constantly/constantly-23.10.4.ebuild6
-rw-r--r--dev-python/coverage/coverage-7.14.1.ebuild2
-rw-r--r--dev-python/cramjam/cramjam-2.12.0_rc1.ebuild2
-rw-r--r--dev-python/dasbus/dasbus-1.7.ebuild2
-rw-r--r--dev-python/dirty-equals/Manifest1
-rw-r--r--dev-python/dirty-equals/dirty-equals-0.10.0.ebuild54
-rw-r--r--dev-python/dirty-equals/dirty-equals-0.11.0.ebuild4
-rw-r--r--dev-python/distlib/Manifest1
-rw-r--r--dev-python/distlib/distlib-0.4.0-r1.ebuild60
-rw-r--r--dev-python/distlib/distlib-0.4.0.ebuild58
-rw-r--r--dev-python/distlib/distlib-0.4.1.ebuild2
-rw-r--r--dev-python/distlib/files/distlib-0.4.0-py314-test.patch28
-rw-r--r--dev-python/docutils/Manifest1
-rw-r--r--dev-python/docutils/docutils-0.23.ebuild2
-rw-r--r--dev-python/docutils/docutils-0.23_rc1.ebuild64
-rw-r--r--dev-python/doublex/doublex-1.9.6.1.ebuild3
-rw-r--r--dev-python/enrich/enrich-1.2.7-r1.ebuild6
-rw-r--r--dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild6
-rw-r--r--dev-python/ensurepip-pip/files/pip-26.1.2-py315.patch49
-rw-r--r--dev-python/ensurepip-setuptools/Manifest1
-rw-r--r--dev-python/ensurepip-setuptools/ensurepip-setuptools-83.0.0.ebuild137
-rw-r--r--dev-python/faker/Manifest1
-rw-r--r--dev-python/faker/faker-40.19.1.ebuild41
-rw-r--r--dev-python/faker/faker-40.21.0.ebuild2
-rw-r--r--dev-python/fakeredis/Manifest4
-rw-r--r--dev-python/fakeredis/fakeredis-2.36.0.ebuild128
-rw-r--r--dev-python/fakeredis/fakeredis-2.36.1.ebuild141
-rw-r--r--dev-python/filelock/Manifest4
-rw-r--r--dev-python/filelock/filelock-3.28.0.ebuild31
-rw-r--r--dev-python/filelock/filelock-3.29.0.ebuild31
-rw-r--r--dev-python/filelock/filelock-3.29.1.ebuild2
-rw-r--r--dev-python/google-api-core/Manifest2
-rw-r--r--dev-python/google-api-core/google-api-core-2.30.3.ebuild55
-rw-r--r--dev-python/google-api-core/google-api-core-2.31.0.ebuild2
-rw-r--r--dev-python/google-api-python-client/Manifest2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.196.0.ebuild52
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.197.0.ebuild2
-rw-r--r--dev-python/gst-python/gst-python-1.26.11.ebuild2
-rw-r--r--dev-python/hatchling/Manifest2
-rw-r--r--dev-python/hatchling/hatchling-1.29.0.ebuild98
-rw-r--r--dev-python/hatchling/hatchling-1.30.0.ebuild98
-rw-r--r--dev-python/hatchling/hatchling-1.30.1.ebuild2
-rw-r--r--dev-python/hiredis/Manifest1
-rw-r--r--dev-python/hiredis/hiredis-3.3.1.ebuild45
-rw-r--r--dev-python/hiredis/hiredis-3.4.0.ebuild2
-rw-r--r--dev-python/html5-parser/html5-parser-0.4.12.ebuild2
-rw-r--r--dev-python/httpbin/httpbin-0.10.4-r1.ebuild (renamed from dev-python/httpbin/httpbin-0.10.4.ebuild)6
-rw-r--r--dev-python/httpcore/httpcore-1.0.9-r1.ebuild28
-rw-r--r--dev-python/httptools/Manifest1
-rw-r--r--dev-python/httptools/httptools-0.6.4.ebuild67
-rw-r--r--dev-python/httptools/httptools-0.8.0.ebuild2
-rw-r--r--dev-python/httpx/httpx-0.28.1-r1.ebuild23
-rw-r--r--dev-python/hypothesis/Manifest3
-rw-r--r--dev-python/hypothesis/hypothesis-6.152.11.ebuild105
-rw-r--r--dev-python/hypothesis/hypothesis-6.152.9.ebuild110
-rw-r--r--dev-python/hypothesis/hypothesis-6.155.6.ebuild105
-rw-r--r--dev-python/hypothesis/hypothesis-6.155.7.ebuild2
-rw-r--r--dev-python/idna/Manifest4
-rw-r--r--dev-python/idna/idna-3.16.ebuild23
-rw-r--r--dev-python/idna/idna-3.17.ebuild23
-rw-r--r--dev-python/idna/idna-3.18.ebuild2
-rw-r--r--dev-python/inline-snapshot/Manifest4
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.34.0.ebuild63
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.34.1.ebuild63
-rw-r--r--dev-python/jinxed/jinxed-2.0.1.ebuild2
-rw-r--r--dev-python/jsonpath-ng/jsonpath-ng-1.8.0.ebuild2
-rw-r--r--dev-python/jsonschema-path/jsonschema-path-0.5.0.ebuild2
-rw-r--r--dev-python/jsonschema/jsonschema-4.26.0.ebuild2
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.18.2.ebuild68
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.19.0.ebuild2
-rw-r--r--dev-python/libtmux/Manifest2
-rw-r--r--dev-python/libtmux/libtmux-0.61.0.ebuild40
-rw-r--r--dev-python/manuel/manuel-1.13.0.ebuild2
-rw-r--r--dev-python/mechanize/mechanize-0.4.10.ebuild2
-rw-r--r--dev-python/narwhals/narwhals-2.23.0.ebuild2
-rw-r--r--dev-python/numpy/Manifest2
-rw-r--r--dev-python/numpy/numpy-2.5.1.ebuild329
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.13.0.ebuild95
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.14.0.ebuild2
-rw-r--r--dev-python/orjson/orjson-3.11.9.ebuild2
-rw-r--r--dev-python/oslo-utils/Manifest1
-rw-r--r--dev-python/oslo-utils/oslo-utils-10.0.1.ebuild65
-rw-r--r--dev-python/oslo-utils/oslo-utils-10.1.0.ebuild2
-rw-r--r--dev-python/outcome/outcome-1.3.0_p0.ebuild8
-rw-r--r--dev-python/patiencediff/Manifest19
-rw-r--r--dev-python/patiencediff/patiencediff-0.2.18.ebuild71
-rw-r--r--dev-python/pbs-installer/Manifest6
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild33
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.5.8.ebuild33
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.6.10.ebuild2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild33
-rw-r--r--dev-python/platformdirs/Manifest2
-rw-r--r--dev-python/platformdirs/platformdirs-4.10.0.ebuild2
-rw-r--r--dev-python/platformdirs/platformdirs-4.9.6.ebuild50
-rw-r--r--dev-python/poetry-core/Manifest2
-rw-r--r--dev-python/poetry-core/poetry-core-2.4.0.ebuild67
-rw-r--r--dev-python/poetry-core/poetry-core-2.4.1.ebuild2
-rw-r--r--dev-python/poetry/Manifest4
-rw-r--r--dev-python/poetry/poetry-2.3.2-r1.ebuild78
-rw-r--r--dev-python/poetry/poetry-2.3.3.ebuild82
-rw-r--r--dev-python/pyatspi/Manifest1
-rw-r--r--dev-python/pyatspi/pyatspi-2.58.1.ebuild59
-rw-r--r--dev-python/pyatspi/pyatspi-2.58.2.ebuild2
-rw-r--r--dev-python/pyelftools/Manifest1
-rw-r--r--dev-python/pyelftools/pyelftools-0.32.ebuild30
-rw-r--r--dev-python/pyelftools/pyelftools-0.33.ebuild2
-rw-r--r--dev-python/pygithub/Manifest1
-rw-r--r--dev-python/pygithub/pygithub-2.9.0.ebuild39
-rw-r--r--dev-python/pygobject/pygobject-3.56.3.ebuild2
-rw-r--r--dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild14
-rw-r--r--dev-python/pypdf/pypdf-6.12.2.ebuild2
-rw-r--r--dev-python/pypy-exe-bin/Manifest8
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.22.ebuild74
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.23.ebuild2
-rw-r--r--dev-python/pypy-exe/Manifest2
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.22.ebuild189
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.23.ebuild2
-rw-r--r--dev-python/pyside/pyside-6.9999.ebuild2
-rw-r--r--dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild9
-rw-r--r--dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild17
-rw-r--r--dev-python/python-discovery/python-discovery-1.4.3.ebuild2
-rw-r--r--dev-python/python-multipart/Manifest1
-rw-r--r--dev-python/python-multipart/python-multipart-0.0.29.ebuild40
-rw-r--r--dev-python/python-multipart/python-multipart-0.0.30.ebuild2
-rw-r--r--dev-python/python-tlsh/metadata.xml6
-rw-r--r--dev-python/pytools/pytools-2026.1.1.ebuild2
-rw-r--r--dev-python/quart/quart-0.20.0.ebuild15
-rw-r--r--dev-python/redis/Manifest2
-rw-r--r--dev-python/redis/redis-7.4.0.ebuild122
-rw-r--r--dev-python/redis/redis-7.4.1.ebuild2
-rw-r--r--dev-python/redis/redis-8.0.0.ebuild125
-rw-r--r--dev-python/requests-futures/requests-futures-1.0.2.ebuild8
-rw-r--r--dev-python/rich-argparse/Manifest1
-rw-r--r--dev-python/rich-argparse/rich-argparse-1.7.2.ebuild31
-rw-r--r--dev-python/rich-click/Manifest1
-rw-r--r--dev-python/rich-click/rich-click-1.9.7.ebuild41
-rw-r--r--dev-python/rich-click/rich-click-1.9.8.ebuild2
-rw-r--r--dev-python/rpds-py/Manifest13
-rw-r--r--dev-python/rpds-py/rpds-py-0.30.0.ebuild69
-rw-r--r--dev-python/rpds-py/rpds-py-2026.5.1.ebuild2
-rw-r--r--dev-python/s3transfer/Manifest3
-rw-r--r--dev-python/s3transfer/s3transfer-0.16.1.ebuild42
-rw-r--r--dev-python/s3transfer/s3transfer-0.17.0.ebuild42
-rw-r--r--dev-python/s3transfer/s3transfer-0.17.1.ebuild42
-rw-r--r--dev-python/s3transfer/s3transfer-0.18.0.ebuild2
-rw-r--r--dev-python/scikit-learn/scikit-learn-1.9.0.ebuild2
-rw-r--r--dev-python/securesystemslib/Manifest2
-rw-r--r--dev-python/securesystemslib/securesystemslib-1.3.1.ebuild42
-rw-r--r--dev-python/securesystemslib/securesystemslib-1.4.0.ebuild2
-rw-r--r--dev-python/semantic-version/semantic-version-2.10.0.ebuild8
-rw-r--r--dev-python/serpent/Manifest1
-rw-r--r--dev-python/serpent/serpent-1.42.ebuild34
-rw-r--r--dev-python/serpent/serpent-1.43.ebuild2
-rw-r--r--dev-python/service-identity/Manifest1
-rw-r--r--dev-python/service-identity/service-identity-24.2.0.ebuild36
-rw-r--r--dev-python/service-identity/service-identity-26.1.0.ebuild2
-rw-r--r--dev-python/setproctitle/files/setproctitle-1.3.7-py315.patch31
-rw-r--r--dev-python/setproctitle/setproctitle-1.3.7-r1.ebuild37
-rw-r--r--dev-python/setuptools-rust/setuptools-rust-1.13.0.ebuild4
-rw-r--r--dev-python/setuptools/Manifest1
-rw-r--r--dev-python/setuptools/setuptools-79.0.1.ebuild5
-rw-r--r--dev-python/setuptools/setuptools-83.0.0.ebuild122
-rw-r--r--dev-python/sigstore/Manifest1
-rw-r--r--dev-python/sigstore/sigstore-4.2.0.ebuild62
-rw-r--r--dev-python/sigstore/sigstore-4.3.0.ebuild2
-rw-r--r--dev-python/simpy/simpy-4.1.2.ebuild2
-rw-r--r--dev-python/snowballstemmer/Manifest2
-rw-r--r--dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild19
-rw-r--r--dev-python/snowballstemmer/snowballstemmer-3.1.0.ebuild22
-rw-r--r--dev-python/snowballstemmer/snowballstemmer-3.1.1.ebuild2
-rw-r--r--dev-python/sphinx-autodoc-typehints/Manifest8
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.2.ebuild44
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.3.ebuild44
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild44
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild2
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.12.0.ebuild44
-rw-r--r--dev-python/sphinx/files/sphinx-9.1.0-test.patch48
-rw-r--r--dev-python/sphinx/sphinx-9.1.0-r1.ebuild109
-rw-r--r--dev-python/sqlalchemy/Manifest1
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.49.ebuild120
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild2
-rw-r--r--dev-python/starlette/Manifest2
-rw-r--r--dev-python/starlette/starlette-1.0.1.ebuild56
-rw-r--r--dev-python/starlette/starlette-1.1.0.ebuild56
-rw-r--r--dev-python/starlette/starlette-1.2.1.ebuild2
-rw-r--r--dev-python/subprocess-tee/subprocess-tee-0.4.2.ebuild3
-rw-r--r--dev-python/syrupy/syrupy-5.4.0.ebuild2
-rw-r--r--dev-python/tblib/tblib-3.2.2.ebuild2
-rw-r--r--dev-python/terminado/terminado-0.18.1.ebuild15
-rw-r--r--dev-python/textx/textx-4.3.0.ebuild2
-rw-r--r--dev-python/thriftpy2/Manifest1
-rw-r--r--dev-python/thriftpy2/thriftpy2-0.6.0_beta1.ebuild41
-rw-r--r--dev-python/tibs/Manifest11
-rw-r--r--dev-python/tibs/tibs-0.9.0.ebuild121
-rw-r--r--dev-python/tibs/tibs-0.9.2.ebuild2
-rw-r--r--dev-python/toml-fmt-common/Manifest6
-rw-r--r--dev-python/toml-fmt-common/toml-fmt-common-1.2.0.ebuild27
-rw-r--r--dev-python/toml-fmt-common/toml-fmt-common-1.3.2.ebuild27
-rw-r--r--dev-python/toml-fmt-common/toml-fmt-common-1.3.3.ebuild27
-rw-r--r--dev-python/toml-fmt-common/toml-fmt-common-1.3.5.ebuild2
-rw-r--r--dev-python/tornado/Manifest2
-rw-r--r--dev-python/tornado/files/tornado-6.5.7-pycurl-7.47.0.patch82
-rw-r--r--dev-python/tornado/tornado-6.5.5.ebuild61
-rw-r--r--dev-python/tornado/tornado-6.5.6.ebuild2
-rw-r--r--dev-python/tornado/tornado-6.5.7.ebuild2
-rw-r--r--dev-python/towncrier/towncrier-25.8.0.ebuild2
-rw-r--r--dev-python/tox/Manifest4
-rw-r--r--dev-python/tox/tox-4.54.0.ebuild97
-rw-r--r--dev-python/tox/tox-4.55.1.ebuild2
-rw-r--r--dev-python/tox/tox-4.56.0.ebuild80
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild2
-rw-r--r--dev-python/trio-websocket/trio-websocket-0.12.2.ebuild31
-rw-r--r--dev-python/trio/trio-0.33.0.ebuild10
-rw-r--r--dev-python/truststore/truststore-0.10.4.ebuild37
-rw-r--r--dev-python/twisted/files/twisted-26.4.0-py315.patch114
-rw-r--r--dev-python/twisted/files/twisted-26.4.0-pyopenssl.patch456
-rw-r--r--dev-python/twisted/twisted-26.4.0-r1.ebuild (renamed from dev-python/twisted/twisted-26.4.0.ebuild)4
-rw-r--r--dev-python/txtorcon/Manifest1
-rw-r--r--dev-python/txtorcon/txtorcon-24.8.0-r1.ebuild39
-rw-r--r--dev-python/txtorcon/txtorcon-26.6.0.ebuild2
-rw-r--r--dev-python/typer/Manifest1
-rw-r--r--dev-python/typer/typer-0.25.1.ebuild69
-rw-r--r--dev-python/typer/typer-0.26.7.ebuild2
-rw-r--r--dev-python/urllib3/urllib3-2.7.0.ebuild20
-rw-r--r--dev-python/urwid/Manifest4
-rw-r--r--dev-python/urwid/urwid-4.0.0.ebuild41
-rw-r--r--dev-python/urwid/urwid-4.0.1.ebuild41
-rw-r--r--dev-python/urwid/urwid-4.0.2.ebuild2
-rw-r--r--dev-python/uv-build/uv-build-0.11.19.ebuild2
-rw-r--r--dev-python/uv/uv-0.11.19.ebuild2
-rw-r--r--dev-python/uvicorn/Manifest2
-rw-r--r--dev-python/uvicorn/uvicorn-0.49.0.ebuild40
-rw-r--r--dev-python/uvicorn/uvicorn-0.50.0.ebuild70
-rw-r--r--dev-python/vcrpy/Manifest1
-rw-r--r--dev-python/vcrpy/vcrpy-8.3.0.ebuild61
-rw-r--r--dev-python/vcsgraph/Manifest2
-rw-r--r--dev-python/vcsgraph/vcsgraph-0.3.0.ebuild32
-rw-r--r--dev-python/virtualenv/Manifest4
-rw-r--r--dev-python/virtualenv/files/virtualenv-20.31.1-ensurepip.patch34
-rw-r--r--dev-python/virtualenv/virtualenv-20.39.1.ebuild133
-rw-r--r--dev-python/virtualenv/virtualenv-21.3.3.ebuild2
-rw-r--r--dev-python/virtualenv/virtualenv-21.5.0.ebuild136
-rw-r--r--dev-python/virtualenv/virtualenv-21.5.1.ebuild2
-rw-r--r--dev-python/wand/wand-0.7.1.ebuild2
-rw-r--r--dev-python/weasyprint/Manifest2
-rw-r--r--dev-python/weasyprint/weasyprint-68.1.ebuild46
-rw-r--r--dev-python/weasyprint/weasyprint-69.0.ebuild2
-rw-r--r--dev-python/websockets/files/websockets-16.0-py315.patch29
-rw-r--r--dev-python/websockets/websockets-16.0-r1.ebuild65
-rw-r--r--dev-python/ytmusicapi/ytmusicapi-1.12.1-r1.ebuild2
-rw-r--r--dev-python/zope-exceptions/zope-exceptions-6.0.ebuild2
-rw-r--r--dev-python/zope-hookable/zope-hookable-8.2.ebuild2
-rw-r--r--dev-python/zope-interface/Manifest1
-rw-r--r--dev-python/zope-interface/zope-interface-8.4.ebuild51
-rw-r--r--dev-python/zope-interface/zope-interface-8.5.ebuild2
-rw-r--r--dev-python/zope-schema/zope-schema-8.1.ebuild2
304 files changed, 2095 insertions, 6703 deletions
diff --git a/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild b/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild
index 42dfeeb9601e..813c6247f2c1 100644
--- a/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild
+++ b/dev-python/a2wsgi/a2wsgi-1.10.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2025 Gentoo Authors
+# Copyright 2023-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,28 +18,18 @@ LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-RDEPEND="
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.10)
-"
BDEPEND="
test? (
<dev-python/httpx-1[${PYTHON_USEDEP}]
>=dev-python/httpx-0.22.0[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/starlette[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
-python_test() {
- local EPYTEST_DESELECT=(
- # requires baize
- tests/test_asgi.py::test_baize_stream_response
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p asyncio
-}
+EPYTEST_DESELECT=(
+ # requires baize
+ tests/test_asgi.py::test_baize_stream_response
+)
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 73029c9ff46a..fca233296db5 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,6 +1,4 @@
DIST aiohttp-3.13.5.tar.gz 7858271 BLAKE2B 33b8f7f977a429fcd14401042f0be88c4cf6879e2f991783c28bf26d2eaefb4ebeab64edfa4bd34f239c50574b3d5c5adb64b651716c8b7dc1fa4a41ca211d99 SHA512 42aafde39a7e0d270a43733293be1450ca7d72be9658403218f4c338fba7f942bd362637676146cc77579a0946303a44b012b070a25027d3b87abfb6bc0f9fb9
DIST aiohttp-3.13.5.tar.gz.provenance 9326 BLAKE2B 0ed4219dc79a8b48cbc69f1a926a75210069f8382d61e217aaae6c8d51871c03c03336c812a9c7ecff0972ab070d6f2954482bced18edfaa71cf06cf8ef019bd SHA512 801915c3639db98f363a14e0e2e9e7b3e6e76d8e7988f43749580e4fa04404fe6b72f50370a07f37a922541d111361106d8fd8c4ffa4be326b130148a407c0e0
-DIST aiohttp-3.14.0.tar.gz 7940674 BLAKE2B 259de386734fd64e6c9de5d7f0b2d71d4672c24c0ea38a434ca8f1e8bb0ad1ea4e4c0d5e11ecc22dbb95f8e2ff51c89163c1a1ab5ce49463e8b5a3a1b3785be9 SHA512 7888be5d7c285efb84e38cebd3b4dcd8dd199ba654df5faac87d254f9a423d7b5300d195e2d99b196c3d1d53fd8f0cadbcf368ce985e2269ec9c31400e40c036
-DIST aiohttp-3.14.0.tar.gz.provenance 9781 BLAKE2B 705c780ee0b659d2e3e2ce8450c1ddc9759f6d03d702996c0754340d9aee0e303fa91a78b6f2922d4932c779d80903c8a73b5734c813a562de23b31aced1e2b3 SHA512 b3ec14b7961fe8be81e67ae556dd89ad85efd16a962ef8a3169a0f8d6f454aa177485a9f8f7ea5eb42d3a754e98c6eea58e18300f4c7b6a28d82a0111a411ae7
DIST aiohttp-3.14.1.tar.gz 7955794 BLAKE2B b8b66efa9410871de7cce19427b53329460740c32bc46595933f9af21d6807493f6b5549217d993227f50b92850c5ee1a8a4b652b740e8770889ad0991789716 SHA512 8cba5eff6e62f29fc2f600b30c840febc2a6b947134d6e194a2dcd873972ada2d48cbdaa01216b53cc3127b973b0f30ef1ac69713081b5e1ed2efbfd654fdebc
DIST aiohttp-3.14.1.tar.gz.provenance 9456 BLAKE2B 9cccbaff0ee8d38a6a68704890c8af1d48673b434d52d4fed9fe4045dba84486e764016b1a55d648d81bc266d20dc031cc47798b0a7aa87e6b5b44a22a1b3502 SHA512 267af513e2492462a2da7ac48fb71a47d84efc5129e4b84c79dc86b20f823232e1c199eeb3e278cee9469af9d20a344a920e8c63c7087a2a87b8bfdd0e5ac61e
diff --git a/dev-python/aiohttp/aiohttp-3.14.0.ebuild b/dev-python/aiohttp/aiohttp-3.14.0.ebuild
deleted file mode 100644
index 71899979c02b..000000000000
--- a/dev-python/aiohttp/aiohttp-3.14.0.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/aio-libs/aiohttp
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="HTTP client/server for asyncio"
-HOMEPAGE="
- https://github.com/aio-libs/aiohttp/
- https://pypi.org/project/aiohttp/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="+native-extensions test-rust"
-
-DEPEND="
- native-extensions? (
- $(python_gen_cond_dep '
- net-libs/llhttp:=
- ' 'python3*')
- )
-"
-RDEPEND="
- ${DEPEND}
- >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}]
- >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}]
- >=dev-python/aiosignal-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
- >=dev-python/brotlicffi-1.2[${PYTHON_USEDEP}]
- >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
- >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
- >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
- >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/backports-zstd[${PYTHON_USEDEP}]
- ' 3.12 3.13)
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
- ' 3.12)
-"
-BDEPEND="
- >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
- dev-python/pkgconfig[${PYTHON_USEDEP}]
- native-extensions? (
- >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
- dev-python/pkgconfig[${PYTHON_USEDEP}]
- )
- test? (
- dev-python/blockbuster[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/isal[${PYTHON_USEDEP}]
- dev-python/re-assert[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/zlib-ng[${PYTHON_USEDEP}]
- www-servers/gunicorn[${PYTHON_USEDEP}]
- test-rust? (
- dev-python/trustme[${PYTHON_USEDEP}]
- )
- )
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( pytest-{mock,xdist} )
-EPYTEST_RERUNS=5
-: ${EPYTEST_TIMEOUT:=180}
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # increase the timeout a little
- sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
- # xfail_strict fails on py3.10
- sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die
- sed -i -e 's:-Werror::' Makefile || die
- # remove vendored llhttp
- rm -r vendor || die
-}
-
-python_configure() {
- # check for .install-cython, so that we do this only once
- if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] &&
- use native-extensions
- then
- # force rehashing first
- emake requirements/.hash/cython.txt.hash
- > .update-pip || die
- > .install-cython || die
- emake cythonize
- fi
-}
-
-python_compile() {
- local -x AIOHTTP_USE_SYSTEM_DEPS=1
- # implicitly disabled for pypy3
- if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
- local -x AIOHTTP_NO_EXTENSIONS=1
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # proxy is not packaged
- tests/test_proxy_functional.py
- # python_on_whales is not packaged
- tests/autobahn/test_autobahn.py
- # benchmarks
- tests/test_benchmarks_client.py
- tests/test_benchmarks_client_request.py
- tests/test_benchmarks_client_ws.py
- tests/test_benchmarks_cookiejar.py
- tests/test_benchmarks_http_websocket.py
- tests/test_benchmarks_http_writer.py
- tests/test_benchmarks_web_fileresponse.py
- tests/test_benchmarks_web_middleware.py
- tests/test_benchmarks_web_response.py
- tests/test_benchmarks_web_urldispatcher.py
- )
-
- local EPYTEST_DESELECT=(
- # Internet
- tests/test_client_session.py::test_client_session_timeout_zero
- tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_nonzero_passed
- tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection
- tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_zero_not_passed
- tests/test_client_functional.py::test_invalid_idna
- # broken by irrelevant deprecation warnings
- tests/test_circular_imports.py::test_no_warnings
- # https://github.com/aio-libs/aiohttp/issues/11400#issuecomment-4168569526
- # https://github.com/python/cpython/issues/145599
- # https://github.com/python/cpython/pull/145600
- tests/test_cookie_helpers.py::test_parse_set_cookie_headers_uses_unquote_with_octal
- # some warnings
- tests/test_multipart.py::TestPartReader::test_read_decode_compressed_exceeds_max_size
- )
-
- # upstream unconditionally blocks building C extensions
- # on PyPy3 but the test suite needs an explicit switch
- if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
- local -x AIOHTTP_NO_EXTENSIONS=1
- fi
-
- rm -rf aiohttp || die
- epytest -m "not internal and not dev_mode"
-}
diff --git a/dev-python/aiohttp/aiohttp-3.14.1.ebuild b/dev-python/aiohttp/aiohttp-3.14.1.ebuild
index 1f568e4f0d5e..ae2293b5e6bf 100644
--- a/dev-python/aiohttp/aiohttp-3.14.1.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.14.1.ebuild
@@ -23,9 +23,7 @@ IUSE="+native-extensions test-rust"
DEPEND="
native-extensions? (
- $(python_gen_cond_dep '
- net-libs/llhttp:=
- ' 'python3*')
+ net-libs/llhttp:=
)
"
RDEPEND="
@@ -54,14 +52,14 @@ BDEPEND="
dev-python/pkgconfig[${PYTHON_USEDEP}]
)
test? (
- dev-python/blockbuster[${PYTHON_USEDEP}]
dev-python/freezegun[${PYTHON_USEDEP}]
dev-python/isal[${PYTHON_USEDEP}]
dev-python/re-assert[${PYTHON_USEDEP}]
+ dev-python/zlib-ng[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
+ dev-python/blockbuster[${PYTHON_USEDEP}]
dev-python/time-machine[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/zlib-ng[${PYTHON_USEDEP}]
+ ' 3.{12..14})
www-servers/gunicorn[${PYTHON_USEDEP}]
test-rust? (
dev-python/trustme[${PYTHON_USEDEP}]
diff --git a/dev-python/anyio/anyio-4.14.1.ebuild b/dev-python/anyio/anyio-4.14.1.ebuild
index cbf4f7c1ccce..e3bc6babc4f4 100644
--- a/dev-python/anyio/anyio-4.14.1.ebuild
+++ b/dev-python/anyio/anyio-4.14.1.ebuild
@@ -31,17 +31,15 @@ RDEPEND="
BDEPEND="
>=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
test? (
- >=dev-python/blockbuster-1.5.23[${PYTHON_USEDEP}]
>=dev-python/psutil-5.9[${PYTHON_USEDEP}]
>=dev-python/trustme-1.0.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
+ >=dev-python/blockbuster-1.5.23[${PYTHON_USEDEP}]
>=dev-python/trio-0.32.0[${PYTHON_USEDEP}]
- ' 3.{11..14})
- amd64? (
- $(python_gen_cond_dep '
+ amd64? (
>=dev-python/uvloop-0.22.1[${PYTHON_USEDEP}]
- ' python3_{11..14})
- )
+ )
+ ' 3.{11..14})
)
"
diff --git a/dev-python/anysqlite/anysqlite-0.0.5.ebuild b/dev-python/anysqlite/anysqlite-0.0.5.ebuild
index 2aab3bbd06ee..822e2e0528fe 100644
--- a/dev-python/anysqlite/anysqlite-0.0.5.ebuild
+++ b/dev-python/anysqlite/anysqlite-0.0.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2025 Gentoo Authors
+# Copyright 2025-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/anytree/anytree-2.13.0.ebuild b/dev-python/anytree/anytree-2.13.0.ebuild
index 986ec0d89e01..df765af57dd5 100644
--- a/dev-python/anytree/anytree-2.13.0.ebuild
+++ b/dev-python/anytree/anytree-2.13.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2025 Gentoo Authors
+# Copyright 2025-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -24,6 +24,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/apprise/Manifest b/dev-python/apprise/Manifest
index 3f4df21e6556..e53fc8d6e685 100644
--- a/dev-python/apprise/Manifest
+++ b/dev-python/apprise/Manifest
@@ -1,2 +1,3 @@
DIST apprise-1.10.0.tar.gz 2188611 BLAKE2B daccf6267a67a84343025ad17551d296b480b5b56db65070961830398258780fcf930319f1d64c4ad3ec438fd94c73d2c4266acddb8f5fe51a8d6f7f64248372 SHA512 b6a5ce95425ee151b8b81e1eaa5b3a1c4a4cc358c0c2266976c6ea3285296fe773451c72fb836c08c2721d4e65e0bd7f92551b258a8246246860a9edf319df4a
+DIST apprise-1.12.0.tar.gz 2477874 BLAKE2B f51b075a108286d2787740e0ce643b7ae54ed3d080767779d5bc10a5177c9ee2c49dd5aaf1af0e38dbe0fefd1f73b9d98e40aa849d68cfa16cc60b05cab5606a SHA512 539d599eb068784904084b9b26dc0422063cbec6c2bd80d02db702ad676bd1816fbf4909ac5caeb2ee682c3d0ae54d3efb03d9b617c9b1f2b15cd06eb28fc7dd
DIST apprise-1.9.9.tar.gz 2032822 BLAKE2B b2ff39c65fab1f17d208aeb602f27dca12b7269e8a8b7c6f0fcf31711622a32db953eac8ff7ca2426933d2e282ea7a2da211818ebc11b9ed40a96918ec21d37d SHA512 486f02b6f2256944db2bcc0215e19e7a2502691725257824d746653e7ceca43affb40ca0781d64c29ff308eac6036b78295d0713a2888b20722ca3e79e47f8f6
diff --git a/dev-python/apprise/apprise-1.12.0.ebuild b/dev-python/apprise/apprise-1.12.0.ebuild
new file mode 100644
index 000000000000..d2598771827e
--- /dev/null
+++ b/dev-python/apprise/apprise-1.12.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_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Push Notifications that work with just about every platform"
+HOMEPAGE="
+ https://pypi.org/project/apprise/
+ https://github.com/caronc/apprise/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
+IUSE="+dbus mqtt"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-oauthlib[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dbus? ( dev-python/dbus-python[${PYTHON_USEDEP}] )
+ mqtt? ( dev-python/paho-mqtt[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ dev-python/babel[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_RERUNS=10
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fails if pygobject is installed
+ # https://github.com/caronc/apprise/issues/1383
+ tests/test_plugin_glib.py::test_plugin_glib_send_raises_generic
+)
diff --git a/dev-python/automat/automat-25.4.16.ebuild b/dev-python/automat/automat-25.4.16.ebuild
index 03fc0606bc2f..aa0b17a562ed 100644
--- a/dev-python/automat/automat-25.4.16.ebuild
+++ b/dev-python/automat/automat-25.4.16.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -27,6 +27,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
EPYTEST_IGNORE=(
diff --git a/dev-python/base58/base58-2.1.1.ebuild b/dev-python/base58/base58-2.1.1.ebuild
index e3444b0110c4..883401bdde27 100644
--- a/dev-python/base58/base58-2.1.1.ebuild
+++ b/dev-python/base58/base58-2.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2025 Gentoo Authors
+# Copyright 2020-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/betamax-matchers/betamax-matchers-0.4.0-r1.ebuild b/dev-python/betamax-matchers/betamax-matchers-0.4.0-r1.ebuild
index b0c35f922dda..bc07b8d5681b 100644
--- a/dev-python/betamax-matchers/betamax-matchers-0.4.0-r1.ebuild
+++ b/dev-python/betamax-matchers/betamax-matchers-0.4.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -28,4 +28,5 @@ RDEPEND="
>=dev-python/requests-toolbelt-0.4.0[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/blessed/blessed-1.44.0.ebuild b/dev-python/blessed/blessed-1.44.0.ebuild
index 5d1a5004ef53..31e72ea4dcd3 100644
--- a/dev-python/blessed/blessed-1.44.0.ebuild
+++ b/dev-python/blessed/blessed-1.44.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/jinxed-2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index acf59023525c..406389bbdae0 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,11 +1,5 @@
-DIST boto3-1.43.14.gh.tar.gz 1146029 BLAKE2B f8de3d46b90f55873492212afeab44b63abf1165920f75fd24178970fc3881904eb557268e5837d25e15a5fe9804ed895d351b17d377f5dfbdb7f11ef200910e SHA512 96721de4aa3387c3101686f62bbda63132eac02a03557fa8f26a61ac59af8506d829c38e9381088af4deb7b3bd4a79f82070a575f8c34eaeb387f9e1820331ed
DIST boto3-1.43.18.gh.tar.gz 1151413 BLAKE2B 81013f13acbc4e1c154b62b63163b8034cc122b0c66d8213af81fe046f72a759b329126bf28ec261156e6e459d5283ab61e4965375b0b8264d5aed98396f019b SHA512 9a6eac48ffd61872a0a30ce2142b7e94eb4eefeae932eb0e7273f89f574e20a9bad4dc9a789a60ecfa552ab907df46423cffb1cdf2c1804ebd6b3578c3330f26
DIST boto3-1.43.24.gh.tar.gz 1156465 BLAKE2B 52937853e047217550a0cad9ee09e61f8d5210bb6c943be85f55ae0bbf9a427f2662153df6be4c95dca419208171b427c40b7c254ee6873fbb342cb93e5c599f SHA512 7db83d4c793acab0cb049b4c84e153d958c23c945893a17eb7f84e1e854adfdc18cb94e9c5f9ef5fb9fa4e2cac99b764de87c5a9fbdc93e65283d9528712360c
DIST boto3-1.43.29.gh.tar.gz 1161648 BLAKE2B 3f0a040019fd8ea2a42a82c75bf31e563ef1e74745e3848f59fd8e1eb9946c5470cce0ece81d602cdd104e1d1a0cce68460a0ad993b47cb9d25b40fa3963b9e0 SHA512 c52a78f22daf6b79d772f5661cb56a4c1c35a7ad0001742d84d1c3f308c10534377ade5618bb5a3f95d0c7b4aacc82f42c10a30e521b31d41b9a403adbee1560
-DIST boto3-1.43.34.gh.tar.gz 1167805 BLAKE2B d5c01a44a913870dbed56c33372b83aae97f51fa3835673eb3c65bfc2b8564d226121a276aa53ecb5705548b8440d384b6713fe70d83fe959a75c4bbe7e628b1 SHA512 bee3f5ac75074bdbf8bb79d81bcbbb41b8cb6a80a247fe0887fbd16071e588f0ae4304a6a4813fe394d8a4a0311d12f853aefc43aee216af0608d9e10c893ece
-DIST boto3-1.43.35.gh.tar.gz 1169237 BLAKE2B aeaaedfa5adf47d8453511be0c490187427ac5b7fda5a90560631953c5569d77e858fa259ff9935d8db4becd0787e4d39d68225ced6f24760163a6dee7b0d3d7 SHA512 eb7900427fd29dcde27ad99b8c9cc0eae84c6a67c1245f3da6ba9b2dfad79dd0ebdc31233c3622d71a46138c38152492d19310d1521538eb5c4ac1f76c0eb745
DIST boto3-1.43.36.gh.tar.gz 1169288 BLAKE2B c316bf8bc804c7c7a70eed0b01a66d7cf8ffdd0662e3bdb54864a9c78d3baa1d092c99fd43dd2df93314fc4795738a6ad432cad6a333f0a5535e13b9c6765fca SHA512 bd9f623a67508741cd45b239a4e575bf5688146d38bdb4f3af0b294f17898205e23b57d04bf6ed9584b92088515be1fd6f11922fdba5cd19bcf3ea4340d16f55
-DIST boto3-1.43.37.gh.tar.gz 1171489 BLAKE2B 55d1a012b3c2aa98591a25c367b18fed3435bb3d02e35a1e97f5a69c79af13fe7e6775e7bc9fa7feff7848854c761ad33e3815aa9d6ac3c98f272852238c6774 SHA512 15e191664a7f1cc275f9d54efa0781a0b362755a4142c7fe51cef0a300dd0ceedd8d1f706c120daa193dc6e29e2909103059bb86e6479a005728696999d3b7e0
-DIST boto3-1.43.38.gh.tar.gz 1173715 BLAKE2B ed41aaf26c81150ac7e8f76b31cba3cfe475aad5e999b5863c01c569197ba6f84bbc81348e3a0b48fb8937a8c5bc3bf10645e3b9d02e358da1749be97814731c SHA512 5bb455bacb8ac867459df7d99805280c222ec59f046f01b74adb25213629f2e020edb0ea55c83d98ec9f29ede82c5258e510a150231c5bc6987d55b1403a4f06
-DIST boto3-1.43.39.gh.tar.gz 1174977 BLAKE2B 209342f9903a9497bff3445e95d557898b5fecad0886af536dc1ffd98ae17cc7949920332bfa5d274eb959ae01dec3453725933c9f9dced73363cea949720513 SHA512 069cf9d26a292f673340798905ab7bb1a55c4b9b9e204c5b3a835aa5f1d9cd3f6b6db971fa1b0ddaf1f596166d8aa1537fad408b676e95df5eeb3c52815e48be
DIST boto3-1.43.40.gh.tar.gz 1175361 BLAKE2B cb24a2dd76debf1b3b2d759d020b2cf17248db20044b06e0c191821170644f4762997a527b8e5c401305f5b0c725d1269d610c9cb1aa2bb776d894f70b09f3ac SHA512 eb7d0218051abddd74e544d8eaa4e83cdd2e9ef305d059c165c926ade12a795ae196eefbaa2b64176fe26a1bf20419d775670fccc4fda485c93197d10efcbcf1
diff --git a/dev-python/boto3/boto3-1.43.14.ebuild b/dev-python/boto3/boto3-1.43.14.ebuild
deleted file mode 100644
index 6a6bbecf6a0a..000000000000
--- a/dev-python/boto3/boto3-1.43.14.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="The AWS SDK for Python"
-HOMEPAGE="
- https://github.com/boto/boto3/
- https://pypi.org/project/boto3/
-"
-SRC_URI="
- https://github.com/boto/boto3/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
-
-RDEPEND="
- >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/s3transfer-0.17.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't lock versions to narrow ranges
- sed -e '/botocore/ d' \
- -e '/jmespath/ d' \
- -e '/s3transfer/ d' \
- -i setup.py || die
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/boto3/boto3-1.43.18.ebuild b/dev-python/boto3/boto3-1.43.18.ebuild
index 015f6e99eeec..740af35ca7d7 100644
--- a/dev-python/boto3/boto3-1.43.18.ebuild
+++ b/dev-python/boto3/boto3-1.43.18.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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/botocore-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.43.34.ebuild b/dev-python/boto3/boto3-1.43.34.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.34.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="The AWS SDK for Python"
-HOMEPAGE="
- https://github.com/boto/boto3/
- https://pypi.org/project/boto3/
-"
-SRC_URI="
- https://github.com/boto/boto3/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't lock versions to narrow ranges
- sed -e '/botocore/ d' \
- -e '/jmespath/ d' \
- -e '/s3transfer/ d' \
- -i setup.py || die
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/boto3/boto3-1.43.35.ebuild b/dev-python/boto3/boto3-1.43.35.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.35.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="The AWS SDK for Python"
-HOMEPAGE="
- https://github.com/boto/boto3/
- https://pypi.org/project/boto3/
-"
-SRC_URI="
- https://github.com/boto/boto3/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't lock versions to narrow ranges
- sed -e '/botocore/ d' \
- -e '/jmespath/ d' \
- -e '/s3transfer/ d' \
- -i setup.py || die
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/boto3/boto3-1.43.37.ebuild b/dev-python/boto3/boto3-1.43.37.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.37.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="The AWS SDK for Python"
-HOMEPAGE="
- https://github.com/boto/boto3/
- https://pypi.org/project/boto3/
-"
-SRC_URI="
- https://github.com/boto/boto3/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't lock versions to narrow ranges
- sed -e '/botocore/ d' \
- -e '/jmespath/ d' \
- -e '/s3transfer/ d' \
- -i setup.py || die
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/boto3/boto3-1.43.38.ebuild b/dev-python/boto3/boto3-1.43.38.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.38.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="The AWS SDK for Python"
-HOMEPAGE="
- https://github.com/boto/boto3/
- https://pypi.org/project/boto3/
-"
-SRC_URI="
- https://github.com/boto/boto3/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't lock versions to narrow ranges
- sed -e '/botocore/ d' \
- -e '/jmespath/ d' \
- -e '/s3transfer/ d' \
- -i setup.py || die
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/boto3/boto3-1.43.39.ebuild b/dev-python/boto3/boto3-1.43.39.ebuild
deleted file mode 100644
index 93fbbe6dd59b..000000000000
--- a/dev-python/boto3/boto3-1.43.39.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="The AWS SDK for Python"
-HOMEPAGE="
- https://github.com/boto/boto3/
- https://pypi.org/project/boto3/
-"
-SRC_URI="
- https://github.com/boto/boto3/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't lock versions to narrow ranges
- sed -e '/botocore/ d' \
- -e '/jmespath/ d' \
- -e '/s3transfer/ d' \
- -i setup.py || die
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 79126a770c7e..dd4376dcdb29 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,11 +1,5 @@
-DIST botocore-1.43.14.gh.tar.gz 16327415 BLAKE2B 418cbdd5f997fe0ec31ba4f19abe3c19e1e162d12fd0773e1bee26be83bb4f74c562493731c99a58d1dde6491d54f1f04bd19d084f51471423ff64ed40605830 SHA512 71728063cc6ef47bdbde33da2492a41af5bc9cc6c0d7db688ff3462eeace2b778c000b9ea3b945a3571b7b04ffada8bc65c90279657c9417498d5d31494b50c9
DIST botocore-1.43.18.gh.tar.gz 16377376 BLAKE2B 4eb2808f4aa3b2b64f9d4b5d2df19c0dfbcc461da6588e10e939bfca794426460b28a306f2c4c3a1e9065b8c7299011b0dd035229b9d4bda67f9a51a1994d5ab SHA512 ce6506bd52fbc16127f7300c3f09c99320462de15036c66d89c65cf6533c94f0cc7b4153055a79ec36bf295af5206009517de1cb654f22d19a7426d34a2fb78e
DIST botocore-1.43.24.gh.tar.gz 16430918 BLAKE2B 526fc9ab71c37cbae5a6b23a0c0bb7e324d6f85bc00cb7c084ad1ed8b1a02c7ed128a006b2f108813bc39ef35cc19279c93a1003e65000e5778c17d8719451b8 SHA512 9086d2dc96221f9886468bbba082711d3fecb2355968db5ed5c1eb69fe0ffaa5a0ce038c62c44bfbc93dcc946780fef264edcefa46d21f4b978ce46a0025ba12
DIST botocore-1.43.29.gh.tar.gz 16476072 BLAKE2B 2525545c2425568e8765100bad446e2ddb7c4ea80f78d52827456a368a4da68ad5e86c60ef6af5611a342e2c8b44c8a057d341941db31d6b1c6cd01506b912b3 SHA512 6d37f50ec4ace4252e7d303e9ddaac8571e28695beadf3d7c23f3d1f413bcc06734e88be6f834d8ef82b3583954b8acc7da325630ae4cce7371684957f3547ae
-DIST botocore-1.43.34.gh.tar.gz 16563578 BLAKE2B 587551dd360e3fa389cf778d110dc1c080444bfc2c76dad4068b1a185c92ceba85fa76488528a3bd99d33d31edc1858b26f99961ed2e6e0852e99ad4429205c7 SHA512 2a0452dabe1329e511e3d34c5b625768c7ed27bb32e0044b47ac87c56702448f8f941ec0ec3fae648575c5ce0e82aca8973f83ae2785026c6da2eeee95e8128e
-DIST botocore-1.43.35.gh.tar.gz 16602288 BLAKE2B b2b61f787a3bf4cbd9100a1825b155fe53e10c83611ebac6189c4335909e1695205b138b6ab5ac657c2c7f0e5331e9037fedae46591692594daeff65e31573d7 SHA512 d721568fbb10e65e458976dda7c4768f75da4618851169d1486f6978b65c5974fee8b5da5a88975455d8b9d7acccfdba0de701b3a41df02441cf2340b79e7bc8
DIST botocore-1.43.36.gh.tar.gz 16601718 BLAKE2B b4643995a2c173c9df865923d6912e2c804da45b3bcfaf2e73e941366df02c23f4cb05408550992e9747aaacf1acaaced06dc497625e5e3dd5d8dc1eafc881b9 SHA512 02754b7766b91b569fa9aa3f83797c4b01834914415b535d690308e373583cafadf0b35846309aabbc0c66413d7adec05db0132e441eae273c4b9b78327570a8
-DIST botocore-1.43.37.gh.tar.gz 16625905 BLAKE2B ff085acb7ab6cc50ae0b93e99b45c871110408ccc72b87327a5a85767330947d292175af402a92d61e12154f8efb3d65d08d70e5bd719f4c1a2d13f3be369d6f SHA512 b58ac57522daf0ce17e91b3a3e1f40fa89b689dc98f74575e9a67719a97ddc87b3110797af084ea136b7fc8b5527136c581385a2e8585c7f773cde641bc590ab
-DIST botocore-1.43.38.gh.tar.gz 16607002 BLAKE2B c6317c12154edf92d6a1330bca1a9a2957480d683a7abf41ad6401d3be337a2f980ca8758bb90b3c298256c3250c1cca4345ee27723c92a21ac1fdc098f5afb8 SHA512 8acf6cdeeb96049423be600a178a82f63d1579ed635045c3fd75d32866ff0b86c2e48062666810ebc65cbbdb193760457093d17d87b5bd9a8568fb65e20dd71d
-DIST botocore-1.43.39.gh.tar.gz 16619085 BLAKE2B cbef4cba1ad18a2cd67e0da4758af4ca5c3a9e8c2b383715733105c6dbb7352282e07974f78858fc5bf01f10f4137c3039fbd43f83da8ad18870d98484ce8427 SHA512 50d74d78f2b728564208779d329d3938f27a5f22664ed47627a3cd89e31a7f4b8b09ba7a1d0f98c97ee765f0a9a06a577ac97149d9238b4d84daa80135deac9c
DIST botocore-1.43.40.gh.tar.gz 16621912 BLAKE2B 87339ac693df7e8753b8a7463a93aea57f24005c48c6d5b0276307928704893f315e1b7c671d9a91340899bd8bff8846f7afa23eca4dbfaa03f54a3f07b2fa43 SHA512 49257c431950a63d34c137b2b3ed1bb642cfbdc98351dab2cb2dfdaae6f6e88ecb11c74d89d9ec52ad6b558e9d94fa6bc5da13c5a0e67ad441decf1df516e888
diff --git a/dev-python/botocore/botocore-1.43.14.ebuild b/dev-python/botocore/botocore-1.43.14.ebuild
deleted file mode 100644
index 0dca2a67c593..000000000000
--- a/dev-python/botocore/botocore-1.43.14.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.18.ebuild b/dev-python/botocore/botocore-1.43.18.ebuild
index a3a161f78545..0dca2a67c593 100644
--- a/dev-python/botocore/botocore-1.43.18.ebuild
+++ b/dev-python/botocore/botocore-1.43.18.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
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/jmespath-2[${PYTHON_USEDEP}]
diff --git a/dev-python/botocore/botocore-1.43.34.ebuild b/dev-python/botocore/botocore-1.43.34.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.34.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.35.ebuild b/dev-python/botocore/botocore-1.43.35.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.35.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.37.ebuild b/dev-python/botocore/botocore-1.43.37.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.37.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.38.ebuild b/dev-python/botocore/botocore-1.43.38.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.38.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/botocore/botocore-1.43.39.ebuild b/dev-python/botocore/botocore-1.43.39.ebuild
deleted file mode 100644
index a3a161f78545..000000000000
--- a/dev-python/botocore/botocore-1.43.39.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level, data-driven core of boto 3"
-HOMEPAGE="
- https://github.com/boto/botocore/
- https://pypi.org/project/botocore/
-"
-SRC_URI="
- https://github.com/boto/botocore/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/jmespath-2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
-"
-# unbundled packages
-RDEPEND+="
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jsonschema[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin deps
- sed -i -e "s:>=.*':':" setup.py || die
-
- # unbundle deps
- rm -r botocore/vendored || die
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # rely on bundled six
- tests/functional/test_six_imports.py::test_no_bare_six_imports
- tests/functional/test_six_threading.py::test_six_thread_safety
- )
-
- epytest tests/{functional,unit}
-}
diff --git a/dev-python/braintree/Manifest b/dev-python/braintree/Manifest
index 53274f35ffa3..80767dd64ce4 100644
--- a/dev-python/braintree/Manifest
+++ b/dev-python/braintree/Manifest
@@ -1,2 +1 @@
-DIST braintree_python-4.44.0.gh.tar.gz 273269 BLAKE2B afddc608f6ee2cb4decd86ec44492031945a4d3880344dd5ed0a7b9d7d7ede6a38a4d6c5975ce3ea78e13c31768c718ec52423f0e148ee168f2b0c6394b0e75c SHA512 5e93ea7c4a12bbdb1e4ac45a48f7f02f45c1b27f77d0e6e0ea798092534bbb24dc01bbf66bdb4110e718a681302053ba174204738b48a5de5a61758af1c2427f
DIST braintree_python-4.45.0.gh.tar.gz 273684 BLAKE2B 70784ec41d9e6fe9f80cdf3d0ac1b8386c2b25350082fd3ccae91709abacde75bec6ded6cf16fb53aeb18ff68038e9ae515e42460d464a6deae5a26b23966965 SHA512 daf3e860b5a7c30cfbf2c58d959654ab3a18e40e4eef78f20fd3a40115f0bb50648412b8c153149816e985a01b9cce82c3c938a5ef6f51af15c75ef8eeb7c7c5
diff --git a/dev-python/braintree/braintree-4.44.0.ebuild b/dev-python/braintree/braintree-4.44.0.ebuild
deleted file mode 100644
index 376089a2bfd1..000000000000
--- a/dev-python/braintree/braintree-4.44.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2020-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=braintree_python-${PV}
-DESCRIPTION="Braintree Python Library"
-HOMEPAGE="
- https://developer.paypal.com/braintree/docs/reference/overview/
- https://github.com/braintree/braintree_python/
- https://pypi.org/project/braintree/
-"
-# no tests in sdist, as of 4.19.0
-SRC_URI="
- https://github.com/braintree/braintree_python/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- >=dev-python/requests-0.11.0[${PYTHON_USEDEP}]
-"
-
-DOCS=( README.md )
-
-distutils_enable_tests unittest
-
-python_test() {
- eunittest tests/unit
-}
diff --git a/dev-python/cachetools/Manifest b/dev-python/cachetools/Manifest
index 629827fb0ceb..2c28e0eff3c5 100644
--- a/dev-python/cachetools/Manifest
+++ b/dev-python/cachetools/Manifest
@@ -1,2 +1 @@
-DIST cachetools-7.1.3.tar.gz 45780 BLAKE2B 7b7982f7980cc2893f320c46727745eb5d7d488bf2ddd3de6541f78a35bd76cb0d2fa730ab7441b47928451a6c052b75ae7a5d733fde07ba49744a0297a63311 SHA512 cbb36a8a013f6a7429c18e1aebdaac1be35b0c1445f1f0c789b0932ceba712f1dd716660a950d89681cb91fafbef3537d110d473434a89f9ef92be28b61b58ab
DIST cachetools-7.1.4.tar.gz 40085 BLAKE2B 2cee13235209eb489ef3f2d7ebbea45ed979dfec9de3f949d2d807e45c2fded6f886e22b9eec8cac0ac8e7fc999d4a29426d7b2c094547db0b9b4faec9f9adb1 SHA512 b48cdb38ec88695f7763d104e7d57282a88239e2bbe21c47937c25c1edebc3feecaeff072c9f2a9abfc58155ba92e70fbff4ac5b733e01fe4729267adcc1c040
diff --git a/dev-python/cachetools/cachetools-7.1.3.ebuild b/dev-python/cachetools/cachetools-7.1.3.ebuild
deleted file mode 100644
index c5eb5c67461d..000000000000
--- a/dev-python/cachetools/cachetools-7.1.3.ebuild
+++ /dev/null
@@ -1,27 +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="Extensible memoizing collections and decorators"
-HOMEPAGE="
- https://github.com/tkem/cachetools/
- https://pypi.org/project/cachetools/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local -x THREADING_TESTS=1
- epytest
-}
diff --git a/dev-python/cachetools/cachetools-7.1.4.ebuild b/dev-python/cachetools/cachetools-7.1.4.ebuild
index ec602b06cbfd..c3353be4b141 100644
--- a/dev-python/cachetools/cachetools-7.1.4.ebuild
+++ b/dev-python/cachetools/cachetools-7.1.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/cbor2/Manifest b/dev-python/cbor2/Manifest
index 19cf4a05b709..fce23b8f8798 100644
--- a/dev-python/cbor2/Manifest
+++ b/dev-python/cbor2/Manifest
@@ -1,11 +1,9 @@
DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST bigdecimal-0.4.10.crate 126514 BLAKE2B 3386e9df36307710a3076f267ce52cfc861d6b433fe65d0a1e7ab055f123af3689dc60b4b09761553dd53f05c295c72f7e8040428d04cfa09f958c747e31399a SHA512 706b7e33a2b375fc84ab6b617382145dd65e38e361498774493fad240a399e5a5e5f948604c831e9ca65eaa36df12ec7197c51fc80487680849129775d9256fc
-DIST cbor2-5.9.0.tar.gz 111231 BLAKE2B 2ab6315866e4c252ccc51a12358e1f6420ae9f284b27582257bf96ae8e9b780a3349df695dca651f02880b7f3cd2773645449d42dfdd6924235a671df3be49bc SHA512 cafe5fc6aa55b899ca3edd012620f94bd02c47e45117bee9f0841dae9baba049339ac8642998b390b29c29b3102ca4a26718bc0c2569c35434b3622d439a6b51
-DIST cbor2-5.9.0.tar.gz.provenance 9582 BLAKE2B 22f32c67af2ab3d9c1df9713aa0be0106542b13eaaf70b8ed0e09ccefd414619b721b87c8f74bf02ab583a744d02348cd3a0e45c6813686f18536d6c50d7d579 SHA512 0b44b4fa821d9df85b3891b98ad3cc724f906b3f9850f3251f14eb1450a9c3c60da8d6891f2473b465a9c275cc077fe7c0f6e1233ff1ca7ce274d23596694848
-DIST cbor2-6.0.1.tar.gz 84191 BLAKE2B 0f8522a2462d5362c8d19900d1973386060f08f3ff1d6780cb9639df1132706860fc6ecbef2be3bb3b24385168f1426e2c9ff652fafb924a0e9e7b44b75777ec SHA512 c753a24b61c8d07635ee8c5f78df53f135acd7415b75d758d9681c04586a117e6ecdf8f1cd11021c4b175cfce06236cbe9c6e6ab67c5a059d625de5aa921c8cd
-DIST cbor2-6.0.1.tar.gz.provenance 9155 BLAKE2B fab57134c5eed10943d62ba66db393e448a1ac36e1f6b71e1e4ca63f820ffd3ec188228503815faef8f636e6c1fdee8ca1abeb221d4902ee6102ce9182e303d7 SHA512 ac48dcb4e5e6dcbdf1044a669adc84f7833f75262266c20a1665d7a895221562080db61404eb7407c63dc57939a2bf97c34c31fb4264b6a5c720557f841e2957
DIST cbor2-6.1.2.tar.gz 86760 BLAKE2B a432aab05df5c1049925e5601e773ac7dc770710ecbe6e08617376625e97d50d6344b25ea88db42b46780821b7ba8633b06dc42650b86f3287245e7edf88768b SHA512 9e9f55d0e8dc6a913d316384563eb7da62e1e7cef97df3bcb104934567a94c41de3a8716633205cb5ed5eec593415a05c5b3b6d074ba2b8b1ec17c65294edd7b
DIST cbor2-6.1.2.tar.gz.provenance 9696 BLAKE2B de5fef7b5b7d54268a00cb8ef7299a83712806ee5f51330fbcb99b7d973a646e5bd12d21f0bd39eee932227120ec07e683c29f7ed0614a6f5b37643434a3dd2a SHA512 6be8e65d2abbc6055940a39c47286ddd3e7eedc6b9af4b5dad8fbbc3d37390fe8f60e3745febecc37ebfb6d801bb87d5e44ec666223056d86c3d01a1eec66283
+DIST cbor2-6.1.3.tar.gz 89503 BLAKE2B 3bb2234ff84c7b373ef5e5a95217c2a9820d7ebbdbfb866f797ce0174098a28dde3782b47500ff16f8d7de7d5ebdf3d7a1dcf4ef04f1c3f28f1760fcb33d6d07 SHA512 83416f8cce4c800f14b0538e7c03b4f45f4a72ceea2388e811d591ef441ec7df79512efcd0a2f79657ab1b8481217f7bd99f431307d0967a683601ced096fb66
+DIST cbor2-6.1.3.tar.gz.provenance 9461 BLAKE2B e97bd11c89c566c0a4dd5ba4e2a1d95b9761ea312be613472aca0f60e2421fbf4e9585cae43681ad24ac607155be30ace2374ace184f11e9d4a10f77d8229b4d SHA512 ae73e2b50dcb17d058fb78e008616c1040ccc505216efd929afd544fb5700f847dc694bc150eac4f9bd55ee587b717ebf2c752889d23f6c403924ff96415f881
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
DIST crunchy-0.2.4.crate 3887 BLAKE2B f957597c82795eb10d43a6a98f7575e19b9484dcdf9fe35ac79ce406035d5d467021a0c563dcfe8f717e800b6bf532fcd72cc11be47e084405e16219b88e67b1 SHA512 72ecadb6c8558dcbf3cbc3a34bcefbf292e42999e7af6f59b9804e1233d87f6f65802b157f346a64cd7d2dc1a92564d5481211b081ba5ea170ecdb06dff9dd0b
DIST half-2.7.1.crate 61040 BLAKE2B bd78abf71b1b0ae219d2293f8edd5084fa630150016c95786d0af38a898d2775ff73ce848c4b2bbf02c2ea2dc8a610b2e045df78892d2b1de28981e8033625a7 SHA512 f47cc8bfb4c754a8585d4e8eca1a35039dc0879e87e59acb72e91bf2d33eca8c4f8dd17b3a56e8953bcba62cb08122120866e9d4b3ab9f008847d86a5f81716d
@@ -19,10 +17,15 @@ DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfa
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
DIST pyo3-0.28.2.crate 1202843 BLAKE2B 18158e22631ab35348eab1f117f16b311932de832d910f37a71cf481ec04ced03c37baaf63f1c8afc7ecccef039fc8f9072cbe0dd5109a74e7fb9f6b3ddb18a4 SHA512 fd4a03eb1cdfa40c1ed67b588cd4da31c90972f95c669b20a1099fb9304cd9506337f674e0bc9efd1d22a453162aac79a36ab18ca97eaca3515d640e2e9b923f
+DIST pyo3-0.29.0.crate 1241253 BLAKE2B 29deb7fa70010bf3d7e9e93bbcd87c0b56c4ee7ef0c2e5956181d2fb5f06f4c9b3f28bd1ad280126c26c048808b91b847e1fb69ddd617ef9e9e5e004cf4e48ae SHA512 e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
DIST pyo3-build-config-0.28.2.crate 35958 BLAKE2B 87163e11ff52061e11943f54e0fea1101ec6f877b4e6ecda33e32a19d1a8af3a6a83ab23d17f744fb0176e35f819669e931f88c55d611c8f7ea52eacd1c683a3 SHA512 f9b4863baffdf474ba9121edc19323d91565dd1411acabda03a307c8aae4969657167a80e197d4c8656e711e424053aced6a1de7978cedd38815304835fc5dbb
+DIST pyo3-build-config-0.29.0.crate 39616 BLAKE2B 7b62a5976b890db84e5256f3136185c2a9c3b7110782b5b0cdc314a5231fde30a853ddcd17af63b53488b3e8d5e310b01002b6f3c32cfeb1e5c3e168cd6460d7 SHA512 df77e8d7d5fe173749437ff6b90fa1703083377d515ab8a85dc77d9cac9c3fc331ede4b040f7e3694311ddb5adff577cf90c181a27c196ab93a4569e918fdea8
DIST pyo3-ffi-0.28.2.crate 80837 BLAKE2B ac17690399e5cf84602a974860d84856d9489c7d94ec618cdb3b4c5bcee81d3767a727f22dca0a06d492ee28ecf24c84f48cd391a6d81229b1464fbb17654ac5 SHA512 f6b4fdea320922b81395e593fe135fd4b4f483250fe94d84019c97a3a9f98b6e2122134e09613021f194782038ffea1d32d3c65b1458e15ce3021d39fd582738
+DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a5ac46df3217d004f5c3a368f18331733c6723bd49e522c6f7105455df13e2be0f07695ed5ce6ae71c15dec438 SHA512 baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
DIST pyo3-macros-0.28.2.crate 8960 BLAKE2B 54fdb3f2d04c1f04d3cdb4d8422cd9fe1098df2f2740eaf61e2868e19f0a93c677486cef56576e39ba2010e426901c95846b7b81285858094ef1fdf48edc65b1 SHA512 7125a41bd5ceaa5c85a2ac5ed1bf07708cf95f58dd18a8ba9000a3139ebc06e90776b4254820410e940c80ed45f7c09165c8fe57d8f79069622849c6c0861bcb
+DIST pyo3-macros-0.29.0.crate 8915 BLAKE2B c12d23753d5aba7333183d4b41f16c8da1d4297a3ff86b3b150e9185c1978fc184ac198e566a41833292a8a78ab59446eafd5ef7169e5cb41493e7cbeaa68280 SHA512 fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
DIST pyo3-macros-backend-0.28.2.crate 87939 BLAKE2B c70e46d44c935e58957cd53a76a1e6d2e97ee1bdc39c926b1a23ce391785f212c30e150286fc78724e945679ac1ff04a10ec958b6d3dfe30c4acee795f6c2e63 SHA512 24203c47d91be9acc949cfc70ec8b4aa32e089275cf9b0061a9909f5e60895c56446692be0056e13cc4df8efc0698e0655626f9524241b54cd172d8a25e42f98
+DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
DIST quote-1.0.44.crate 31629 BLAKE2B 6e34e4121b7a37fd7492fc22d652c44ff90b8b3391b5cfa320a606871a43a4494beca15c1d4416c342bf511adb6442afa5513821514c52376175e2f8a98b7293 SHA512 6c1e9b31e0c8bd13cd865e6846dc243d88f2c057adeb8e674117bdcb46947219a6a352a6a50be1132c483f55331e6556275ac514513dbf017825c64e5d96010d
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
diff --git a/dev-python/cbor2/cbor2-5.9.0.ebuild b/dev-python/cbor2/cbor2-5.9.0.ebuild
deleted file mode 100644
index c6dae61843fa..000000000000
--- a/dev-python/cbor2/cbor2-5.9.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/agronholm/cbor2
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Pure Python CBOR (de)serializer with extensive tag support"
-HOMEPAGE="
- https://github.com/agronholm/cbor2/
- https://pypi.org/project/cbor2/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="+native-extensions"
-
-BDEPEND="
- >=dev-python/setuptools-61[${PYTHON_USEDEP}]
- >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( hypothesis )
-distutils_enable_tests pytest
-
-python_compile() {
- local -x CBOR2_BUILD_C_EXTENSION=1
- # pypy3 not supported upstream
- if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
- CBOR2_BUILD_C_EXTENSION=0
- fi
- distutils-r1_python_compile
-}
diff --git a/dev-python/cbor2/cbor2-6.1.2.ebuild b/dev-python/cbor2/cbor2-6.1.2.ebuild
index 05373a95ec69..4125b97fc361 100644
--- a/dev-python/cbor2/cbor2-6.1.2.ebuild
+++ b/dev-python/cbor2/cbor2-6.1.2.ebuild
@@ -52,7 +52,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
>=dev-python/setuptools-61[${PYTHON_USEDEP}]
diff --git a/dev-python/cbor2/cbor2-6.0.1.ebuild b/dev-python/cbor2/cbor2-6.1.3.ebuild
index b635174464cb..a7b7f3c55e2a 100644
--- a/dev-python/cbor2/cbor2-6.0.1.ebuild
+++ b/dev-python/cbor2/cbor2-6.1.3.ebuild
@@ -25,10 +25,11 @@ CRATES="
portable-atomic@1.13.1
proc-macro2@1.0.106
pyo3-build-config@0.28.2
- pyo3-ffi@0.28.2
- pyo3-macros-backend@0.28.2
- pyo3-macros@0.28.2
- pyo3@0.28.2
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
quote@1.0.44
syn@2.0.117
target-lexicon@0.13.5
@@ -52,7 +53,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
>=dev-python/setuptools-61[${PYTHON_USEDEP}]
diff --git a/dev-python/cbor2/metadata.xml b/dev-python/cbor2/metadata.xml
index b1ea573190ba..155ee4ca2dc5 100644
--- a/dev-python/cbor2/metadata.xml
+++ b/dev-python/cbor2/metadata.xml
@@ -11,12 +11,6 @@
<name>Brian Olson</name>
</maintainer>
</upstream>
- <use>
- <flag name="native-extensions">
- Compiles native "C" extensions (speedups, instead of using python
- fallback code).
- </flag>
- </use>
<longdescription>This library provides encoding and decoding for the
Concise Binary Object Representation (CBOR) (RFC 7049) serialization format.
It is implemented in pure python with an optional C backend and is compatible
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index c5d62f31cf2c..e0e84228591c 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,14 +1,4 @@
-DIST cfn_lint-1.49.3.tar.gz 4037038 BLAKE2B 621ac3cb97d5924e1b29c75924f89a3942b7f9d22b0b31f78656315b789b3dbefe3806a84f6b09f9b130878549c16e65f50e5b13194c92f11f1c09430bbf649b SHA512 fd73a6ad9bc03d657f98e33796fdc52ea7d1766e7dfc325b4da1304bceccfb75a5092123735c7a0a1c1a2203665915a6ebae0066efb019a184aed31619d009c0
-DIST cfn_lint-1.49.3.tar.gz.provenance 9768 BLAKE2B fc1c6756840e9ae9862c80cd6854a788ffe4a7e35724121fb1c5aaab38bc1d9be23b66b35cbcb14490e55ee75a39459cd542545d9c543f5bdd53776d8d81c1ed SHA512 acd61ba2f218a51b4ad078465b02a684d8a2903d440450a8a6b9844e28daf64182f887d06734cf7fea433a4c17920ef3236b3e305625fc8a2666cda84e7bc403
-DIST cfn_lint-1.50.1.tar.gz 4076509 BLAKE2B 438ce08ba7b37ca76b8a286f18deabd740969627c5177a40fc75fe76c36cb1adebf4c5e5a785b7422f287ee72d294c571d9e1bdfca6b9ef10473a28f4ae993da SHA512 9ac4224f4d5da149747abe00d6bffed88bc8fd3b36a868417bd8cf578b1cf7956812c7caaca4da178a1bed2b31a0a83f22be489176755e2146f8286e2dee12ce
-DIST cfn_lint-1.50.1.tar.gz.provenance 9678 BLAKE2B fde3c92469e6b11b53a3734c1266810052dadf96ea1cb2ab9d2f20ad36fa6d499ee260fdbf98f2a97b86543763f3af201d98ddc586a32649aa2bb716d0a206e2 SHA512 6c0af59dc5e2b61eb617f1690d671d85b2a9bc9d0ffec5d86cab9e49cabe4b3b551f16fc4cc720eddab122b69253ba3e31af4ac57cc4947cf23a3589a8e2678f
-DIST cfn_lint-1.51.3.tar.gz 4155028 BLAKE2B 545b321d12f33736773490b6e60a62ee8046a29ca2c0e231d9e895cdc2623126892a4787dd5c97c8489c166f14028647cccd3cd29d826a58f1c9cf1cf0e21e3e SHA512 b2f5b78a7b1badfe8f84dfed010042ee1cae2f5137e3840e8d83b5f9ae7de9ff4c1fee2bc4e26046cfd3fde8638626e062533ff053c55b9a3120c572d50b8ae3
-DIST cfn_lint-1.51.3.tar.gz.provenance 10240 BLAKE2B 3a84b9e84086a244660d2998d40b96160a87b0a985df3423efe87cd7f786c78e7347f741dc7dc70f6d0f621f5b0936193d8a5f52d12ee4e28995c75815aaa181 SHA512 8736cfa8f830c88dbab41396635a233253fb82d02159e2d59442ea35aad94562488ab04bfbf2ae0fd9d8ec4c2850fd70907ae74b8e0b16552d48ff166f9a8cff
-DIST cfn_lint-1.51.4.tar.gz 4156267 BLAKE2B 7445b3ac5ba060f7d3004027a6571a091b067180b7709122439a7886660db7aabe5009d2df17b48f1f0f133ea1ed43974a5bebdc7e9b97ae74da640dd455e399 SHA512 3633252f455be097d80a9c9b6660a41f106e4ee833178c29241a77f8f7140f0db9e9b4be729056966f59a59aca6ec206f8fd375ea9a045c21a48444c438d428d
-DIST cfn_lint-1.51.4.tar.gz.provenance 10130 BLAKE2B 887befe8d89d2ae67dbdb319824fad4e51f9ac29e6bc4561b2d4875a2df3626f0f063a1ea2f9c320a881c22d572aff703a1b8f5bab16cb65503bb6e505cf87f9 SHA512 8cd061ba39d9716f2f1ea502b8d1c3c8ce294a797c503d56a01c66e138d988905a18fafa5908033521f6dcb3bda12f70cd92aa7912d059026e490d3a4740895f
DIST cfn_lint-1.51.5.tar.gz 4114038 BLAKE2B 21932e73fdc81b2d8485ccb06dc7e527951a02170f210d9466312f4048070a33ab0bab6ae9fda1b589ce3060e4a98175b8249da55992eccb33722e086293d7cc SHA512 032ce12bdf22a4787887ca490d665e533172d9e90f8d7231b671d20c41e7a550c2411a55f807faacd55b71a3d36a83de0da3e02e2bceaf188da97a40a6a98ab0
DIST cfn_lint-1.51.5.tar.gz.provenance 10032 BLAKE2B 9e5830cdbb37342a07349ae71816a93abf1e943f91c836cfef6ceb39cf1b735373530b68418b0501488c92e338b493a09028e365fd6aed048ccc0e4958a6e863 SHA512 ca84d91a9860a2d4967fa431a134c92ed65e2bf304ed0b7b54763c04bcde16f5873baef0a3ce550bb58e5d308259660f62acaa0768ba494e7860f16e35a288ec
-DIST cfn_lint-1.52.0.tar.gz 4466061 BLAKE2B 3524c753fd259dec2d014a9b3cf5ffd488eef15118e7ce1cd42a41ba9f02f97e2af635aab602cb3a3c909be097ec102eb128941adde8b32d3c371f5284056f78 SHA512 26a0a4f0b6f43683adc147d3426c627ec05300874b9af9243cdee64c2b317ca2e6110b3c6237b45d72f4f70eb913a44d0208018f6eb4b88846f90dc39ddb5a9f
-DIST cfn_lint-1.52.0.tar.gz.provenance 10142 BLAKE2B e240509d51e71b46efc855b25968120e775d18ae92b595bbf5e0c940a721a6d2272d02ff78c1df4c5940469e77bdbe5f33202e7ad475edf5a61e4332cc7db4ff SHA512 a5d37fbb823dd5ccdc509eb8291bc25db628ce48b503c71bd759de55d810986153aeee7fcd5b827cb16cd1662a24f7ea233cd2346528fba665485266692d843f
DIST cfn_lint-1.52.1.tar.gz 4487553 BLAKE2B 7424bb7e2f02d9c825db9c2dcbd0b7601baee7fd828b32458c8f18b12b97a1d0f2752ffbb16c7d4b779b488d2b86521864561cfa51122b489342463e277c7fe7 SHA512 3d10dd41165708b2c27d7aa75d2177e270ebd3da92543b17f164e12e3b07dd188cb781fcc73be272741cdb9f4dae95ec01bf699c62f6f62b800495c90d52dc44
DIST cfn_lint-1.52.1.tar.gz.provenance 10005 BLAKE2B 9745d99328ace70220263a5298f41d95f49d192fbef8130a4052681af0a06e18d57e25ad7922e4f93a535fd9b2ead070eb3b7f652a870c74d8a60e84bad3aea7 SHA512 166ff9ec2ceef4fa4bcb8b9b152a8423e976d9192bb3c7cb1621c620bbfdda4949ef3780b802fae278078853776eef47ef0b53ed39f571962b9cb54b6d64a356
diff --git a/dev-python/cfn-lint/cfn-lint-1.49.3.ebuild b/dev-python/cfn-lint/cfn-lint-1.49.3.ebuild
deleted file mode 100644
index 329f350f3269..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.49.3.ebuild
+++ /dev/null
@@ -1,64 +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/aws-cloudformation/cfn-lint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.109.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- # crashes on 3.12+, probably pygraphviz
- test/unit/module/test_api.py::TestLintByConfig::test_graph
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.50.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.50.1.ebuild
deleted file mode 100644
index a49be28f7521..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.50.1.ebuild
+++ /dev/null
@@ -1,64 +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/aws-cloudformation/cfn-lint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.109.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- # crashes on 3.12+, probably pygraphviz
- test/unit/module/test_api.py::TestLintByConfig::test_graph
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.51.3.ebuild b/dev-python/cfn-lint/cfn-lint-1.51.3.ebuild
deleted file mode 100644
index d7de023d99dc..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.51.3.ebuild
+++ /dev/null
@@ -1,64 +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/aws-cloudformation/cfn-lint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.110.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- # crashes on 3.12+, probably pygraphviz
- test/unit/module/test_api.py::TestLintByConfig::test_graph
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.51.4.ebuild b/dev-python/cfn-lint/cfn-lint-1.51.4.ebuild
deleted file mode 100644
index d7de023d99dc..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.51.4.ebuild
+++ /dev/null
@@ -1,64 +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/aws-cloudformation/cfn-lint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.110.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- # crashes on 3.12+, probably pygraphviz
- test/unit/module/test_api.py::TestLintByConfig::test_graph
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.51.5.ebuild b/dev-python/cfn-lint/cfn-lint-1.51.5.ebuild
index d7de023d99dc..d74999fb71cd 100644
--- a/dev-python/cfn-lint/cfn-lint-1.51.5.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.51.5.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/aws-sam-translator-1.110.0[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.52.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.52.0.ebuild
deleted file mode 100644
index d7de023d99dc..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.52.0.ebuild
+++ /dev/null
@@ -1,64 +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/aws-cloudformation/cfn-lint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.110.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- # crashes on 3.12+, probably pygraphviz
- test/unit/module/test_api.py::TestLintByConfig::test_graph
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/constantly/constantly-23.10.4.ebuild b/dev-python/constantly/constantly-23.10.4.ebuild
index 68077ab10ebb..746be4c50928 100644
--- a/dev-python/constantly/constantly-23.10.4.ebuild
+++ b/dev-python/constantly/constantly-23.10.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -26,7 +26,9 @@ RESTRICT="!test? ( test )"
BDEPEND="
dev-python/versioneer[${PYTHON_USEDEP}]
- test? ( dev-python/twisted[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/twisted[${PYTHON_USEDEP}]
+ )
"
distutils_enable_tests unittest
diff --git a/dev-python/coverage/coverage-7.14.1.ebuild b/dev-python/coverage/coverage-7.14.1.ebuild
index 6aae2bf728ac..7c0113de2c2e 100644
--- a/dev-python/coverage/coverage-7.14.1.ebuild
+++ b/dev-python/coverage/coverage-7.14.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.0_rc1.ebuild b/dev-python/cramjam/cramjam-2.12.0_rc1.ebuild
index 79f1c005bc85..90fd65a32c89 100644
--- a/dev-python/cramjam/cramjam-2.12.0_rc1.ebuild
+++ b/dev-python/cramjam/cramjam-2.12.0_rc1.ebuild
@@ -147,7 +147,7 @@ LICENSE+="
SLOT="0"
# This is the same as 2.12.0 final, except upstream never uploaded it
# to PyPI.
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc ~x86"
DEPEND="
app-arch/bzip2:=
diff --git a/dev-python/dasbus/dasbus-1.7.ebuild b/dev-python/dasbus/dasbus-1.7.ebuild
index aa99ed560c67..e7da70de47dc 100644
--- a/dev-python/dasbus/dasbus-1.7.ebuild
+++ b/dev-python/dasbus/dasbus-1.7.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/dasbus-project/${PN}/archive/refs/tags/v${PV}.tar.gz
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc"
+KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~sparc"
RDEPEND="dev-python/pygobject:3[${PYTHON_USEDEP}]"
DEPEND="${RDEPEND}"
diff --git a/dev-python/dirty-equals/Manifest b/dev-python/dirty-equals/Manifest
index d4e04fbd6387..10243f3f5f8c 100644
--- a/dev-python/dirty-equals/Manifest
+++ b/dev-python/dirty-equals/Manifest
@@ -1,2 +1 @@
-DIST dirty-equals-0.10.0.gh.tar.gz 126610 BLAKE2B ebf748b627407973d259a9c85e754adb05c79af27eb871f722c0d14ff90c9c9fe257e2d7a46649f884326feecff3e3fa855ea380381eb59de4a31b092f828403 SHA512 c84d14e2399da273e48c6f125ea1fc9caf5824845106a88ba95c0d8e836bacb54b8113959d346a914ca344609ee58150839405ac1ec2f6a187e2f29b8601a4cb
DIST dirty-equals-0.11.0.gh.tar.gz 129113 BLAKE2B cf1c644c257a9f7ed93e297b2e2b4f868d9b7d62697cd76aefb8f21684333932ac06bb23dec18a604934312c362b7bbc8117aff96cc50c492ae393d24b751f02 SHA512 eb4e8725305dbe60b76171d7c4ad4c11ccf9d882e8b4adab7fd9937e580abae512e83e8f0691935c483e727b60c2f8d4881e03e15e74376c52556817f5db83b5
diff --git a/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild
deleted file mode 100644
index 254769de17a6..000000000000
--- a/dev-python/dirty-equals/dirty-equals-0.10.0.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2022-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_FULLY_TESTED=( python3_{10..13} pypy3_11 pypy3 )
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Doing dirty (but extremely useful) things with equals"
-HOMEPAGE="
- https://dirty-equals.helpmanual.io/latest/
- https://github.com/samuelcolvin/dirty-equals/
- https://pypi.org/project/dirty-equals/
-"
-SRC_URI="
- https://github.com/samuelcolvin/dirty-equals/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-BDEPEND="
- test? (
- dev-python/packaging[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/pydantic-2.4.2[${PYTHON_USEDEP}]
- ' "${PYTHON_FULLY_TESTED[@]}")
- >=dev-python/pytz-2021.3[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_IGNORE=(
- # require unpackaged pytest-examples
- tests/test_docs.py
- )
-
- if ! has_version "dev-python/pydantic[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- tests/test_other.py
- )
- fi
-
- local -x TZ=UTC
- epytest "${args[@]}"
-}
diff --git a/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
index 3d9eaaa28708..d99736111bcf 100644
--- a/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
+++ b/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
-PYTHON_FULLY_TESTED=( python3_{11..14} pypy3_11 )
+PYTHON_FULLY_TESTED=( python3_{12..14} )
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
@@ -50,5 +50,5 @@ python_test() {
fi
local -x TZ=UTC
- epytest "${args[@]}"
+ epytest
}
diff --git a/dev-python/distlib/Manifest b/dev-python/distlib/Manifest
index b40a2bf015aa..5ba934cd971c 100644
--- a/dev-python/distlib/Manifest
+++ b/dev-python/distlib/Manifest
@@ -1,3 +1,2 @@
-DIST distlib-0.4.0.gh.tar.gz 1245571 BLAKE2B c36fe726918bc04849465a55a2708b8686d2ba0b05baa7ff0595e03b7ff95a1afc45b037dbeab9bd14ec7a26ec49807ea5a7c458d8f8da16038c92f32291c62e SHA512 ff61f9ab4e38061d5fee3168c8b26c741a21403d793476477e0733b28b2ba5b1fb31ae6ddb5275efe7ad6936b7e79a5e7ec1b160c86bfbfe6b4ecff10e0193d2
DIST distlib-0.4.1.gh.tar.gz 1246126 BLAKE2B 3399dce7e1c064964edbe0eecb7f96974ce65d97dcf7645547584396008e6036885725a32b323f76c767762607fd9e58feac4b4d10ac28095fcfa0546302e61b SHA512 a8d99a1b6f32fb0ca3a705db109d12ddb46aa344b153b0a8c56c857f4c1fed681cfb4f34c594ade0bbbd5097e389c2b164b2347a30b9d114d62a5e23d8733714
DIST distlib-0.4.3.tar.gz 615141 BLAKE2B ef9c33d960b719ad6c8d66eaba6469915e19e9a89882b9a2a85244c041f40ca92222134ef9a5d1d00810eece628d07b65b0ffb09600fbcfb03f4f6b0c278bfa4 SHA512 0f6b44640cbfa9bccef10c6cdeedaec8582a2bd5878fcbc803a6feedb81daee5f28506004e23749f3eba206199cadae99808dbcd956066ba948cde455301fd74
diff --git a/dev-python/distlib/distlib-0.4.0-r1.ebuild b/dev-python/distlib/distlib-0.4.0-r1.ebuild
deleted file mode 100644
index 8ffb8e5146a6..000000000000
--- a/dev-python/distlib/distlib-0.4.0-r1.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 2021-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level components of distutils2/packaging"
-HOMEPAGE="
- https://pypi.org/project/distlib/
- https://github.com/pypa/distlib/
-"
-SRC_URI="
- https://github.com/pypa/distlib/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
-"
-
-LICENSE="PSF-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# pypiserver is called as external executable
-BDEPEND="
- test? (
- dev-python/pypiserver
- )
-"
-
-src_prepare() {
- local PATCHES=(
- # use system pypiserver instead of bundled one
- "${FILESDIR}/distlib-0.3.9-system-pypiserver.patch"
- # https://github.com/pypa/distlib/commit/6286442857de9f734686d08f0e59ca8048ee357a
- "${FILESDIR}/${P}-py314-test.patch"
- # https://github.com/pypa/distlib/pull/256
- "${FILESDIR}/${P}-py315.patch"
- )
-
- # make sure it's not used
- rm tests/pypi-server-standalone.py || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x SKIP_ONLINE=1
- local -x PYTHONHASHSEED=0
-
- # disable system-site-packages -- distlib has no deps, and is very
- # fragile to packages actually installed on the system
- sed -i -e '/system-site-packages/s:true:false:' \
- "${BUILD_DIR}/install${EPREFIX}/usr/pyvenv.cfg" || die
-
- "${EPYTHON}" tests/test_all.py -v -x ||
- die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/distlib/distlib-0.4.0.ebuild b/dev-python/distlib/distlib-0.4.0.ebuild
deleted file mode 100644
index 3e886ef100ab..000000000000
--- a/dev-python/distlib/distlib-0.4.0.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2021-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Low-level components of distutils2/packaging"
-HOMEPAGE="
- https://pypi.org/project/distlib/
- https://github.com/pypa/distlib/
-"
-SRC_URI="
- https://github.com/pypa/distlib/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
-"
-
-LICENSE="PSF-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# pypiserver is called as external executable
-BDEPEND="
- test? (
- dev-python/pypiserver
- )
-"
-
-src_prepare() {
- local PATCHES=(
- # use system pypiserver instead of bundled one
- "${FILESDIR}/distlib-0.3.9-system-pypiserver.patch"
- # https://github.com/pypa/distlib/commit/6286442857de9f734686d08f0e59ca8048ee357a
- "${FILESDIR}/${P}-py314-test.patch"
- )
-
- # make sure it's not used
- rm tests/pypi-server-standalone.py || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x SKIP_ONLINE=1
- local -x PYTHONHASHSEED=0
-
- # disable system-site-packages -- distlib has no deps, and is very
- # fragile to packages actually installed on the system
- sed -i -e '/system-site-packages/s:true:false:' \
- "${BUILD_DIR}/install${EPREFIX}/usr/pyvenv.cfg" || die
-
- "${EPYTHON}" tests/test_all.py -v -x ||
- die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/distlib/distlib-0.4.1.ebuild b/dev-python/distlib/distlib-0.4.1.ebuild
index 37fd6430bc35..41ee87d8c325 100644
--- a/dev-python/distlib/distlib-0.4.1.ebuild
+++ b/dev-python/distlib/distlib-0.4.1.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/distlib/files/distlib-0.4.0-py314-test.patch b/dev-python/distlib/files/distlib-0.4.0-py314-test.patch
deleted file mode 100644
index cf08838092a4..000000000000
--- a/dev-python/distlib/files/distlib-0.4.0-py314-test.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 6286442857de9f734686d08f0e59ca8048ee357a Mon Sep 17 00:00:00 2001
-From: Vinay Sajip <vinay_sajip@yahoo.co.uk>
-Date: Fri, 18 Jul 2025 07:59:29 +0100
-Subject: [PATCH] Fix #251: Use more appropriate function in test.
-
---- a/tests/test_scripts.py
-+++ b/tests/test_scripts.py
-@@ -341,10 +341,8 @@ def test_dry_run(self):
- def test_script_run(self):
- if sys.version_info[:2] < (3, 13):
- target = 'cgi:print_directory'
-- elif os.name != 'nt':
-- target = 'test.support.interpreters:list_all'
- else:
-- raise unittest.SkipTest('test not available on Windows for Python >= 3.13')
-+ target = 'logging:getHandlerNames'
- files = self.maker.make('test = %s' % target)
- self.assertEqual(len(files), 2)
- p = subprocess.Popen([sys.executable, files[0]], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-@@ -353,7 +351,7 @@ def test_script_run(self):
- self.assertIn(b'<H3>Current Working Directory:</H3>', stdout)
- self.assertIn(os.getcwd().encode('utf-8'), stdout)
- else:
-- self.assertIn(b'[Interpreter(0)]', stderr)
-+ self.assertIn(b'frozenset(', stderr)
- self.assertEqual(p.returncode, 1)
-
- @unittest.skipUnless(os.name == 'posix', 'Test only valid for POSIX')
diff --git a/dev-python/docutils/Manifest b/dev-python/docutils/Manifest
index 7b3ec5b522ae..e1118b7123a1 100644
--- a/dev-python/docutils/Manifest
+++ b/dev-python/docutils/Manifest
@@ -1,3 +1,2 @@
DIST docutils-0.22.4.tar.gz 2291750 BLAKE2B ec9ef492f067d91a3300a7707a88426d08714b85ff2970d6bdf8f94e8a7a42c576364445c0997dee5d19a76ab763793465ed131bb6ce6453c058d61371aed61c SHA512 80f4450f1ab81eb2425e246e1436cecda1ecd0c0ff70c24d34c2f651ab70afd55577a809b50ccd73d41e098790582fdc3b6594511308b51efe0c3005edbdcf72
DIST docutils-0.23.tar.gz 2303823 BLAKE2B 6db890673947e31995accddd9f7ace1b39beac02d21704d041b047824e3d4beebdc3d86aed95f012b2a6d52d80b38a917702f18504b3a61c263527623d930a78 SHA512 566edfec1a52dc16deae5dd1fd70f682a9f6ba44319a08c66280b2e1199768d52a2558f5031d35fbe2cd46d845443ff45390d1c2008ce0bc7b149cd024dc1c15
-DIST docutils-0.23rc1.tar.gz 2303934 BLAKE2B 1ee8ba3f05e00e6d1068116351868c8face1c89d9f2bf2b6d0a28a294e5b959d2759c142e911ac4d840158f3e13af22981071e121db619b3102a58b405cc8517 SHA512 6c92aa01176acc7587e9ee37867b1be3a16a8572eba7498a4de9358f0bcf5ae99754b3516d83719954a738242f05e386966cf03341520a017292ed3bcffb9e34
diff --git a/dev-python/docutils/docutils-0.23.ebuild b/dev-python/docutils/docutils-0.23.ebuild
index fb6b106c9ffb..6d90d5f7bdb6 100644
--- a/dev-python/docutils/docutils-0.23.ebuild
+++ b/dev-python/docutils/docutils-0.23.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
RDEPEND="
diff --git a/dev-python/docutils/docutils-0.23_rc1.ebuild b/dev-python/docutils/docutils-0.23_rc1.ebuild
deleted file mode 100644
index fb6b106c9ffb..000000000000
--- a/dev-python/docutils/docutils-0.23_rc1.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)"
-HOMEPAGE="
- https://docutils.sourceforge.io/
- https://pypi.org/project/docutils/
-"
-
-# GPL-3+ only for emacs/rst.el
-LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
-SLOT="0"
-if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
-fi
-
-RDEPEND="
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/pygments[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${RDEPEND}
-"
-
-python_compile_all() {
- # Generate html docs from reStructured text sources.
-
- # Place html4css1.css in base directory to ensure that the generated reference to it is correct.
- cp docutils/writers/html4css1/html4css1.css . || die
-
- cd tools || die
- "${EPYTHON}" buildhtml.py --input-encoding=utf-8 --no-datestamp \
- --stylesheet-path=../html4css1.css, --traceback ../docs || die
-}
-
-src_test() {
- cd test || die
- distutils-r1_src_test
-}
-
-python_test() {
- "${EPYTHON}" alltests.py -v || die "Testing failed with ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # Install tools.
- python_doscript tools/buildhtml.py
-}
-
-python_install_all() {
- local DOCS=( *.rst )
- local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css )
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/doublex/doublex-1.9.6.1.ebuild b/dev-python/doublex/doublex-1.9.6.1.ebuild
index 9ec1584b0a4f..aef0f2189c5b 100644
--- a/dev-python/doublex/doublex-1.9.6.1.ebuild
+++ b/dev-python/doublex/doublex-1.9.6.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -30,6 +30,7 @@ RDEPEND="
"
distutils_enable_sphinx docs --no-autodoc
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/enrich/enrich-1.2.7-r1.ebuild b/dev-python/enrich/enrich-1.2.7-r1.ebuild
index e5178bd9273e..bf019e31f448 100644
--- a/dev-python/enrich/enrich-1.2.7-r1.ebuild
+++ b/dev-python/enrich/enrich-1.2.7-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2025 Gentoo Authors
+# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,11 +23,9 @@ RDEPEND="
"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- )
"
+EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
EPYTEST_DESELECT=(
diff --git a/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild
index bee193b9f671..cad5d582800c 100644
--- a/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild
+++ b/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
# PYTHON_COMPAT is used only for testing
PYTHON_COMPAT=( python3_{13..14} )
PYTHON_REQ_USE="ssl(+),threads(+)"
@@ -83,6 +83,10 @@ python_prepare_all() {
# remove coverage & pytest-subket wheel expectation from test suite
# (from dev-python/pip)
"${FILESDIR}/pip-26.0-test-wheels.patch"
+
+ # https://github.com/pypa/pip/pull/14033
+ # + https://github.com/pypa/pip/commit/4c6d7471dec62fb004a47a7c2164b6b5b089ac06
+ "${FILESDIR}/pip-26.1.2-py315.patch"
)
distutils-r1_python_prepare_all
diff --git a/dev-python/ensurepip-pip/files/pip-26.1.2-py315.patch b/dev-python/ensurepip-pip/files/pip-26.1.2-py315.patch
new file mode 100644
index 000000000000..c36368cc0a73
--- /dev/null
+++ b/dev-python/ensurepip-pip/files/pip-26.1.2-py315.patch
@@ -0,0 +1,49 @@
+diff --git a/src/pip/_internal/build_env.py b/src/pip/_internal/build_env.py
+index 1a42a9d41..7639dabca 100644
+--- a/src/pip/_internal/build_env.py
++++ b/src/pip/_internal/build_env.py
+@@ -468,15 +468,19 @@ class BuildEnvironment:
+ """
+ import os, site, sys
+
+- # First, drop system-sites related paths.
++ # First, discover all system-sites related paths.
+ original_sys_path = sys.path[:]
++ # Clear sys.path so addsitedir() will add system site paths and paths
++ # added by contained .pth files to sys.path reliably. This is necessary
++ # since Python 3.15, which notably no longer re-executes .pth files for
++ # known paths.
++ sys.path = []
+ known_paths = set()
+ for path in {system_sites!r}:
+ site.addsitedir(path, known_paths=known_paths)
+- system_paths = set(
+- os.path.normcase(path)
+- for path in sys.path[len(original_sys_path):]
+- )
++ system_paths = set(os.path.normcase(path) for path in sys.path)
++
++ # Drop discovered system-sites related paths.
+ original_sys_path = [
+ path for path in original_sys_path
+ if os.path.normcase(path) not in system_paths
+diff --git a/tests/lib/venv.py b/tests/lib/venv.py
+index 67b01d9f3..4e86b92b3 100644
+--- a/tests/lib/venv.py
++++ b/tests/lib/venv.py
+@@ -174,11 +174,13 @@ class VirtualEnvironment:
+ site.ENABLE_USER_SITE = {self._user_site_packages}
+ # First, drop system-sites related paths.
+ original_sys_path = sys.path[:]
++ # To discover system-sites related paths, clear sys.path
++ # and build a new one with only system paths.
++ sys.path = []
+ known_paths = set()
+ for path in site.getsitepackages():
+ site.addsitedir(path, known_paths=known_paths)
+- system_paths = sys.path[len(original_sys_path):]
+- for path in system_paths:
++ for path in sys.path:
+ if path in original_sys_path:
+ original_sys_path.remove(path)
+ sys.path = original_sys_path
diff --git a/dev-python/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest
index ad7da0f2da0e..5f4d6040017b 100644
--- a/dev-python/ensurepip-setuptools/Manifest
+++ b/dev-python/ensurepip-setuptools/Manifest
@@ -1,2 +1,3 @@
DIST setuptools-79.0.1-py3-none-any.whl 1256281 BLAKE2B 8ae51bdd1c0ccada116757c2bd765225fcf4bedc7ada18567ae12f09b6978cdbcddd4f635a39a5568b6d3ed4388e4f73af5c33a7060f2ac0d0907fc82d8fd74f SHA512 fef6cfc6f95a5bb7320f1680e1c665cb8d9a4e4227cde4d8aab8a50bed4bcf04320085b9d7d5343359f887008db5c5a861e57f3d08b7b0b2311a28adaeee6b4a
DIST setuptools-82.0.1.tar.gz 1152316 BLAKE2B d7f6eaf62ec66355b65642bc20a7a549e167dd6d1c0cdb15926b6644a23cab7737d713cd9418e0cc09161eb0bff53ffd0b8781c96d9203717077121c1e3cc0d5 SHA512 5d70e9efd818245fb8119a4eed64d776078469ed884facc188f141ea491efd9fde5c10c928d3236ea5e2e431b16616f18ed14870b867f95e6320251707332395
+DIST setuptools-83.0.0.tar.gz 1154254 BLAKE2B b82142ad699703352b4ec7843545f3f078e853d39fa93e2d0ee42b9914ebc9d04bc7de4954bce0a1e49f3befea39d14176ed4e7462d202d74ed503664765fba9 SHA512 d426f235471d30b41391bda63e8f3d461f54a6a4127594a2e2d0cab0c7576d511db5e5f211ed6cdac2afc620d3695e991a1dd08106f1201ec64697b14b3e0390
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-83.0.0.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-83.0.0.ebuild
new file mode 100644
index 000000000000..3bd01c015f62
--- /dev/null
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-83.0.0.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYPI_PN=${PN#ensurepip-}
+# PYTHON_COMPAT used only for testing
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+
+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"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ >=dev-python/build-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+declare -A VENDOR_LICENSES=(
+ [autocommand]=LGPL-3
+ [backports.tarfile]=MIT
+ [importlib_metadata]=Apache-2.0
+ [jaraco_context]=MIT
+ [jaraco_functools]=MIT
+ [jaraco.text]=MIT
+ [more_itertools]=MIT
+ [packaging]="|| ( Apache-2.0 MIT )"
+ [platformdirs]=MIT
+ [tomli]=MIT
+ [wheel]=MIT
+ [zipp]=MIT
+)
+LICENSE+=" ${VENDOR_LICENSES[*]}"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # Verify that we've covered licenses for all vendored packages
+ cd setuptools/_vendor || die
+ local packages=( *.dist-info )
+ local pkg missing=()
+ for pkg in "${packages[@]%%-*}"; do
+ if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then
+ missing+=( "${pkg}" )
+ else
+ unset "VENDOR_LICENSES[${pkg}]"
+ fi
+ done
+
+ if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then
+ [[ ${missing[@]} ]] &&
+ eerror "License missing for packages: ${missing[*]}"
+ [[ ${VENDOR_LICENSES[@]} ]] &&
+ eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}"
+ die "VENDOR_LICENSES outdated"
+ fi
+}
+
+python_compile() {
+ # If we're testing, install for all implementations.
+ # If we're not, just get one wheel built.
+ if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then
+ distutils-r1_python_compile
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ # TODO, probably some random package
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
+ # relies on -Werror
+ setuptools/_static.py::setuptools._static.Dict
+ setuptools/_static.py::setuptools._static.List
+ # Internet
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import
+ # broken by warnings from setuptools-scm
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points
+ # TODO
+ setuptools/tests/test_config_discovery.py::TestDiscoverPackagesAndPyModules::test_py_modules_when_wheel_dir_is_cwd
+ 'setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[setup_requires_with_markers]'
+ )
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # fails and breaks other tests
+ setuptools/tests/test_editable_install.py
+ )
+ ;;
+ esac
+
+ local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
+ epytest -o tmp_path_retention_policy=all \
+ -m "not uses_network" setuptools
+}
+
+src_install() {
+ if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then
+ die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}"
+ fi
+ # TODO: compress it?
+ insinto /usr/lib/python/ensurepip
+ doins "${DISTUTILS_WHEEL_PATH}"
+}
diff --git a/dev-python/faker/Manifest b/dev-python/faker/Manifest
index 87b50f6e40b2..452a925dbec9 100644
--- a/dev-python/faker/Manifest
+++ b/dev-python/faker/Manifest
@@ -1,4 +1,3 @@
-DIST faker-40.19.1.tar.gz 1969318 BLAKE2B b2e7fdda254c8c1c0a4ec2a756ec7b7b31f9c373c9b9492f13f6db7970c9e8f7701c07ee895edf8527d66c6081811a07cba752d14aa208092b03403f7b869b27 SHA512 d650db7ef33b3303ef534af8baa97308ac13b6c77806118f33f4b5e13e886d2cc53e662e392f8966e659905d10ca5d28dc7050a9a502574beb50319d58fc4ec8
DIST faker-40.21.0.tar.gz 1970295 BLAKE2B 7df1c57d91d604e748532351240369d1b08992a3cecf2f60cf472a907e7ad8912befb2a9fc840fc28c1d1b5af96ed539d4083ead4e7005156973f4899677aa19 SHA512 64acde47e79732466efdf65cca8e76640bb2538956b72baafde307b412d7f54ebb9293bf1ec7b1a38e51cbcbc61fbe53c298bef5e4b014295f17043c464bbdb3
DIST faker-40.23.0.tar.gz 1972975 BLAKE2B bd31c81933c72a1cb367e764331295656e5b92f8b2aab19ee15bbf41a5c9cadae504e76068ee3882b90f13be9a323131e4d1b2af224f9462121acdbf9c6b5988 SHA512 734a4e51073596f6ba8b46cea54257e32f5f1567c21c44f15d82e5eff19a8209a07dd130767d57c02626d95e17cd517ee3c0aec3fc4682761b56e10c25058165
DIST faker-40.27.0.tar.gz 2018361 BLAKE2B 0a2caa035f137738669b57c50a79209f3c3dfedd0fd077992c2290d3cbde4fca3605d797630327cf82afac50f592cb972f10622832483ed45e7d18cd796906a2 SHA512 33734d76f291e6b36b3551201b6055c515d06d943ec1aaeeba739d38d4709849a99af785e1c49a5473ac12fc58d43114a5493a46de52a0d56861dbe5c84c9b0f
diff --git a/dev-python/faker/faker-40.19.1.ebuild b/dev-python/faker/faker-40.19.1.ebuild
deleted file mode 100644
index a2455830ee3f..000000000000
--- a/dev-python/faker/faker-40.19.1.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2022-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 pypi
-
-DESCRIPTION="A Python package that generates fake data for you"
-HOMEPAGE="
- https://github.com/joke2k/faker/
- https://pypi.org/project/Faker/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- !dev-ruby/faker
-"
-BDEPEND="
- test? (
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP},tiff]
- dev-python/validators[${PYTHON_USEDEP}]
- )
-"
-
-# note: tests are flaky with xdist
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" )
-distutils_enable_tests pytest
-
-python_test() {
- epytest
- epytest --exclusive-faker-session tests/pytest/session_overrides
-}
diff --git a/dev-python/faker/faker-40.21.0.ebuild b/dev-python/faker/faker-40.21.0.ebuild
index 125fe3904e57..a2455830ee3f 100644
--- a/dev-python/faker/faker-40.21.0.ebuild
+++ b/dev-python/faker/faker-40.21.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-ruby/faker
diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest
index 4f8671a3af00..ce283f39c083 100644
--- a/dev-python/fakeredis/Manifest
+++ b/dev-python/fakeredis/Manifest
@@ -1,8 +1,4 @@
DIST fakeredis-2.35.1.tar.gz 189118 BLAKE2B 00fcb8ef49091db4dfebe3febcfe8d06a789dac73692a305e62457b944e6567005d27d50b5eb08282be9d5e71615660a2e336a1fd26938d41233db5c41bb2714 SHA512 2a0e25d7319beb6be5647d88d3c675b28011b35b1e48ed545420a17a4707edc552555cf9240d27a4505b26c69cfb3e1e28dc9ff3f78c2471ad18c40a5ed69001
DIST fakeredis-2.35.1.tar.gz.provenance 9532 BLAKE2B fcf1ca04a303898904d338b7afeeba5731800aad686a7db916091842a9cde6953fd056f6567da3a0b7481c2c127f8e69eea6e672f711ec87cf244480c25ea7f6 SHA512 3e9f6ae3ec809c08110e2b2cad301891c1fd637e0527354f3c81aaa28cef2ea67f2e60103e66cbe78cab7c2d48c28c52a29d82896ba2750d3b159794c271c176
-DIST fakeredis-2.36.0.tar.gz 209484 BLAKE2B a8b29331c923aa0b9194ff1416d2ca59d5f9fd6c75b521c8271fefa4d2699d3d6ee0b65bcf51cf78f0ee6c49cd45ec1c14faaf8b60f03bc99802204515839537 SHA512 f873ee4b711ad994cc714125fc0b0456ba519bc1369ab2a25f3e4be043fc8697532336a1953c1b3d29dfc00fb4618e840b82578a67e6e33cd34f7727273e4fb5
-DIST fakeredis-2.36.0.tar.gz.provenance 9846 BLAKE2B 0441207c408eb0688aaf5b2e51521ea5d3764b2ab8923aac64f9b87c06da566052d7305cc6336e313f9fd9ff8dd3ec414f913027864169272b9ae634e6388231 SHA512 ed5b13ebfd9661a0643d97059baaf5535271e9fab2fd9877af8dd21c1bb28f67e176bc975e78056cc04930bbf81e6db963ea613a54f326b9582ca4b47aade9d6
-DIST fakeredis-2.36.1.tar.gz 210959 BLAKE2B bfbf4d397707a8d5cbb4a94fc4d89b814c4367ef20b894033301b640186ba6846a4102e580be103954fc04f53bb7f1aac0c9976dcfc62f0b9ffac8c5fc6e3405 SHA512 2eaa78273f2a7e1f11d4ccf8937406a81d546671e3bcb70e821ae8f80caf1b38cac908a127c0a7710fc12c50188fe2234b0fea510718fd1f463dcfb5aab1f3d5
-DIST fakeredis-2.36.1.tar.gz.provenance 9944 BLAKE2B f20fb9ad9027e4fd3fae7b37bd9cfaf0112b01c6ac1218506bee74e6aa7f8683d73740e00bd46bba54d0d0b48c266967ec93bf1533c588fe3753afe20c6895f0 SHA512 d2f129e81474f472b5a5437245a176840c935fc4d28e80f90510290c48acd02bbdbcc44a29793b8342a40fead5ba3906542ff6c0837807f5acb7b3d450bca724
DIST fakeredis-2.36.2.tar.gz 213336 BLAKE2B 23c6333b945ff35d482c9b04b81e067106f01492e16336f0cb40406f20bb664d66325f2ee2d1db95e2d7157127c12fbb21d18ffcb4c42da4aba1ef0cbbafc67b SHA512 1ed183da851bd0285877fe70f17a47272637230257878ca8d2fd242066311e14112d83eb5da1ec9d30f2e740b80967065abf5eb63efd5378c685355f8757a6f1
DIST fakeredis-2.36.2.tar.gz.provenance 10085 BLAKE2B 15ceb7fb92e07a882c3b313d62b39bb30032bc4f951b84903cd969d4905fc987fb3267f0ef0d1a7913b72a10cb4d3f091d15a20f4bc04da0809724247bb447e3 SHA512 b03494bd124e64dd11da4256a8d994a9fb4fe779b3fce08f242c49a7518261623495300a97cb6a0fbead6380c00bd27b709599485051359969b01eacffe6588c
diff --git a/dev-python/fakeredis/fakeredis-2.36.0.ebuild b/dev-python/fakeredis/fakeredis-2.36.0.ebuild
deleted file mode 100644
index fb7bcba71de0..000000000000
--- a/dev-python/fakeredis/fakeredis-2.36.0.ebuild
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 2020-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/cunla/fakeredis-py
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Fake implementation of redis API for testing purposes"
-HOMEPAGE="
- https://github.com/cunla/fakeredis-py/
- https://pypi.org/project/fakeredis/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/redis-4.3[${PYTHON_USEDEP}]
- >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-db/redis
- dev-db/valkey
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/valkey[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not install duplicate license
- sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die
-}
-
-wait_for_status() {
- local expected=${1}
-
- local i
- for i in {1..50}; do
- "${server}-cli" -p "${redis_port}" ping
- [[ ${?} -eq ${expected} ]] && return
- sleep 0.2
- done
-
- die "Timeout while waiting for ${1}-server to start/stop"
-}
-
-src_test() {
- local server
- for server in redis valkey ; do
- local redis_pid="${T}/${server}.pid"
- local redis_port=6390
- local redis_log="${T}/${server}.log"
- local redis_db="${T}/${server}.db"
-
- einfo "Spawning ${server}"
- einfo "NOTE: Port ${redis_port} must be free"
- "${EPREFIX}/usr/sbin/${server}-server" - <<- EOF || die "Unable to start ${server} server"
- daemonize yes
- pidfile ${redis_pid}
- port ${redis_port}
- logfile ${redis_log}
- dir ${redis_db%/*}
- dbfilename ${redis_db##*/}
- bind 127.0.0.1
- EOF
-
- # wait for the server to start
- wait_for_status 0
-
- distutils-r1_src_test
-
- "${server}-cli" -p "${redis_port}" shutdown || die "Unable to stop ${server} server"
-
- # wait for the server to stop
- wait_for_status 1
- done
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # json ext
- test/test_json/test_json.py
- test/test_json/test_json_arr_commands.py
- # TODO
- "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[Strict3]"
- "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict2]"
- "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict3]"
- )
-
- local EPYTEST_IGNORE=(
- # these tests fail a lot...
- test/test_hypothesis
- test/test_hypothesis_joint.py
- )
-
- case ${server} in
- redis)
- EPYTEST_DESELECT+=(
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict2]"
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict3]"
-
- "test/test_async/test_redis_only.py::test_async_lock[fake_resp2]"
- "test/test_async/test_redis_only.py::test_async_lock[fake_resp3]"
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict2]"
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict3]"
- )
-
- # run fake tests only once
- epytest -m "not real"
- ;;
- esac
-
- # we can run "fake" tests in parallel, but "real" seem to share
- # the same connection
- EPYTEST_XDIST= epytest -m "real"
-}
diff --git a/dev-python/fakeredis/fakeredis-2.36.1.ebuild b/dev-python/fakeredis/fakeredis-2.36.1.ebuild
deleted file mode 100644
index ec98dd5020bf..000000000000
--- a/dev-python/fakeredis/fakeredis-2.36.1.ebuild
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 2020-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/cunla/fakeredis-py
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Fake implementation of redis API for testing purposes"
-HOMEPAGE="
- https://github.com/cunla/fakeredis-py/
- https://pypi.org/project/fakeredis/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/redis-4.3[${PYTHON_USEDEP}]
- >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-db/redis
- dev-db/valkey
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/valkey[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not install duplicate license
- sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die
-}
-
-wait_for_status() {
- local expected=${1}
-
- local i
- for i in {1..50}; do
- "${server}-cli" -p "${redis_port}" ping
- [[ ${?} -eq ${expected} ]] && return
- sleep 0.2
- done
-
- die "Timeout while waiting for ${1}-server to start/stop"
-}
-
-src_test() {
- local server
- server=fake
- einfo "Running ${server} server tests"
- distutils-r1_src_test
-
- for server in redis valkey; do
- local redis_pid="${T}/${server}.pid"
- local redis_port=6390
- local redis_log="${T}/${server}.log"
- local redis_db="${T}/${server}.db"
-
- einfo "Running ${server} server tests"
- "${EPREFIX}/usr/sbin/${server}-server" - <<- EOF || die "Unable to start ${server} server"
- daemonize yes
- pidfile ${redis_pid}
- port ${redis_port}
- logfile ${redis_log}
- dir ${redis_db%/*}
- dbfilename ${redis_db##*/}
- bind 127.0.0.1
- EOF
-
- # wait for the server to start
- wait_for_status 0
-
- distutils-r1_src_test
-
- "${server}-cli" -p "${redis_port}" shutdown || die "Unable to stop ${server} server"
-
- # wait for the server to stop
- wait_for_status 1
- done
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # json ext
- test/test_json/test_json.py
- test/test_json/test_json_arr_commands.py
- # TODO
- "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[Strict3]"
- "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict2]"
- "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict3]"
- )
-
- local EPYTEST_IGNORE=(
- # these tests fail a lot...
- test/test_hypothesis
- test/test_hypothesis_joint.py
- )
-
- case ${server} in
- fake)
- EPYTEST_DESELECT=(
- # TODO
- test/test_tcp_server/test_connectivity.py::test_bulk_string_length
- )
-
- # every test starts its own server
- EPYTEST_XDIST= epytest -m "tcp_server"
- return
- ;;
- redis)
- EPYTEST_DESELECT+=(
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict2]"
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict3]"
-
- "test/test_async/test_redis_only.py::test_async_lock[fake_resp2]"
- "test/test_async/test_redis_only.py::test_async_lock[fake_resp3]"
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict2]"
- "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict3]"
- )
-
- # run fake tests only once
- epytest -m "not real and not tcp_server"
- ;;
- esac
-
- # we can run "fake" tests in parallel, but "real" seem to share
- # the same connection
- EPYTEST_XDIST= epytest -m "real"
-}
diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest
index e12c33e24245..99b72d5c4529 100644
--- a/dev-python/filelock/Manifest
+++ b/dev-python/filelock/Manifest
@@ -1,7 +1,3 @@
-DIST filelock-3.28.0.tar.gz 56474 BLAKE2B 174c287a64470c85f203bbb435696275d7bc82ab4a76157a8c7278ef4d5554094ff28ab971f3145022a4031c4d123c8b09b103c4a12699eefa1152ab3ef7a36f SHA512 5729570f86816cb95e0cdca1c0ae830d6fa21b966429348493df7173e091fdb19144336fed762bfb5b950f4b9a056ad1b4891864ab55efd9f2d6475be2216c6f
-DIST filelock-3.28.0.tar.gz.provenance 9570 BLAKE2B ffefd7f319adeb400f09576fd7f5454a8d4064c98e94148669a32bc21a37c013218f8dbdbaac7ef93c6490a3ad68e7cb42b39699b49d56bd045fbac963afa043 SHA512 6b3874946d34d64a433efcf56c8bf7c362ea6692965e3277d1e7e542b8f6c3853708ea3f2d33d20f274c395498a76642cab7a887c0750aff9f7a284c49cd3a10
-DIST filelock-3.29.0.tar.gz 57571 BLAKE2B d253183ce329cffd2242670fd77f3b4e629bf01b9c306f952bb559bb444929dd4a324d577894855e191c9193e41f743c19376a0a810d2d2b3970ab47bb8a6b43 SHA512 81957a44e2c64d05db5e95bfbba264733b710859aa41d62106d1f6348a2d9af491c6661801797d1a29e28f6a16df34c424b31669efe73b9e7c45123cebb2cdf5
-DIST filelock-3.29.0.tar.gz.provenance 9288 BLAKE2B f4ee6047fc7532a609bc6ee634d77c1eea96c8881e0d793e29aa4b97edac884d0c265b874fb31b2aaa54be1a184bb2b24ed986d0cbe46795379d4438475e5708 SHA512 3b44c5b625211cf8f6d31655a6f4592138b63cb1a27948685bb3b2902c3ce59caf5d23f2dcf367b24c20184214586a1e3f9e3f1d9f9e4d7df7258eb9f95b3417
DIST filelock-3.29.1.tar.gz 59335 BLAKE2B 69fee586a49b80e69c159c1737c8ab4d63fcfbc7fe9ef5c591336b3dd901e8fb4b2e6f87e6fb29e67fdb392e86413dbe820100389fb9067cc4bc7f0bb5af75d9 SHA512 ae11921d0b3df0e0501a47fad9d4da2bf1ce7c93b69b2bb52e6896a74464cd14197246a8dc20754a7aec881539499a230afab4125214e4bc44eeb4037d043161
DIST filelock-3.29.1.tar.gz.provenance 9943 BLAKE2B 33a80d142c0ff469a61f8497a1cfb1e30e504ebdef7667f94209314569edecb5c9ca97acbea3fd08350e37931628987925c8d901b790e2e1d9b0074bdef7c326 SHA512 0b84a5aca134d6479605353132076e1137353cf1dbd5db93f3f2ea8de079afe93f8556a99bcda7e07c5def3db186edfca8ae603e096c722ebd5d236f76baf2a3
DIST filelock-3.29.3.tar.gz 61956 BLAKE2B 0ed0cbbe5369aab9ea1df4e17e43259951f082657e2f98605fc97f9a11db043f0718670cc7eedfa029914c08e0359d6e78d8e5597c36f995e79c876243c9e252 SHA512 ebf7fce93c269085d9c7190b47aeab76e7e28a00d0d32125f5e923435c180587d4bd1b84c543005b023561ee1a38bb5eaa1d9b4ba5f9ce52db92adcd25fb9488
diff --git a/dev-python/filelock/filelock-3.28.0.ebuild b/dev-python/filelock/filelock-3.28.0.ebuild
deleted file mode 100644
index 0c8f0c0c6c99..000000000000
--- a/dev-python/filelock/filelock-3.28.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2018-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A platform independent file lock for Python"
-HOMEPAGE="
- https://github.com/tox-dev/filelock/
- https://pypi.org/project/filelock/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- dev-python/virtualenv[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
diff --git a/dev-python/filelock/filelock-3.29.0.ebuild b/dev-python/filelock/filelock-3.29.0.ebuild
deleted file mode 100644
index 0c8f0c0c6c99..000000000000
--- a/dev-python/filelock/filelock-3.29.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2018-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A platform independent file lock for Python"
-HOMEPAGE="
- https://github.com/tox-dev/filelock/
- https://pypi.org/project/filelock/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- dev-python/virtualenv[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
diff --git a/dev-python/filelock/filelock-3.29.1.ebuild b/dev-python/filelock/filelock-3.29.1.ebuild
index 1f38026c0588..0c8f0c0c6c99 100644
--- a/dev-python/filelock/filelock-3.29.1.ebuild
+++ b/dev-python/filelock/filelock-3.29.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/google-api-core/Manifest b/dev-python/google-api-core/Manifest
index cd3ad8f9740d..9e8518642ec6 100644
--- a/dev-python/google-api-core/Manifest
+++ b/dev-python/google-api-core/Manifest
@@ -1,4 +1,2 @@
-DIST google_api_core-2.30.3.tar.gz 177001 BLAKE2B f92aaca90dbb81ba324310cbea02bc7b9548c46b04c4fd73f94a4a068d28f4faa1593f4494b907c1f48d215c0ace16cf6b8050e4a1096ef7a25584b5f8e9ddb6 SHA512 bf05923a2321ac3c6e61ac1a6f64b063d8bdf2e31ed1f06c9e60defe45b1f8a5297cd40e9e14e0e772a6504f114c6dfd48e72301c493f672c8e903d49a6db00f
-DIST google_api_core-2.30.3.tar.gz.provenance 5822 BLAKE2B fcfb17036eb98d36c8adc812d20a51f5755b496f1b4b8198e2e102482a7ec2ccb907aeeaa53893a7cd5b5edd9117e530239f69614ec5adc8c78a52c351941837 SHA512 fb161a1593e6b7e63bcbf022a27a9a660d3b12817d95f81c9e5642497a2b3d22cc0836efc63b7a316a4a6451d980111bcf3bea06cc45432b0ca0449da3dafbf8
DIST google_api_core-2.31.0.tar.gz 176492 BLAKE2B d7a43dffcfe90b1d73f2697b694d38b72d0fd925c70ee489c2c0b2a136795e74a47dd83a75a679a073d044d07b8c0320b3a69dcac7fcf41358cba777f81d3565 SHA512 3ad498a4639901e0580fe06f5da27d13a46e2843189f15acb6332144fb8fff15a0e97d6d506a64725517241235543d94f12e0e797b3ca3948986c7e060379d09
DIST google_api_core-2.31.0.tar.gz.provenance 5919 BLAKE2B 82a16489c1b3aa9eff1187a1bace2ecfe9e51891d672ce1d0b219d086f172f5fc0c0e51ea3be925496cbf6c6f400bab0e9b9d4063d7ee653c19eed43d8e8d20c SHA512 3ce46850b8b137d97b20a0c91eeac907e4f9ea6dd610cda7e19e3fbdd184146e401d1d4fca6146a21855dc9276cc7af3d9734e9947aef534d3e761a0ce47ce73
diff --git a/dev-python/google-api-core/google-api-core-2.30.3.ebuild b/dev-python/google-api-core/google-api-core-2.30.3.ebuild
deleted file mode 100644
index ed6df63f7dd6..000000000000
--- a/dev-python/google-api-core/google-api-core-2.30.3.ebuild
+++ /dev/null
@@ -1,55 +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="Core Library for Google Client Libraries"
-HOMEPAGE="
- https://github.com/googleapis/google-cloud-python/
- https://pypi.org/project/google-api-core/
- https://googleapis.dev/python/google-api-core/latest/index.html
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-IUSE="grpc"
-
-RDEPEND="
- >=dev-python/googleapis-common-protos-1.63.2[${PYTHON_USEDEP}]
- >=dev-python/google-auth-1.25.0[${PYTHON_USEDEP}]
- >=dev-python/proto-plus-1.25.0[${PYTHON_USEDEP}]
- >=dev-python/protobuf-4.25.8[${PYTHON_USEDEP}]
- >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
- <dev-python/requests-3[${PYTHON_USEDEP}]
- grpc? (
- >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
- >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
- )
-"
-BDEPEND="
- test? (
- >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
- >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
- dev-python/rsa[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=(
- # The grpc_gcp module is missing to perform a stress test
- tests/unit/test_grpc_helpers.py
-)
-
-python_test() {
- rm -rf google || die
- epytest tests
-}
diff --git a/dev-python/google-api-core/google-api-core-2.31.0.ebuild b/dev-python/google-api-core/google-api-core-2.31.0.ebuild
index 70d0fcde31d3..2028fc5f54ce 100644
--- a/dev-python/google-api-core/google-api-core-2.31.0.ebuild
+++ b/dev-python/google-api-core/google-api-core-2.31.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-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 3c8bdbb3b38d..086e374103c4 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,5 +1,3 @@
-DIST google_api_python_client-2.196.0.tar.gz 14628129 BLAKE2B 009ce49622479b8c2945e2bd5e21db352d48a3ad19634f8683fe2d43f377f9e2e083326da58f930ebf7a528084418e88fc539cd455309e7f44ab35eb8105e477 SHA512 aed489e9fd8c21d78f2b28b11e79cc6b0eae91f36e26e7b7a3ff0b751a753ab6ed2e12252043aa439a2e488d1d354e985e60588588712ac2fda09588ffe60367
-DIST google_api_python_client-2.196.0.tar.gz.provenance 5646 BLAKE2B ef634fe2f2b7319f85e43288c537d7f40f5c3f25d32a2c65f793eea41cd91466e750ff4f77bdc86c1b10b0b15555fceceb61de74240ae2ad49bba7ab80596f98 SHA512 e7411c26e2d2f31b957e0443bf2ccd73a6615c421ea7ecde8c215cc1d12287772c5c8c0b12abab90ecd790486b0fec90675d19d4765d7fc56fb5580e5cf708b0
DIST google_api_python_client-2.197.0.tar.gz 14707398 BLAKE2B e0eaf69bbf4ca9d16140fb7934d9c508c0a47b768a4499060a3a7a1760534d07ea3a4c899a24f3f36ac2ffaf58ea57397a43f65209f5fb3f97a463f6a49a8e8c SHA512 d6d81bcd8ceb5374bc05efc42e4a1a992e9ccd7558a7cdd35e41b5fc80938cb4d5394950d464630d858297f4637223ceae40f78e1d979328d1f8619e92f396c3
DIST google_api_python_client-2.197.0.tar.gz.provenance 6025 BLAKE2B 239668d4bd09fdd19cca73102d587e6f3a3e79f782643c429328a4b331d8787f15b497f955b29781d122c934844c33a0223cd313df159a5117dd34ab17eaf8bf SHA512 c2b66ff7523b9047b2c387fb005c17936b4c0e683f62940ef4150461e5ac6379d2fee3a6d3f78e1e50567a493ee31229ccd4f33eef97fb186ef90507318e1759
DIST google_api_python_client-2.198.0.tar.gz 15060142 BLAKE2B 07d58c36776971c6a6af2fef7da81744b1358a72ef774f0353c296da76059aff3fe48a4f3a5abc1f7517902ee873d6917396776abc0852801b32d9a119409577 SHA512 ffaef84d039d8e2b57e29d599a133c6dfe5d5bc3450a2d940c8a4381f4ca22fb7e6625e9b8521be981f58a59cd1302b714a1df6eea40a49e5f830c01f7f684a9
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.196.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.196.0.ebuild
deleted file mode 100644
index c4890dfc16d7..000000000000
--- a/dev-python/google-api-python-client/google-api-python-client-2.196.0.ebuild
+++ /dev/null
@@ -1,52 +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=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Google API Client for Python"
-HOMEPAGE="
- https://github.com/googleapis/google-api-python-client/
- https://pypi.org/project/google-api-python-client/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-RDEPEND="
- >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
- <dev-python/httplib2-1[${PYTHON_USEDEP}]
- >=dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
- >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
- >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
- <dev-python/uritemplate-5[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
- dev-python/parameterized[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # require Internet access (and credentials)
- tests/test_discovery.py::DiscoveryErrors::test_credentials_and_credentials_file_mutually_exclusive
- tests/test_discovery.py::DiscoveryFromDocument::test_api_endpoint_override_from_client_options_mapping_object
- tests/test_discovery.py::Universe::test_client_options_universe_configured_with_mtls
- tests/test_discovery.py::Universe::test_universe_env_var_configured_with_mtls
- )
-
- epytest tests
-}
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.197.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.197.0.ebuild
index 3512667538c8..c4890dfc16d7 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.197.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.197.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
diff --git a/dev-python/gst-python/gst-python-1.26.11.ebuild b/dev-python/gst-python/gst-python-1.26.11.ebuild
index 01ca2bc3e5bc..9637be0c4565 100644
--- a/dev-python/gst-python/gst-python-1.26.11.ebuild
+++ b/dev-python/gst-python/gst-python-1.26.11.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="LGPL-2+"
SLOT="1.0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~sparc ~x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index cf5dd7db91d8..5037323ad28d 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1,3 +1 @@
-DIST hatch-hatchling-v1.29.0.gh.tar.gz 5301488 BLAKE2B d1e36649483f213c56488caf018ad3a3310fafa944e11484ae613021e081999a80321d353c68cfb64bc149558e2c996b788f7b11a228d2f658175165d515bdcd SHA512 321f9ab996dcab54341653e2abf5bdb893c4ac307c62aa9f0dd222609a18f82cd502fb0d0ac598f109d519a0dc8ab40866a37d1ea4023d7d58fe442da7c32ff9
-DIST hatch-hatchling-v1.30.0.gh.tar.gz 5333904 BLAKE2B a3a728ad442a87e9b1461a4c5cfed5a870be935316fd3e1ed9ed4c86494245fd0c9d4309838b48e49ac37cc147cda32518fc2860e78109cc3bbc4a968ee53d57 SHA512 4b0baa12baac528663abb634397aa0a91b6df80937e8f12edffd50f93d3e37b5166bd97ab05d4b1838145daabff74ac3aaf18ec389cf37213796f6a7438c2c3b
DIST hatch-hatchling-v1.30.1.gh.tar.gz 5333904 BLAKE2B d5f1c478f2bc214400a50f079d695ef3795a92b0633307799bec34f031cffa4c36b0269a3f142323c61b5ddcf4b1918d4e9f32283eaacff7615e3330fe864be6 SHA512 dfb57a076ec683d82228a453c2485153defd0b1d2f31a43041ae0b7ddd428b931ab1288b0b23393df80f5630bd09c78faa2852b28649af0db2e7f55bd915b942
diff --git a/dev-python/hatchling/hatchling-1.29.0.ebuild b/dev-python/hatchling/hatchling-1.29.0.ebuild
deleted file mode 100644
index ece352fb363d..000000000000
--- a/dev-python/hatchling/hatchling-1.29.0.ebuild
+++ /dev/null
@@ -1,98 +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_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-TAG=${P/-/-v}
-MY_P=hatch-${TAG}
-DESCRIPTION="Modern, extensible Python build backend"
-HOMEPAGE="
- https://pypi.org/project/hatchling/
- https://github.com/pypa/hatch/
-"
-SRC_URI="
- https://github.com/pypa/hatch/archive/${TAG}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}/backend
-
-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"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# deps are listed in backend/src/hatchling/ouroboros.py
-# editables are optional but required for editable installs
-RDEPEND="
- >=dev-python/editables-0.3[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
- >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}]
- >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
- dev-python/trove-classifiers[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- $(python_gen_cond_dep '
- dev-python/atomicwrites[${PYTHON_USEDEP}]
- dev-python/click[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/platformdirs[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- dev-python/tomli-w[${PYTHON_USEDEP}]
- dev-python/virtualenv[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-src_test() {
- # top-level "tests" directory contains tests both for hatch
- # and hatchling
- cd "${WORKDIR}/${MY_P}" || die
-
- # sigh; standalone test suites are overrated, right?
- echo "__version__ = '${PV}'" > src/hatch/_version.py || die
- local -x PYTHONPATH="src:${PYTHONPATH}"
-
- # do not require uv for portability, sigh
- mkdir "${T}/bin" || die
- cat > "${T}/bin/uv" <<-EOF || die
- #!/bin/sh
- exit 127
- EOF
- chmod +x "${T}/bin/uv" || die
- local -x PATH=${T}/bin:${PATH}
-
- # tests mock cargo subprocess call but the backend raises if CARGO
- # is not set and shutil.which() can't find it
- local -x CARGO=cargo
-
- distutils-r1_src_test
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return
- fi
-
- local -x EPYTEST_DESELECT=(
- # most of these run uv to install stuff
- # the few remaining tests aren't worth running
- tests/backend/dep/test_core.py
- # broken if CARGO is set
- tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo
- )
-
- local EPYTEST_PLUGINS=( pytest-mock )
- epytest tests/backend
-}
diff --git a/dev-python/hatchling/hatchling-1.30.0.ebuild b/dev-python/hatchling/hatchling-1.30.0.ebuild
deleted file mode 100644
index aa6301452aad..000000000000
--- a/dev-python/hatchling/hatchling-1.30.0.ebuild
+++ /dev/null
@@ -1,98 +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_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-TAG=${P/-/-v}
-MY_P=hatch-${TAG}
-DESCRIPTION="Modern, extensible Python build backend"
-HOMEPAGE="
- https://pypi.org/project/hatchling/
- https://github.com/pypa/hatch/
-"
-SRC_URI="
- https://github.com/pypa/hatch/archive/${TAG}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}/backend
-
-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"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# deps are listed in backend/src/hatchling/ouroboros.py
-# editables are optional but required for editable installs
-RDEPEND="
- >=dev-python/editables-0.3[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
- >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}]
- >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
- dev-python/trove-classifiers[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- $(python_gen_cond_dep '
- dev-python/atomicwrites[${PYTHON_USEDEP}]
- dev-python/click[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/platformdirs[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- dev-python/tomli-w[${PYTHON_USEDEP}]
- dev-python/virtualenv[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-src_test() {
- # top-level "tests" directory contains tests both for hatch
- # and hatchling
- cd "${WORKDIR}/${MY_P}" || die
-
- # sigh; standalone test suites are overrated, right?
- echo "__version__ = '${PV}'" > src/hatch/_version.py || die
- local -x PYTHONPATH="src:${PYTHONPATH}"
-
- # do not require uv for portability, sigh
- mkdir "${T}/bin" || die
- cat > "${T}/bin/uv" <<-EOF || die
- #!/bin/sh
- exit 127
- EOF
- chmod +x "${T}/bin/uv" || die
- local -x PATH=${T}/bin:${PATH}
-
- # tests mock cargo subprocess call but the backend raises if CARGO
- # is not set and shutil.which() can't find it
- local -x CARGO=cargo
-
- distutils-r1_src_test
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return
- fi
-
- local -x EPYTEST_DESELECT=(
- # most of these run uv to install stuff
- # the few remaining tests aren't worth running
- tests/backend/dep/test_core.py
- # broken if CARGO is set
- tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo
- )
-
- local EPYTEST_PLUGINS=( pytest-mock )
- epytest tests/backend
-}
diff --git a/dev-python/hatchling/hatchling-1.30.1.ebuild b/dev-python/hatchling/hatchling-1.30.1.ebuild
index aa6301452aad..ece352fb363d 100644
--- a/dev-python/hatchling/hatchling-1.30.1.ebuild
+++ b/dev-python/hatchling/hatchling-1.30.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}/backend
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~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/hiredis/Manifest b/dev-python/hiredis/Manifest
index aa8b650c356f..4a68b0f43559 100644
--- a/dev-python/hiredis/Manifest
+++ b/dev-python/hiredis/Manifest
@@ -1,2 +1 @@
-DIST hiredis-py-3.3.1.gh.tar.gz 20064 BLAKE2B 9b49159291e21f00561a75e89c443fd879e6cc74a215d68768a54e9ca18e5e60057e236ea1dc40d09efb0cbf1fb38440f323ae1156b0213cb6cf351c72e23016 SHA512 02160cb5200f9741b81e9871944adc106f7fe61fdd749dde948ce9881a15b81bebc5e21047c60ad9bc164ee994fc517015b47282930c195b7c051c15d5b97fcf
DIST hiredis-py-3.4.0.gh.tar.gz 20142 BLAKE2B 2f008475f266c965ef3b9918cefe7071f140cf4aa7d2f55194f5339a4d59b31d0d9359229f8c91f8ca5e629b8ee02d9c4821651aa77c1027d8405bc7b764def7 SHA512 9c8161b72187eaf64593cd73a855daa6f9bb94ed7b34cded353a0541b9870c2d1ef914f6d575d771432767f9bd6d40c243179f54f674cb2065bb05d206203f6d
diff --git a/dev-python/hiredis/hiredis-3.3.1.ebuild b/dev-python/hiredis/hiredis-3.3.1.ebuild
deleted file mode 100644
index 2914187cba29..000000000000
--- a/dev-python/hiredis/hiredis-3.3.1.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-MY_P=hiredis-py-${PV}
-DESCRIPTION="Python extension that wraps hiredis"
-HOMEPAGE="
- https://github.com/redis/hiredis-py/
- https://pypi.org/project/hiredis/
-"
-SRC_URI="
- https://github.com/redis/hiredis-py/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv ~sparc x86"
-
-DEPEND="
- >=dev-libs/hiredis-1.0.0:=
-"
-RDEPEND="
- ${DEPEND}
-"
-
-PATCHES=(
- "${FILESDIR}"/hiredis-2.4.0-system-libs.patch
-)
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- rm -rf hiredis || die
- epytest
-}
diff --git a/dev-python/hiredis/hiredis-3.4.0.ebuild b/dev-python/hiredis/hiredis-3.4.0.ebuild
index 9da6a8046e12..2914187cba29 100644
--- a/dev-python/hiredis/hiredis-3.4.0.ebuild
+++ b/dev-python/hiredis/hiredis-3.4.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv ~sparc x86"
DEPEND="
>=dev-libs/hiredis-1.0.0:=
diff --git a/dev-python/html5-parser/html5-parser-0.4.12.ebuild b/dev-python/html5-parser/html5-parser-0.4.12.ebuild
index cf36a7c981db..6d8899baaa7b 100644
--- a/dev-python/html5-parser/html5-parser-0.4.12.ebuild
+++ b/dev-python/html5-parser/html5-parser-0.4.12.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/httpbin/httpbin-0.10.4.ebuild b/dev-python/httpbin/httpbin-0.10.4-r1.ebuild
index f65331e4f581..be4acac3e768 100644
--- a/dev-python/httpbin/httpbin-0.10.4.ebuild
+++ b/dev-python/httpbin/httpbin-0.10.4-r1.ebuild
@@ -40,6 +40,12 @@ BDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e '/greenlet/d' pyproject.toml || die
+}
+
pkg_postinst() {
optfeature "Fancy index" dev-python/flasgger
}
diff --git a/dev-python/httpcore/httpcore-1.0.9-r1.ebuild b/dev-python/httpcore/httpcore-1.0.9-r1.ebuild
index 88425338dfbd..36f93c24a5eb 100644
--- a/dev-python/httpcore/httpcore-1.0.9-r1.ebuild
+++ b/dev-python/httpcore/httpcore-1.0.9-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -33,37 +33,15 @@ RDEPEND="
BDEPEND="
dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-httpbin[${PYTHON_USEDEP}]
dev-python/socksio[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
dev-python/trustme[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/pytest-trio[${PYTHON_USEDEP}]
- dev-python/trio[${PYTHON_USEDEP}]
- ' 3.{11..13})
)
"
+EPYTEST_PLUGINS=( anyio pytest-{asyncio,httpbin,trio} )
distutils_enable_tests pytest
-python_test() {
- local opts=()
- local EPYTEST_IGNORE=()
-
- if ! has_version "dev-python/trio[${PYTHON_USEDEP}]"; then
- opts+=( -k "not trio" )
- EPYTEST_IGNORE+=(
- tests/_async/test_connection_pool.py
- )
- fi
-
- if ! has_version "dev-python/pytest-trio[${PYTHON_USEDEP}]"; then
- opts+=( -m "not trio" -o addopts= )
- fi
-
- epytest "${opts[@]}"
-}
-
pkg_postinst() {
optfeature "SOCKS support" dev-python/socksio
}
diff --git a/dev-python/httptools/Manifest b/dev-python/httptools/Manifest
index 1a1afa496705..761e3d228dcb 100644
--- a/dev-python/httptools/Manifest
+++ b/dev-python/httptools/Manifest
@@ -1,2 +1 @@
-DIST httptools-0.6.4.gh.tar.gz 15756 BLAKE2B 1f128fb566d677f783798236a12fc1729f819fb4e4cd52f43c4879ac6cff8a5c69fb147fef1dadda89e47b560652b15e7ab07e3e5b00f1e8a6ee23afe2efb879 SHA512 3a2518204b22ce00c1fa3f2387138f768511ff03a2a2ddf0b9c44a4d5de65c93bfd8d3ac9f4e9417805c7c9708a8cb39ec4889e08933fdc029607bcae5b54331
DIST httptools-0.8.0.gh.tar.gz 16922 BLAKE2B 3d352ac18005d5d0cfd657dc608cf59d84f6143f858e70b56a29b7c173720135cf0b419b228da00fc83341479329e243bb0263230f3bc576d3d67faf9b515a3e SHA512 32556fc4ba282d91bf71323ff27aba1b5dae54838101780c5e35b80f26d3922cc9b944ecdf74c9792a3830d56fa67d91a3e47223f5f45bcd018567092a5f9687
diff --git a/dev-python/httptools/httptools-0.6.4.ebuild b/dev-python/httptools/httptools-0.6.4.ebuild
deleted file mode 100644
index 5248540880f8..000000000000
--- a/dev-python/httptools/httptools-0.6.4.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 2024-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="A collection of framework independent HTTP protocol utils"
-HOMEPAGE="
- https://github.com/MagicStack/httptools/
- https://pypi.org/project/httptools/
-"
-# sdist is missing cython source files, as of 0.6.2
-SRC_URI="
- https://github.com/MagicStack/httptools/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# don't ask me why they use both
-DEPEND="
- net-libs/http-parser:=
- net-libs/llhttp:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
-
-src_configure() {
- cat > setup.cfg <<-EOF || die
- [build_ext]
- use_system_llhttp = true
- use_system_http_parser = true
- cython_always = true
- EOF
-}
-
-python_test() {
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # error message mismatches
- # https://github.com/MagicStack/httptools/issues/16#issuecomment-1114181747
- tests/test_parser.py::TestResponseParser::test_parser_response_2
- tests/test_parser.py::TestRequestParser::test_parser_request_4
- tests/test_parser.py::TestUrlParser::test_parser_url_10
- )
- ;;
- esac
-
- rm -rf httptools || die
- epytest tests
-}
diff --git a/dev-python/httptools/httptools-0.8.0.ebuild b/dev-python/httptools/httptools-0.8.0.ebuild
index b6f5ee14ca3f..6e9874603326 100644
--- a/dev-python/httptools/httptools-0.8.0.ebuild
+++ b/dev-python/httptools/httptools-0.8.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# don't ask me why they use both
DEPEND="
diff --git a/dev-python/httpx/httpx-0.28.1-r1.ebuild b/dev-python/httpx/httpx-0.28.1-r1.ebuild
index d6fb6cac33f7..2783e8df225f 100644
--- a/dev-python/httpx/httpx-0.28.1-r1.ebuild
+++ b/dev-python/httpx/httpx-0.28.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -45,21 +45,19 @@ BDEPEND="
dev-python/cryptography[${PYTHON_USEDEP}]
dev-python/h2[${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/zstandard-0.18.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/trio[${PYTHON_USEDEP}]
- ' 3.{11..13})
)
"
+EPYTEST_PLUGINS=( anyio )
distutils_enable_tests pytest
src_prepare() {
local PATCHES=(
- "${FILESDIR}/${PN}-0.27.0-opt-trio.patch"
# fix test failures when httptools are installed
# https://github.com/encode/httpx/discussions/3429
# https://gitlab.archlinux.org/archlinux/packaging/packages/python-httpx/-/blob/main/uvicorn-test-server-use-h11.diff
@@ -75,23 +73,24 @@ src_prepare() {
}
python_test() {
- local args=()
local EPYTEST_DESELECT=(
# Internet
tests/client/test_proxies.py::test_async_proxy_close
tests/client/test_proxies.py::test_sync_proxy_close
+
+ # random regressions
+ tests/client/test_client.py::test_client_decode_text_using_autodetect
+ tests/client/test_client.py::test_client_decode_text_using_explicit_encoding
+ tests/models/test_responses.py::test_response_decode_text_using_autodetect
+ tests/test_utils.py::test_logging_request
+ tests/test_utils.py::test_logging_redirect_chain
)
use cli || EPYTEST_IGNORE+=(
tests/test_main.py
)
- if ! has_version "dev-python/trio[${PYTHON_USEDEP}]"; then
- args+=( -o filterwarnings= -k "not trio" )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p anyio "${args[@]}"
+ epytest
}
pkg_postinst() {
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 0c1141d1ea05..3ea28170da15 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,7 +1,4 @@
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
-DIST hypothesis-6.152.11.gh.tar.gz 9614710 BLAKE2B 4d020765eef6d0faf19d5a61639e7c664090477a78104a1dbdeab9879bcc3c77beb018ee2902d3be8c4edb42baf2fe29ee3cc512d8217fc6b5bf8f557979cea9 SHA512 e0d8e8bf2bd9065706b73b0f0d89990f73635ef3b7e886cc1b6b1a4aefcb9ea6f90ae7db515173da39b21930126b3c044a49a63a09b716e1d26b0fad78ef9c32
-DIST hypothesis-6.152.9.gh.tar.gz 9612140 BLAKE2B b4d2009d46eb28751446963edc51a653d05c5a39a28e76aa120a2ca00fd7d6c0f07c42f1026a16e0b4dc75742a66a191a8f5aa67249ecc3a397e8123f8153058 SHA512 b1f2301b7ced669dd4d53ee37173a48e8a937241138900c9dd17e70c1e4c8357215679c9ebb6e8a96c0d2fbe5e8e43aa45a21da569c624111b17417d0be1d426
-DIST hypothesis-6.155.6.gh.tar.gz 9605463 BLAKE2B 7407223da122a01c4f35ddef236cef1a73ebbad41b6dd1d12b36025adf89754959a7dbe4225a1112b62c4c68884867d9ddc6af065468c3aed580e37029e2f6a0 SHA512 e09b25cbf26963ebea545ab60cd520bfff4c13dbe9e7f8b31a7ccb0bcb45038673e7f61d34c7963caca66a9566d749cfb208d0eb35d4ec4d59c43dd1945a0840
DIST hypothesis-6.155.7.gh.tar.gz 9606080 BLAKE2B aa57b12df421b8194564b85f09307add06c35b98ad923e3c1704ad5cdc5581c47e56e4bf0cf77048306395884a11b6b1b0131f94381250e2203b80c1f3fb6962 SHA512 2c4042084b918c249183b311b3037711043b3c43f685712a51b0751cbb781b065150db949f48ecf2e0ed7fcc9a530c395063252d868d893cfb36cd10af3e31f0
DIST hypothesis-6.156.1.gh.tar.gz 9610367 BLAKE2B ffffd235f9f8cadbf42b7a65e7b0abf54312836ca5ce7846dcfd27154ee045646741232529feed3d5e608614a8e05bb02faa754b50193503966f3aeac4352751 SHA512 b887084a5ceee0a5c6dac196b7aa311176314aa284566c2b14a6349e5c00207626610df590de7b02efdbbd579b4f177e30115cc3732854828dd75f419beb42eb
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
diff --git a/dev-python/hypothesis/hypothesis-6.152.11.ebuild b/dev-python/hypothesis/hypothesis-6.152.11.ebuild
deleted file mode 100644
index 28342394d688..000000000000
--- a/dev-python/hypothesis/hypothesis-6.152.11.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-CLI_COMPAT=( python3_{11..13} )
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+),sqlite"
-
-inherit distutils-r1 optfeature
-
-DESCRIPTION="A library for property based testing"
-HOMEPAGE="
- https://github.com/HypothesisWorks/hypothesis/
- https://pypi.org/project/hypothesis/
-"
-SRC_URI="
- https://github.com/HypothesisWorks/hypothesis/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S="${WORKDIR}/${P}/hypothesis"
-
-LICENSE="MPL-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="cli"
-
-RDEPEND="
- >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
- cli? (
- $(python_gen_cond_dep '
- dev-python/black[${PYTHON_USEDEP}]
- dev-python/click[${PYTHON_USEDEP}]
- ' "${CLI_COMPAT[@]}")
- )
-"
-BDEPEND="
- test? (
- >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
- dev-python/pexpect[${PYTHON_USEDEP}]
- >=dev-python/pytest-8[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
-EPYTEST_RERUNS=5
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/
- local EPYTEST_DESELECT=(
- # broken somehow (xdist?)
- 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
- )
- local EPYTEST_IGNORE=(
- # require syrupy
- tests/cover/test_custom_reprs.py
- )
-
- case ${EPYTHON} in
- python3.15*)
- EPYTEST_DESELECT+=(
- 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
- 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
- )
- ;;
- esac
-
- local -x HYPOTHESIS_NO_PLUGINS=1
- epytest -o filterwarnings= tests/{cover,pytest,quality}
-}
-
-src_install() {
- local HAD_CLI=
-
- distutils-r1_src_install
-
- if [[ ! ${HAD_CLI} ]]; then
- rm -r "${ED}/usr/bin" || die
- fi
-}
-
-python_install() {
- distutils-r1_python_install
- if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
- HAD_CLI=1
- else
- rm -r "${D}$(python_get_scriptdir)" || die
- fi
-}
-
-pkg_postinst() {
- optfeature "datetime support" dev-python/pytz
- optfeature "dateutil support" dev-python/python-dateutil
- optfeature "numpy support" dev-python/numpy
- optfeature "django support" dev-python/django dev-python/pytz
- optfeature "pandas support" dev-python/pandas
- optfeature "pytest support" dev-python/pytest
-}
diff --git a/dev-python/hypothesis/hypothesis-6.152.9.ebuild b/dev-python/hypothesis/hypothesis-6.152.9.ebuild
deleted file mode 100644
index db99d15ebaf8..000000000000
--- a/dev-python/hypothesis/hypothesis-6.152.9.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
-CLI_COMPAT=( python3_{11..13} )
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+),sqlite"
-
-inherit distutils-r1 optfeature
-
-TAG=hypothesis-python-${PV}
-MY_P=hypothesis-${TAG}
-DESCRIPTION="A library for property based testing"
-HOMEPAGE="
- https://github.com/HypothesisWorks/hypothesis/
- https://pypi.org/project/hypothesis/
-"
-SRC_URI="
- https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S="${WORKDIR}/${MY_P}/hypothesis-python"
-
-LICENSE="MPL-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="cli"
-
-RDEPEND="
- >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
- cli? (
- $(python_gen_cond_dep '
- dev-python/black[${PYTHON_USEDEP}]
- dev-python/click[${PYTHON_USEDEP}]
- ' "${CLI_COMPAT[@]}")
- )
-"
-BDEPEND="
- test? (
- >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
- dev-python/pexpect[${PYTHON_USEDEP}]
- >=dev-python/pytest-8[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
-EPYTEST_RERUNS=5
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- # NB: paths need to be relative to pytest.ini,
- # i.e. start with hypothesis-python/
- local EPYTEST_DESELECT=(
- # broken somehow (xdist?)
- 'hypothesis-python/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
- # used to fail for a few impls, now fails everywhere
- 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
- )
- local EPYTEST_IGNORE=(
- # require syrupy
- tests/cover/test_custom_reprs.py
- )
-
- case ${EPYTHON} in
- python3.15*)
- EPYTEST_DESELECT+=(
- 'hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
- 'hypothesis-python/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
- )
- ;;
- esac
-
- local -x HYPOTHESIS_NO_PLUGINS=1
- epytest -o filterwarnings= tests/{cover,pytest,quality}
-}
-
-src_install() {
- local HAD_CLI=
-
- distutils-r1_src_install
-
- if [[ ! ${HAD_CLI} ]]; then
- rm -r "${ED}/usr/bin" || die
- fi
-}
-
-python_install() {
- distutils-r1_python_install
- if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
- HAD_CLI=1
- else
- rm -r "${D}$(python_get_scriptdir)" || die
- fi
-}
-
-pkg_postinst() {
- optfeature "datetime support" dev-python/pytz
- optfeature "dateutil support" dev-python/python-dateutil
- optfeature "numpy support" dev-python/numpy
- optfeature "django support" dev-python/django dev-python/pytz
- optfeature "pandas support" dev-python/pandas
- optfeature "pytest support" dev-python/pytest
-}
diff --git a/dev-python/hypothesis/hypothesis-6.155.6.ebuild b/dev-python/hypothesis/hypothesis-6.155.6.ebuild
deleted file mode 100644
index 28342394d688..000000000000
--- a/dev-python/hypothesis/hypothesis-6.155.6.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-CLI_COMPAT=( python3_{11..13} )
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+),sqlite"
-
-inherit distutils-r1 optfeature
-
-DESCRIPTION="A library for property based testing"
-HOMEPAGE="
- https://github.com/HypothesisWorks/hypothesis/
- https://pypi.org/project/hypothesis/
-"
-SRC_URI="
- https://github.com/HypothesisWorks/hypothesis/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S="${WORKDIR}/${P}/hypothesis"
-
-LICENSE="MPL-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="cli"
-
-RDEPEND="
- >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
- cli? (
- $(python_gen_cond_dep '
- dev-python/black[${PYTHON_USEDEP}]
- dev-python/click[${PYTHON_USEDEP}]
- ' "${CLI_COMPAT[@]}")
- )
-"
-BDEPEND="
- test? (
- >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
- dev-python/pexpect[${PYTHON_USEDEP}]
- >=dev-python/pytest-8[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
-EPYTEST_RERUNS=5
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/
- local EPYTEST_DESELECT=(
- # broken somehow (xdist?)
- 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
- )
- local EPYTEST_IGNORE=(
- # require syrupy
- tests/cover/test_custom_reprs.py
- )
-
- case ${EPYTHON} in
- python3.15*)
- EPYTEST_DESELECT+=(
- 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
- 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
- )
- ;;
- esac
-
- local -x HYPOTHESIS_NO_PLUGINS=1
- epytest -o filterwarnings= tests/{cover,pytest,quality}
-}
-
-src_install() {
- local HAD_CLI=
-
- distutils-r1_src_install
-
- if [[ ! ${HAD_CLI} ]]; then
- rm -r "${ED}/usr/bin" || die
- fi
-}
-
-python_install() {
- distutils-r1_python_install
- if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
- HAD_CLI=1
- else
- rm -r "${D}$(python_get_scriptdir)" || die
- fi
-}
-
-pkg_postinst() {
- optfeature "datetime support" dev-python/pytz
- optfeature "dateutil support" dev-python/python-dateutil
- optfeature "numpy support" dev-python/numpy
- optfeature "django support" dev-python/django dev-python/pytz
- optfeature "pandas support" dev-python/pandas
- optfeature "pytest support" dev-python/pytest
-}
diff --git a/dev-python/hypothesis/hypothesis-6.155.7.ebuild b/dev-python/hypothesis/hypothesis-6.155.7.ebuild
index 28342394d688..49d06928de80 100644
--- a/dev-python/hypothesis/hypothesis-6.155.7.ebuild
+++ b/dev-python/hypothesis/hypothesis-6.155.7.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${P}/hypothesis"
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cli"
RDEPEND="
diff --git a/dev-python/idna/Manifest b/dev-python/idna/Manifest
index 70db343eadd9..00c7f3da0cd3 100644
--- a/dev-python/idna/Manifest
+++ b/dev-python/idna/Manifest
@@ -1,6 +1,2 @@
-DIST idna-3.16.tar.gz 203770 BLAKE2B 9c5f3bb70bce27492241ebd786a4d55254de059a4cce65f999aadf06953d16fe739821051dcd4a4a6bded5e923a4aea27c819a58290b08addc7b3eabe6be05bb SHA512 abeff925d95de523a393b460b5865bed8871c670149f8229adb06d49c08459ff2c2f317c49f614b03218fa11b4ec1f1b6fa2d407a634711506b8f166d4aa6020
-DIST idna-3.16.tar.gz.provenance 9315 BLAKE2B 0eb00371eeed32442723485fae4dd2ad62c13a13e2321c0d0728830e862fcf85d0604963020ff17938aa5cf2179791bff9955533c05008006c5d2b3d43b3125c SHA512 733fb40fbe5f15d5b43505bb8da027e6ec3414a2b8f4186d39f35eb5056d89f236b64748bf66e89ae1dd06e4fc69286f0b64ba8a046de984a28c83cfb5f76182
-DIST idna-3.17.tar.gz 196048 BLAKE2B 7c929775c0153af1856ec6b0674db272b038b7456ed2976ead4face4f5a97869bcc947e1f96404fb5c08bd8af005aec26c556bee4e24484e6dfaaf66c91ef432 SHA512 ac5e4566f7d594ea518d0871c77d00531dca2805cfb69d65b70c37e81d2ae2792ef69b714ce0f174aa5cfd5c21d66951bf04ecead595453780c9aba33336e936
-DIST idna-3.17.tar.gz.provenance 9362 BLAKE2B 47ba0c45e70ae3027383b50d5f9ef1f146c6df12d0dc68bf6c6cf63c504bb15caeba2ca4d406153691957429c9c91443a6f3313b33798fcd129788b05ee422ad SHA512 51f24d344cc822c4a5aee0116e1daf8c05fa513b02fd8d65d8ed3eafd39c7faac057afce122285db9076239af114fcde6a91a63f3705f0b8f497b38766eff246
DIST idna-3.18.tar.gz 196711 BLAKE2B d816787698eaa0002ab2b7314e1ef82934f74bed70d67d20db49cbf114b049e48cd3ca65a8fdd760e7134bc01afee6a1b80eafc8a743bda887ef0a7c4b99ecca SHA512 5cdfa086a6a1d2c5fbb6fe56ceae5434a71e2215711d252be41f82cebfa48cef35cc8b2ff03e6af17ae309f230a04a008c41eae55852dd77942f97f65848c916
DIST idna-3.18.tar.gz.provenance 9495 BLAKE2B 728c5dba519fd7716fd71c566073f2482ea5971efab097c03ef2998f7f9dd3fecaa87562409c149d579289913d52e1a303a8fb0abdcbd411600bb66dc685de9a SHA512 a02d92639bcf09a0ff8b16c4f1c95aa811c766257f74a31d34b48e1bee92be347251a77a4ea014df0b61c3f7f0b219585b0eb6bd054e25deb56a42b5836fc884
diff --git a/dev-python/idna/idna-3.16.ebuild b/dev-python/idna/idna-3.16.ebuild
deleted file mode 100644
index e1b9e747b9e0..000000000000
--- a/dev-python/idna/idna-3.16.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.17.ebuild b/dev-python/idna/idna-3.17.ebuild
deleted file mode 100644
index de4f5101014b..000000000000
--- a/dev-python/idna/idna-3.17.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.18.ebuild b/dev-python/idna/idna-3.18.ebuild
index de4f5101014b..e1b9e747b9e0 100644
--- a/dev-python/idna/idna-3.18.ebuild
+++ b/dev-python/idna/idna-3.18.ebuild
@@ -18,6 +18,6 @@ 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"
distutils_enable_tests unittest
diff --git a/dev-python/inline-snapshot/Manifest b/dev-python/inline-snapshot/Manifest
index cb7c168e135e..de450bfb1097 100644
--- a/dev-python/inline-snapshot/Manifest
+++ b/dev-python/inline-snapshot/Manifest
@@ -1,8 +1,4 @@
DIST inline_snapshot-0.33.0.tar.gz 2637158 BLAKE2B 1bc372dd7f4a546410570b7a2a02ed65722d3448f8f2bc6e4f7cae926370f3ba74fc33f1b1162e4f6563f1f94273c592da4a5f8f573557235d8a5064b8c22c88 SHA512 17af4c5992dfc04809df804ab7167063d01166073e8017eeb08e60cef8ada642955eb2090e0e86807aacd3a6feddceed0cf3c37667fed5b732d076e8449ced13
DIST inline_snapshot-0.33.0.tar.gz.provenance 9520 BLAKE2B 812259517d0fb1a0ba26b25986a8335810fe9542b581f7ced793cf3f1e64d6e10fbf2934252adc4352b113535028cc8a158ffe8c99aef993acbd08bcae35adea SHA512 241f66837bd510f10b2897fe8de4815d6352e78d0a9153ffb4be5fbd0be80fca693e5cf3c30ae32a3042a3294b175b865999a628607ecec414c81f7768570d6d
-DIST inline_snapshot-0.34.0.tar.gz 2638680 BLAKE2B 0540a851ceb06874a36537628312cda2d118b6e401c9ac73f1d9ebd915a62cc7be6e3f9bc3ca5ee9f72040cde9b72df1c14ec9cbf74db24ea083133f598b7069 SHA512 e0d1d6b7f64bcea982a16f760814a063c9fa2adc0d3469946fcdd3af0fc8a179709eca93433258a24d526f836125d96c8c5c7adb62d6063b7ff90b68ac4d25e7
-DIST inline_snapshot-0.34.0.tar.gz.provenance 9846 BLAKE2B 08198647620931ab9c6acfe7fdaed68f92c51c3808b5a5c47175743f1b3d41ec1eb3b26999acd54e87530376fc581034026c2daf5665fa41da05749db4dbbad3 SHA512 ac8a50540da932a73ea83bd3b314d324140680699a1d76a3e32076fd020b9cb448f252d779484aa58b34b8a3e63d7d062f8e309082e6b70e1deaff837f7d0cf2
-DIST inline_snapshot-0.34.1.tar.gz 2638769 BLAKE2B 4e12ab83e23a0eb4e49d2da0f182bf53c6e56585aee22c2f5b5668a89afe0f107eab663e8c72412284bfe7f190996ab75c8b6ced5a9724899daac1cd76d3d693 SHA512 e13d7834f183a822ee413726876fd24a64199d049fe17403506e20dbc31ba959d99d59fdebe38b30c6ac84cdee0598513d8ebf7ea5888fa36007179161b314e7
-DIST inline_snapshot-0.34.1.tar.gz.provenance 9721 BLAKE2B b981170f55b63a2bfd41fb77e1362cadd4d939359cd2ea71ece024490e0f469e533fd52d8d38ac731beea849ec9d1c6a660c16d6158bd8fee3748437fba7dc99 SHA512 ac6186bd5f481646b8f27f5556185ae17b883a5238b44d1318fe8259ab320f347f744db11d64f8a9216797f0c40fe1e5b1c3239ad3ad6b30ee9fccbeb2ceaf38
DIST inline_snapshot-0.34.2.tar.gz 2641142 BLAKE2B 9c3d88d830fd6d155ed9c60264892dad05c8c84fa91659bea9d69d20ae2cc073ee9db57359604d5d35a82fdbc941608944f0c046c17eed272d71aaf92f7ee71b SHA512 fc2a388aa70e991de641d19ab97c7313dd982248af25013f97313517e1bfd673086f73d60318316c0312c21c6703c567519e2e3a7baeeb14ad5a324c047f59ae
DIST inline_snapshot-0.34.2.tar.gz.provenance 9768 BLAKE2B 383d087a8f6991cf184796b7641a73da25354570a8b337e134c90251496b3d1b255a86f3e1d2e2dbe035ec978bee5040e83df1f54948fe4699d48482c7ae935b SHA512 d16524d20b06164aa6087cfbabe19e6f59ac65570d7264a554739c52d9ae37f57957d3d1e1d910447282f0d38eacfacb1899995d86eebe47b474525f76d9118e
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.34.0.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.34.0.ebuild
deleted file mode 100644
index 2271ce4c1de9..000000000000
--- a/dev-python/inline-snapshot/inline-snapshot-0.34.0.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2024-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/15r10nk/inline-snapshot
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Create and update inline snapshots in your Python tests"
-HOMEPAGE="
- https://15r10nk.github.io/inline-snapshot/
- https://github.com/15r10nk/inline-snapshot/
- https://pypi.org/project/inline-snapshot/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
- >=dev-python/executing-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}]
- >=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/attrs[${PYTHON_USEDEP}]
- >=dev-python/black-23.3.0[${PYTHON_USEDEP}]
- >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}]
- dev-python/isort[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/mypy[${PYTHON_USEDEP}]
- ' 'python*')
- >=dev-python/pydantic-2[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-{freezer,mock,xdist} )
-# TODO: EPYTEST_XDIST=1 gotten flaky with 0.33.0
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires pyright
- 'tests/test_typing.py::test_typing_args[pyright]'
- 'tests/test_typing.py::test_typing_call[pyright]'
- # TODO
- tests/test_formating.py::test_format_command_fail
- 'tests/test_docs.py::test_docs[categories.md]'
- 'tests/test_docs.py::test_docs[code_generation.md]'
- 'tests/test_docs.py::test_docs[testing.md]'
- )
-
- local -x PYTHONPATH=${S}/src
- epytest
-}
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.34.1.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.34.1.ebuild
deleted file mode 100644
index 2271ce4c1de9..000000000000
--- a/dev-python/inline-snapshot/inline-snapshot-0.34.1.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2024-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/15r10nk/inline-snapshot
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Create and update inline snapshots in your Python tests"
-HOMEPAGE="
- https://15r10nk.github.io/inline-snapshot/
- https://github.com/15r10nk/inline-snapshot/
- https://pypi.org/project/inline-snapshot/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
- >=dev-python/executing-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}]
- >=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/attrs[${PYTHON_USEDEP}]
- >=dev-python/black-23.3.0[${PYTHON_USEDEP}]
- >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}]
- dev-python/isort[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/mypy[${PYTHON_USEDEP}]
- ' 'python*')
- >=dev-python/pydantic-2[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGIN_LOAD_VIA_ENV=1
-EPYTEST_PLUGINS=( "${PN}" pytest-{freezer,mock,xdist} )
-# TODO: EPYTEST_XDIST=1 gotten flaky with 0.33.0
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires pyright
- 'tests/test_typing.py::test_typing_args[pyright]'
- 'tests/test_typing.py::test_typing_call[pyright]'
- # TODO
- tests/test_formating.py::test_format_command_fail
- 'tests/test_docs.py::test_docs[categories.md]'
- 'tests/test_docs.py::test_docs[code_generation.md]'
- 'tests/test_docs.py::test_docs[testing.md]'
- )
-
- local -x PYTHONPATH=${S}/src
- epytest
-}
diff --git a/dev-python/jinxed/jinxed-2.0.1.ebuild b/dev-python/jinxed/jinxed-2.0.1.ebuild
index 111534a23c8c..9586af4f5f0c 100644
--- a/dev-python/jinxed/jinxed-2.0.1.ebuild
+++ b/dev-python/jinxed/jinxed-2.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/jsonpath-ng/jsonpath-ng-1.8.0.ebuild b/dev-python/jsonpath-ng/jsonpath-ng-1.8.0.ebuild
index 572d8735b172..a297b47c37d3 100644
--- a/dev-python/jsonpath-ng/jsonpath-ng-1.8.0.ebuild
+++ b/dev-python/jsonpath-ng/jsonpath-ng-1.8.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/ply[${PYTHON_USEDEP}]
diff --git a/dev-python/jsonschema-path/jsonschema-path-0.5.0.ebuild b/dev-python/jsonschema-path/jsonschema-path-0.5.0.ebuild
index 7809f1338509..f54638acf45a 100644
--- a/dev-python/jsonschema-path/jsonschema-path-0.5.0.ebuild
+++ b/dev-python/jsonschema-path/jsonschema-path-0.5.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=poetry
+DISTUTILS_USE_PEP517=poetry-core
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
diff --git a/dev-python/jsonschema/jsonschema-4.26.0.ebuild b/dev-python/jsonschema/jsonschema-4.26.0.ebuild
index 32b594caac14..9ffcda7ba9a2 100644
--- a/dev-python/jsonschema/jsonschema-4.26.0.ebuild
+++ b/dev-python/jsonschema/jsonschema-4.26.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index ec2ed9df9c58..98c35a13dbc9 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1,3 +1,2 @@
-DIST jupyter_server-2.18.2.tar.gz 753177 BLAKE2B 6b93d51e21c0f0c34e7df7bd930d0c238699f6edc0ba8c2be4dbaa80e900c9b8069f315fa0077441d1678859405ba7dbb6281fc29cced88067e6f04347cd1de0 SHA512 66fe709003a497d4cd3cee890dffdd0c9109b3c9fbfdc3fc54036ccc700414e6a9755bfdc845180b1255d06a8cf37eb467f905c90ad1dc8969e6912a909ba6ee
DIST jupyter_server-2.19.0.tar.gz 754561 BLAKE2B 1d7c52340fd86152aaea2fc08de49502bd893d58067d5da8e64f2261fc8348f961295b65fa27d44cc45401ddc1dccc7af921758f088b6dded80b5b4816e0522d SHA512 021be211c40541b84f0adbd04c31a8cf5e1a99ed0480d75bd5bb28ef5102e9a08652d0712cbfd5ba4126974d961818f1d9eb8b3a206870e171ed8285a658ae99
DIST jupyter_server-2.20.0.tar.gz 756523 BLAKE2B a55bce21bf2a3d8b7f544161eb20802971e947eb082e3ebf6e0d8e777e46044d1deae8a3568b580cabd8cb6d88ca18cc871a829441b820d02f656ebe30e97b36 SHA512 859d890d67f92212c5a3fa772e9e6abf58c3ef4b08a94e84a64e1c9714114b5bbe5667bb93fab3448671c32ef670c2f4869f4009aa2aa257a67223b47628d578
diff --git a/dev-python/jupyter-server/jupyter-server-2.18.2.ebuild b/dev-python/jupyter-server/jupyter-server-2.18.2.ebuild
deleted file mode 100644
index 1e26e0404740..000000000000
--- a/dev-python/jupyter-server/jupyter-server-2.18.2.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.19.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.19.0.ebuild
index 7b485879e0d6..1e26e0404740 100644
--- a/dev-python/jupyter-server/jupyter-server-2.19.0.ebuild
+++ b/dev-python/jupyter-server/jupyter-server-2.19.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index e6c0b630ba43..a12444e77ab9 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -21,3 +21,5 @@ DIST libtmux-0.59.0.tar.gz 518313 BLAKE2B a8c894b57324804701189ea984cb7dee895b3a
DIST libtmux-0.59.0.tar.gz.provenance 9814 BLAKE2B e00d68c985d8b21f980cfab1d7ea2911c2e95df103c353f32151f451248eaeb7aa7edf243ec8072200d434c64ea4098ac741aafb60212277c27804f6b4158d98 SHA512 aa3a200b9936b703ab14badc673fc6f668d063f21feff348a3f996a8f8f9d614b9bbc3abf13887402eb4363b6a48628b3cb128c8c20793706d0ccc2f41604c50
DIST libtmux-0.60.0.tar.gz 527549 BLAKE2B 7d10107fb81888417b86206eeb3557123967895b4ffb4e6e98bdcccdf8f99d1b41e8c90992a05fdd5fbb4b1e223794521ce17aa57b18142f9ab7ecf03b7b3ea2 SHA512 ddc15be1079aa0ba8177a799bcc14cfe55703c497b31a5896fa9c1040cd1c9ba688cd8dc54a7239f1010f84c0c2816b224d91359e481415ad720640f1f901ff7
DIST libtmux-0.60.0.tar.gz.provenance 9767 BLAKE2B 5911839abc6fefe63e7be53511b062cf0f5716db6c7d3edae95d146a6c9d506f448ac13ab957883e8e412cdfea7b13b3576214d509e56370e90a73b4ad5268cc SHA512 0e4a0315b4f9272007260e93dfee5a61bf13cfb2f8a755d0b7d92a09379218a7c23452b550e3d3b55f32e363a7643433af35ed954ab8d495c07d97df8ddc539d
+DIST libtmux-0.61.0.tar.gz 546122 BLAKE2B 7030a817cb81f8856cb905349fa8beecbc77c6efa84ab01242904403163adc833189165e64fdf7be0d8b8841144f7ecd7c2489adc5fe6eb0ae695f25994c393f SHA512 b395ec50520d0d98aacead74f23310495688ce257bba3bbc32271595f9ab80061802bee882e50838d4361b5d691cb3d4a642dbde134245eea952f79afb64f1c1
+DIST libtmux-0.61.0.tar.gz.provenance 9532 BLAKE2B db246750412e423ec980096068638f2e6070afb9ac719cf9ee8671a9448a917dfedccf3efe71c9ae4309b5a0ef0480bd075ec179a271e9978563ed99700bbe0d SHA512 96e3f9f901e78ee3716393a9806ebfe9e9af3d92488e4a721c87d50d50a355193ff7421d6234cc4ec22b1d18d90f78f8d269c16345d995d61652232659222ac3
diff --git a/dev-python/libtmux/libtmux-0.61.0.ebuild b/dev-python/libtmux/libtmux-0.61.0.ebuild
new file mode 100644
index 000000000000..a85d2d5eaa37
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.61.0.ebuild
@@ -0,0 +1,40 @@
+# 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/tmux-python/libtmux
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typed library that provides an ORM wrapper for tmux, a terminal multiplexer"
+HOMEPAGE="
+ https://libtmux.git-pull.com/
+ https://github.com/tmux-python/libtmux/
+ https://pypi.org/project/libtmux/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=app-misc/tmux-3.0a
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-mock )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+python_test() {
+ # Avoid stale /tmp/tmux-$(id -u) confusing things (bug #896406)
+ local -x TMUX_TMPDIR=$(mktemp --directory --tmpdir=/tmp libtmux.XXXXXXXXXX)
+ # tests/test_window.py::test_fresh_window_data fails if TMUX_PANE is set
+ # https://bugs.gentoo.org/927158
+ local -x TMUX_PANE=
+
+ epytest -o addopts= tests
+}
diff --git a/dev-python/manuel/manuel-1.13.0.ebuild b/dev-python/manuel/manuel-1.13.0.ebuild
index f5c0aee32f6e..1c3948bec09c 100644
--- a/dev-python/manuel/manuel-1.13.0.ebuild
+++ b/dev-python/manuel/manuel-1.13.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/mechanize/mechanize-0.4.10.ebuild b/dev-python/mechanize/mechanize-0.4.10.ebuild
index f2f73508529b..1ed7cdca07fd 100644
--- a/dev-python/mechanize/mechanize-0.4.10.ebuild
+++ b/dev-python/mechanize/mechanize-0.4.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/narwhals/narwhals-2.23.0.ebuild b/dev-python/narwhals/narwhals-2.23.0.ebuild
index 359955646416..659973ad0528 100644
--- a/dev-python/narwhals/narwhals-2.23.0.ebuild
+++ b/dev-python/narwhals/narwhals-2.23.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 ~arm64"
BDEPEND="
test? (
diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
index 5a9b4112c7e2..528373e487fe 100644
--- a/dev-python/numpy/Manifest
+++ b/dev-python/numpy/Manifest
@@ -9,3 +9,5 @@ DIST numpy-2.5.0.tar.gz 20652461 BLAKE2B 3bc3069b0ef8e9806e46079721c608a4face116
DIST numpy-2.5.0.tar.gz.provenance 10151 BLAKE2B 9cda112a33763f1508a628622abb336d49e4746414e50f3fa8b3ec21d74943cb76c659d491a650c9960481a0caf9d0e0ccff26edebafc571edec6b7da01860e3 SHA512 119a37e08825576b8f074646eaf69f18fe50d9d4503c3fd16b606b90244b2d84c03178f6fa551669f6574af22c12b06c4a4e240678200b3059e504f29e6602f4
DIST numpy-2.5.0rc1.tar.gz 20610894 BLAKE2B f92c6ec4b7350aa806c07d131e87f4b8a3e68c8adb4dc634805ec9a66ddcefbf19e592ec024827cdb06a33f27ed6a44a7247b11a0d07a8ee94cdeb039b61eeea SHA512 7a0120682346e943120d01c3d14792d5ae167237942b85feedf9ec3ab91e927f9fd781f1f94c7b5fe3ae8d9111e29764e4e7a106981d9f048139a6fdbe8f2df2
DIST numpy-2.5.0rc1.tar.gz.provenance 9967 BLAKE2B afd23bfe7721098fcda17ad52ff6e2dc85b16aaacf6ab6c515a2ffe09cd57f6f7593f38fef972a5a184c3598a61ab4e5d7fe36a3ce9aabf596cab02db565266d SHA512 ec6da12aa3f277f0a2c79e23552372ff3334b117f5ce19c02cd664e422b084a5401d87a58cbfb18197173da235babd8f01bee6d485f3553b2a59d4a279ae7e34
+DIST numpy-2.5.1.tar.gz 20755553 BLAKE2B be71d9f5c615cbc6b59fe5ed8a1c346be654a813f811807a275dff371dd56279979dce6f2218c5d195ae17657994644a44a9afb2e9a1466e14404a9f64bedefb SHA512 cbb1f844bc7feb845de24c4951bc378b0d4d96a1ac7eaa9fe1f615aaf470f33c81e94fddbbd83f555b7d9248b5db60b641a4582b9f39b0f6d906f7a8acdd7add
+DIST numpy-2.5.1.tar.gz.provenance 10151 BLAKE2B 9070e62cbbc52de179f688c9a5b1249a98ead2c986f81a8b45eba8928ca8585e888df950eaf729cacb5d0389d1bccbcc4816dd99ddff70bd78f0eb1f91ed2cf6 SHA512 82c1b1ab30004cb43b7e471f84200124f3cf2e40e89e2a1163fb7d4859c2b3ccac3de6611d77b94fef45cc7e3bbf4b49156c641862dd98b556d176e477c59b04
diff --git a/dev-python/numpy/numpy-2.5.1.ebuild b/dev-python/numpy/numpy-2.5.1.ebuild
new file mode 100644
index 000000000000..dda0acf87827
--- /dev/null
+++ b/dev-python/numpy/numpy-2.5.1.ebuild
@@ -0,0 +1,329 @@
+# 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/numpy/numpy-release
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 flag-o-matic fortran-2 pypi
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="
+ https://numpy.org/
+ https://github.com/numpy/numpy/
+ https://pypi.org/project/numpy/
+"
+
+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"
+fi
+# +lapack because the internal fallbacks are pretty slow. Building without blas
+# is barely supported anyway, see bug #914358.
+IUSE="big-endian +cpudetection index64 +lapack"
+
+# upstream-flag[:gentoo-flag]
+ARM_FLAGS=( neon{,-fp16} vfpv4 asimd{,hp,dp,fhm} sve )
+PPC_FLAGS=( vsx vsx2 vsx3 vsx4 )
+X86_FLAGS=(
+ avx2 avx512{bw,dq,vl} avx512_{bf16,bitalg,fp16,vbmi2} sse4_2
+)
+IUSE+="
+ ${ARM_FLAGS[*]/#/cpu_flags_arm_}
+ ${PPC_FLAGS[*]/#/cpu_flags_ppc_}
+ ${X86_FLAGS[*]/#/cpu_flags_x86_}
+"
+
+RDEPEND="
+ lapack? (
+ >=virtual/cblas-3.8[index64(-)?]
+ >=virtual/lapack-3.8[index64(-)?]
+ )
+"
+BDEPEND="
+ ${RDEPEND}
+ >=dev-build/meson-1.5.2
+ >=dev-python/cython-3.0.6[${PYTHON_USEDEP}]
+ lapack? (
+ virtual/pkgconfig
+ )
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # https://bugs.gentoo.org/925367
+ vrndq_f32
+)
+
+EPYTEST_PLUGINS=( hypothesis pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+has_all_x86() {
+ local flag
+ for flag; do
+ if ! use "cpu_flags_x86_${flag}"; then
+ return 1
+ fi
+ done
+ return 0
+}
+
+python_configure_all() {
+ local cpu_baseline=()
+ local map flag
+ case ${ARCH} in
+ arm)
+ # every flag implies the previous one
+ for map in NEON:neon NEON_FP16:neon-fp16 NEON_VFPV4:vfpv4; do
+ if ! use "cpu_flags_arm_${map#*:}"; then
+ break
+ fi
+ cpu_baseline+=( "${map%:*}" )
+ done
+ ;&
+ arm64)
+ # on 32-bit ARM, ASIMD implies all NEON* flags
+ # on 64-bit ARM, they are all linked together
+ if use arm64 ||
+ [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == NEON_VFPV4 ]]
+ then
+ cpu_baseline+=( $(usev cpu_flags_arm_asimd ASIMD) )
+ fi
+
+ # these two imply ASIMD
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == ASIMD ]]; then
+ for flag in dp hp; do
+ cpu_baseline+=(
+ $(usev "cpu_flags_arm_asimd${flag}" "ASIMD${flag^^}")
+ )
+ done
+ fi
+
+ # these two imply ASIMDHP
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == ASIMDHP ]]; then
+ for flag in asimdfhm sve; do
+ cpu_baseline+=(
+ $(usev "cpu_flags_arm_${flag}" "${flag^^}")
+ )
+ done
+ fi
+ ;;
+ ppc64)
+ # every flag implies the previous one
+ for flag in '' 2 3 4; do
+ if ! use "cpu_flags_ppc_vsx${flags}"; then
+ break
+ fi
+ cpu_baseline+=( "VSX${flag}" )
+ done
+ ;;
+ amd64|x86)
+ # upstream combines multiple instructions into sets
+ local mapping=(
+ # for these, we just check the newest instruction set,
+ # since all earlier instruction sets imply it
+ "X86_V2=sse4_2"
+ "X86_V3=avx2"
+ # from here on, we check all features that were added
+ # in the lowest CPU supporting them all
+ # https://en.wikipedia.org/wiki/AVX-512
+ "X86_V4=avx512bw avx512dq avx512vl"
+ "AVX512_ICL=avx512_vbmi2 avx512_bitalg"
+ "AVX512_SPR=avx512_bf16 avx512_fp16"
+ )
+
+ local m
+ for m in "${mapping[@]}"; do
+ local feature=${m%=*}
+ local sets=${m#*=}
+
+ if has_all_x86 ${sets}; then
+ einfo "${feature} enabled: all of ${sets} enabled"
+ cpu_baseline+=( "${feature}" )
+ else
+ einfo "${feature} disabled: not all of ${sets} enabled"
+ break
+ fi
+ done
+ ;;
+ *)
+ cpu_baseline=MIN
+ ;;
+ esac
+
+ DISTUTILS_ARGS=(
+ -Dallow-noblas=$(usex !lapack true false)
+ -Duse-ilp64=$(usex index64 true false)
+ -Dblas=$(usev lapack $(usex index64 cblas64 cblas))
+ -Dlapack=$(usev lapack $(usex index64 lapack64 lapack))
+ -Dcpu-baseline="${cpu_baseline[*]}"
+ -Dcpu-baseline-detect=disabled
+ -Dcpu-dispatch="$(usev cpudetection MAX)"
+ )
+
+ # bug #922457
+ filter-lto
+ # https://github.com/numpy/numpy/issues/25004
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ # We run tests in parallel, so avoid having n^2 threads in lapack
+ # tests.
+ local -x BLIS_NUM_THREADS=1
+ local -x MKL_NUM_THREADS=1
+ local -x OMP_NUM_THREADS=1
+ local -x OPENBLAS_NUM_THREADS=1
+
+ # don't run tests that require more than 2 GiB of RAM (per process)
+ local -x NPY_AVAILABLE_MEM="2 GiB"
+
+ local EPYTEST_DESELECT=(
+ # Very disk-and-memory-hungry
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_fid
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_zipfile_after_load
+
+ # Precision problems
+ numpy/_core/tests/test_umath_accuracy.py::TestAccuracy::test_validate_transcendentals
+
+ numpy/typing/tests/test_typing.py
+
+ # Flaky, reruns don't help
+ numpy/f2py/tests/test_crackfortran.py
+ numpy/f2py/tests/test_data.py::TestData{,F77}::test_crackedlines
+ numpy/f2py/tests/test_f2py2e.py::test_gen_pyf
+ numpy/f2py/tests/test_f2py2e.py::test_gh22819_cli
+
+ # Broken by new setuptools
+ numpy/distutils/tests/test_fcompiler.py
+ numpy/distutils/tests/test_fcompiler_gnu.py
+ numpy/distutils/tests/test_fcompiler_intel.py
+ numpy/distutils/tests/test_fcompiler_nagfor.py
+ )
+
+ if [[ $(uname -m) == armv8l ]]; then
+ # Degenerate case of arm32 chroot on arm64, bug #774108
+ EPYTEST_DESELECT+=(
+ numpy/_core/tests/test_cpu_features.py::Test_ARM_Features::test_features
+ )
+ fi
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO: warnings
+ numpy/_core/tests/test_umath.py::TestSpecialFloats::test_unary_spurious_fpexception
+
+ # TODO
+ numpy/_core/tests/test_function_base.py::TestLinspace::test_denormal_numbers
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ hppa)
+ EPYTEST_DESELECT+=(
+ # https://bugs.gentoo.org/942689
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[int]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[float]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[datetime64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[timedelta64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[<f]"
+ "numpy/_core/tests/test_dtype.py::TestPickling::test_pickle_dtype[dt28]"
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_reference_cycles
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_segmentation_fault
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_scalar
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_subarray
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure_aligned
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_union
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_padded_union
+ )
+ ;;
+ ppc|x86)
+ EPYTEST_DESELECT+=(
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ esac
+
+ if [[ ${CHOST} == powerpc64le-* ]]; then
+ EPYTEST_DESELECT+=(
+ # long double thingy
+ numpy/_core/tests/test_scalarprint.py::TestRealScalars::test_ppc64_ibm_double_double128
+ )
+ fi
+
+ if use big-endian; then
+ EPYTEST_DESELECT+=(
+ # ppc64 and sparc
+ numpy/linalg/tests/test_linalg.py::TestDet::test_generalized_sq_cases
+ numpy/linalg/tests/test_linalg.py::TestDet::test_sq_cases
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[t1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[t1]"
+ )
+ fi
+
+ if ! has_version -b "~${CATEGORY}/${P}[${PYTHON_USEDEP}]" ; then
+ # depends on importing numpy.random from system namespace
+ EPYTEST_DESELECT+=(
+ 'numpy/random/tests/test_extending.py::test_cython'
+ )
+ fi
+
+ if has_version ">=dev-python/setuptools-74[${PYTHON_USEDEP}]"; then
+ # msvccompiler removal
+ EPYTEST_DESELECT+=(
+ numpy/tests/test_public_api.py::test_all_modules_are_expected_2
+ numpy/tests/test_public_api.py::test_api_importable
+ )
+ EPYTEST_IGNORE+=(
+ numpy/distutils/tests/test_mingw32ccompiler.py
+ numpy/distutils/tests/test_system_info.py
+ )
+ fi
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ numpy/_core/tests/test_regression.py::TestRegression::test_buffer_hashlib
+ numpy/random/tests/test_generator_mt19937.py::TestIntegers::test_repeatability
+ numpy/random/tests/test_generator_mt19937.py::TestRandomDist::test_choice_large_sample
+ numpy/random/tests/test_generator_mt19937.py::test_jumped
+ numpy/random/tests/test_random.py::TestRandint::test_repeatability
+ numpy/random/tests/test_randomstate.py::TestRandint::test_repeatability
+ numpy/random/tests/test_randomstate.py::test_integer_repeat
+ )
+ ;;
+ esac
+
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest
+}
+
+python_install_all() {
+ local DOCS=( LICENSE.txt README.md THANKS.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 68146daa7765..6ce0723e0cf0 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -1,4 +1,3 @@
-DIST openstacksdk-4.13.0.tar.gz 1341338 BLAKE2B 2b7b74c7fa3f94aecf67b68ff48b24f8d44ab4f3e07d49ef6fc85facf7676e3a70fcdeb32b3aa129d0920ec25317c18647d268d308d5cdbb3346b2f11b57e23d SHA512 ba00c75a4c7575972d7218a0271b7261717e7386db84528fba304efc0607746a3b36f31c39d7eb594238004c523284e51db1836dd1e8764c55205268774fb733
DIST openstacksdk-4.14.0.tar.gz 1357501 BLAKE2B 574036f4827e045dae7da7058e86ab384614b03a669f25e8bdafc05d5f773265bb9282ddc764851d7391fd442f5b8c0f94c0e19ddc963c4baea13acd3c47fd3f SHA512 baf6234a52ddd1cffe1126f59fbc2daae014667fbbdd0dd8d65866e3f89da2372de00b7b6d54d486cd2a47d28d23c0e3ae9affcb79b4bc124270179eb67b7afc
DIST openstacksdk-4.15.0.tar.gz 1379204 BLAKE2B 2a1405af243909af4f7bfe356b42976a5ac2e21d9962da133971cfed087bfb8d387ae800ff420154bd189b97f148c7b0d517f1083e32da8a2ff3fe59315aad37 SHA512 ec4b16322db900c83a37a98a2ce59396dc82d69a5f6552a852422a4ceb9d333efe67c215290d051c8c0fcc14dec652f9db50930676101653d431e91f89a444dd
DIST openstacksdk-4.16.0.tar.gz 1397114 BLAKE2B 3194184d19b96171f7c83fb5065d11d175b216c0fbc4f5286290dd5b680de4dd68b9e836bd3c12f519625dd2fa56d1a02a383539e6e9390eb63cd39eb0658d83 SHA512 669751049e7737a350c95fde28f3f1d78223bebf131ac7d9986a3530f4a92c5fbf71c5c713a45df4f70225fefbed98f4f233a584b6b285d57cd74e264b31cbb5
diff --git a/dev-python/openstacksdk/openstacksdk-4.13.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.13.0.ebuild
deleted file mode 100644
index 0671708ccc93..000000000000
--- a/dev-python/openstacksdk/openstacksdk-4.13.0.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pbr
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A collection of libraries for building applications to work with OpenStack"
-HOMEPAGE="
- https://opendev.org/openstack/openstacksdk/
- https://github.com/openstack/openstacksdk/
- https://pypi.org/project/openstacksdk/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
- >=dev-python/decorator-4.4.1[${PYTHON_USEDEP}]
- >=dev-python/dogpile-cache-0.6.5[${PYTHON_USEDEP}]
- >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
- >=dev-python/jmespath-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/jsonpatch-1.21[${PYTHON_USEDEP}]
- >=dev-python/keystoneauth1-5.10.0[${PYTHON_USEDEP}]
- >=dev-python/os-service-types-1.8.1[${PYTHON_USEDEP}]
- >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-3[${PYTHON_USEDEP}]
- >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
- >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
- >=dev-python/prometheus-client-0.4.2[${PYTHON_USEDEP}]
- >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}]
- >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- # Internet?
- sed -e 's:test_create_dynamic_large_object:_&:' \
- -i openstack/tests/unit/cloud/test_object.py || die
-
- # TODO
- sed -e 's:test_generate_form:_&:' \
- -e 's:test_create_static_large_object:_&:' \
- -e 's:test_object_segment_retries:_&:' \
- -e 's:test_object_segment_retry_failure:_&:' \
- -e 's:test_slo_manifest_retry:_&:' \
- -i openstack/tests/unit/cloud/test_object.py || die
- sed -e 's:test_servers:_&:' \
- -i openstack/tests/unit/test_stats.py || die
-
- # unhappy about paths due to test runner
- sed -e 's:test_method_not_supported:_&:' \
- -i openstack/tests/unit/test_exceptions.py || die
- sed -e 's:test_repr:_&:' \
- -i openstack/tests/unit/test_resource.py || die
-
- # requires hacking
- rm openstack/tests/unit/test_hacking.py || die
-
- # fragile warning-based tests
- sed -e 's:test_unsupported_version_override:_&:' \
- -i openstack/tests/unit/test_missing_version.py || die
- sed -e 's:test_create_unknown_proxy:_&:' \
- -i openstack/tests/unit/test_connection.py || die
-
- # stupid test checking if they pin to the newest os-service-types,
- # except they don't actually do
- sed -e 's:test_ost_version:_&:' \
- -i openstack/tests/unit/test_utils.py || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- # functional tests require cloud instance access
- eunittest -b openstack/tests/unit
-}
diff --git a/dev-python/openstacksdk/openstacksdk-4.14.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.14.0.ebuild
index fc37787b90c1..c206191a1a88 100644
--- a/dev-python/openstacksdk/openstacksdk-4.14.0.ebuild
+++ b/dev-python/openstacksdk/openstacksdk-4.14.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
diff --git a/dev-python/orjson/orjson-3.11.9.ebuild b/dev-python/orjson/orjson-3.11.9.ebuild
index 2e5c879842c5..657135e13cee 100644
--- a/dev-python/orjson/orjson-3.11.9.ebuild
+++ b/dev-python/orjson/orjson-3.11.9.ebuild
@@ -27,7 +27,7 @@ LICENSE+="
Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT Unicode-3.0
"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ~ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
>=dev-util/maturin-1.7.8[${PYTHON_USEDEP}]
diff --git a/dev-python/oslo-utils/Manifest b/dev-python/oslo-utils/Manifest
index 1d4a5c61e781..4fc43fc223c0 100644
--- a/dev-python/oslo-utils/Manifest
+++ b/dev-python/oslo-utils/Manifest
@@ -1,3 +1,2 @@
-DIST oslo_utils-10.0.1.tar.gz 141965 BLAKE2B 7c4c6ff4337d908f719c5b942cb2ddc652eaf2f575fbb7bd1a120cd3c30bb2b625fce3fa7fef9b6fcc5215a01dc7b0c068fdec89a312f5358c1d6551013cfbc3 SHA512 a3650dcd0674c9183f1635ec0346476fe4ed9194833a58174cc08ef6cc6b673092c87e9e09788df8798c96e9bb669b7151bbdf04292aee2961e8e80dfc295c5c
DIST oslo_utils-10.1.0.tar.gz 159282 BLAKE2B 694ed00521cd98c5b508337d8f2506ac30c4fcf484f97bd42d3bed353f53035b80ea6d8c0787e991faedacd6982202470a3f3b3ed9c632bee94574671dcdcae1 SHA512 08b016b42c82b247b8c5038ddb783c20b9a6b8e84ad4c18b52c02adcb47f8ba43d72ddc6beec84215b2a560ccdd72ab70c183b1c64775d263745859197d0f8ea
DIST oslo_utils-10.1.1.tar.gz 159381 BLAKE2B 0bfe6d4bf8aa3986726cd31068b853bf53d6ebe98fdb78fec3edcb64733fbcfffa1bdd9f76abac0cb89779170e2eb3020b36fa2a555897dcb7f72356e3842399 SHA512 20396749fc5df2761c34944ed87635b9626562853d315b70c280f42fcbec8c99aad700a1e0c50f0e7e4d77173bd035c7ca69e6d67a900298a0d353702bb54aa9
diff --git a/dev-python/oslo-utils/oslo-utils-10.0.1.ebuild b/dev-python/oslo-utils/oslo-utils-10.0.1.ebuild
deleted file mode 100644
index 000f0b1c87ba..000000000000
--- a/dev-python/oslo-utils/oslo-utils-10.0.1.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pbr
-PYPI_PN=${PN/-/.}
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit check-reqs distutils-r1 pypi
-
-DESCRIPTION="Oslo Utility library"
-HOMEPAGE="
- https://opendev.org/openstack/oslo.utils/
- https://github.com/openstack/oslo.utils/
- https://pypi.org/project/oslo.utils/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
- >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
- >=dev-python/netaddr-0.10.0[${PYTHON_USEDEP}]
- >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/pyparsing-2.1.0[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.4[${PYTHON_USEDEP}]
- >=dev-python/pbr-6.1.0[${PYTHON_USEDEP}]
- >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
-"
-# qemu needed for qemu-img
-BDEPEND="
- test? (
- app-cdr/cdrtools
- app-emulation/qemu
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
- >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-# note this only applies to USE=test
-CHECKREQS_DISK_BUILD=8G
-
-pkg_pretend() {
- use test && check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- use test && check-reqs_pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # require eventlet
- rm oslo_utils/tests/test_eventletutils.py || die
-}
diff --git a/dev-python/oslo-utils/oslo-utils-10.1.0.ebuild b/dev-python/oslo-utils/oslo-utils-10.1.0.ebuild
index 382ada9f7d97..000f0b1c87ba 100644
--- a/dev-python/oslo-utils/oslo-utils-10.1.0.ebuild
+++ b/dev-python/oslo-utils/oslo-utils-10.1.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
diff --git a/dev-python/outcome/outcome-1.3.0_p0.ebuild b/dev-python/outcome/outcome-1.3.0_p0.ebuild
index d4b676e32ac7..783e5ecbfe3a 100644
--- a/dev-python/outcome/outcome-1.3.0_p0.ebuild
+++ b/dev-python/outcome/outcome-1.3.0_p0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -27,12 +27,8 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~spar
RDEPEND="
dev-python/attrs[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
distutils_enable_sphinx docs/source \
dev-python/sphinxcontrib-trio \
diff --git a/dev-python/patiencediff/Manifest b/dev-python/patiencediff/Manifest
index b16a768a8fc0..6fe730f9820e 100644
--- a/dev-python/patiencediff/Manifest
+++ b/dev-python/patiencediff/Manifest
@@ -1,36 +1,17 @@
-DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
-DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
-DIST libc-0.2.177.crate 792045 BLAKE2B ecea1ade26b0faa9cb5fb025e237f3a59dfb562e7b3de3682b42a41038b1d436e83b42b53158c1fc1cc4b1cc64ab55ba1497e869ae850a677c089fcce9138912 SHA512 9d737091dba80244137987d06a52ffcd44a968c96b59ae9af9cfa40c38cb9675d023f6324fbf25c436ce1b9592ebf26248f85b0a7c97ee02360ca624b0efb3e0
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
-DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
-DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST patiencediff-0.2.1.crate 21717 BLAKE2B 839dab29b4a5f830df1edc2eb9b46373e8adf6a2f2474b3cb7622899e5cad4de9d19d2b6ace3e6b44d3772a934c3469c85cdd9d2bb31d138f8a28edcd52e7ab3 SHA512 500b3f42a6fd936a3a2fa6b65f5ea0f6b8e37f50be5f002dd2ae76d2138765e45547a6aac68586ded2d5970609e5c2238ce0f5b2fb5b7396e7ca8914f0c1c2c1
-DIST patiencediff-0.2.18.tar.gz 24521 BLAKE2B 6b0fd39874b2fc95ab0b964471a129fac3e80be979a3683a14672508ed9e3ec74c2c7e805796e8f33bc7f43bcc2ee3b8dadadaa4c6482d23d261f362ff0e573a SHA512 9eaddfb4533bb213f982b83c4d82fc9235d32b587820af9b1575395ce8b53bb05818b16cb9e721eb41880ffa4cf614f420332aeb2c2823f4fe78372fa629c2e7
-DIST patiencediff-0.2.18.tar.gz.provenance 9668 BLAKE2B ba3581f670a4718310effdb9d12e8ed1c064add4d1f39ae2dd67538171bf1a6c76fbbc91f64d2ac04d962a2314046777263e17df473c99e21dc33470971c5438 SHA512 4eb8229d71937b66217601385891ebe7b3703e6547f49b3efffc5cf5e2841055917f942551314587d8b921541b4a2820d5be046c25e40d387a5dfe16fbd40d0c
DIST patiencediff-0.2.19.tar.gz 24536 BLAKE2B 7df2f59d1de7fb3b4d0c0a8f2a1acb08c7d43dc96fc23a2cd788641eae0079fa869c82a79a18a820419bc0db352f0de99f19d7e7270e51f1588baa22578045c4 SHA512 714dd4f1107d75070233ff545d026c075e3afafb91e86571ef8a1a27fe938a678716b660bbac1caaa708144e52de76414d36dd1987d5f09dfcf6d8ee7a8820ed
DIST patiencediff-0.2.19.tar.gz.provenance 10070 BLAKE2B 3093fc309254ad05b3b33304aac4217b11f6d152d4e07e906748b684a730003f415c31b33b037d7438337dcfe6f3cc1b0d4ab62a8d2025ef10ecbec763702288 SHA512 b45c71dbc773d3e3c381324f37511dbdc48219cccfd6909c8c162e40b35290d515f0ad4001dffeca786968126c816b038cbf4d1bddb4d8f5636ec4104857fe3e
-DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
-DIST proc-macro2-1.0.101.crate 53886 BLAKE2B db566c4fb6a197e0aa45cc074310853eaa24ceeafe9fb91f2014ba47cf6b1cbc34e4e9391456c946587540c8e270e1a37f5195cf03bd15ea5d4f171bba9772db SHA512 3171c807d24371da2931f9c706fb3129bb9bf3ac40418e5d14cfc372baf96e5fee9ede72091163858e3ba0b4f88594efa1031b0bb7128ca68e7b847dead6856c
DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
-DIST pyo3-0.26.0.crate 1151579 BLAKE2B bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3 SHA512 e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194
DIST pyo3-0.29.0.crate 1241253 BLAKE2B 29deb7fa70010bf3d7e9e93bbcd87c0b56c4ee7ef0c2e5956181d2fb5f06f4c9b3f28bd1ad280126c26c048808b91b847e1fb69ddd617ef9e9e5e004cf4e48ae SHA512 e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
-DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722 SHA512 a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b
DIST pyo3-build-config-0.29.0.crate 39616 BLAKE2B 7b62a5976b890db84e5256f3136185c2a9c3b7110782b5b0cdc314a5231fde30a853ddcd17af63b53488b3e8d5e310b01002b6f3c32cfeb1e5c3e168cd6460d7 SHA512 df77e8d7d5fe173749437ff6b90fa1703083377d515ab8a85dc77d9cac9c3fc331ede4b040f7e3694311ddb5adff577cf90c181a27c196ab93a4569e918fdea8
-DIST pyo3-ffi-0.26.0.crate 78247 BLAKE2B 65f1c399bc763bf8afc36ccac27d28242ebcccebd08ab8d9b3165ca5c9abb10f76e76fe5a250aa1e0cdc1d1e8a613160660f07bc0dbc2812675acb9dfc8e89c2 SHA512 91c2ae828e997dee5e48d839794727e94576228e9329c358a3bc77a59f8f37fa0ae6c2579229782b3f46ab90725844ce9194b9de4d3849d824adf1d40743bf7e
DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a5ac46df3217d004f5c3a368f18331733c6723bd49e522c6f7105455df13e2be0f07695ed5ce6ae71c15dec438 SHA512 baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
-DIST pyo3-macros-0.26.0.crate 8906 BLAKE2B 60eef72d27b5bc922b75f71ae24bb6f380288cb3a619bf2940b0de47b27e86cce0ffdb1fbdc9c0540d3f15c9df4884497aa1e6efec0f1579ac722b414818a428 SHA512 07bcddba0926c3dff7629da3260f9a38593fbb337b6a68d55c223f5944d912885e5319cd635ae1785026fed4adea1fcc19695ae83aca5bea127c5a8868fd2c43
DIST pyo3-macros-0.29.0.crate 8915 BLAKE2B c12d23753d5aba7333183d4b41f16c8da1d4297a3ff86b3b150e9185c1978fc184ac198e566a41833292a8a78ab59446eafd5ef7169e5cb41493e7cbeaa68280 SHA512 fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
-DIST pyo3-macros-backend-0.26.0.crate 81809 BLAKE2B 73885035855daf00b001e97e0a5ebe09412d212c8f01aa4db6638ef09990bf1bccbacf2e5a7e6ec21929bb1c2beba06587ecdb6ee954eda9e9c51c6c276cea95 SHA512 4146011a8ef18ecaa44b425eebe6e5e1370945063b98aaa83452e57b66aefbf5d483367b1d4d44aa5091303c4ba7f568c6428ecec0cfa6c90ba41631d4e99367
DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
-DIST quote-1.0.41.crate 31408 BLAKE2B 9d496e0878fc329ac9492ecbd470e762bd807ec8ca4e17a856b4d1c776351434778f519977137a67b8c143ee60b20774c09768d480cff51b22f2cfcb364a20d9 SHA512 64374d70eb29f7d7e02e535ba383586d93f68a9b6464c79840fa6c42a1ac47be7ba14e415a40e158f845e486ed33d5c564c882913780d296360b30a56301ff7e
DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
-DIST syn-2.0.106.crate 301514 BLAKE2B 6b28b30ee067c23dc4bd1b38365d14c1700245c974e785173965b0822301966d642b36bdda25210d61f17a99fc71eb81e29a56c89d1649773908bae32778fb1f SHA512 e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
-DIST target-lexicon-0.13.3.crate 28498 BLAKE2B 397315667737abde41949081f8377f704c3a1105790162249a9f0c08b60f012e67d66550e9063d900ac98f5191d13c5ed23d1a8045f99373e7a673a3cfc029e7 SHA512 23422df6edb2a8cb0a9f048864faf76ccb27d6e97fbed7b208b77206941b196f155896a0381150e387142e976439a0a296dcf4cbb4df6bc0e11c65f97f979443
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
-DIST unicode-ident-1.0.19.crate 47480 BLAKE2B d1b9d26833fcd1f3a8498abe2f4ba4202e4547315e48aa927c0f6e4a760c6c7000ff0c18d0cf45af362323c42843d745958c1b0419835f39e13dbc1559487026 SHA512 b17fcf6bffdb4745e0b1bf4983a0dcc4c84f8b4e2c2c618eefbbeae83f94ec75df87b55f9e2dede8c3b4c6e22107fcfc589475c0cbc2c58dfb8630db8d362183
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
-DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b
diff --git a/dev-python/patiencediff/patiencediff-0.2.18.ebuild b/dev-python/patiencediff/patiencediff-0.2.18.ebuild
deleted file mode 100644
index a41150d55e53..000000000000
--- a/dev-python/patiencediff/patiencediff-0.2.18.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 2021-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/breezy-team/patiencediff
-PYTHON_COMPAT=( python3_{13..14} )
-
-CRATES="
- autocfg@1.5.0
- heck@0.5.0
- indoc@2.0.6
- libc@0.2.177
- memoffset@0.9.1
- once_cell@1.21.3
- patiencediff@0.2.1
- portable-atomic@1.11.1
- proc-macro2@1.0.101
- pyo3-build-config@0.26.0
- pyo3-ffi@0.26.0
- pyo3-macros-backend@0.26.0
- pyo3-macros@0.26.0
- pyo3@0.26.0
- quote@1.0.41
- syn@2.0.106
- target-lexicon@0.13.3
- unicode-ident@1.0.19
- unindent@0.2.4
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Python implementation of the patiencediff algorithm"
-HOMEPAGE="
- https://github.com/breezy-team/patiencediff/
- https://pypi.org/project/patiencediff/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
-"
-
-LICENSE="GPL-2+"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0-with-LLVM-exceptions GPL-2+ MIT Unicode-3.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-BDEPEND="
- dev-python/setuptools-rust[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/patiencediff/_patiencediff_rs.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_configure() {
- # makes extension builds fatal
- export CIBUILDWHEEL=1
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- eunittest
-}
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index 6575ddaaeb63..bc462d2bc6e0 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -1,8 +1,2 @@
-DIST pbs_installer-2026.5.10.tar.gz 72513 BLAKE2B c20f78d1e026c94b4f9a09036fde6eb5fb43a8575a44618a335e34da6e5f82f72317c0e5ce413d149846a696c687f365847daaf7a416491e0b008814db9cc9d4 SHA512 5cc33c12789a4e31ccbad598da5694e939de8e3614db0d55cd3e99d666543df2946351b10593379f88d3eae493ce7ea97bb24a666a206577b5c0731da30e9e86
-DIST pbs_installer-2026.5.10.tar.gz.provenance 9932 BLAKE2B 3d366fd8f3306ce1e66c338bec1cb776b925ef37081366a946182ce68b3781b0ebca32eba55d29e36f734d1554b34486963116b2360d77693313a53fe78c3640 SHA512 c5394edb6f18fd767af548242ba97738e4a1e062d3467abb30060b7950b305e78895311811abb8389d247727f3eb2478c0efeaa6d1e6970c292c6c4ae7f95506
-DIST pbs_installer-2026.5.8.tar.gz 71877 BLAKE2B b85346c84c7e2b8859c44a13e844f015feb6f77938c853aa2f31f6572e23bddc8f4fcff2c0a21c814f20517953ed0f273bd5f6cb2ce1bcca0eb20bad8c78e674 SHA512 e3c3fad7358af454c08e31132a74d77afcbb3400e71c31d87440b194e21f00ebb7c663732329e3f5cad224c99d46a84c6958451379c2f0751afe1b372328be0d
-DIST pbs_installer-2026.5.8.tar.gz.provenance 9611 BLAKE2B e5191bb1aaf8f1d3cb427ebe6e27186eeac4392db5cdf4bfefdea45361ac490e198e3a30e8f66c42d2be6d317aba4ec477e5c6cebc4cd5d8889b9358cc37eb98 SHA512 d8e146b3939996443e87d1f9ee0814863c9d0274f5390868245bebdc7ac9f379d7fcbd69c6e6a9e65be68b3dc105b05263eae14745b5ad44fb9c23efd6d60fe8
DIST pbs_installer-2026.6.10.tar.gz 73893 BLAKE2B 3af87ea1be1a7fc41059ae0b0b77ded24d6ab29439b5bc9a92f5c35e601a35aa10fcb18a756e34471e4dc135c4cee907a27436aa4f6df6b338ef1aa9f0027495 SHA512 88544fa5126e6f9ea259a74e8f8f6b1c6ba5cbc9bc7b586af05a561063c5950501e6a75923b60ea7e52f0b3686269ada6b8265fedeec7f143f158fb18061c9e8
DIST pbs_installer-2026.6.10.tar.gz.provenance 9988 BLAKE2B f0a457eadcccb409dc78aa55018765a1a2d25034dd3ad5633bdf344c8ed78f7f2df4a537ae2d28b0c04ac7077c42800e971d9915bf3243f5bedfcf72e1d2ca68 SHA512 341494699b0398d7ff043132f4fdc1d52f5934c0d3a26fa550783735b7070fe66a0696858b79a67f26adfccff3c488ef504660a3585653f5505390d599a6e40d
-DIST pbs_installer-2026.6.2.tar.gz 72505 BLAKE2B 631cc767640288849ca45b3c657f71345d4d26e5928c409750d8cea847a66313e232045fa04fc7da8f7c1507ea0cdb5d96f0f598f0e91de2675606a621461779 SHA512 39718058055ae3102187c4c0c58c913f6984841967e63fe3d81f65f2747fe1c6f54e337c076b7af1048d1b3911c2d75b1d6ca834d3820a4c6701a9257329cb03
-DIST pbs_installer-2026.6.2.tar.gz.provenance 10047 BLAKE2B c4c1a314119d1447ae2a391f9a879d1dee14b93af7c7dde85040f484c4bb28a0bf2e12d7305cfa83d9c045785358eabf1220389bf4a2e5dcb78999801c232338 SHA512 2ce2939a90b7aa73c0a5dcac971ef7f8ec5c406c30f5084422216ef9af3ea5033f29ab606ef65ee42e965a615b33abc5d2c02d671cf48989c8a1318811ea605d
diff --git a/dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild b/dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild
deleted file mode 100644
index f3bc021d04f4..000000000000
--- a/dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Installer for Python Build Standalone"
-HOMEPAGE="
- https://pypi.org/project/pbs-installer/
- https://github.com/frostming/pbs-installer/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-# httpx is needed to download builds
-# zstandard is needed to install them
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
- ' 3.11 3.12 3.13)
- <dev-python/httpx-1[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests import-check
diff --git a/dev-python/pbs-installer/pbs-installer-2026.5.8.ebuild b/dev-python/pbs-installer/pbs-installer-2026.5.8.ebuild
deleted file mode 100644
index f3bc021d04f4..000000000000
--- a/dev-python/pbs-installer/pbs-installer-2026.5.8.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Installer for Python Build Standalone"
-HOMEPAGE="
- https://pypi.org/project/pbs-installer/
- https://github.com/frostming/pbs-installer/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-# httpx is needed to download builds
-# zstandard is needed to install them
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
- ' 3.11 3.12 3.13)
- <dev-python/httpx-1[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests import-check
diff --git a/dev-python/pbs-installer/pbs-installer-2026.6.10.ebuild b/dev-python/pbs-installer/pbs-installer-2026.6.10.ebuild
index 5255989ad0b2..f3bc021d04f4 100644
--- a/dev-python/pbs-installer/pbs-installer-2026.6.10.ebuild
+++ b/dev-python/pbs-installer/pbs-installer-2026.6.10.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
# httpx is needed to download builds
# zstandard is needed to install them
diff --git a/dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild b/dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild
deleted file mode 100644
index 5255989ad0b2..000000000000
--- a/dev-python/pbs-installer/pbs-installer-2026.6.2.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Installer for Python Build Standalone"
-HOMEPAGE="
- https://pypi.org/project/pbs-installer/
- https://github.com/frostming/pbs-installer/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-# httpx is needed to download builds
-# zstandard is needed to install them
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
- ' 3.11 3.12 3.13)
- <dev-python/httpx-1[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests import-check
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index 7ea448c72fac..69f7fd59a045 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1,4 +1,2 @@
DIST platformdirs-4.10.0.tar.gz 31224 BLAKE2B 4619bb4609da115660b0747237a4675a148df9a112847cb0b620c2567a24f7d7a85c7e443f92f36c3cd619b31dfacf7a5eaa1dd888548c463c48e28dcd22e178 SHA512 ad3c2dd1d65522be5b5cbd7e22447681ee0a9de80fd3716b64205c229995118ace7e9bd0282e98f9d83106df5d1332bcbebea97bc6433156de22d1e1ef2756f4
DIST platformdirs-4.10.0.tar.gz.provenance 9894 BLAKE2B 38fc9d69b639f158adc749eabac2c0495f1ce7b7bcc7ec37b95de7e612302b578abf28bdc05a4c0952cc58cd3a45859b1b099d326b67f08b24c120e702b5e05f SHA512 cc3e135570c28ea1bce8447f823723dec2f8e3384b92a598f1b8a5eb521a496a4f2a384331f21f8d6e0e1a03f6d28e54acac293a665cb454fcd338ce547911bc
-DIST platformdirs-4.9.6.tar.gz 29400 BLAKE2B 8b41e158994241e6aa9338e239afb4d4788b4c710e978f160b35768d53cfdf18379f64beec70d661d9574a833dc0bb41aedd4964f392ce67880e8cc97e917757 SHA512 90030693cbe91f05702902787ac35c61aa4818189dbb5742f1d662b501584bd63d9b978367d826b58ca30d42e8479db86b479a0a6549c66a10a6409b96329ff5
-DIST platformdirs-4.9.6.tar.gz.provenance 9611 BLAKE2B c5dd3f37a1a5e19b4c4589f72df520138ae9701e88ef65ebf1035296cfc2d652de0bc99e3f7063dfe08ee7a6a282a73ad5bb91b68fe2233803facf2aa266dbb1 SHA512 7ee87d1e8643f83801d1662df7f9de33bbe8948f14472d9ea3cbf6e33ae1cbc101b1f7e0073dac7c0ff3408234f4825186cbe862cb221299a65ada7bb6a4f334
diff --git a/dev-python/platformdirs/platformdirs-4.10.0.ebuild b/dev-python/platformdirs/platformdirs-4.10.0.ebuild
index 81be6da30dfd..30529c776b34 100644
--- a/dev-python/platformdirs/platformdirs-4.10.0.ebuild
+++ b/dev-python/platformdirs/platformdirs-4.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~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.9.6.ebuild b/dev-python/platformdirs/platformdirs-4.9.6.ebuild
deleted file mode 100644
index 30529c776b34..000000000000
--- a/dev-python/platformdirs/platformdirs-4.9.6.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 2021-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
-HOMEPAGE="
- https://pypi.org/project/platformdirs/
- https://github.com/tox-dev/platformdirs/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
-
-BDEPEND="
- test? (
- dev-python/appdirs[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-src_configure() {
- grep -q 'build-backend = "hatchling' pyproject.toml ||
- die "Upstream changed build-backend, recheck"
- # write a custom pyproject.toml to ease setuptools bootstrap
- cat > pyproject.toml <<-EOF || die
- [build-system]
- requires = ["flit_core >=3.2,<4"]
- build-backend = "flit_core.buildapi"
-
- [project]
- name = "${PN}"
- version = "${PV}"
- description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
- EOF
- # sigh
- cat > src/platformdirs/version.py <<-EOF || die
- __version__ = version = '${PV}'
- __version_tuple__ = version_tuple = (${PV//./, })
- EOF
-}
diff --git a/dev-python/poetry-core/Manifest b/dev-python/poetry-core/Manifest
index 4237e882fe63..e4741cdb6723 100644
--- a/dev-python/poetry-core/Manifest
+++ b/dev-python/poetry-core/Manifest
@@ -1,6 +1,4 @@
DIST poetry_core-2.3.2.tar.gz 382768 BLAKE2B 5c43d9b21664e80c4073d9a35648a835300eff7cbda4a1c161c10e22009e5e0480c467a4832d3dda3914a1f96a947a9ee9e3951ed041bd1be9f94bca7845c3a6 SHA512 804eca3433659215dda7beb9dd3733881640437d6bf6ef41fe0661a442203c392d92dc81d71e7d22c151d9920ba6e35f088fcdb02e1dfd464bdf9e2ff24d5c7e
DIST poetry_core-2.3.2.tar.gz.provenance 9892 BLAKE2B abeb5aabd1d9ad669489c65f431b6798830cc14beda1cd5ada44c14f2ef13981dd3814e8cbda1915429ad76c091cf04f0317fc851a761c27bf24c00ccb8477df SHA512 97877bb92d950dbdc0fd7bd118e95359238ce96b1dce715362ccf459882c4f2bc13af7703db1ba1b5425a0aa1b7c8955192b25cc17af929bcec3c307213040b7
-DIST poetry_core-2.4.0.tar.gz 413541 BLAKE2B 0f3ca81d311a8421759c1a99189b320f3a1506b9afb788454e1ac8e44d5467bb8b4d3fb00aec90cff8d896f0d704ab199a0d176a178c964072799934a54789ac SHA512 07452eb3d5c640891be58d7d882be327ddb38e4d59499ca2100c854640c174f666e1175e8bb739a31631b5df44b04be0354b7bc59878340cdda3a30f9f2c3dfa
-DIST poetry_core-2.4.0.tar.gz.provenance 9571 BLAKE2B 5dd1a32af4cc5e537e44655b3b762f90d70ebdd6db4041b06614d8ebd136ad93cffd9dee70fb39c5d8e679312e959433db7f14a06c6dfe649d9a6184e93f4529 SHA512 c5e301d8bcb86c4cd57c16c1c27cbfe2b3bd8934a01c4defe50ea61f4ca01473f82ded0517a15ded77daf282c1ce650bce1b829800f41cea5d412baa2de8dd7d
DIST poetry_core-2.4.1.tar.gz 413699 BLAKE2B a4277944756924003e715fdd09e6ae5eddd1510cd0c7282105eeef0f1f9029f2b91e1dcb79fb11bd170f2a24b699f0da34e6b3913f9df17955e16fc341657e00 SHA512 13fbaa062eafa59a3d4ef1dbc681d834bc61e1d3218e908aabc198dea26135a307bc4b34abdb1043d453b9de9755653f1dc261cbd8e508bdce8477cc6ca4ee54
DIST poetry_core-2.4.1.tar.gz.provenance 9524 BLAKE2B 975aedf84fd8e8a88f010d462613131cc1e20b2a7d4a0b99a15c58f2f7fab641b83776fb976b4f91f1f56fbf03aedc23d578eb6909f34c3f228a8033e167305c SHA512 1bd8a0bd785990c214fb51e44e1dd4020b2e799a5ac231c07316b37bcf789fda0fc87da4ca7a79bdf3cba70996ffc796da2f27da3936c010be5eed805f689998
diff --git a/dev-python/poetry-core/poetry-core-2.4.0.ebuild b/dev-python/poetry-core/poetry-core-2.4.0.ebuild
deleted file mode 100644
index b2f449e8ddc5..000000000000
--- a/dev-python/poetry-core/poetry-core-2.4.0.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/python-poetry/poetry-core
-PYTHON_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Poetry PEP 517 Build Backend"
-HOMEPAGE="
- https://github.com/python-poetry/poetry-core/
- https://pypi.org/project/poetry-core/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# check inside vendors/pyproject.toml
-# (note that some are indirect deps)
-RDEPEND="
- >=dev-python/fastjsonschema-2.21.2[${PYTHON_USEDEP}]
- >=dev-python/lark-1.3.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-26.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- $(python_gen_cond_dep '
- dev-python/build[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/tomli-w[${PYTHON_USEDEP}]
- >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}]
- dev-vcs/git
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-src_prepare() {
- # remove vendoring of dependencies
- rm -r src/poetry/core/_vendor || die
- sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
- einfo "Skipping tests on ${EPYTHON} (unported deps)"
- return
- fi
-
- # Poetry expects test to be run inside a git repository, otherwise
- # VCS-related logic doesn't get triggered. An empty repository
- # suffices, though.
- git init || die
-
- local EPYTEST_PLUGINS=( pytest-mock )
- epytest
-}
diff --git a/dev-python/poetry-core/poetry-core-2.4.1.ebuild b/dev-python/poetry-core/poetry-core-2.4.1.ebuild
index 06cd8dfc0edd..b2f449e8ddc5 100644
--- a/dev-python/poetry-core/poetry-core-2.4.1.ebuild
+++ b/dev-python/poetry-core/poetry-core-2.4.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~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/poetry/Manifest b/dev-python/poetry/Manifest
index e1a7d896e635..d417cf680689 100644
--- a/dev-python/poetry/Manifest
+++ b/dev-python/poetry/Manifest
@@ -1,7 +1,3 @@
-DIST poetry-2.3.2.tar.gz 3462586 BLAKE2B 6cb2adcc4b725ad5abe868e60a4ce22a715d498ba9a5b7964cc73387c02615a6acb110630d04e9ac0cc0a9c0d82cc4985bc894880604eb55fa9afa22b0dc3d2e SHA512 3a7206206c454b348fdcbd54ae253e3b56fa2d2d1ffd57efc0270afc8777b08762ab8a11596c092d6ca180d36f3e96b74e5f90ef6bc7aeebad001e45fd1c4d98
-DIST poetry-2.3.2.tar.gz.provenance 9442 BLAKE2B 86298b07138ca0369bb234a43e527067d8f801271a4c8b772fc1dda9820d05351abb9a1d9d016cf584db882747f2c8ed79562b35c5a7f21962253ec2c49dddda SHA512 7a78ad74af4b241954afc4ee4b72f8b5a1bead50dc4c9e35ccf3d3b3299e6673e86a4f8de9264d27975dd2e5eb360f9649e8ff5511d3d35e2757add38bb397cd
-DIST poetry-2.3.3.tar.gz 3465814 BLAKE2B e9447c2cf5e4dc67fee721567433e0a3a5c2a1c9bad95aedc255f50bc3b399ced296b5b71730b7da227449a1937cba122c04378e649177b1e699fc5b69cc6f94 SHA512 ace6168aeb4f4ea89ce6c08f8ad2833baa115ba55e90580275774b2c999efa5299b4390778e74ad871a2c0eb43bf25e08d84f3a5bad97290b5970f3b503162d5
-DIST poetry-2.3.3.tar.gz.provenance 9763 BLAKE2B 90f8dafa4453e8229da3abc190c88bb21c014ebc54a49e33bb38cc1df0dac1d0eadc6f0310d88e079f629e25b5756c4cc65d5c5a386cb604e1813b0b13500e7b SHA512 699413f9722ab6cf1a9d6012f84cc86910aece4fc85c1cd831ba1c0db06363eb84bea31eb0473755596d9d8c018a1f3bd4c8870f0777d7b58ef9e32a9ce3c1c3
DIST poetry-2.3.4.tar.gz 3467967 BLAKE2B 178243c66673b2a447552c3747b0bd4474c486b4f99b104fab5ae37ccfe813a0f2c71b5a5fbaec9f3220a864406f367606d6c55581c91274eeccbabde8ddc82b SHA512 331e8225568e7080d22a4fe85520dedcf73db09aa7638d55e3af52df1104d1f8ea158b76197799ecbc792c4657bd88c87bcb759ab8225cb34aa467178371d503
DIST poetry-2.3.4.tar.gz.provenance 9293 BLAKE2B 7ea6dd2b4aaf8be261b8f8356cfb4e06626befe7140a9a3337d5a4c75ab13142f1888327c0ac6abac73387409b762576c812ea3efde4042cc625f2c77bf44147 SHA512 20dd95f18e65262c2f4e628d4becd572c0e49b8f29395220a3894b4d2f077583c21d70b2f1c383bd458460dbfb1f6fe87b508ec010ae870665ee5f3d44f658ba
DIST poetry-2.4.1.tar.gz 3282327 BLAKE2B 6b4a12d419ef0845acc862b4b4b0f7afe515cc97e303d39d0b936d200bec26ab71f0898107af89160b98ce8aaeebb30b5548c5c86f4e163f1a730bead74fc472 SHA512 71f0a959058fe8c1d2495f486c8f7771de0ec7166fc1ed1d6b7a2813e448b5ffb1c7429c5d5d1930fce33caf3f0f2f5c5a0b9fd199a53c7aa1d2ca6e9d25645b
diff --git a/dev-python/poetry/poetry-2.3.2-r1.ebuild b/dev-python/poetry/poetry-2.3.2-r1.ebuild
deleted file mode 100644
index 835c196b8bed..000000000000
--- a/dev-python/poetry/poetry-2.3.2-r1.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 2023-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=poetry
-PYPI_VERIFY_REPO=https://github.com/python-poetry/poetry
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A frontend for poetry - a python dependency management and packaging tool"
-HOMEPAGE="
- https://python-poetry.org/
- https://github.com/python-poetry/poetry/
- https://pypi.org/project/poetry/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-
-RDEPEND="
- =dev-python/poetry-core-$(ver_cut 1-2)*[${PYTHON_USEDEP}]
- >=dev-python/poetry-plugin-export-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/build-1.2.1[${PYTHON_USEDEP}]
- >=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
- >=dev-python/cleo-2.1.0[${PYTHON_USEDEP}]
- >=dev-python/dulwich-0.25.0[${PYTHON_USEDEP}]
- >=dev-python/fastjsonschema-2.18.0[${PYTHON_USEDEP}]
- >=dev-python/findpython-0.6.2[${PYTHON_USEDEP}]
- >=dev-python/installer-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/keyring-25.1.0[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
- >=dev-python/pbs-installer-2025.06.10[${PYTHON_USEDEP}]
- >=dev-python/pkginfo-1.12[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.26[${PYTHON_USEDEP}]
- >=dev-python/requests-toolbelt-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/shellingham-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/tomlkit-0.11.6[${PYTHON_USEDEP}]
- >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.26.6[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- test? (
- >=dev-python/deepdiff-6.3.1[${PYTHON_USEDEP}]
- >=dev-python/jaraco-classes-3.3.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-3.9[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-EPYTEST_RERUNS=5
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internal test for lockfile being up-to-date
- # Meaningless, also sdist does not include lockfile
- tests/installation/test_installer.py::test_not_fresh_lock
-
- # broken if poetry-plugin-export is installed
- 'tests/console/test_application_command_not_found.py::test_application_command_not_found_messages[x-None]'
-)
-
-src_prepare() {
- # unpin
- sed -e 's:,<[0-9.]*::' -e 's:==\([0-9]\):>=\1:' -i pyproject.toml || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- epytest -m "not network"
-}
diff --git a/dev-python/poetry/poetry-2.3.3.ebuild b/dev-python/poetry/poetry-2.3.3.ebuild
deleted file mode 100644
index 34742102c616..000000000000
--- a/dev-python/poetry/poetry-2.3.3.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 2023-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=poetry
-PYPI_VERIFY_REPO=https://github.com/python-poetry/poetry
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A frontend for poetry - a python dependency management and packaging tool"
-HOMEPAGE="
- https://python-poetry.org/
- https://github.com/python-poetry/poetry/
- https://pypi.org/project/poetry/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- =dev-python/poetry-core-$(ver_cut 1-2)*[${PYTHON_USEDEP}]
- >=dev-python/poetry-plugin-export-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/build-1.2.1[${PYTHON_USEDEP}]
- >=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
- >=dev-python/cleo-2.1.0[${PYTHON_USEDEP}]
- >=dev-python/dulwich-0.25.0[${PYTHON_USEDEP}]
- >=dev-python/fastjsonschema-2.18.0[${PYTHON_USEDEP}]
- >=dev-python/findpython-0.6.2[${PYTHON_USEDEP}]
- >=dev-python/installer-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/keyring-25.1.0[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
- >=dev-python/pbs-installer-2025.06.10[${PYTHON_USEDEP}]
- >=dev-python/pkginfo-1.12[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.26[${PYTHON_USEDEP}]
- >=dev-python/requests-toolbelt-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/shellingham-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/tomlkit-0.11.6[${PYTHON_USEDEP}]
- >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.26.6[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- test? (
- >=dev-python/deepdiff-6.3.1[${PYTHON_USEDEP}]
- >=dev-python/jaraco-classes-3.3.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-3.9[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-EPYTEST_RERUNS=5
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internal test for lockfile being up-to-date
- # Meaningless, also sdist does not include lockfile
- tests/installation/test_installer.py::test_not_fresh_lock
-
- # broken if poetry-plugin-export is installed
- 'tests/console/test_application_command_not_found.py::test_application_command_not_found_messages[x-None]'
-
- # whitespace differences
- # https://github.com/python-poetry/poetry/issues/10796
- 'tests/console/commands/python/test_python_list.py::test_list_poetry_managed[False]'
-)
-
-src_prepare() {
- # unpin
- sed -e 's:,<[0-9.]*::' -e 's:==\([0-9]\):>=\1:' -i pyproject.toml || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- epytest -m "not network"
-}
diff --git a/dev-python/pyatspi/Manifest b/dev-python/pyatspi/Manifest
index e24e86a5dcc8..a22c5d9997da 100644
--- a/dev-python/pyatspi/Manifest
+++ b/dev-python/pyatspi/Manifest
@@ -1,2 +1 @@
-DIST pyatspi-2.58.1.tar.xz 82620 BLAKE2B 1c96e56ebd274b3760f6b3568f03a98894d95c991356a16095b5a9ef3be73490347166aa0fb74abc5141c644eb20b5b94234fb43fb0fe2228f469e6a6e86c9bd SHA512 b1ad8baac2a3fde60f13399372813404ca3296d5a7036dd9896a3b0fe509353bc2b98b93abf42efa2e7ca703d416ec32a77118baeebbecbe962e99ef2a985dd8
DIST pyatspi-2.58.2.tar.xz 82640 BLAKE2B 9b25ba8e6d78bc15b399d2b5507e6a0721dc4bb8899df9a1ae1fd2b415685b49f019bd9e6588f16b8e7f7dedc2d35f258f37544b55c38d0288c75ec242d23a82 SHA512 2e6fb18b3bd4bcad4ee25eb53cf4fade0030a1921a861e0a39c89a492dd382cd20071af93207033d9eaed59ae15319245e3e9221678aba5f8cf1790865057a9c
diff --git a/dev-python/pyatspi/pyatspi-2.58.1.ebuild b/dev-python/pyatspi/pyatspi-2.58.1.ebuild
deleted file mode 100644
index 5d66c3cf4b11..000000000000
--- a/dev-python/pyatspi/pyatspi-2.58.1.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
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org meson python-r1
-
-DESCRIPTION="Python client bindings for D-Bus AT-SPI"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/pyatspi2"
-
-# Note: only some of the tests are GPL-licensed, everything else is LGPL
-LICENSE="LGPL-2 GPL-2+"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
-
-IUSE="test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND="
- ${PYTHON_DEPS}
- >=sys-apps/dbus-1
- >=dev-libs/glib-2.36.0:2
- >=app-accessibility/at-spi2-core-2.46.0[introspection]
- dev-libs/libxml2:2
- >=dev-python/pygobject-2.90.1:3[${PYTHON_USEDEP}]
-"
-RDEPEND="${DEPEND}"
-BDEPEND="
- virtual/pkgconfig
- test? (
- >=dev-libs/atk-2.46.0
- dev-python/dbus-python
- )
-"
-
-src_configure() {
- python_foreach_impl run_in_build_dir \
- meson_src_configure -Denable_tests=$(usex test true false)
-}
-
-src_compile() {
- python_foreach_impl run_in_build_dir meson_src_compile
-}
-
-src_test() {
- python_foreach_impl run_in_build_dir \
- dbus-run-session meson test -C "${BUILD_DIR}" || die
-}
-
-src_install() {
- python_foreach_impl run_in_build_dir meson_src_install
- python_foreach_impl run_in_build_dir python_optimize
-
- einstalldocs
- docinto examples
- dodoc examples/*.py
-}
diff --git a/dev-python/pyatspi/pyatspi-2.58.2.ebuild b/dev-python/pyatspi/pyatspi-2.58.2.ebuild
index 016e6a344e9d..bd0e1273821c 100644
--- a/dev-python/pyatspi/pyatspi-2.58.2.ebuild
+++ b/dev-python/pyatspi/pyatspi-2.58.2.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/pyatspi2"
# Note: only some of the tests are GPL-licensed, everything else is LGPL
LICENSE="LGPL-2 GPL-2+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pyelftools/Manifest b/dev-python/pyelftools/Manifest
index fba94a1f6939..fdc1c295a4c5 100644
--- a/dev-python/pyelftools/Manifest
+++ b/dev-python/pyelftools/Manifest
@@ -1,2 +1 @@
-DIST pyelftools-0.32.gh.tar.gz 15168340 BLAKE2B 4763302d019acf8904b4ca4d8114eacc4c9bb9a7128f040951a190e619ba384967a0999b437e4e32135edc519ea0c0766934c6a4b2a699fd9227b4519a41685e SHA512 798da482d97bb759e9d54aa6c1be80bcfc118b7c0b2011b053564763ba3866946da8ad4b472a0b28c4e71f2b9023130ff044886f5d665d143b4922dbd87ba47e
DIST pyelftools-0.33.gh.tar.gz 15182964 BLAKE2B 221966cfa02a120e6bde768042755cc2fe75f7dbf090ee24588157e8eeed1241b868762bd7119758f4e113cd7160151f1e57edeb477ee8c8109218f8cdd3de74 SHA512 9bd46b2f302599d3c86bd0f221bc3f527f8e5964dc35679e6f1af0106654d073bdaf099fbfa4189288166a06114cff05305a031fbb9ac71c94e81d7b1231c2e3
diff --git a/dev-python/pyelftools/pyelftools-0.32.ebuild b/dev-python/pyelftools/pyelftools-0.32.ebuild
deleted file mode 100644
index 68fc02a890e3..000000000000
--- a/dev-python/pyelftools/pyelftools-0.32.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="pure-Python library for analyzing ELF files and DWARF debugging information"
-HOMEPAGE="
- https://pypi.org/project/pyelftools/
- https://github.com/eliben/pyelftools/
-"
-# PyPI tarball lacks some test files
-SRC_URI="
- https://github.com/eliben/pyelftools/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="public-domain"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-python_test() {
- # readelf_tests often fails due to host `readelf` changing output format
- "${EPYTHON}" test/run_all_unittests.py || die
- "${EPYTHON}" test/run_examples_test.py || die
-}
diff --git a/dev-python/pyelftools/pyelftools-0.33.ebuild b/dev-python/pyelftools/pyelftools-0.33.ebuild
index ee9b084a02ff..4c04c277d8e7 100644
--- a/dev-python/pyelftools/pyelftools-0.33.ebuild
+++ b/dev-python/pyelftools/pyelftools-0.33.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="public-domain"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
python_test() {
# readelf_tests often fails due to host `readelf` changing output format
diff --git a/dev-python/pygithub/Manifest b/dev-python/pygithub/Manifest
index 19282ac45042..5bf0c2eed7e9 100644
--- a/dev-python/pygithub/Manifest
+++ b/dev-python/pygithub/Manifest
@@ -1,2 +1 @@
-DIST pygithub-2.9.0.tar.gz 2592289 BLAKE2B b769f59b538a385e79ed8dd6e84e9d888d784733547c19984b341331e963cecfccb12a0b9bde6485b292f202b9024870ba8d844d64c7ec5c34b9deb945f55ed9 SHA512 f0b3e3cb8f5b9ce5a722a1ea306721f658f7d229c0a0357d003f8207753a7959c93bf23d05f80174f1fe78eaec2e5b16b5f55b6c8aeba26fd74e434395be338b
DIST pygithub-2.9.1.tar.gz 2594989 BLAKE2B 0f06f02bf0a644a571a96c54add12b72ce467e16034d7c932c86da899130b1b743cdb141076a317643e59f7e6922f730c92b701ace0e4183ddca47a35b9a8f62 SHA512 af77ed820d0b783f0dff5d5756a470b7bc8d56cb47d9fa3cbc5d99d5d7b5d3bf15be233780914ad91487e446aff9d9d582d8421f6190f7b8176a216ddcae333a
diff --git a/dev-python/pygithub/pygithub-2.9.0.ebuild b/dev-python/pygithub/pygithub-2.9.0.ebuild
deleted file mode 100644
index 261750da670b..000000000000
--- a/dev-python/pygithub/pygithub-2.9.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_PN=PyGithub
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python library to access the Github API v3"
-HOMEPAGE="
- https://github.com/PyGithub/PyGithub/
- https://pypi.org/project/PyGithub/
-"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-# cryptography via pyjwt[crypto]
-RDEPEND="
- dev-python/cryptography[${PYTHON_USEDEP}]
- >=dev-python/pyjwt-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/pynacl-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.14.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/responses[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-subtests )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
diff --git a/dev-python/pygobject/pygobject-3.56.3.ebuild b/dev-python/pygobject/pygobject-3.56.3.ebuild
index c7537b9b58bb..f88e649643cc 100644
--- a/dev-python/pygobject/pygobject-3.56.3.ebuild
+++ b/dev-python/pygobject/pygobject-3.56.3.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/pyhamcrest/pyhamcrest-2.1.0.ebuild b/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild
index 85fba5625358..31776d0cbbfa 100644
--- a/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild
+++ b/dev-python/pyhamcrest/pyhamcrest-2.1.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -31,6 +31,7 @@ BDEPEND="
distutils_enable_sphinx doc \
dev-python/sphinx-rtd-theme
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
@@ -41,12 +42,13 @@ python_test() {
tests/hamcrest_unit_test/number/iscloseto_test.py::IsNumericTest::test_numpy_numeric_type_complex
tests/hamcrest_unit_test/number/iscloseto_test.py::IsNumericTest::test_numpy_numeric_type_float
)
- [[ ${EPYTHON} == python3.14 ]] && EPYTEST_DESELECT+=(
- # assumes asyncio event loop already exists
- tests/hamcrest_unit_test/core/future_test.py::FutureExceptionTest
- )
+ if [[ ${EPYTHON} == python3.1[45] ]]; then
+ EPYTEST_DESELECT+=(
+ # assumes asyncio event loop already exists
+ tests/hamcrest_unit_test/core/future_test.py::FutureExceptionTest
+ )
+ fi
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest
}
diff --git a/dev-python/pypdf/pypdf-6.12.2.ebuild b/dev-python/pypdf/pypdf-6.12.2.ebuild
index 8356f2373919..0395c87cbe04 100644
--- a/dev-python/pypdf/pypdf-6.12.2.ebuild
+++ b/dev-python/pypdf/pypdf-6.12.2.ebuild
@@ -25,7 +25,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
BDEPEND="
test? (
diff --git a/dev-python/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index d0d84f930dff..ebec4d80cedc 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -1,11 +1,3 @@
-DIST pypy-exe-7.3.22-1.amd64-musl.gpkg.tar 13025280 BLAKE2B 83dba63a8cc348b308f3ab3638678e8021162f6959d0bde8fe5cbe9575c7efd63c2f54891eaf51998bad87005ff0fba7807d7f19c5e40c8cd74cf2c01e4ead3c SHA512 005b747e81eadbde25c832a8584358fdd13155a7c300435ec77ec55fd24ac7cdbe623e57c8414032dd926b6ca9934878ce370edfb529279b6cf653f46b5f6a55
-DIST pypy-exe-7.3.22-1.amd64.gpkg.tar 13025280 BLAKE2B 3316aae1cd1b381f6dd7d040ef60ebfdbb8fd71293357e374303fe93a9715628a8e68f6c5e4b26a924dee804dda46640c377f71df56d2ebbd728324e1f2acabd SHA512 ac806071453fc74b605551371e3fcf20aee1f871f17e6674abdc49155146bf449296bb72312c5d0ee5ef16fef46fbb7124ea5f4cfeca5eaf0c4ce13c0acb5126
-DIST pypy-exe-7.3.22-1.arm64-musl.gpkg.tar 11438080 BLAKE2B 2df11ab4b88f6602d96f359907c510043c03b2988d8b64f5b20e665de8720e3cccbfff0877240c6a21f8f1bfc5d4b9ff1675b562eb97d7370d69033e153f1dbb SHA512 c8dce7df92648ce19b66bfd7d510f3605b1e8e32ecb4df052dd2f9cf1d1dd3bb4bd7a19aa7cb7e61db9e100a988d6ea661b044c9a1c82d500a1a84aa8378e355
-DIST pypy-exe-7.3.22-1.arm64.gpkg.tar 11325440 BLAKE2B 639bd60401d32df6f4747d35604d825201ac1e82a8c02bbf387e1f2b8d9942eeff32bb2e6992d911c0b717e8a307332640729f1efbef2c6eea7c3d8193fd6547 SHA512 579bf7cf9cc637406717f62f96c8bbc456ec3aba16b9cdf6f0148487b82a805a96b173f94693f97d9f4452db321d20b9a25fa4b524d34403f87b279be9a9eff3
-DIST pypy-exe-7.3.22-1.ppc64le-musl.gpkg.tar 6881280 BLAKE2B b0da0f23eda1071b43942ed26e085b55294fe3e5b4330aaf86433cbf1ec1ed39b91de5537a221a17b76801a1b29ab72cbe567fb8f7905b0242c9335b17e77433 SHA512 eddc6f84e76e679eb7c8e946b565219a8037c801231f13ed2488e895b3df9dd4d4486837cd75fbd87425d48b18b0d5c6ccd3db79c30c473c0dfa3c08dfbb6bce
-DIST pypy-exe-7.3.22-1.ppc64le.gpkg.tar 11458560 BLAKE2B 619522d2566ae50958f801cf5ea195e6ca037e14afc4a71d5771c348e6e109ed7ecf626149e6fdf7547c2b0d5ced357f993f27a1df89a9d4b015a669bafe4c0b SHA512 0d63bcc1ead8dd46f9123abbc521be14cab3fc216615a71fe2c035dc226fe02aa371a5524b71f1f1f37da9020a250d903a0b3bc1da668935f37b63e59ff3657a
-DIST pypy-exe-7.3.22-1.x86-musl.gpkg.tar 10168320 BLAKE2B c1f60078e1ad4dfb57d4b3594e7ff9b35f907b3c0257b9cdc603ebf93caf14b4c1c29471bec384647da25177cf2e023f018dde8eb5722b901fe65a4a43a4c749 SHA512 cce4ca148c85f7829389f11eca64d175594bfb8088fb9b95d9cbaccc888647f02412f184e9a3733be0e506ba045398da39867e89178c0dbf856e534977102c75
-DIST pypy-exe-7.3.22-1.x86.gpkg.tar 10117120 BLAKE2B a7842ef578f8befe3bb4d0a9b3ca88534d6e7b8ee5af9b2e4389a8b8a4907b7a57af04bbe0da8628aa178ab588a7192ef82dc0e64769125a3a9395cdd8dfb8f4 SHA512 f4e4540b4911c3ae5804abee9e01e4814b40d42f42fc973b4538593639b73dc987c6fd153207c1d930259e818f2db718f9c144d3a1871489024341e423c3c1ed
DIST pypy-exe-7.3.23-1.amd64-musl.gpkg.tar 13025280 BLAKE2B 4dd9ff3512481272fba5cccf7ebb52a285aa0b69fb19bf44ef4103579cb71da74660e20f0a3c4807be0584b537c10255b9a45e63a77f273807f4f4e1d0f8faca SHA512 15011be1684e367de930f666009e9ae6847d5847617d4befabe4a6f4260b647dc5dc6ffcd3c77a4b310587deb21e8224a4952ef7a45c9aebf8a23ccc9fed0320
DIST pypy-exe-7.3.23-1.amd64.gpkg.tar 13045760 BLAKE2B 26cf9370d2824efc5852e1f5c4014b1b2d97e5cda080d9a497971b9d251e4e74162a901b51548eaa840d547118526f0f6e06e69817b84230023dbf8e17f54d84 SHA512 0d3f75b9960f0a5d143ad7411c92f46bebf5f0de4c4ca3c23946f137e56b067c20f7bb5b78567532187f0e980f92822b92e5da4477f9e0a4a25237d342189712
DIST pypy-exe-7.3.23-1.arm64-musl.gpkg.tar 11315200 BLAKE2B b2b039d7ea22b59972a3a16f5b9533974b7c12c68e21bbbdf7259cf2047c83981110d93d4b522bc8937f12a9259f40e0d2814b2c1def2253df22bf5e6242fe11 SHA512 61401763b26e6e89919edd7a20e9a096687e60e4023d514546420b60ba40a4937daff1f2d43ca2af662c15260d07911b450c4a5306ce9f8d9f2b1038b78f8ffb
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.22.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.22.ebuild
deleted file mode 100644
index a66da0908693..000000000000
--- a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.22.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit pax-utils unpacker
-
-MY_P=pypy-exe-${PV}-1
-DESCRIPTION="PyPy executable (pre-built version)"
-HOMEPAGE="
- https://pypy.org/
- https://github.com/pypy/pypy/
-"
-SRC_URI="
- elibc_glibc? (
- amd64? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/amd64/pypy-exe/${MY_P}.amd64.gpkg.tar
- )
- arm64? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/arm64/pypy-exe/${MY_P}.arm64.gpkg.tar
- )
- ppc64? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/ppc64le/pypy-exe/${MY_P}.ppc64le.gpkg.tar
- )
- x86? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/x86/pypy-exe/${MY_P}.x86.gpkg.tar
- )
- )
- elibc_musl? (
- amd64? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/amd64-musl/pypy-exe/${MY_P}.amd64-musl.gpkg.tar
- )
- arm64? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/arm64-musl/pypy-exe/${MY_P}.arm64-musl.gpkg.tar
- )
- ppc64? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/ppc64le-musl/pypy-exe/${MY_P}.ppc64le-musl.gpkg.tar
- )
- x86? (
- https://distfiles.gentoo.org/pub/proj/python/binpkg/x86-musl/pypy-exe/${MY_P}.x86-musl.gpkg.tar
- )
- )
-"
-S="${WORKDIR}"
-
-LICENSE="MIT"
-SLOT="${PV%_p*}"
-KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-
-# sys-devel/gcc for libgcc_s.so
-RDEPEND="
- app-arch/bzip2:0/1
- dev-libs/expat:0/0
- dev-libs/libffi:0/8
- sys-libs/ncurses:0/6
- >=virtual/zlib-1.1.3:0/1
- virtual/libintl:0/0
- elibc_glibc? (
- sys-devel/gcc
- >=sys-libs/glibc-2.35
- )
- !dev-python/pypy-exe:${SLOT}
-"
-
-QA_PREBUILT="
- usr/lib/pypy2.7/pypy-c-${SLOT}
-"
-
-src_install() {
- insinto /
- doins -r */image/usr
- fperms +x "/usr/lib/pypy2.7/pypy-c-${SLOT}"
- pax-mark m "${ED}/usr/lib/pypy2.7/pypy-c-${SLOT}"
-}
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.23.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.23.ebuild
index 3efe4577874e..a66da0908693 100644
--- a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.23.ebuild
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.23.ebuild
@@ -45,7 +45,7 @@ S="${WORKDIR}"
LICENSE="MIT"
SLOT="${PV%_p*}"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
# sys-devel/gcc for libgcc_s.so
RDEPEND="
diff --git a/dev-python/pypy-exe/Manifest b/dev-python/pypy-exe/Manifest
index b87a6ee87fbc..156812a602b7 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,4 +1,2 @@
-DIST pypy2.7-gentoo-patches-7.3.22.tar.xz 5312 BLAKE2B e407ac29b598a20f930e6ea0c6dbbedcb169b045f9bc2a40cb3e9ef9f32af3be647217ac00434fc2f109280de07c468329515b0ac655346052217e5455c84261 SHA512 3e88b7b5635f43a9ce141bf4ca30654bd4dd15f1f39a41ca219ad855700af1a9dd4a7ec512bab922b64f4f8c3930f36de1a78ed779e769f891592a0fb4c0fcaa
DIST pypy2.7-gentoo-patches-7.3.23.tar.xz 5316 BLAKE2B 923494c49ef09b1929ba1986891a08f23e4343c44eac792a688ac88b48d21770101ca50fcdf3986c686adefb24fbf58aef674ec608feea775984ab8a16385cb6 SHA512 c1d07caef19b77cb4950d56c1de8079900fc21728061f8620210932d2cd85f701407ce7b9947d2ef044211d1ffe8b77ce445da3c5aef69321b45e7ab8550dee3
-DIST pypy2.7-v7.3.22-src.tar.bz2 21025542 BLAKE2B 6bf17c72cc4d8d1ba7db9d726b29f15d1e7b04e767dec5399c0831eb3211256e9e981b430e02071522c4bc23cca0618e5b3fb1cb72f22ec39540a20fd96a8fa7 SHA512 482020a7a40e5642d88d1474979d733b079dc65d75f5d0a431c6ee2a8136cc101be42dabe51063e9f376c606f62559c6ab681dc65cd0abb5fef4e8d69931ad39
DIST pypy2.7-v7.3.23-src.tar.bz2 21023543 BLAKE2B 7638e5aecd30d9c2c9ab22b1ab9a43331685885ee90ebfda8d2a88da34e4b0b998bd967eed30b309110b9d40b14df75f24a7e9219c7383b542602869ee1a12d9 SHA512 3750fc9c5309baa7627d00a77b4b2b1e0d755b75841acd0fcee484bc332f1e9ed9c1f33d2f4800777f20ea8849356f39c84167f96b9ebfdd7e479798d62eac06
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.22.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.22.ebuild
deleted file mode 100644
index d94134eda1e1..000000000000
--- a/dev-python/pypy-exe/pypy-exe-7.3.22.ebuild
+++ /dev/null
@@ -1,189 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit check-reqs pax-utils toolchain-funcs
-
-PYVER=2.7
-PYPY_PV=${PV%_p*}
-
-MY_P=pypy${PYVER}-v${PYPY_PV/_}
-PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_}"
-
-DESCRIPTION="PyPy executable (build from source)"
-HOMEPAGE="
- https://pypy.org/
- https://github.com/pypy/pypy/
-"
-SRC_URI="
- https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
- https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
- https://distfiles.gentoo.org/pub/proj/python/patchsets/pypy${PYVER}/${PATCHSET}.tar.xz
-"
-S="${WORKDIR}/${MY_P}-src"
-
-LICENSE="MIT"
-SLOT="${PYPY_PV}"
-KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
-
-DEPEND="
- >=virtual/zlib-1.1.3:=
- dev-libs/libffi:0=
- virtual/libintl:0=
- dev-libs/expat:0=
- bzip2? ( app-arch/bzip2:0= )
- ncurses? ( sys-libs/ncurses:0= )
-"
-RDEPEND="
- ${DEPEND}
- !dev-python/pypy-exe-bin:${PYPY_PV}
-"
-# don't enforce the dep on dev-python/pypy with USE=low-memory
-# since it's going to cause circular dep with unhelpful error message
-BDEPEND="
- !low-memory? (
- || (
- dev-lang/pypy:2.7
- dev-python/pypy
- dev-lang/python:2.7
- )
- )
-"
-
-check_env() {
- if ! has_version -b dev-lang/pypy:2.7 &&
- ! has_version -b dev-python/pypy
- then
- if use low-memory; then
- eerror "USE=low-memory requires (a prior version of) dev-python/pypy"
- eerror "installed."
- else
- ewarn "CPython 2.7 will be used to perform the translation. Upstream"
- ewarn "recommends using (a prior version of) dev-python/pypy instead."
- fi
- elog "You can install a prebuilt version of PyPy first using e.g.:"
- elog " $ emerge -1v dev-python/pypy dev-python/pypy-exe-bin"
-
- if use low-memory; then
- die "dev-python/pypy needs to be installed for USE=low-memory"
- fi
- fi
-
- if use low-memory; then
- CHECKREQS_MEMORY="1750M"
- use amd64 && CHECKREQS_MEMORY="3500M"
- else
- CHECKREQS_MEMORY="3G"
- use amd64 && CHECKREQS_MEMORY="6G"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && check_env
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && check_env
-}
-
-src_prepare() {
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
- default
-}
-
-src_configure() {
- tc-export CC
-
- local jit_backend
- if use jit; then
- jit_backend='--jit-backend='
-
- # We only need the explicit sse2 switch for x86.
- # On other arches we can rely on autodetection which uses
- # compiler macros. Plus, --jit-backend= doesn't accept all
- # the modern values...
-
- if use x86; then
- if use cpu_flags_x86_sse2; then
- jit_backend+=x86
- else
- jit_backend+=x86-without-sse2
- fi
- else
- jit_backend+=auto
- fi
- fi
-
- local args=(
- --no-shared
- $(usex jit -Ojit -O2)
-
- ${jit_backend}
-
- pypy/goal/targetpypystandalone
- )
-
- # Avoid linking against libraries disabled by use flags
- local opts=(
- bzip2:bz2
- ncurses:_minimal_curses
- )
-
- local opt
- for opt in "${opts[@]}"; do
- local flag=${opt%:*}
- local mod=${opt#*:}
-
- args+=(
- $(usex ${flag} --withmod --withoutmod)-${mod}
- )
- done
-
- local interp
- if use low-memory ||
- has_version -b dev-lang/pypy:2.7 ||
- has_version -b dev-python/pypy
- then
- einfo "Using already-installed PyPy to perform the translation."
- interp=( pypy )
- if use low-memory; then
- local -x PYPY_GC_MAX_DELTA=200MB
- interp+=( --jit loop_longevity=300 )
- fi
- else
- einfo "Using CPython 2.7 to perform the translation."
- interp=( python2.7 )
-
- # reuse bundled pycparser to avoid external dep
- mkdir -p "${T}"/pymod/cffi || die
- : > "${T}"/pymod/cffi/__init__.py || die
- cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die
- local -x PYTHONPATH=${T}/pymod:${PYTHONPATH}
- fi
-
- # translate into the C sources
- # we're going to build them ourselves since otherwise pypy does not
- # free up the unneeded memory before spawning the compiler
- set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
- echo -e "\033[1m${@}\033[0m"
- "${@}" || die "translation failed"
-}
-
-src_compile() {
- emake -C "${T}"/usession*-0/testing_1
-}
-
-src_install() {
- local dest=/usr/lib/pypy${PYVER}
- exeinto "${dest}"
- newexe "${T}"/usession*-0/testing_1/pypy-c pypy-c-${PYPY_PV}
- insinto "${dest}"/include/${PYPY_PV}
- doins include/pypy_*
- pax-mark m "${ED}${dest}/pypy-c-${PYPY_PV}"
-}
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.23.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.23.ebuild
index be5539ebfca9..d94134eda1e1 100644
--- a/dev-python/pypy-exe/pypy-exe-7.3.23.ebuild
+++ b/dev-python/pypy-exe/pypy-exe-7.3.23.ebuild
@@ -25,7 +25,7 @@ S="${WORKDIR}/${MY_P}-src"
LICENSE="MIT"
SLOT="${PYPY_PV}"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
DEPEND="
diff --git a/dev-python/pyside/pyside-6.9999.ebuild b/dev-python/pyside/pyside-6.9999.ebuild
index 3bbe9443427b..8db74dde4b70 100644
--- a/dev-python/pyside/pyside-6.9999.ebuild
+++ b/dev-python/pyside/pyside-6.9999.ebuild
@@ -13,7 +13,7 @@ LLVM_COMPAT=( {18..22} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_EXT=1
-inherit distutils-r1 llvm-r2 multiprocessing ninja-utils qmake-utils virtualx
+inherit distutils-r1 llvm-r2 multiprocessing ninja-utils qt-utils virtualx
MY_PN=${PN}-setup-everywhere-src
MY_P=${MY_PN}-${PV}
diff --git a/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild b/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild
index 1c8256b5d571..cbcd5c554dd5 100644
--- a/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild
+++ b/dev-python/pytest-tornasync/pytest-tornasync-0.6.0_p2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -30,6 +30,8 @@ RDEPEND="
>=dev-python/tornado-5.0[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
distutils_enable_tests pytest
python_prepare_all() {
@@ -38,8 +40,3 @@ python_prepare_all() {
distutils-r1_python_prepare_all
}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p pytest_tornasync.plugin
-}
diff --git a/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild b/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild
index 8e8da622afda..cf1faac20960 100644
--- a/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild
+++ b/dev-python/pytest-trio/pytest-trio-0.8.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -24,12 +24,9 @@ RDEPEND="
>=dev-python/pytest-7.2.0[${PYTHON_USEDEP}]
>=dev-python/trio-0.22.0[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- >=dev-python/hypothesis-3.64[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( "${PN}" hypothesis )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
distutils_enable_tests pytest
distutils_enable_sphinx docs/source \
dev-python/attrs \
@@ -46,11 +43,3 @@ python_prepare_all() {
mv pytest_trio/_tests/conftest.py conftest.py || die
distutils-r1_python_prepare_all
}
-
-python_test() {
- # disable autoloading pytest-asyncio in nested pytest calls
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # since we disabled autoloading, force loading pytest-trio
- local -x PYTEST_PLUGINS=pytest_trio.plugin
- epytest
-}
diff --git a/dev-python/python-discovery/python-discovery-1.4.3.ebuild b/dev-python/python-discovery/python-discovery-1.4.3.ebuild
index 984af8461c7b..1413a5bdb586 100644
--- a/dev-python/python-discovery/python-discovery-1.4.3.ebuild
+++ b/dev-python/python-discovery/python-discovery-1.4.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
>=dev-python/filelock-3.15.4[${PYTHON_USEDEP}]
diff --git a/dev-python/python-multipart/Manifest b/dev-python/python-multipart/Manifest
index 9e46c37f1648..051d2c7deb4c 100644
--- a/dev-python/python-multipart/Manifest
+++ b/dev-python/python-multipart/Manifest
@@ -1,3 +1,2 @@
-DIST python-multipart-0.0.29.gh.tar.gz 123649 BLAKE2B d8ed40f744b16879dfe617fc7d4f5b6e5ecf4a9d09c95b69569b5c12e11f07f750b7741d9c6096015a1947d742ef78ab3e107bbc25727651428a707b685efbf2 SHA512 37a20b6fdb26fda1513e6911bbcc699b169a3317bd30c37536a0c3bb3333500cbca432f345c8e199d36e7134a152a9bf471dd3073e3aa48964281fb12c56f8c0
DIST python-multipart-0.0.30.gh.tar.gz 113838 BLAKE2B 7fef19cb94d0dc5957783c829f7d8719bfba1e31fe70715f0fc5d758088eee80a8d7d5022a232294a07dfcec2d0353b4f30591e0213446954fd036acb1230058 SHA512 bc1794c2c15b71378d631fe6720541c9abb2a073dae1cab4119388bc4ab691ce2d2bdd2019317c10b33e5071275f91bb8d6afb675241cf96982c3d28a65792a4
DIST python-multipart-0.0.32.gh.tar.gz 132024 BLAKE2B e7097b56281aaa326e7202eede71c7b879f19032c7e6bb542b8359b77da8f442fe43fcee026c195b832848396a925482e979aba2ff53b5870258cc130e65b273 SHA512 58bdfabec8a6840fccdfc759cf57f88dabf9e2cec06499ba23c8690a1a73a308e8789b17a9559a9e0a0eda2c09c5b5755e4336b65ff9d173d68dbab649476ba1
diff --git a/dev-python/python-multipart/python-multipart-0.0.29.ebuild b/dev-python/python-multipart/python-multipart-0.0.29.ebuild
deleted file mode 100644
index baf480839387..000000000000
--- a/dev-python/python-multipart/python-multipart-0.0.29.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2022-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="A streaming multipart parser for Python"
-HOMEPAGE="
- https://github.com/Kludex/python-multipart/
- https://pypi.org/project/python-multipart/
-"
-SRC_URI="
- https://github.com/Kludex/python-multipart/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-BDEPEND="
- test? (
- dev-python/pyyaml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not install the backwards compatibility package
- # we're patching revdeps instead
- rm -r multipart || die
-}
diff --git a/dev-python/python-multipart/python-multipart-0.0.30.ebuild b/dev-python/python-multipart/python-multipart-0.0.30.ebuild
index cbb77fc73024..baf480839387 100644
--- a/dev-python/python-multipart/python-multipart-0.0.30.ebuild
+++ b/dev-python/python-multipart/python-multipart-0.0.30.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/python-tlsh/metadata.xml b/dev-python/python-tlsh/metadata.xml
index 11c83879e108..b276001fac22 100644
--- a/dev-python/python-tlsh/metadata.xml
+++ b/dev-python/python-tlsh/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>t@laumann.xyz</email>
+ <maintainer type="person">
+ <email>laumann@gentoo.org</email>
<name>Thomas Bracht Laumann Jespersen</name>
</maintainer>
- <maintainer type="person" proxied="proxy">
+ <maintainer type="person">
<email>sam@gentoo.org</email>
<name>Sam James</name>
</maintainer>
diff --git a/dev-python/pytools/pytools-2026.1.1.ebuild b/dev-python/pytools/pytools-2026.1.1.ebuild
index d022461743fb..1a4f092bd1f3 100644
--- a/dev-python/pytools/pytools-2026.1.1.ebuild
+++ b/dev-python/pytools/pytools-2026.1.1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
# NB: numpy are an "extra" (optional) deps
RDEPEND="
diff --git a/dev-python/quart/quart-0.20.0.ebuild b/dev-python/quart/quart-0.20.0.ebuild
index dcc451ce92a1..84fadc2bad00 100644
--- a/dev-python/quart/quart-0.20.0.ebuild
+++ b/dev-python/quart/quart-0.20.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
@@ -36,15 +36,18 @@ RDEPEND="
"
BDEPEND="
test? (
- dev-python/hypothesis[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/python-dotenv[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( hypothesis pytest-asyncio )
distutils_enable_tests pytest
python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -o addopts= -p asyncio
+ local EPYTEST_DESELECT=(
+ # https://github.com/pallets/quart/issues/465
+ 'tests/test_blueprints.py::test_cli_blueprints[cli_group2-args2]'
+ )
+
+ epytest -o addopts=
}
diff --git a/dev-python/redis/Manifest b/dev-python/redis/Manifest
index 5cbeefd2e180..a76ee40c1013 100644
--- a/dev-python/redis/Manifest
+++ b/dev-python/redis/Manifest
@@ -1,4 +1,2 @@
-DIST redis-py-7.4.0.gh.tar.gz 5199993 BLAKE2B d0c9beb4b7d32709fb447de7f9dc68f851621ceb2dce57461af98590726080a85e3226cdc68da3086a007b59323d5834559194aad40ffbb80408b646ced4716b SHA512 e3366c6bbbd98d4b3e238a06a033bd830ca65105c9aa9533e4e4805feaa41eae3130a7af9950943108704de90a8ad6aa855ec1948d2e4af901af05ef12152b61
DIST redis-py-7.4.1.gh.tar.gz 5201318 BLAKE2B 77fe9d5680cf0a9a70822d018c8af19c7b0222b4efd32fa0b5d5bc9a95eb9a0239cecb269940dacf41cc3bc86af1b1eec7fec4f338d9a6b0fdf87e1473f8c39b SHA512 ddce69580ee42c2622794f7bf94fb9170d2f3ac03041ac3ff0c5cc56b87d6f1876335e7304d7c22dac402bf7318f088e4a990bc2be818b54568959afcabc73bf
-DIST redis-py-8.0.0.gh.tar.gz 5392468 BLAKE2B 437fb893c5af23b6a0440b62606e25b78b50c4f2c8b87a5885d3a4c6105f3e2a92045b92d2c82cb6a05d41337bc1e74166b9ff119218af28f0ffb661d5af3b79 SHA512 bbf726e8d639e7a9e1cf7ee62cbee588e69426132ea6062a1bd3983b4771932d5f5fc4f6539f1b0b519a8cfd37399d6b01dc3b9cf5d9ca427f077298cd3a857d
DIST redis-py-8.0.1.gh.tar.gz 5407455 BLAKE2B 13345dae770f997c334df82930f0e78e2448798e2564b4a921e36e0c10999eb23244e12ffaf4bc74783ee3514c4bba01534053b06eb62d73063ac6a606667ec4 SHA512 76dde110fe52a8bf7fb24f3619ee12ae0818bb045918f5d68cecfc5b19b9f9abc2b206428161b895abebf6a52fa81788d3802f8367b4b6b800e1f24c52009165
diff --git a/dev-python/redis/redis-7.4.0.ebuild b/dev-python/redis/redis-7.4.0.ebuild
deleted file mode 100644
index a292e6623d24..000000000000
--- a/dev-python/redis/redis-7.4.0.ebuild
+++ /dev/null
@@ -1,122 +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
-
-MY_P=redis-py-${PV/_beta/b}
-DESCRIPTION="Python client for Redis key-value store"
-HOMEPAGE="
- https://github.com/redis/redis-py/
- https://pypi.org/project/redis/
-"
-SRC_URI="
- https://github.com/redis/redis-py/archive/v${PV/_beta/b}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv ~sparc x86"
-
-BDEPEND="
- test? (
- dev-db/redis
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/xxhash[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Flaky test
- tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock
- tests/test_background.py::TestBackgroundScheduler::test_run_recurring
- # require extra redis modules that apparently aren't packaged
- # on Gentoo
- tests/{,test_asyncio/}test_bloom.py
- tests/{,test_asyncio/}test_graph.py
- tests/{,test_asyncio/}test_json.py
- tests/{,test_asyncio/}test_timeseries.py
- # apparently available only in "Redis Stack 7.2 RC3 or later"
- tests/test_commands.py::TestRedisCommands::test_tfunction_load_delete
- tests/test_commands.py::TestRedisCommands::test_tfunction_list
- tests/test_commands.py::TestRedisCommands::test_tfcall
- # TODO
- tests/test_commands.py::TestRedisCommands::test_lolwut
- tests/test_commands.py::TestRedisCommands::test_module
- tests/test_commands.py::TestRedisCommands::test_module_loadex
- tests/test_commands.py::TestRedisCommands::test_zrank_withscore
- tests/test_commands.py::TestRedisCommands::test_zrevrank_withscore
- tests/test_commands.py::TestRedisCommands::test_xinfo_consumers
- tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrank_withscore
- tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrevrank_withscore
- tests/test_asyncio/test_commands.py::TestRedisCommands::test_xinfo_consumers
- tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_socket_error[pool-hiredis-listen]
- # requires sentinel?
- tests/{,test_asyncio/}test_sentinel.py
- # require REDIS_ENDPOINTS_CONFIG_PATH, except there's zero documentation
- # or examples of what this is
- tests/test_scenario/test_hitless_upgrade.py::TestPushNotifications
- tests/test_scenario/test_maint_notifications.py::TestPushNotifications
- # requires opentelemetry (with some unpackaged stuff)
- tests/test_observability/test_provider.py::TestOTelProviderManagerGetMeterProvider
- tests/test_asyncio/test_observability/test_recorder.py::TestObservableGaugeIntegration
- )
- local EPYTEST_IGNORE=(
- # fails over missing certs, we don't do cluster anyway
- tests/test_asyncio/test_cluster.py
- # require redis_entraid
- tests/test_asyncio/test_credentials.py
- tests/test_credentials.py
- # pybreaker
- tests/test_asyncio/test_multidb
- tests/test_asyncio/test_scenario
- tests/test_multidb
- tests/test_scenario
- # cluster, not marked properly
- tests/maint_notifications/test_cluster_maint_notifications_handling.py
- # opentelemetry
- tests/test_observability/test_recorder.py
- )
-
- # TODO: try to run more servers?
- epytest -m "not redismod and not onlycluster and not replica and not ssl"
-}
-
-src_test() {
- local redis_pid="${T}"/redis.pid
- local redis_port=6379
-
- if has_version ">=dev-db/redis-7"; then
- local extra_conf="
- enable-debug-command yes
- enable-module-command yes
- "
- fi
-
- # Spawn Redis itself for testing purposes
- einfo "Spawning Redis"
- einfo "NOTE: Port ${redis_port} must be free"
- "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
- daemonize yes
- pidfile ${redis_pid}
- port ${redis_port}
- bind 127.0.0.1 ::1
- ${extra_conf}
- EOF
-
- # Run the tests
- distutils-r1_src_test
-
- # Clean up afterwards
- kill "$(<"${redis_pid}")" || die
-}
diff --git a/dev-python/redis/redis-7.4.1.ebuild b/dev-python/redis/redis-7.4.1.ebuild
index 2e9bb8a14497..a292e6623d24 100644
--- a/dev-python/redis/redis-7.4.1.ebuild
+++ b/dev-python/redis/redis-7.4.1.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
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/redis/redis-8.0.0.ebuild b/dev-python/redis/redis-8.0.0.ebuild
deleted file mode 100644
index 07bffe4d7f29..000000000000
--- a/dev-python/redis/redis-8.0.0.ebuild
+++ /dev/null
@@ -1,125 +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
-
-MY_P=redis-py-${PV/_beta/b}
-DESCRIPTION="Python client for Redis key-value store"
-HOMEPAGE="
- https://github.com/redis/redis-py/
- https://pypi.org/project/redis/
-"
-SRC_URI="
- https://github.com/redis/redis-py/archive/v${PV/_beta/b}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
-
-BDEPEND="
- test? (
- dev-db/redis
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/xxhash[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Flaky test
- tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock
- tests/test_background.py::TestBackgroundScheduler::test_run_recurring
- # require extra redis modules that apparently aren't packaged
- # on Gentoo
- tests/{,test_asyncio/}test_bloom.py
- tests/{,test_asyncio/}test_graph.py
- tests/{,test_asyncio/}test_json.py
- tests/{,test_asyncio/}test_timeseries.py
- # apparently available only in "Redis Stack 7.2 RC3 or later"
- tests/test_commands.py::TestRedisCommands::test_tfunction_load_delete
- tests/test_commands.py::TestRedisCommands::test_tfunction_list
- tests/test_commands.py::TestRedisCommands::test_tfcall
- # TODO
- tests/test_commands.py::TestRedisCommands::test_lolwut
- tests/test_commands.py::TestRedisCommands::test_module
- tests/test_commands.py::TestRedisCommands::test_module_loadex
- tests/test_commands.py::TestRedisCommands::test_zrank_withscore
- tests/test_commands.py::TestRedisCommands::test_zrevrank_withscore
- tests/test_commands.py::TestRedisCommands::test_xinfo_consumers
- tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrank_withscore
- tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrevrank_withscore
- tests/test_asyncio/test_commands.py::TestRedisCommands::test_xinfo_consumers
- tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_socket_error[pool-hiredis-listen]
- # requires sentinel?
- tests/{,test_asyncio/}test_sentinel.py
- # require REDIS_ENDPOINTS_CONFIG_PATH, except there's zero documentation
- # or examples of what this is
- tests/test_scenario/test_hitless_upgrade.py::TestPushNotifications
- tests/test_scenario/test_maint_notifications.py::TestPushNotifications
- # requires opentelemetry (with some unpackaged stuff)
- tests/test_observability/test_provider.py::TestOTelProviderManagerGetMeterProvider
- tests/test_asyncio/test_observability/test_recorder.py::TestObservableGaugeIntegration
- # not marked properly
- tests/test_cache.py::TestSSLCache
- tests/test_cache.py::TestSentinelCache
- )
- local EPYTEST_IGNORE=(
- # fails over missing certs, we don't do cluster anyway
- tests/test_asyncio/test_cluster.py
- # require redis_entraid
- tests/test_asyncio/test_credentials.py
- tests/test_credentials.py
- # pybreaker
- tests/test_asyncio/test_multidb
- tests/test_asyncio/test_scenario
- tests/test_multidb
- tests/test_scenario
- # cluster, not marked properly
- tests/maint_notifications/test_cluster_maint_notifications_handling.py
- # opentelemetry
- tests/test_observability/test_recorder.py
- )
-
- # TODO: try to run more servers?
- epytest -m "not redismod and not onlycluster and not replica and not ssl"
-}
-
-src_test() {
- local redis_pid="${T}"/redis.pid
- local redis_port=6379
-
- if has_version ">=dev-db/redis-7"; then
- local extra_conf="
- enable-debug-command yes
- enable-module-command yes
- "
- fi
-
- # Spawn Redis itself for testing purposes
- einfo "Spawning Redis"
- einfo "NOTE: Port ${redis_port} must be free"
- "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
- daemonize yes
- pidfile ${redis_pid}
- port ${redis_port}
- bind 127.0.0.1 ::1
- ${extra_conf}
- EOF
-
- # Run the tests
- distutils-r1_src_test
-
- # Clean up afterwards
- kill "$(<"${redis_pid}")" || die
-}
diff --git a/dev-python/requests-futures/requests-futures-1.0.2.ebuild b/dev-python/requests-futures/requests-futures-1.0.2.ebuild
index 9a03f03d265e..3c766eea71dd 100644
--- a/dev-python/requests-futures/requests-futures-1.0.2.ebuild
+++ b/dev-python/requests-futures/requests-futures-1.0.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -22,10 +22,6 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~spa
RDEPEND="
>=dev-python/requests-1.2.0[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- >=dev-python/pytest-httpbin-2.0.0[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-httpbin )
distutils_enable_tests pytest
diff --git a/dev-python/rich-argparse/Manifest b/dev-python/rich-argparse/Manifest
index 5cfe9bfc5f63..6e2cd002e132 100644
--- a/dev-python/rich-argparse/Manifest
+++ b/dev-python/rich-argparse/Manifest
@@ -1,2 +1 @@
-DIST rich_argparse-1.7.2.tar.gz 38500 BLAKE2B 36c432a79d1ef514dc96a4d2205c018a51c0773030f5ffd5634bdf9dca10796bd3f6835996d31189bfb9529745163ab7421939d3ef33af2f707cc2ab5fef34e8 SHA512 8ae4d1374980d571991b1501ebbd50facdbae345bf9e9102881964a168d7b62ac955633043590a89fdae8988734945c879d7777239229a61ac3e39358b0a2b7a
DIST rich_argparse-1.8.0.tar.gz 38940 BLAKE2B ec59fed9b6b20dcd9772fabd482ec7c031cad9f278f2382d6fe2331837a143710a018c56bd59e9f0ce349ce6b0f32990caf4962c7af171d2433d6ed5a26778d6 SHA512 5cab14a965a3349ae7cce3776dad53b7038e941da5b4c8715819d6448eb45f6c8e992feea94abebe04f5fcd5b618248ba008d4b81f4edccff410eb102bb7afe7
diff --git a/dev-python/rich-argparse/rich-argparse-1.7.2.ebuild b/dev-python/rich-argparse/rich-argparse-1.7.2.ebuild
deleted file mode 100644
index 171b5d9bda76..000000000000
--- a/dev-python/rich-argparse/rich-argparse-1.7.2.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2025-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="Rich help formatters for argparse and optparse"
-HOMEPAGE="
- https://github.com/hamdanal/rich-argparse/
- https://pypi.org/project/rich-argparse/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 x86"
-
-RDEPEND="
- >=dev-python/rich-11.0.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local -x COLUMNS=80
- epytest
-}
diff --git a/dev-python/rich-click/Manifest b/dev-python/rich-click/Manifest
index 0e81afcbcbae..b205724a058e 100644
--- a/dev-python/rich-click/Manifest
+++ b/dev-python/rich-click/Manifest
@@ -1,2 +1 @@
-DIST rich-click-1.9.7.gh.tar.gz 8525444 BLAKE2B bba361d7dbafe5bd22f3dfb5e49530ff9366f05030c55c1260b194537fd19986c2bd0aeb73d9e4d9688e2d44f7d33ae94219e8bd760986ebdb30e482d6a4ede0 SHA512 2dc2863b1f8c8a88a4d93adf963237ffbb3393123163615feaee3a61629f8ef5ceeff0535cda07a80ba653568a4f6c60752b9cc3c4ef51844e5e45caa872e9ef
DIST rich-click-1.9.8.gh.tar.gz 8529523 BLAKE2B 70792e87815b54086bd3dbb34934c6c4abb2b6eca50d3cee3d67d21939db9048269326945fe29cf04c08d8a98202c39910fee01d0de7f2376523fa73bd9bb93f SHA512 3dea5056a29751715ee0a83f5e775224c4883c4e89bca31b5133a51cd98048507107340362d9bfa95644eb4e2fb53fca88329ec5ea21391b0ede960f23bf3ae3
diff --git a/dev-python/rich-click/rich-click-1.9.7.ebuild b/dev-python/rich-click/rich-click-1.9.7.ebuild
deleted file mode 100644
index b217f6c75e74..000000000000
--- a/dev-python/rich-click/rich-click-1.9.7.ebuild
+++ /dev/null
@@ -1,41 +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
-
-DESCRIPTION="Format click help output nicely with rich"
-HOMEPAGE="
- https://pypi.org/project/rich-click/
- https://github.com/ewels/rich-click/
-"
-SRC_URI="
- https://github.com/ewels/${PN}/archive/refs/tags/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
-
-RDEPEND="
- >=dev-python/click-8[${PYTHON_USEDEP}]
- >=dev-python/rich-12[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/packaging-25[${PYTHON_USEDEP}]
- >=dev-python/typer-0.15[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( inline-snapshot )
-distutils_enable_tests pytest
-
-python_test() {
- epytest -o addopts=
-}
diff --git a/dev-python/rich-click/rich-click-1.9.8.ebuild b/dev-python/rich-click/rich-click-1.9.8.ebuild
index 71bb8cfd0bc9..470b466d8f53 100644
--- a/dev-python/rich-click/rich-click-1.9.8.ebuild
+++ b/dev-python/rich-click/rich-click-1.9.8.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 x86"
RDEPEND="
>=dev-python/click-8[${PYTHON_USEDEP}]
diff --git a/dev-python/rpds-py/Manifest b/dev-python/rpds-py/Manifest
index 1aed089b9f5e..6b5346d333c2 100644
--- a/dev-python/rpds-py/Manifest
+++ b/dev-python/rpds-py/Manifest
@@ -1,44 +1,31 @@
DIST archery-1.2.2.crate 16228 BLAKE2B 489e4b2ea181a7915ca41f31e22e9e95609c0456b162bbcf67b2bca25c3873447ee1e5a22fba963bb6119dcc34a7ea7898683bacadee49fc4e6f3d3bd8f5906e SHA512 15d0e118c22d7a8539ee8e97388a7796b15b765f5f7a878e66959865497b2db252a351251d6ae587354f58528186542d32ae14640e252acd1bb6a95c5c21490d
-DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST cc-1.2.48.crate 92458 BLAKE2B b807d0138797e1244e50adccf8b0f31511daf6c8e42289b1ec47e86fc0adf409c1ca931136fe872abfc4ab4f164028bee8f08321911a66684024c7315c67dc50 SHA512 dd6044181d334ff219e2a9daacf3d1fdc7484c33883f45acb6329dda4ccc8024cd9056b03b974bb4f0c9871048e03e89221f802379d503a396a97af9f7af3940
DIST find-msvc-tools-0.1.5.crate 30942 BLAKE2B 25f061bfb8a195752109bd444deaebfd94228e52c6eb94396fff9ba9d450876a58bc4352158684c59d1a2cb2a13a32ecfa1e96f1d80ac0c63827bfd7f46d9c80 SHA512 71021ce1a16c454bdd30abbb937c2ca67ab28ffcf88574e3ab758683943b44a96312a53cd6f5b8e76c89284a0cedbf46edb606894af720e3612c812bed189ab8
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
-DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73
DIST libc-0.2.177.crate 792045 BLAKE2B ecea1ade26b0faa9cb5fb025e237f3a59dfb562e7b3de3682b42a41038b1d436e83b42b53158c1fc1cc4b1cc64ab55ba1497e869ae850a677c089fcce9138912 SHA512 9d737091dba80244137987d06a52ffcd44a968c96b59ae9af9cfa40c38cb9675d023f6324fbf25c436ce1b9592ebf26248f85b0a7c97ee02360ca624b0efb3e0
-DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1
DIST proc-macro2-1.0.103.crate 60024 BLAKE2B e5ce5f77838fd063b5615b1555db02175621135132de6aa7479d67fd0a34c15e8235290112a728f3251cf913a835bf0aafaf6930880511427143b63152047259 SHA512 9a6964a2ad24dbb1108b7018882ddb48cb6e6f652d1c5eed1cac94602539fc71f011a0a276765778df161edbd6387bf03a8505d93565e0c106f09e98d7d6efce
-DIST pyo3-0.27.2.crate 1171342 BLAKE2B 421039fe650e01546661ab98593288f8058694d513261fe0025851a68b665bdfc001692c60a5a34ede92d13a6003e8f261e4bcdc17f67518a156f52916d2ff76 SHA512 b20f502bda6cc6d283012acbb2e0225219ccd77af09990872c76b0088947050d886eb47ed88e9e0dcb327d08ab4bf09119f7cab527dfde358e01df5a32bb64c2
DIST pyo3-0.28.3.crate 1204476 BLAKE2B 8540a1c51bac4fbe04ea34d5ce38471c13d5a3f0759e60cf21d67e846b00feb8316e70f32cb8dc6b74d09f0901ffc83d5f41b1a06da6d34790ef13e4cefcad45 SHA512 f955957eec4b95cc9337d331bba3bba52b4754b301cf86cd974601e64eb20c2424023b19be89a224661fe2e185de646cd3d0d00705b6b5cbd139856c9443a247
DIST pyo3-0.29.0.crate 1241253 BLAKE2B 29deb7fa70010bf3d7e9e93bbcd87c0b56c4ee7ef0c2e5956181d2fb5f06f4c9b3f28bd1ad280126c26c048808b91b847e1fb69ddd617ef9e9e5e004cf4e48ae SHA512 e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
-DIST pyo3-build-config-0.27.2.crate 35564 BLAKE2B 8786478e559613cc258e2d0153d549f65c13a24a3fe612da7ac96e5f4038a1714dbc6a01b2d3e3d99b3de3af9658ad220647fbba4a33305bef81c07100426ada SHA512 dc7cee79ce7febddeec9e70dd5de3b59696a5cf38afeccdfeda00307cc22166d0e9649d5e34e9801b7f495b31c104fa78dac2241248787daae8b9ea1f4551ce5
DIST pyo3-build-config-0.28.3.crate 35961 BLAKE2B 61a0101913c6d563721049ca99256c2aefd89b017a7e18c82f4a6aceca0aefeaa71fd559cd43adfb5034ce076c904e5188f8f73961ea217287fbfd12caab9401 SHA512 78f85696901b16540d42187d10e888bd929b9f23415faeb73f9798abda1af3506a308145dd4113b070521271c72624d7930fb4b19bad25aa1afd3082030c9126
DIST pyo3-build-config-0.29.0.crate 39616 BLAKE2B 7b62a5976b890db84e5256f3136185c2a9c3b7110782b5b0cdc314a5231fde30a853ddcd17af63b53488b3e8d5e310b01002b6f3c32cfeb1e5c3e168cd6460d7 SHA512 df77e8d7d5fe173749437ff6b90fa1703083377d515ab8a85dc77d9cac9c3fc331ede4b040f7e3694311ddb5adff577cf90c181a27c196ab93a4569e918fdea8
-DIST pyo3-ffi-0.27.2.crate 78552 BLAKE2B cdd6fb74a49615c42e6c6979e28c1d56e0061ae9e9897a20032d6be27c635433e9fa459847bf3c88de3be7503d045ef78d4ea3e028403c1ed00da96930ed73dd SHA512 29936c7a0fa524304ca8b017ac912e2c3e9237a86ac8510c17b96b75c7e83948599884f064428640456cd5fb256246d536da432d096f924e78360efd973cee0b
DIST pyo3-ffi-0.28.3.crate 80881 BLAKE2B 4ac7066c911e2aec18aa9245efed00585d063f81d69910e6a146f8efbf2939ab5de519bbf2a3dde78b40c264e97c62490db80e9b2e84aaf080d63659a6676459 SHA512 ec49b5cc67d19f46c9daea76b37b4988af0f63b9ed67c71190f015a0aa9691d4a8ffd4128413de430928428e1e8e26d44c3103f561e6b71b7e8c4597ab602d9f
DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a5ac46df3217d004f5c3a368f18331733c6723bd49e522c6f7105455df13e2be0f07695ed5ce6ae71c15dec438 SHA512 baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
-DIST pyo3-macros-0.27.2.crate 8913 BLAKE2B 99a9cf37cb05261fa75d0ede4ed8ad75bbe29b941a4c6a0907d1c1baa887d0777dcb5970c7fbe1337c1b127b6318d077e2d8374629485572f3f7997a3e3825b8 SHA512 b05f6b61c5b320e83e879384691cdb9ad57ade3ce5a9fdfb587ccd13ea1c92d2b210e2d7ca242c3d1a5f5173076a25578d3d81f5a8c3935a43f010bfa8452153
DIST pyo3-macros-0.28.3.crate 8963 BLAKE2B ca9967cfba565b873ed77565ff6eb8408473c227d191797e9db8c6b5cbc89abc17ffd57ae71e28877088fe19373da2f503cdefeae6b0a47796f6abcf62044f08 SHA512 57d178bd9b53dd98916e60c89bc26c34f9949829dc17bf7d6cc15b704bba7c874d85d6bd3c827d401268660a79230a6e32711048da939ec4e22342f3e08046d1
DIST pyo3-macros-0.29.0.crate 8915 BLAKE2B c12d23753d5aba7333183d4b41f16c8da1d4297a3ff86b3b150e9185c1978fc184ac198e566a41833292a8a78ab59446eafd5ef7169e5cb41493e7cbeaa68280 SHA512 fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
-DIST pyo3-macros-backend-0.27.2.crate 82513 BLAKE2B 9154f0275ac031fb456c313176490b7f98e033a9ff43caf32ca717e6dedc2c32435af5e7d9d2e784690fe2a379c033f0dc036b18c630fa7cb3c3365e335e3a12 SHA512 811fa48ceb5a87d23312b968efa9d8464653289cefc8a1e27838f03285eef67092652ba89eba655d243fa435edd97674a981267870d208e0b11390db32d1ad9f
DIST pyo3-macros-backend-0.28.3.crate 88063 BLAKE2B a484b12bbab3031838f61149ab9f08b9e460a2bd02089e08e58dac2cb747afbc0cdfe64018ed4c8cb0bbbd1d22e3eb05a6a72b020da6b71a584ec51ca8d24292 SHA512 45ce31ed64ee4fd0249736d480c9840a756bc45934d6803ae11e0680057ecf4cc74c71b47ccf9241fc3ab5c1e0b9c758426f08bd523d1ace92fc308302ea3c84
DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
DIST python3-dll-a-0.2.14.crate 103489 BLAKE2B a2868aa62d9b5f33ba0ab3be85f486e7b0594b8e535749e251ae9c829eabf9f0211f928c729b0f5b847a89be978c4b5648d333ac657a82acaa3c39520dfe0b8c SHA512 fde53bac2b7009d409d5dfab991b431aea7c16c5e0227a7bb143e73a043cd0490cec2647f73cfc34f73a192e9b365a70fd5b42d969beb2e3251dff44230a2040
DIST quote-1.0.42.crate 31504 BLAKE2B a8106c0fe3953bcc2aa421516dfbaad6d6cb2ea839b2ce1447a45b8732dad40a921c2008b477bc0fa029dc0e0357a339db543b1f90bb9da77a5a3681fc16bed0 SHA512 6d55047312de6bab660459750c54213e986f0a80b4458fdb706c2fb3bab83b8239cd230dd9291662076d395c818a391142af1228ae3158cfa4960d6c74d531ba
-DIST rpds-1.2.0.crate 72664 BLAKE2B a5719593d003f54f9d5b1a4e6020b2908f46cdca239a1c3cc0f02bfd5bf6bcd102bf87aedb958cb113543467c0cb724eccd420552e806d37b17ef6048c88bd5f SHA512 2149622473b2a684b023e71811f3552a7f70e27a24831539554422389162631dae2c538c1c2569d8d268debde0ce1d5efc6dd002a9033dad78e0c46652b277e0
DIST rpds-1.2.1.crate 75113 BLAKE2B a6f928a9df250115c4db6e30612b9a719855a78c69166392dde73014852dd21b5dc4799e3782b0c7294bee105107f6c845ca94104426992e7da6dda6b9553e1c SHA512 2ee0afff4c56a1796cb3ac6e9131b3a2aedd114595f7c2e59ee02c44172d8b9c3717eaf473844b71ddb6b140b688732c751f8855a80ba78de1afaa0088107b32
-DIST rpds_py-0.30.0.tar.gz 69469 BLAKE2B 3b41669ac62b051672afdf7d83c6dafe8a741cb0e6594ff36d1d8a13c52a6bfff22434f9539701886f7090b57cbdf8881bbb3841a1480b84bf39d3ce147c2231 SHA512 d6791b9e6020fdd09d5168214d22d5f8d170563ac3e59540c05921a88b269ca11a8456270a0cd4862b6beca516425f505f0d75a5d80fc8367f2209edd826ecd3
-DIST rpds_py-0.30.0.tar.gz.provenance 9097 BLAKE2B c21811f749568b7f0beceaa84f7b91e6edf7b6c8cfdbebb57e5e25917f4bff468de0ff601dbd663d82295b04f9bdcde33e61028168ae692ca946c894b100e081 SHA512 4320202970a9c4e2ae692169292b3d45f83665c1bb2a42e227ac93c53052effddad06b54e7efe39412825ac9f82db12ea3dd62af612d8db29591871d4a2034e9
DIST rpds_py-2026.5.1.tar.gz 64459 BLAKE2B c7a919de25ecd22f1336e1ab0743d9fd23ef5470d23ca3b6e2bc11fcf531b958ee20cbc2ced2a16b207c28ad8c4ffce1a1327342332494ef5f828d7b7044060d SHA512 0819dde9d6f18b1436efedd2fcfe7e16745f1c38914781abab051ff5b3cd6aa008e9564f5736f860a3fe908340eecf2890150f395f4b5d83125ccc604dfd8f9a
DIST rpds_py-2026.5.1.tar.gz.provenance 9470 BLAKE2B 7c53ff548a5cbe504a87aa29c9b3d7c91c18beb7e3d5b71a633c30ece7eb42cd3bd9f0eedae6226a4f925e205399964c0967d0266180de928452f65840eac36f SHA512 ccf1655c5feb93f36c67afb00fef0e174fbda3bd63e49981e61fa2f1831cfa2870d0588d0d3788642d3024ef3043aa1181362abdae310ae4b75e4bb9c9d7102e
DIST rpds_py-2026.6.3.tar.gz 64051 BLAKE2B 84219ec9808786f9611051f36472d5bbb6bd895b56627b5df1ed50e77ced873cf1c287e325c6083c1bbcc52aef6ba49c50bf2e4c7e4a864243dba9a944d19b69 SHA512 e3b2874d3f430f805fa4ea2f2fe4e22f02b4491a68aa068644c43aa5949423496cd80a1e6a9f0bd7aec3dafccdac0b177334f53eb077d077e0e56a2e43710d09
DIST rpds_py-2026.6.3.tar.gz.provenance 9615 BLAKE2B 03e918b518033aaae2693ca46570c3b70d18c2b88f56f5849052a98a597a4496113ee50a54dbd717d8fc170282b55aff4e29aaa2e6cde74946bd348e09d33691 SHA512 4f6a36b3c1c7556f7abd6764179f2cbc7e5991e09208b70f61788aa1e534b1efea93842e4ab3ec47c8876aa5050d5a1fbca7787588a0a9dc1549c39bbfbb6f23
-DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
DIST smallvec-1.15.1.crate 38116 BLAKE2B 8dd779d7726694672945e928399e0459f4973d284a6c2d664c2fc757ebb1177658f47c812d9800e982479cbd7413fd4283c64a4d248ba5cff6397f96b758676e SHA512 c26b097a063353beedfcc921129cd0fb838c1c9420218993a05b2655b47b6ec16f11e0054312018658b4abd893beee140c5d2739401a5e5aea2e64575f237047
DIST syn-2.0.111.crate 302117 BLAKE2B 9fe6c0bbeb432d67f4c879956c505d160f7be418cd16b48a5430c1c4c4922251007e3d85bf219daa16a7e9d8f32c15fdc2ebd94bdfc762135cb27b897590d484 SHA512 f30fc819fc6c942cde044b6bbe608f96736070717f28da71ab4ff68aa9e780416829152da11a83513fbc0de88337c2157e4fd1e4a029ebcbb64daeaa54dbf768
DIST target-lexicon-0.13.3.crate 28498 BLAKE2B 397315667737abde41949081f8377f704c3a1105790162249a9f0c08b60f012e67d66550e9063d900ac98f5191d13c5ed23d1a8045f99373e7a673a3cfc029e7 SHA512 23422df6edb2a8cb0a9f048864faf76ccb27d6e97fbed7b208b77206941b196f155896a0381150e387142e976439a0a296dcf4cbb4df6bc0e11c65f97f979443
DIST triomphe-0.1.15.crate 34711 BLAKE2B 0b47f413da6e80737b59c921992e629b9e55e8984f50e268058a1baf296804a319d8fb4792dda693abc43e4f164148923e5b6f3ebb8be7d072d9e0638629ef8e SHA512 43e82d5389061764cfcb13877c9bf1a71150f698a08347aa1dd168e1bf5b615d1e0f11a81b1b4742737d735a2615781cc5bcdfc7a1582f9fd0f204d20b6e92cf
DIST unicode-ident-1.0.22.crate 47919 BLAKE2B 766f52249631092af952df717e09e1eb0d2a8e87c45e65113f0b2b88b42e8b406a87241fadd368ceb9e13339362b48cdbbc6f699f95f448ab45dbbd861615d62 SHA512 81666679aaa2eebfe1429827fa2a88ee0b52bd69723067132c24252070133b3731287bcd880ba16d16274f038c7b27bcf637e9150b6cd955fb4ff49642078125
-DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b
diff --git a/dev-python/rpds-py/rpds-py-0.30.0.ebuild b/dev-python/rpds-py/rpds-py-0.30.0.ebuild
deleted file mode 100644
index f01d8a4f76bd..000000000000
--- a/dev-python/rpds-py/rpds-py-0.30.0.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 2023-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-PYPI_VERIFY_REPO=https://github.com/crate-py/rpds
-PYTHON_COMPAT=( python3_{13..14} )
-
-CRATES="
- archery@1.2.2
- autocfg@1.5.0
- cc@1.2.48
- find-msvc-tools@0.1.5
- heck@0.5.0
- indoc@2.0.7
- libc@0.2.177
- memoffset@0.9.1
- once_cell@1.21.3
- portable-atomic@1.11.1
- proc-macro2@1.0.103
- pyo3-build-config@0.27.2
- pyo3-ffi@0.27.2
- pyo3-macros-backend@0.27.2
- pyo3-macros@0.27.2
- pyo3@0.27.2
- python3-dll-a@0.2.14
- quote@1.0.42
- rpds@1.2.0
- rustversion@1.0.22
- shlex@1.3.0
- syn@2.0.111
- target-lexicon@0.13.3
- triomphe@0.1.15
- unicode-ident@1.0.22
- unindent@0.2.4
-"
-
-RUST_MIN_VER="1.85.0"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Python bindings to Rust's persistent data structures (rpds)"
-HOMEPAGE="
- https://github.com/crate-py/rpds/
- https://pypi.org/project/rpds-py/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
diff --git a/dev-python/rpds-py/rpds-py-2026.5.1.ebuild b/dev-python/rpds-py/rpds-py-2026.5.1.ebuild
index 3fc02a536653..581893d36db6 100644
--- a/dev-python/rpds-py/rpds-py-2026.5.1.ebuild
+++ b/dev-python/rpds-py/rpds-py-2026.5.1.ebuild
@@ -50,7 +50,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
diff --git a/dev-python/s3transfer/Manifest b/dev-python/s3transfer/Manifest
index b0b80ff229a7..f975adb9aea5 100644
--- a/dev-python/s3transfer/Manifest
+++ b/dev-python/s3transfer/Manifest
@@ -1,5 +1,2 @@
-DIST s3transfer-0.16.1.tar.gz 154801 BLAKE2B 7a8684162402007c148b9cbd5eb29a006b99eeb0ecbb4221a452360220db26a3c7c5601f0a965ea29ba7946180224b4f34ee5cfca3631137b5a71328e9322921 SHA512 d953559ab4667b497b058945268af9edde3a1483f09c6725bf45eb5ab347a41c4c4635e663130edcd76aeeacbf40daa39ef8b78e777f54f7ef3ed4d1973cec04
-DIST s3transfer-0.17.0.tar.gz 155337 BLAKE2B bc1898fc9cc8ca5bbedad81a3491127cdf2021ee522b099121592f89a0c3bb3ece9a9cae3d35593b1cf9b379790c7135523bcf2e53675a5060fe64ed5be9a5da SHA512 cbd5a5ac93d3cad66b54d93fdd07b36dbc40a377e89395fd16349f0e8e5abc66938f4c74c00cc8ee4a14b9ac4673a43b18c217357eb4fcd72cb61682605bd134
-DIST s3transfer-0.17.1.tar.gz 159439 BLAKE2B 21d98ca77b864abb2fec9e14436c80072530eb191ed85d8ad653d77b6f297f38151dfcaf1d84569ac88df8c963eff2575f9dc4ee25051114a917bbd2e4c47cd4 SHA512 3af4ea30906004fab19e41d9c55d491908ee8750af8e2791c1c8644a73743e533c32aeb7bf3f5e4675c88575cd4c01246ab8a685669ea560af99a997862d9ba8
DIST s3transfer-0.18.0.tar.gz 160560 BLAKE2B dac8d96e8bb37cd5fe12a0777825c233015332482be0fd4ab718a0866569b309bc89f5b62d32c948da6935df06c8f46ff9a20b558271c9a36737a41140e42b39 SHA512 b9ffc2c01ff254203f7a909dc9e5c860708a49ded3763ce9f9bfc922a032f4f69db6a057765c48b087e060d9efed8b367bc04a71b5f3c36c1930bb43db533d76
DIST s3transfer-0.19.0.tar.gz 165171 BLAKE2B df0310c69a6ec7687a94c1b9321c843c52578ef07e3ee7ae5c68ba1b4cb36d6172954c7d3d371f6ee31c45690240f7b3869620b5079bbfe951b9192576bd0299 SHA512 8f4deb706ac23add37472c6921ab1d63dc2def57f4bd27f372766f7208a136facf963db0ab484be72133ab6f8ba620277af098fc98f4f8f7d01fc490cf49c716
diff --git a/dev-python/s3transfer/s3transfer-0.16.1.ebuild b/dev-python/s3transfer/s3transfer-0.16.1.ebuild
deleted file mode 100644
index d84042f3fda2..000000000000
--- a/dev-python/s3transfer/s3transfer-0.16.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="An Amazon S3 Transfer Manager"
-HOMEPAGE="
- https://github.com/boto/s3transfer/
- https://pypi.org/project/s3transfer/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
-
-RDEPEND="
- <dev-python/botocore-2[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.37.4[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-}
-
-python_test() {
- epytest tests/{unit,functional}
-}
diff --git a/dev-python/s3transfer/s3transfer-0.17.0.ebuild b/dev-python/s3transfer/s3transfer-0.17.0.ebuild
deleted file mode 100644
index d84042f3fda2..000000000000
--- a/dev-python/s3transfer/s3transfer-0.17.0.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 pypi
-
-DESCRIPTION="An Amazon S3 Transfer Manager"
-HOMEPAGE="
- https://github.com/boto/s3transfer/
- https://pypi.org/project/s3transfer/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
-
-RDEPEND="
- <dev-python/botocore-2[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.37.4[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-}
-
-python_test() {
- epytest tests/{unit,functional}
-}
diff --git a/dev-python/s3transfer/s3transfer-0.17.1.ebuild b/dev-python/s3transfer/s3transfer-0.17.1.ebuild
deleted file mode 100644
index 9742b462e53c..000000000000
--- a/dev-python/s3transfer/s3transfer-0.17.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_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="An Amazon S3 Transfer Manager"
-HOMEPAGE="
- https://github.com/boto/s3transfer/
- https://pypi.org/project/s3transfer/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-RDEPEND="
- <dev-python/botocore-2[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.37.4[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not rely on bundled deps in botocore (sic!)
- find -name '*.py' -exec sed -i \
- -e 's:from botocore[.]vendored import:import:' \
- -e 's:from botocore[.]vendored[.]:from :' \
- {} + || die
-}
-
-python_test() {
- epytest tests/{unit,functional}
-}
diff --git a/dev-python/s3transfer/s3transfer-0.18.0.ebuild b/dev-python/s3transfer/s3transfer-0.18.0.ebuild
index 9742b462e53c..d84042f3fda2 100644
--- a/dev-python/s3transfer/s3transfer-0.18.0.ebuild
+++ b/dev-python/s3transfer/s3transfer-0.18.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
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/botocore-2[${PYTHON_USEDEP}]
diff --git a/dev-python/scikit-learn/scikit-learn-1.9.0.ebuild b/dev-python/scikit-learn/scikit-learn-1.9.0.ebuild
index f3d779913db2..7e64e6102187 100644
--- a/dev-python/scikit-learn/scikit-learn-1.9.0.ebuild
+++ b/dev-python/scikit-learn/scikit-learn-1.9.0.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/securesystemslib/Manifest b/dev-python/securesystemslib/Manifest
index 54bbbc9f1bb0..3c621964084e 100644
--- a/dev-python/securesystemslib/Manifest
+++ b/dev-python/securesystemslib/Manifest
@@ -1,4 +1,2 @@
-DIST securesystemslib-1.3.1.tar.gz 934782 BLAKE2B 773cd13be7514805355ae0a73826bc368d2daba9b5484090b24c928f6de686de4a85e2cf79128c1ef2953b355f860c0f8cea96a494667a9825a1d7a6ada194f1 SHA512 9b82bad7c69f74ef9559aad678100b7e72433b21148286437dd05e5c177489ee36909f29923a18eaa75aed84c8c3eb94b20d9a88f41207d811dfbe2ebc89c1f3
-DIST securesystemslib-1.3.1.tar.gz.provenance 9646 BLAKE2B 04ab378e3e8f45aae78444c43e652a5f10a018987d77d80af7101965be363039a7e518adb43775c9bc91a09d73e615e7089e15702a736e050476d1207eb3696a SHA512 810e1855fa014a97dcd380cf9b3a149159cb8023c8ef1b22021634189f3830186a7c5a1c3073d9c6a60e03f77dbfee245860dca7dfdd12829a826c0e3b06eff2
DIST securesystemslib-1.4.0.tar.gz 934332 BLAKE2B 3e1ca3556da70e4c70041e902655e74a207ed43519a141d51d8b64cd1d57338bb63cfd659b50ac8e303fdb2abe7ccdab7e73613b170b6d03bf5adce8db630254 SHA512 b2d45e24f131f07392476beaad21587f506352c98c8ddb3f60cc52bffb6cd0f299be3edb28276f55703548392b8f23ed5155965b21df5500bdf100bfcd7406ad
DIST securesystemslib-1.4.0.tar.gz.provenance 10069 BLAKE2B e63f55a768b84875fc28920e9db7a5b98096bca53d8bb4e83344e93ed1dc92fa9d89402952f433c8101f970f6362524326a6bec68339ac68deaeed8cc0f49c75 SHA512 a79fdfebc7e7c8732b4bab22ba58a26ad16d07b2412b942daca73e6ecfa92685e855073ea73ef1a1aa51b5136ced69a62ca2dadbc497a9298336680d3b2e90e9
diff --git a/dev-python/securesystemslib/securesystemslib-1.3.1.ebuild b/dev-python/securesystemslib/securesystemslib-1.3.1.ebuild
deleted file mode 100644
index d992b4f0fe31..000000000000
--- a/dev-python/securesystemslib/securesystemslib-1.3.1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2024-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/secure-systems-lab/securesystemslib
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Cryptographic routines for Secure Systems Lab projects at NYU"
-HOMEPAGE="
- https://github.com/secure-systems-lab/securesystemslib/
- https://pypi.org/project/securesystemslib/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-
-RDEPEND="
- >=dev-python/cryptography-40.0.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-# TODO: unbundle https://github.com/pyca/ed25519 (wtf? not on PyPI?)
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires pyspx
- tests/test_signer.py::TestSphincs::test_sphincs
- )
- local EPYTEST_IGNORE=(
- # requires PyKCS11
- tests/test_hsm_signer.py
- )
-
- epytest tests
-}
diff --git a/dev-python/securesystemslib/securesystemslib-1.4.0.ebuild b/dev-python/securesystemslib/securesystemslib-1.4.0.ebuild
index f9f2c9d7f7e4..d992b4f0fe31 100644
--- a/dev-python/securesystemslib/securesystemslib-1.4.0.ebuild
+++ b/dev-python/securesystemslib/securesystemslib-1.4.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
RDEPEND="
>=dev-python/cryptography-40.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/semantic-version/semantic-version-2.10.0.ebuild b/dev-python/semantic-version/semantic-version-2.10.0.ebuild
index 18e2ff90c769..bf89ff9aa3b1 100644
--- a/dev-python/semantic-version/semantic-version-2.10.0.ebuild
+++ b/dev-python/semantic-version/semantic-version-2.10.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -20,9 +20,5 @@ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_sphinx docs \
dev-python/sphinx-rtd-theme
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/serpent/Manifest b/dev-python/serpent/Manifest
index 09705592833b..88ac1ed93034 100644
--- a/dev-python/serpent/Manifest
+++ b/dev-python/serpent/Manifest
@@ -1,2 +1 @@
-DIST serpent-1.42.tar.gz 90352 BLAKE2B 1b1f8eb284c395134f48ebf5d5db3816f91e06bc8b2333971d71b4ec9ba0d883e6ecd999afa8a857f91a9559bd828378fe24cfc8c217f38f6274583d66c5f7af SHA512 a01b68ccb59d8f4b2b6d2dad031429ce7ffc81c6f64bc7fcc464e38205f2caba3be879facefe0f6e33d1c66e515c7dc19b7cb5d68d829d01dd488b3bccdb2596
DIST serpent-1.43.tar.gz 91641 BLAKE2B c759ae6c015e1ece26ed63a2bba3489cdbf1dde45b462d99133e89d8ab5be335503a1fae1384112ac1fbcb2c93f4dece3bfb9370642f1baa6a2c14a953c2c843 SHA512 56190171bccf5ed4745d1891e364e09817af0c9b338d260e6b039acaf03b1832cba4b91c30eccc945b1bf7152317f3e987d99bf09b1b649fe1e916c7671e9d12
diff --git a/dev-python/serpent/serpent-1.42.ebuild b/dev-python/serpent/serpent-1.42.ebuild
deleted file mode 100644
index 924347ca71e7..000000000000
--- a/dev-python/serpent/serpent-1.42.ebuild
+++ /dev/null
@@ -1,34 +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="A simple serialization library based on ast.literal_eval"
-HOMEPAGE="
- https://github.com/irmen/Serpent/
- https://pypi.org/project/serpent/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc ppc64 x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- test? (
- dev-python/attrs[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-python_test() {
- eunittest tests
-}
diff --git a/dev-python/serpent/serpent-1.43.ebuild b/dev-python/serpent/serpent-1.43.ebuild
index 951699eee9f9..924347ca71e7 100644
--- a/dev-python/serpent/serpent-1.43.ebuild
+++ b/dev-python/serpent/serpent-1.43.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 arm64 ppc ppc64 x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/service-identity/Manifest b/dev-python/service-identity/Manifest
index cfdfc4f47e60..d6877d9ae52f 100644
--- a/dev-python/service-identity/Manifest
+++ b/dev-python/service-identity/Manifest
@@ -1,3 +1,2 @@
-DIST service_identity-24.2.0.tar.gz 39245 BLAKE2B c23e323e5b6782cf814c85d63ce89f41c0d6cf120cb266714944548b18c4cd50b23f59bd62cdcc88a7c3bd874713de3aab78340f219547f84852f895867b0f22 SHA512 8dc475b965e5e33f2c9b5587b7b91351c8b424e2ebb89ab8cf7fe159798d26912b16bcff9bc6151606e319c32a7e53a3852fafd7c7bccdbf1d6ac93c2f9dda03
DIST service_identity-26.1.0.tar.gz 42898 BLAKE2B 80453af616bf87634ea361988b8cbba5fe9131390f77687046017747675c4d2b3a98b1d7e7e95aae1421b08384e930c19964bb1a36052d70a832b24680cbdffe SHA512 cc86fd09a6c3960c2de80fcdcce1212938518897699e96bc78e8366186e2d0585bc608e6e1b0b33ce36ee4df2206ad2a6c38fb42b1c04c8ef2b1090c43302041
DIST service_identity-26.1.0.tar.gz.provenance 9879 BLAKE2B 32af8eafefb9450c76c275d4811e14b85853d4ac071c4a93c423401e260944da56060c76d04fd4c7029c93700dee09fc24087f217b486c6cd85459eb417144c3 SHA512 3d7db0c609aecae4ed59f3fcb8e87fb89c0236e8c96679bb9da4553c01b60cac3ae11027d26aaf8e1908f5613248ab15cfd84f4d798fe9e95d86b0b2efb8093f
diff --git a/dev-python/service-identity/service-identity-24.2.0.ebuild b/dev-python/service-identity/service-identity-24.2.0.ebuild
deleted file mode 100644
index 2f484010bc0a..000000000000
--- a/dev-python/service-identity/service-identity-24.2.0.ebuild
+++ /dev/null
@@ -1,36 +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="Service identity verification for pyOpenSSL"
-HOMEPAGE="
- https://github.com/pyca/service-identity/
- https://pypi.org/project/service-identity/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-RDEPEND="
- >=dev-python/attrs-19.1.0[${PYTHON_USEDEP}]
- dev-python/cryptography[${PYTHON_USEDEP}]
- dev-python/pyasn1[${PYTHON_USEDEP}]
- dev-python/pyasn1-modules[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- >=dev-python/pyopenssl-17.1.0[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/service-identity/service-identity-26.1.0.ebuild b/dev-python/service-identity/service-identity-26.1.0.ebuild
index 866ceb2765cc..1b5370f78a8f 100644
--- a/dev-python/service-identity/service-identity-26.1.0.ebuild
+++ b/dev-python/service-identity/service-identity-26.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/attrs-19.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/setproctitle/files/setproctitle-1.3.7-py315.patch b/dev-python/setproctitle/files/setproctitle-1.3.7-py315.patch
new file mode 100644
index 000000000000..99a4fa11c4af
--- /dev/null
+++ b/dev-python/setproctitle/files/setproctitle-1.3.7-py315.patch
@@ -0,0 +1,31 @@
+From 68125abf821ee6ebfb4a4eb86ffe655a4c072c9e Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Thu, 30 Oct 2025 15:12:24 +0100
+Subject: [PATCH] fix: fix segfault after clearenv() on Python 3.15
+
+Fix find_argv_from_env() if clearenv() has been called. Python 3.15
+implements os.environ.clear() as clearenv().
+
+Co-Authored-By: Karolina Surma <ksurma@redhat.com>
+---
+ src/spt_setup.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/spt_setup.c b/src/spt_setup.c
+index ba7a7a6..4078d36 100644
+--- a/src/spt_setup.c
++++ b/src/spt_setup.c
+@@ -139,6 +139,13 @@ find_argv_from_env(int argc, char *arg0)
+ }
+ buf[argc] = NULL;
+
++ /* environ can be NULL if clearenv() has been called.
++ * Python 3.15 implements os.environ.clear() as clearenv(). */
++ if (!environ) {
++ spt_debug("environ pointer is NULL");
++ goto exit;
++ }
++
+ /* Walk back from environ until you find argc-1 null-terminated strings.
+ * Don't look for argv[0] as it's probably not preceded by 0. */
+ ptr = environ[0];
diff --git a/dev-python/setproctitle/setproctitle-1.3.7-r1.ebuild b/dev-python/setproctitle/setproctitle-1.3.7-r1.ebuild
new file mode 100644
index 000000000000..d10d62a52cb0
--- /dev/null
+++ b/dev-python/setproctitle/setproctitle-1.3.7-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# The package has a fallback implementation which is a noop but warns
+# if the extensions weren't built, so we always build them.
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Allow customization of the process title"
+HOMEPAGE="
+ https://github.com/dvarrazzo/py-setproctitle/
+ https://pypi.org/project/setproctitle/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ # https://github.com/dvarrazzo/py-setproctitle/commit/68125abf821ee6ebfb4a4eb86ffe655a4c072c9e
+ "${FILESDIR}/${P}-py315.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # remove the override that makes extension builds non-fatal
+ sed -i -e '/cmdclass/d' setup.py || die
+}
diff --git a/dev-python/setuptools-rust/setuptools-rust-1.13.0.ebuild b/dev-python/setuptools-rust/setuptools-rust-1.13.0.ebuild
index 4db491e3f487..7e625160dfb2 100644
--- a/dev-python/setuptools-rust/setuptools-rust-1.13.0.ebuild
+++ b/dev-python/setuptools-rust/setuptools-rust-1.13.0.ebuild
@@ -130,9 +130,7 @@ BDEPEND="
test? (
${RDEPEND}
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/cffi[${PYTHON_USEDEP}]
- ' 'python*')
+ dev-python/cffi[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
index c38ebb75278f..8a7191238f7c 100644
--- a/dev-python/setuptools/Manifest
+++ b/dev-python/setuptools/Manifest
@@ -1,2 +1,3 @@
DIST setuptools-79.0.1.tar.gz 1367909 BLAKE2B d495a22753400b3b0ef71423e2c9b5adaad1a065d1f9638b5da8161b29c453495701c3efaa3abd2482777e186ba992bd7b57090dfc711d9cdfdaa8254616a8ff SHA512 5b68d7cc775f4318e178f7d7f69c60a01b1abc607411e88c88e3507a08bd85eed241b915d4be5f3ada90df4b68718056c2ba032943c1f53fe68d171c7d728179
DIST setuptools-82.0.1.tar.gz 1152316 BLAKE2B d7f6eaf62ec66355b65642bc20a7a549e167dd6d1c0cdb15926b6644a23cab7737d713cd9418e0cc09161eb0bff53ffd0b8781c96d9203717077121c1e3cc0d5 SHA512 5d70e9efd818245fb8119a4eed64d776078469ed884facc188f141ea491efd9fde5c10c928d3236ea5e2e431b16616f18ed14870b867f95e6320251707332395
+DIST setuptools-83.0.0.tar.gz 1154254 BLAKE2B b82142ad699703352b4ec7843545f3f078e853d39fa93e2d0ee42b9914ebc9d04bc7de4954bce0a1e49f3befea39d14176ed4e7462d202d74ed503664765fba9 SHA512 d426f235471d30b41391bda63e8f3d461f54a6a4127594a2e2d0cab0c7576d511db5e5f211ed6cdac2afc620d3695e991a1dd08106f1201ec64697b14b3e0390
diff --git a/dev-python/setuptools/setuptools-79.0.1.ebuild b/dev-python/setuptools/setuptools-79.0.1.ebuild
index d0241741a821..66730d8b44c0 100644
--- a/dev-python/setuptools/setuptools-79.0.1.ebuild
+++ b/dev-python/setuptools/setuptools-79.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
@@ -129,6 +129,7 @@ python_test() {
local EPYTEST_XDIST=1
local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
- epytest -o tmp_path_retention_policy=all \
+ local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} )
+ epytest -o filterwarnings= -o tmp_path_retention_policy=all \
-m "not uses_network" setuptools
}
diff --git a/dev-python/setuptools/setuptools-83.0.0.ebuild b/dev-python/setuptools/setuptools-83.0.0.ebuild
new file mode 100644
index 000000000000..ea10b91d8d5c
--- /dev/null
+++ b/dev-python/setuptools/setuptools-83.0.0.ebuild
@@ -0,0 +1,122 @@
+# 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
+
+# please bump dev-python/ensurepip-setuptools along with this package!
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+
+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"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/jaraco-functools-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-text-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-10.8.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-25.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.45.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/build-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
+ dev-python/pytest-subprocess[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+# setuptools-scm is here because installing plugins apparently breaks stuff at
+# runtime, so let's pull it early. See bug #663324.
+#
+# trove-classifiers are optionally used in validation, if they are
+# installed. Since we really oughtn't block them, let's always enforce
+# the newest version for the time being to avoid errors.
+# https://github.com/pypa/setuptools/issues/4459
+PDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ local PATCHES=(
+ # https://github.com/abravalheri/validate-pyproject/pull/221
+ "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # remove bundled dependencies
+ rm -r */_vendor || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # broken by unbundling (e.g. installs self-wheel into venv)
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta
+ setuptools/tests/test_distutils_adoption.py
+ setuptools/tests/test_editable_install.py
+ setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist
+ setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
+ setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_entry_points
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ # TODO, probably some random package
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
+ # relies on -Werror
+ setuptools/_static.py::setuptools._static.Dict
+ setuptools/_static.py::setuptools._static.List
+ # Internet
+ setuptools/tests/test_build_py.py::TestTypeInfoFiles::test_type_files_included_by_default
+ setuptools/tests/test_dist.py::test_dist_fetch_build_egg
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd
+ setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import
+ # broken by warnings from setuptools-scm
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points
+ # TODO
+ 'setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[setup_requires_with_markers]'
+ )
+
+ local EPYTEST_XDIST=1
+ local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
+ local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} )
+ epytest -o filterwarnings= -o tmp_path_retention_policy=all \
+ -m "not uses_network" setuptools
+}
diff --git a/dev-python/sigstore/Manifest b/dev-python/sigstore/Manifest
index e0590ae7bed1..fe15d5cec057 100644
--- a/dev-python/sigstore/Manifest
+++ b/dev-python/sigstore/Manifest
@@ -1,2 +1 @@
-DIST sigstore-python-4.2.0.gh.tar.gz 300449 BLAKE2B 07a5e9682283867af0350e383054e9f9ec62ba022620925ee4baa4e0e2808d4e03ab720fb8a7fb6611284565a3d8ecb1436d60b4dc60050605b8c129ca53ba75 SHA512 8dc3ddad69ed3a72f5b6b8f013f8f7355dc88e8b429f53e23765153ed0d32b019c9372429389a2c660433569fa956e5c7f7ee1d3f084b1bb5c730d415a7d9ec1
DIST sigstore-python-4.3.0.gh.tar.gz 415515 BLAKE2B 7916adfa7b64ed0acc2ab1689584e3ced8df7587a5579538b9b5d2dc46cccb316e9d348312dfc075a00fc33e3d8b99a38fe8792e95544c5d2bae4845cf99a2d1 SHA512 6211ba78c2d608881ed46870597cf3273af89dc8313499a40a344bce1d6821f23b990cde63d27d6a2c5c1aa1b3d359bbbd368c6e1c11abdb6457d610eb3db580
diff --git a/dev-python/sigstore/sigstore-4.2.0.ebuild b/dev-python/sigstore/sigstore-4.2.0.ebuild
deleted file mode 100644
index 1bff8e2aebe5..000000000000
--- a/dev-python/sigstore/sigstore-4.2.0.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-MY_P=sigstore-python-${PV}
-DESCRIPTION="A tool for signing Python package distributions"
-HOMEPAGE="
- https://github.com/sigstore/sigstore-python/
- https://pypi.org/project/sigstore/
-"
-# no tests in sdist, as of 3.3.0
-SRC_URI="
- https://github.com/sigstore/sigstore-python/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
-
-RDEPEND="
- >=dev-python/cryptography-42[${PYTHON_USEDEP}]
- >=dev-python/id-1.1.0[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-4.2[${PYTHON_USEDEP}]
- >=dev-python/pyopenssl-23.0.0[${PYTHON_USEDEP}]
- >=dev-python/pyasn1-0.6[${PYTHON_USEDEP}]
- >=dev-python/pydantic-2[${PYTHON_USEDEP}]
- >=dev-python/pyjwt-2.1[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- ~dev-python/rfc3161-client-1.0.3[${PYTHON_USEDEP}]
- >=dev-python/rfc8785-0.1.2[${PYTHON_USEDEP}]
- >=dev-python/rich-13[${PYTHON_USEDEP}]
- ~dev-python/sigstore-models-0.0.6[${PYTHON_USEDEP}]
- ~dev-python/sigstore-rekor-types-0.0.18[${PYTHON_USEDEP}]
- >=dev-python/tuf-6.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/pretend[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # unpin deps
- sed -r -i -e 's:~=:>=:' -e 's:, ?< ?[0-9.]*::' pyproject.toml || die
-}
-
-python_test() {
- epytest test/unit --skip-online
-}
diff --git a/dev-python/sigstore/sigstore-4.3.0.ebuild b/dev-python/sigstore/sigstore-4.3.0.ebuild
index 287f00c321dc..1bff8e2aebe5 100644
--- a/dev-python/sigstore/sigstore-4.3.0.ebuild
+++ b/dev-python/sigstore/sigstore-4.3.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
RDEPEND="
>=dev-python/cryptography-42[${PYTHON_USEDEP}]
diff --git a/dev-python/simpy/simpy-4.1.2.ebuild b/dev-python/simpy/simpy-4.1.2.ebuild
index 3bf98372d4d0..d35da2d702ef 100644
--- a/dev-python/simpy/simpy-4.1.2.ebuild
+++ b/dev-python/simpy/simpy-4.1.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/snowballstemmer/Manifest b/dev-python/snowballstemmer/Manifest
index 95743d4fe925..cfd01af9374b 100644
--- a/dev-python/snowballstemmer/Manifest
+++ b/dev-python/snowballstemmer/Manifest
@@ -1,4 +1,2 @@
-DIST snowballstemmer-3.0.1.tar.gz 105575 BLAKE2B 68515d35b8aa8ad9f80e2fb37c483f6fe15951796413553e543b7cd4dfc2da37107766e8c96662498b63f019b5dfc62288f026d5465613d740421e41d00f2b99 SHA512 a9590da2b0be4b93a7500b337a63cf2039ff01a6da309ddb9462961c309b4763d4dfc925965a62376a9f3b41a05bb634d6472f1e2ee07e53b38f8542e7eada82
-DIST snowballstemmer-3.1.0.tar.gz 122523 BLAKE2B 12b91ea7aa3811272e0b6cb305912a913fa871f8cd5650659e27d73921a9319deec326c9a5dc8bc642961fd03e94b600b3f89b525f5a0454c0de41c023548764 SHA512 02d3022c76c3e6da37c599b9a58855e538ce5bddf0533c4b32ffeb44e426cbf998f20746c9563a5e05956c3118ce985a5129573f4342bdc94ed2dc1d1d62214d
DIST snowballstemmer-3.1.1.tar.gz 123314 BLAKE2B 95d416b7875e61cce37c987fc7c1359031019c45314c14dca32bc11a1249284b9c8cd040823f29e0da62fd9d2ef9365b50c55f98c2648a4e909e3c4d08328ddb SHA512 a36320c5c21b91137b6924025edac292891d3141a12cfe84fb1ee44f19980eeb35494bebf6c8cb9879c9633e06e27aa73f850157fbc074e926713ad47368b269
DIST snowballstemmer-3.1.1.tar.gz.provenance 9789 BLAKE2B 0ab22bd283a737c8fad74cbd8dd8d25546b58ce953000ef1060f3ff332bf31c33036c86d100b6451fb1fd41ca61821721128aacf0a659cce729a6c5673dda85b SHA512 0e9d24f96a6e108321c95b7c44a5c8f57cd9543aac214a6802e6c369754ac6673d2c088aa2e7dff27d4e4f10793c5546d1fa0a7d2dc7f7b03202c1cc649e000e
diff --git a/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild b/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild
deleted file mode 100644
index 51a2fd35365d..000000000000
--- a/dev-python/snowballstemmer/snowballstemmer-3.0.1.ebuild
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 pypi
-
-DESCRIPTION="Stemmer algorithms generated from Snowball algorithms"
-HOMEPAGE="
- https://snowballstem.org/
- https://github.com/snowballstem/snowball
- https://pypi.org/project/snowballstemmer/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
diff --git a/dev-python/snowballstemmer/snowballstemmer-3.1.0.ebuild b/dev-python/snowballstemmer/snowballstemmer-3.1.0.ebuild
deleted file mode 100644
index b3be6b0ccc09..000000000000
--- a/dev-python/snowballstemmer/snowballstemmer-3.1.0.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="Stemmer algorithms generated from Snowball algorithms"
-HOMEPAGE="
- https://snowballstem.org/
- https://github.com/snowballstem/snowball
- https://pypi.org/project/snowballstemmer/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-
-distutils_enable_tests import-check
diff --git a/dev-python/snowballstemmer/snowballstemmer-3.1.1.ebuild b/dev-python/snowballstemmer/snowballstemmer-3.1.1.ebuild
index 1944cf6a6be5..e04b9385f069 100644
--- a/dev-python/snowballstemmer/snowballstemmer-3.1.1.ebuild
+++ b/dev-python/snowballstemmer/snowballstemmer-3.1.1.ebuild
@@ -18,6 +18,6 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
distutils_enable_tests import-check
diff --git a/dev-python/sphinx-autodoc-typehints/Manifest b/dev-python/sphinx-autodoc-typehints/Manifest
index 2404b8acddd8..1a6dfb4dab23 100644
--- a/dev-python/sphinx-autodoc-typehints/Manifest
+++ b/dev-python/sphinx-autodoc-typehints/Manifest
@@ -1,16 +1,8 @@
-DIST sphinx_autodoc_typehints-3.10.2.tar.gz 74241 BLAKE2B 8ba5a42b508a13d95f4a66a4c45115b31e8ee81db7c34a95e5b76123a87624d5d7c2ee0929ff2b17f48c5e73ff1c78689b355c76a2e5696875573e4c284f0d45 SHA512 58780573ba8ca74191ffbba1629e1b618b6b4689f0c67525195b88442417f657e4588e54197cfd98f4998ae75c50570039bd2bd99b0926ceed958d113fe76a7c
-DIST sphinx_autodoc_typehints-3.10.2.tar.gz.provenance 10039 BLAKE2B f3f8699c481cadae8d8d416b4ab04061611f3608e0e445b7aff93c6eabd94979ffe2a82c5d90ac73112ce6197a5134d2e99ced960e0eab98e5fa977df4060f72 SHA512 fb2308cf8e1a5e59ad780e754d6b3247d609cbc4e2ae0e3c2db5bf25c11c81c50ae06fa51d22e9fc0dae3587cc9d793cf1c900c316fd9f5d22e8c95d0df79ed8
-DIST sphinx_autodoc_typehints-3.10.3.tar.gz 78698 BLAKE2B 94d827a8e896e99f225cf7b91769a16e940d0eed5e93bbd39af43f2c8f0bfe478360547ecb04493f547f915950e487f848c2affc5e4af7cf9ff9530c68f18080 SHA512 1341f11612f9065ef88f698117d41d8296ec456d6198c9a55be644b666ca5bdd0015ed6999a1afdc2fe7a8c034cd470e125ffb6c21970f4b1e614d2e605cedf2
-DIST sphinx_autodoc_typehints-3.10.3.tar.gz.provenance 10182 BLAKE2B 57894c2962a4bd77e549f686f81e71f3a86dc93041fdda12692f19696afb8e69bfa5e3b70faccda3a0c8fea823f06e4608d8acc31d85a2e8b5cc322b12543787 SHA512 6400a52f04923f4ffa7e6e8aae5130abdf55cb842d115632c4233ae47f9639d59c73ef3d9245e7ed839119f82c815e285df381a32da3eeb3b6d548884e24df97
-DIST sphinx_autodoc_typehints-3.10.4.tar.gz 79571 BLAKE2B 6975a7a8af4730b3db5dc03466f2d585b21721a78d63c3d698abd62d68cb8bab12171e817bf7fd26fb0d14bf0a35b61dfe6c410d620bb35fe2a08c30a01f3f4f SHA512 7613dcfb79677586090d215622dd22522813904bae7bef0da81b4869024c2e248125090016ef555c437909b9caffdec8cca0878f37c3bda156bea38a23f9d2ce
-DIST sphinx_autodoc_typehints-3.10.4.tar.gz.provenance 10233 BLAKE2B 076fde02ad406e8f49cb4da9fa1c290b0f24083a75193686896dd00fd3b091a873400bbe08fc61d35d5c14e843d3254fd1e242007b1c0f676885ed7b56a2cabc SHA512 e9447087e1725aa3d6f5bf62d3a2ea628e2405104e45b76231fd1e396d76a73fc816162fe3d2033ead92bd0fbe0de42411dd5ecc302cb49fa536cb786798faf3
DIST sphinx_autodoc_typehints-3.10.5.tar.gz 79721 BLAKE2B 0a841ae1c38de85611ad82fb96d1141c3b3280c312bdb27e86de4b8d50adf52ee2d5b98f1a1d1fd0850498b5e1342414495734a317e991ae02c53cc1fd985bd7 SHA512 3bcc8241b782945810a66c9a5947e942229afd9b6125df60cdee876197b093e63d58f0ba687181ecb8666136ab156d571314409ab00230102b3cf92cd0f67885
DIST sphinx_autodoc_typehints-3.10.5.tar.gz.provenance 10037 BLAKE2B 675d402ff82e1eb2e8f658ef5ba0aa00db083ffad16fd6e45dad6ee345996e3ced176fa09fb4d9c92215db8c41a2f0e15709061b9da6d614cc1d15c528f48ea8 SHA512 ccad8edef0ec6e479acf1da8769044fb4863e801a5ea15aa36c7b931622de2f7a1540b76152a06ad1bf9f66a2d4f4625f5760a06a62ca4be554fe8d72ca30183
DIST sphinx_autodoc_typehints-3.10.6.tar.gz 80926 BLAKE2B bddd84c630da77a66ab70a4691d64eeddf04475383b40958379683449aff0ac79dd0f8e6011710f71ceb9c44fe65193635d1fb88bfa7a2561fb21de81266cf6e SHA512 99a5b4b13a8ecc6d11edaea18c6e68331743f2bd65a514a14990641fa1fa214865f5caa430117be863643d5d7b112b129f25263722ba49e08257296cbb56330c
DIST sphinx_autodoc_typehints-3.10.6.tar.gz.provenance 10284 BLAKE2B b7341d815e653acfd4f5f82f14b6f33b27501a32bdcc0a1a18eaa75facf3db7527c9f3396e4032a2cb5c9fe20a5e34faebe048c879651114b58f6cff0aa0d7a8 SHA512 2da7939129b668ec2899a52d161c9375e09d6def0c9bd49752f43355d113d088c5b080faa5a18b2d4dfcfbaba88d9954764c5ff1350fd21ddefcdd680dda0aa3
DIST sphinx_autodoc_typehints-3.11.0.tar.gz 82518 BLAKE2B 3021c92ae92e8ad2dbcec1e6a4f936a9b6cd49ef8b6254ecaabcb7d3a9d53feba57a4130195ceac463bd53b3fc604be74057ee552dabbefed2e61350d181fe81 SHA512 bb20c5f81723250dc4ef1eb8be4f9ca649de77e405f80bb95110ae14d563e614f7712eaa1c165d614c257faeb4e70e64b3ca15fb8208ddf240eb93cc6704e24b
DIST sphinx_autodoc_typehints-3.11.0.tar.gz.provenance 10139 BLAKE2B 0eea213b241e1ac188205e4707f9db1cd1907efb94cdd8dd34aba0bfce7564714df65249b63d577d335d0bb63ca3306c5ddce131a9cd52dad42c12a26fd6fcc8 SHA512 063cb60182b133d9f627871a60e749743bacf29d7728504b6abb8d21b80f30b1bff02c5d5afb5150e0b332802a558480c81f3a4c73a5e57d1f7bf9bde38f109d
-DIST sphinx_autodoc_typehints-3.12.0.tar.gz 83874 BLAKE2B d50d52d5a5af977d7251fb44f4017fedb7d85e81f494e2a7e135739894334d4998b8c240e1a733d30309d1045e397420038b265d95d5b4571430581b50070719 SHA512 764982f514244132595a0d2d42d29ab6c40a3c6fe083551d4cf259be16a3abd7cbdc6cd252fbef3eb08d9a90d6276e5377ce499dfc709987d4c9c372d9dd6c0e
-DIST sphinx_autodoc_typehints-3.12.0.tar.gz.provenance 10272 BLAKE2B e2c05d79d5a33b84fa90eb67461f826cec47c33c8906a529cbbfaa947d7cb78458d581d4cebc4edda1c85e60175c232d69c51a6bf78107116e03cdec32314e94 SHA512 ab956266e98adf4cef989b41c00c85c8eea50c66a9171483d06ecf7543bb7867e074faafa2175ddedaac80d4d44fc17d6b590c72b9d1db87a30d9f3a1597e895
DIST sphinx_autodoc_typehints-3.12.1.tar.gz 84421 BLAKE2B 5807639a01751209119ef11a8a5ea1f76d46e3115da59d3bc2e79f5d195944f355d487681ec17fb12ead0be83cd3c3408ab3fecb68b7897cc52b4e62d0e427fd SHA512 6cf8eca5a01deff3a73f759af72cebd1de0c37210f6e4e9134cd7d96f49d0cc56ca1f2884c799e652c11ac86ec52a03dcee31fcd3af75ce71b4e7216e384923e
DIST sphinx_autodoc_typehints-3.12.1.tar.gz.provenance 10280 BLAKE2B 9ca2dc04dda61eaff9986389bb9acbcb7ad3d034dc80dc73a6a264302a5eca8e5ee3db9e290f0dca778c9a4e02954ef2d1a4d07c9e53548354ad9985af1ed55f SHA512 e69f82582a71a8fbe1470cb38c73ea04cde05e03cc282c93e235c31ad814821fbf3386ee081440ee7e678de048a910116135479030d0b83802a12e1d24bbb4d0
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.2.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.2.ebuild
deleted file mode 100644
index fc631287b941..000000000000
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.2.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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/sphinx-autodoc-typehints
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Type hints support for the Sphinx autodoc extension"
-HOMEPAGE="
- https://github.com/tox-dev/sphinx-autodoc-typehints/
- https://pypi.org/project/sphinx-autodoc-typehints/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
-"
-# 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/attrs-25.4[${PYTHON_USEDEP}]
- >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
- >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internet
- tests/test_annotations.py::test_format_annotation
- tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
-)
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.3.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.3.ebuild
deleted file mode 100644
index 238733c448a1..000000000000
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.3.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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/sphinx-autodoc-typehints
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Type hints support for the Sphinx autodoc extension"
-HOMEPAGE="
- https://github.com/tox-dev/sphinx-autodoc-typehints/
- https://pypi.org/project/sphinx-autodoc-typehints/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
-"
-# 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/attrs-25.4[${PYTHON_USEDEP}]
- >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
- >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internet
- tests/test_annotations.py::test_format_annotation
- tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
-)
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild
deleted file mode 100644
index 238733c448a1..000000000000
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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/sphinx-autodoc-typehints
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Type hints support for the Sphinx autodoc extension"
-HOMEPAGE="
- https://github.com/tox-dev/sphinx-autodoc-typehints/
- https://pypi.org/project/sphinx-autodoc-typehints/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
-"
-# 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/attrs-25.4[${PYTHON_USEDEP}]
- >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
- >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internet
- tests/test_annotations.py::test_format_annotation
- tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
-)
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild
index 238733c448a1..fc631287b941 100644
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.ebuild
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.5.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.12.0.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.12.0.ebuild
deleted file mode 100644
index 238733c448a1..000000000000
--- a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.12.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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/sphinx-autodoc-typehints
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Type hints support for the Sphinx autodoc extension"
-HOMEPAGE="
- https://github.com/tox-dev/sphinx-autodoc-typehints/
- https://pypi.org/project/sphinx-autodoc-typehints/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
-"
-# 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/attrs-25.4[${PYTHON_USEDEP}]
- >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
- >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internet
- tests/test_annotations.py::test_format_annotation
- tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
-)
diff --git a/dev-python/sphinx/files/sphinx-9.1.0-test.patch b/dev-python/sphinx/files/sphinx-9.1.0-test.patch
new file mode 100644
index 000000000000..c7a0b98b75a3
--- /dev/null
+++ b/dev-python/sphinx/files/sphinx-9.1.0-test.patch
@@ -0,0 +1,48 @@
+From c01b0eb640bbc3dbd8141f3ea08df9edaa78ab2c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
+ <10796600+picnixz@users.noreply.github.com>
+Date: Sun, 7 Jun 2026 11:49:11 +0200
+Subject: [PATCH] Fix `test_search.py` with long-word splitting (#14474)
+
+---
+ tests/roots/test-search/index.rst | 1 +
+ tests/test_search.py | 7 ++++++-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/tests/roots/test-search/index.rst b/tests/roots/test-search/index.rst
+index b38fd0271f6..c618633c345 100644
+--- a/tests/roots/test-search/index.rst
++++ b/tests/roots/test-search/index.rst
+@@ -19,6 +19,7 @@ International
+
+ .. tip::
+ :class: no-search
++
+ bat cat
+
+ .. toctree::
+diff --git a/tests/test_search.py b/tests/test_search.py
+index f94ae987bb7..64ec4670085 100644
+--- a/tests/test_search.py
++++ b/tests/test_search.py
+@@ -76,6 +76,11 @@ def is_registered_term(index: Any, keyword: str) -> bool:
+ return index['terms'].get(keyword, []) != []
+
+
++def is_registered_prefix(index: Any, prefix: str) -> bool:
++ terms = index['terms']
++ return any(k.startswith(prefix) and v != [] for k, v in terms.items())
++
++
+ FILE_CONTENTS = """\
+ section_title
+ =============
+@@ -144,7 +149,7 @@ def test_stemmer(app: SphinxTestApp) -> None:
+ searchindex = load_searchindex(app.outdir / 'searchindex.js')
+ print(searchindex)
+ assert is_registered_term(searchindex, 'findthisstemmedkey')
+- assert is_registered_term(searchindex, 'intern')
++ assert is_registered_prefix(searchindex, 'intern')
+
+
+ @pytest.mark.sphinx('html', testroot='search')
diff --git a/dev-python/sphinx/sphinx-9.1.0-r1.ebuild b/dev-python/sphinx/sphinx-9.1.0-r1.ebuild
new file mode 100644
index 000000000000..94880c62e0f9
--- /dev/null
+++ b/dev-python/sphinx/sphinx-9.1.0-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="Python documentation generator"
+HOMEPAGE="
+ https://www.sphinx-doc.org/
+ https://github.com/sphinx-doc/sphinx/
+ https://pypi.org/project/Sphinx/
+"
+SRC_URI="
+ https://github.com/sphinx-doc/sphinx/archive/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD-2"
+SLOT="0"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+IUSE="doc latex"
+
+RDEPEND="
+ >=dev-python/alabaster-0.7.14[${PYTHON_USEDEP}]
+ >=dev-python/babel-2.13[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.21[${PYTHON_USEDEP}]
+ >=dev-python/imagesize-1.3[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.14[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.30.0[${PYTHON_USEDEP}]
+ >=dev-python/roman-numerals-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/snowballstemmer-2.2[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-applehelp-1.0.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-devhelp-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-htmlhelp-2.0.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-jsmath-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-qthelp-1.0.6[${PYTHON_USEDEP}]
+ >=dev-python/sphinxcontrib-serializinghtml-1.1.9[${PYTHON_USEDEP}]
+ latex? (
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ app-text/dvipng
+ )
+"
+BDEPEND="
+ >=dev-python/flit-core-3.11
+ doc? (
+ dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}]
+ media-gfx/graphviz
+ )
+ test? (
+ app-text/dvipng
+ >=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.0[${PYTHON_USEDEP}]
+ dev-texlive/texlive-fontsextra
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ virtual/imagemagick-tools[jpeg,png,svg]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/sphinx-3.2.1-doc-link.patch"
+)
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+# EPYTEST_XDIST breaks stuff
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ local PATCHES=(
+ # https://github.com/sphinx-doc/sphinx/commit/c01b0eb640bbc3dbd8141f3ea08df9edaa78ab2c
+ "${FILESDIR}/${P}-test.patch"
+ )
+
+ # disable internet access
+ sed -i -e 's:^intersphinx_mapping:disabled_&:' \
+ doc/conf.py || die
+ # unpin dependencies
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # we can't use distutils_enable_sphinx because it would
+ # introduce a dep on itself
+ use doc && build_sphinx doc
+}
+
+python_test() {
+ mkdir -p "${BUILD_DIR}/sphinx_tempdir" || die
+ local -x SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir"
+
+ epytest
+}
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index 19c8befffed4..1944d7ee17b0 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,4 +1,3 @@
-DIST sqlalchemy-2.0.49.tar.gz 9898221 BLAKE2B becdf2e8fab5712ac175ac649bb2f6a8b830122d3df218c5f4039ef9e51a3ebe1d99d21fc13719d8c48b9de1b335ed079fc59f5ada696ae11c682f418640aa4a SHA512 7c28643c0f220f0c096eab3aff094949144b42fe0c72813f5a9ed27d1531504b2ecef30d9ce0e7294110519588ba687a30f414a6ba961e99bf37d4fb867da47e
DIST sqlalchemy-2.0.50.tar.gz 9907424 BLAKE2B bea56c629fb1e98f031149191e3ba5d74bd167a3213cbd400dbc61c38457b9b3c1ec8e3f712f452f62791889829500272d740d40059ef374e50d41aeb96d2d71 SHA512 3cb9872cb9adc7ca52d5a28c581e2be21f6e6853405a8fc15ef34c2e2b8a52cad066b46dbac264193b323d85ab9f5a06a7f98867c66f048e5ee836ec5ef6b4df
DIST sqlalchemy-2.0.51.tar.gz 9912201 BLAKE2B d3cc81bc5d10db4a2d9670020d64831d7f5b5f56419a8ad6ab4e201dbb575be28300ac6b57724e1c1b515436339ff51d84b0ff0de9073ef9da2d37bf2c46e43c SHA512 af3965c5c43921b8e4330348b7d1a46357fa5d6a9a0acde66b4c3e65aedbd27afabc257cde113d38f3be3f3a91d524230fb17efc5515b826442d4fb4d6b7bc1d
DIST sqlalchemy-2.1.0b2.tar.gz 10225731 BLAKE2B ec2a69fe0f636f6a9366874e071b43b3f7314de57483e8c6948042b232a0b336273f9ab1f89ad43969db1ec111b037b705b2b41dcaa0e140eb2fe66a1d6e29e8 SHA512 ad1087cc6a8a2d6646ddc74a5ef10e0218275c32a2f8b90ca41138800fd2bc9a9ca8afb60de3a0a424f6111226e55ff21d16f14de3b57ddd26bccd9d883c7c01
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.49.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.49.ebuild
deleted file mode 100644
index 53db923c6b89..000000000000
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.49.ebuild
+++ /dev/null
@@ -1,120 +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_PN=SQLAlchemy
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="sqlite?"
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
-HOMEPAGE="
- https://www.sqlalchemy.org/
- https://pypi.org/project/SQLAlchemy/
- https://github.com/sqlalchemy/sqlalchemy/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
-IUSE="examples +sqlite test"
-
-RDEPEND="
- >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
- test? (
- $(python_gen_impl_dep sqlite)
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_RERUNS=5
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/greenlet/d' setup.cfg || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- test/ext/mypy/test_mypy_plugin_py3k.py
- test/typing/test_mypy.py
- # hardcode call counts specific to Python versions
- test/aaa_profiling
- )
- local EPYTEST_DESELECT=(
- # warning tests are unreliable
- test/base/test_warnings.py
- # TODO: flaky? xdist?
- test/base/test_concurrency_py3k.py::TestAsyncioCompat::test_await_fallback_no_greenlet
- )
- local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # TODO: looks like cursor cleanup failure
- "test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"
- # mismatched exception messages
- "test/dialect/sqlite/test_types.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message"
- test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg
- test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg
- test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access
- test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string
- # TODO
- test/orm/test_utils.py::ContextualWarningsTest::test_autoflush_implicit
- test/orm/test_utils.py::ContextualWarningsTest::test_configure_mappers_explicit
- "test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_${sqlite_version//./_}::test_new_row_no_dict_behaviors"
- "test/sql/test_compare.py::HasCacheKeySubclass::test_init_args_in_traversal[_MemoizedSelectEntities]"
- test/sql/test_lambdas.py::LambdaElementTest::test_bindparam_not_cached
- test/sql/test_compare.py::CompareAndCopyTest::test_all_present
- "test/dialect/sqlite/test_on_conflict.py::OnConflictTest_sqlite+pysqlite_${sqlite_version//./_}::test_on_conflict_do_update_bindparam"
- test/sql/test_compare.py::CacheKeyTest::test_cache_key
- test/sql/test_compare.py::CompareAndCopyTest::test_compare_labels
- test/sql/test_compare.py::CompareAndCopyTest::test_copy_internals
- )
- ;;
- esac
- if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution
- test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]"
- "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]"
- "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]"
- )
- fi
-
- # upstream's test suite is horribly hacky; it relies on disabling
- # the warnings plugin and turning warnings into errors; this also
- # means that any DeprecationWarnings from third-party plugins cause
- # everything to explode
- epytest --reruns-delay=2 -m "not gc_intensive and not timing_intensive and not mypy"
-}
-
-python_install_all() {
- if use examples; then
- docompress -x "/usr/share/doc/${PF}/examples"
- dodoc -r examples
- fi
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature "asyncio support" dev-python/greenlet
- optfeature "MySQL support" \
- dev-python/mysqlclient \
- dev-python/pymysql
- optfeature "postgresql support" dev-python/psycopg:2
-}
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild
index 3d00017e0c48..4425965f67ea 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.50.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
IUSE="examples +sqlite test"
RDEPEND="
diff --git a/dev-python/starlette/Manifest b/dev-python/starlette/Manifest
index ea61dfdb7e6e..d05723f29c10 100644
--- a/dev-python/starlette/Manifest
+++ b/dev-python/starlette/Manifest
@@ -1,4 +1,2 @@
-DIST starlette-1.0.1.gh.tar.gz 2661109 BLAKE2B 470130a8715617ea0dc0084f5d071ea7c2a9abe5cfbe6de4dea2491256ed0788aedde7eeb442e51f4a07670da6c311e94a9363de9e4f249e99298cf4b27a2853 SHA512 c810022cf682d79f2fea2a9b869158f3c002a98ba4e234941d500ae8c0509b3249c842ab94328971b04581bd4aa9cb71dc7358d4d6bf8cacbcb885e253bbca72
-DIST starlette-1.1.0.gh.tar.gz 2661577 BLAKE2B be2256692c7cd286e6b414504aa71d10187b1bd245c73030b57f1919aaadaaf665bb5253eae4adfd1183ea6ac9282670a6f3a98d09bedf4412f48804ca99e6cd SHA512 a351b971ee4ed3d2c305c3811e1fd0649f7039d4a72ed70ddbd3054a68ca3ccb89dea444647b31abf15057db7c03fa05fd92a488871febdd2b9bf7c421aad72f
DIST starlette-1.2.1.gh.tar.gz 2704768 BLAKE2B 6d50be60483f50a025f0a37f35d39c2a8f230628edd9b19706d99cb13b6fdb98ea680637108c15c52073fddb02ac2839554e0db55cd4e6cb86867e230dfc7dcc SHA512 92e3230af0082aeb4dcd9eb733f14b71613b1be01857d7642455d29539b3bbc97301a2fb801415ce9c106af77ef1f3baaf36dd44812d5e95460498cdf51b7c60
DIST starlette-1.3.1.gh.tar.gz 2706241 BLAKE2B c2d8834dd477072d9f02f3cf0bb1b106331eae98f281a471d123d19d0054165b9d68066df323828b7b5bbd4525da9603509d8fffc25074c95f345a015ff973c4 SHA512 962d46da98e5c198056462cd9b847849f639029f331bed4d516a7437fdc7dcf6f9977cc6c83a4474f291d8b78453ed88ce555fa2a386f0a98e1d5ceb22f34d7c
diff --git a/dev-python/starlette/starlette-1.0.1.ebuild b/dev-python/starlette/starlette-1.0.1.ebuild
deleted file mode 100644
index 5500b82f9815..000000000000
--- a/dev-python/starlette/starlette-1.0.1.ebuild
+++ /dev/null
@@ -1,56 +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
-
-MY_P=${P/_p/.post}
-DESCRIPTION="The little ASGI framework that shines"
-HOMEPAGE="
- https://www.starlette.io/
- 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"
-
-RDEPEND="
- <dev-python/anyio-5[${PYTHON_USEDEP}]
- >=dev-python/anyio-3.6.2[${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}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-3.10.0[${PYTHON_USEDEP}]
- ' 3.11)
-"
-BDEPEND="
- test? (
- >=dev-python/pytest-8[${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/starlette/starlette-1.1.0.ebuild b/dev-python/starlette/starlette-1.1.0.ebuild
deleted file mode 100644
index db3b75da187a..000000000000
--- a/dev-python/starlette/starlette-1.1.0.ebuild
+++ /dev/null
@@ -1,56 +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
-
-MY_P=${P/_p/.post}
-DESCRIPTION="The little ASGI framework that shines"
-HOMEPAGE="
- https://www.starlette.io/
- 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"
-
-RDEPEND="
- <dev-python/anyio-5[${PYTHON_USEDEP}]
- >=dev-python/anyio-3.6.2[${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}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-3.10.0[${PYTHON_USEDEP}]
- ' 3.11)
-"
-BDEPEND="
- test? (
- >=dev-python/pytest-8[${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/starlette/starlette-1.2.1.ebuild b/dev-python/starlette/starlette-1.2.1.ebuild
index db3b75da187a..5500b82f9815 100644
--- a/dev-python/starlette/starlette-1.2.1.ebuild
+++ b/dev-python/starlette/starlette-1.2.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
<dev-python/anyio-5[${PYTHON_USEDEP}]
diff --git a/dev-python/subprocess-tee/subprocess-tee-0.4.2.ebuild b/dev-python/subprocess-tee/subprocess-tee-0.4.2.ebuild
index 519e4cd5f29d..126da6369035 100644
--- a/dev-python/subprocess-tee/subprocess-tee-0.4.2.ebuild
+++ b/dev-python/subprocess-tee/subprocess-tee-0.4.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -29,6 +29,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/syrupy/syrupy-5.4.0.ebuild b/dev-python/syrupy/syrupy-5.4.0.ebuild
index 79ebfc3cbb57..b7697bac9626 100644
--- a/dev-python/syrupy/syrupy-5.4.0.ebuild
+++ b/dev-python/syrupy/syrupy-5.4.0.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/tblib/tblib-3.2.2.ebuild b/dev-python/tblib/tblib-3.2.2.ebuild
index 24ca54ae027e..d9d807bd8803 100644
--- a/dev-python/tblib/tblib-3.2.2.ebuild
+++ b/dev-python/tblib/tblib-3.2.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/terminado/terminado-0.18.1.ebuild b/dev-python/terminado/terminado-0.18.1.ebuild
index 4d842114688c..06b3d6db1fd8 100644
--- a/dev-python/terminado/terminado-0.18.1.ebuild
+++ b/dev-python/terminado/terminado-0.18.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -22,13 +22,9 @@ RDEPEND="
dev-python/ptyprocess[${PYTHON_USEDEP}]
dev-python/tornado[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_RERUNS=5
distutils_enable_tests pytest
src_test() {
@@ -37,8 +33,3 @@ src_test() {
local -x INPUTRC="${T}"/inputrc
distutils-r1_src_test
}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p timeout -p rerunfailures --reruns=3
-}
diff --git a/dev-python/textx/textx-4.3.0.ebuild b/dev-python/textx/textx-4.3.0.ebuild
index b74f27684b63..7381f50ee07d 100644
--- a/dev-python/textx/textx-4.3.0.ebuild
+++ b/dev-python/textx/textx-4.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/thriftpy2/Manifest b/dev-python/thriftpy2/Manifest
index 2657416f24ea..eb3fb5e5a912 100644
--- a/dev-python/thriftpy2/Manifest
+++ b/dev-python/thriftpy2/Manifest
@@ -1,2 +1 @@
DIST thriftpy2-0.6.0.tar.gz 996147 BLAKE2B afa23e8ca5247752a141d52d223433539683318290506f52d3c42e0869a775abf35a07330e15112490eec408ae7b70e38e86b5ad55ffb29bb15a57bbcbd0c906 SHA512 a2637ccaf293030211b00d202b21153719172afadfce09c3152157ad850442335000bff33d5335b22cbd662fc768653a5e0b364e4f4980d0d77b211d00f120f4
-DIST thriftpy2-0.6.0b1.tar.gz 996052 BLAKE2B a97ed54439ec0cacbe45d6c0ca80ec099a066cf7b6cbe890224db00776cd61d7c5ad3347fe4de4423c67578963dc8d8ea63512d59134a0ddc8908d4eef4fd173 SHA512 8a4df0dc2c62f9302bb3d05642bb109a6cad5b7d68a9b24423a0369a6efade6bc961ba91418d9bc8c4f00c12456d4e6fe4b9327f11bee11c369f5c1395e576e5
diff --git a/dev-python/thriftpy2/thriftpy2-0.6.0_beta1.ebuild b/dev-python/thriftpy2/thriftpy2-0.6.0_beta1.ebuild
deleted file mode 100644
index b9387efff44d..000000000000
--- a/dev-python/thriftpy2/thriftpy2-0.6.0_beta1.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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 pypi
-
-DESCRIPTION="Pure python approach of Apache Thrift"
-HOMEPAGE="
- https://github.com/Thriftpy/thriftpy2/
- https://pypi.org/project/thriftpy2/
-"
-
-LICENSE="MIT"
-SLOT="0"
-if [[ ${PV} != *_beta* ]]; then
- KEYWORDS="~amd64 ~x86"
-fi
-
-RDEPEND="
- <dev-python/ply-4[${PYTHON_USEDEP}]
- <dev-python/six-2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/cython-3.0.10[${PYTHON_USEDEP}]
- test? (
- dev-python/tornado[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,reraise} )
-distutils_enable_tests pytest
-
-python_test() {
- cd tests || die
- epytest
-}
diff --git a/dev-python/tibs/Manifest b/dev-python/tibs/Manifest
index 247cd1e6ea61..5b2966cebc35 100644
--- a/dev-python/tibs/Manifest
+++ b/dev-python/tibs/Manifest
@@ -2,26 +2,21 @@ DIST allocator-api2-0.2.21.crate 63622 BLAKE2B 983897fc977118f220dc4af7e801ac08e
DIST anyhow-1.0.102.crate 48658 BLAKE2B d9c7b7c50b7319be0e67bb236e0420a67e3fd6d6f4bd53a84cafc7a5385785275151832be472c0063405e6d458b5add3907b670ba5e300e08efaae699ab77c44 SHA512 18064a92b6d577151b6f1be3df0985fdefdc5f7089ac0aa9bc92a2034c780eac5b71b8fbb260217aea122bee7c950ff00abf4b6d8f4143dff889b7164c7d6f0b
DIST bitflags-2.11.0.crate 48906 BLAKE2B 35764719b3070c5f9b51d35297803306ce01823ef07d720e5ea5e112c072b45c4d497f6b63285b1a0fce2842b1468bc252b00564c2ece14211d2af2cd26c2faa SHA512 d6c0de6c06ed8d1249dd69de035dfe5b23d9f1a8fcdc7535756622cf660807c5e1c692dee1ac832c06be1ce41b225e3d60f36be4d1896bab7d986d18946f6c48
DIST bitvec-1.0.1.crate 224375 BLAKE2B 9f109db6888cf73d69646911cc1c9e90535e54a7afc436d878bbc63ca20a30cc6e5b5b5cd42aa78c38df5a4012454769c126f9072f39d58bdd09e54887ba6d9f SHA512 83d643c5aca020ebbe9094b5aaba6a796e7c3c509228a4348444e57a06bc3a5dd042eed57a2254d91661e73bdab2bc0d1bd02be376906acc6b6d75b5354a8d8e
-DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
DIST block-buffer-0.12.0.crate 14926 BLAKE2B 8c62650f39117c337c167027d356339ca8e20277e78b0e045e32cc3692b8b5b1d8023bfde5887edb22be6dd5d787fa423380b53d18fb8359c43501d28a88f3d5 SHA512 3ebe9faa231d777f76dbb7b78c72eebd913b109cf929b0a66399758d06829a7c1cc9ab06f8ac951739d91be0cb402a49bff918228359399367ce8e69a112da78
DIST bytemuck-1.25.0.crate 53466 BLAKE2B 830e02a871cbffdce2852a474e330dbb2ac8db55e916fe77a0ad520e7ed0bd45b8c8855e75e37c20bc30cc83fb3e0694914433e0fbef11ca80e07d89a82b2b9f SHA512 9dd563be656ec3fab00017b5080022f4d0cce4b10e314129609d19c5b7595da2d5a80f9c14170bb09ed4cf712aabbe40f17f9efe5f19acff80f27065c98de5eb
DIST cc-1.2.60.crate 97051 BLAKE2B 292350c3fe7dc3e023fe4f7cd07b3a5a7233996963b42391243948f834a17cf69781bab32cf46d62722c45437f50123450811dce8aa0e96ee63f35480cc15d90 SHA512 d67fd7400bd1d20f26f7a6743ac02ad09dba0b8002172b87907f4a7ae2487ee41feb2f24fe375ca91a3ac4fde1dc8b48b6703b74297c9eb42bd1e91ac8fe4e80
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
DIST chacha20-0.10.0.crate 38763 BLAKE2B 84d3d12379495b724b33accdbafe0209d0ddfeec74115b59228fb03e02089f1531f1396783a408b26cfb90372670c809bee8ab056cc847102cfc92ea065656aa SHA512 97e50d8e16118070ec75c086bae3695513b63c2ad3c5d43e3fb57892f21c9634977bc506c0c094aeb61bc8864518cee3eabf6b81504128ab0a876b2f6860b43a
DIST const-oid-0.10.2.crate 61449 BLAKE2B 47249f191178e370ea39e4fc31f9ec9cd81b7ad7e89bc14a02eb81932128ec15d51a36baa28b792b05b95329410ff5aef9de3285c4718f1bb2cf3c9d54c73742 SHA512 9ad6ecce2c1d4c177b53d602b9b610442701e72daffa370af71553a380cdfdbea800fb8d7413aa2df273121dd6d0a511fac4b64a10bcd2e046ec19b4eadad007
-DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2
DIST cpufeatures-0.3.0.crate 14156 BLAKE2B 9408d9b8f314a21702bde22f272d47263ef06e8f6fac116edb2464109ae2ff0d10b9d4f54d465bb6c55bea5722326bb8ee541352e6f5e03116a449930fa8375a SHA512 a842c5e7fe435c4339ba0e12169bcf1a2c2ebf4b0d02cf200f91d88a736607a930ba840a7db6a71afc6b125649a9f14ce0977599db917ee78880ec1ed9600f88
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.2.crate 15449 BLAKE2B 60d28350f63359b7163daea85a79d731fd71515bae1889df5249b97920a6acd89a8d5df8781de34a6aaa84c6f41b9e63a64c04f034b666314e822fe3e4bbfaa3 SHA512 cdf1401a0c18f9924ee2a6c91cdf1e18dbe8a5a064ef3052fa6ccc86d81b23fb2b23ccf8251f1dfe430d40d3958108b38be55d2f13fadae694910bc40cd23130
-DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
DIST digest-0.11.3.crate 28955 BLAKE2B 89b634768fb53abe6741dbdc4baa86faba40f740385304bc092acbcc041c647da8f113ca7c0b2760e782d88e053830ec751e3d94702926646d75437f61a59abe SHA512 08bc962230512385963bfc17167d84fb329735b29b06998075ac8e1e0b66131d243dbb3ecd7fec2637c0a55a4b37c4cdb1553599ccd8ac34dfe164eee1c147f5
DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
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 funty-2.0.0.crate 13160 BLAKE2B db6315d63fffe9f70698da0b1b0e4aea4b509242c60e6639f00303dad8d2ba60c6c1c04fe9289695b7aa2d7a0c90c31fba72656afa7ad111b77358772b14a9f5 SHA512 691e1c275b648110ef42c4adece8178cf037bad40d469780280eb2ebe07aa4b0406737c5ba02c9f9f63ee57a99fec27e5e51712e2113655f7522c8678f689155
-DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
DIST getrandom-0.3.4.crate 50932 BLAKE2B 34165a6994877aeaf3063affd48eb499512371a1fdc0d890feee598b5e22c14cb8347642a0e9374cd5d8a59a8281db839e45923769260312379321bef54c687d SHA512 43c44ec3ba0668f388519b2cefbee63f959f0e078730b3f7563742522e5f4b120472024b95fc94aeb90900a15d327c3573271bb26b2de4785e589a8bc1bc9da8
DIST getrandom-0.4.1.crate 53686 BLAKE2B 3b6dd1e30a5b9e771efa0a3d87da99c8c0da5f3be368859b1ba6f883c9a7ab4926c3713149cec3524766070d8fffd284ab5c382c29b74e0aeb54682d4643eaba SHA512 120649af83beaf0ae68e28e47838c11ab7def55f683c16fb4cade1f13bdb38316a1823e93f420ac9a5d928868d09f376b9b079dda2a639eb1c2f931c09ba43f4
DIST half-2.7.1.crate 61040 BLAKE2B bd78abf71b1b0ae219d2293f8edd5084fa630150016c95786d0af38a898d2775ff73ce848c4b2bbf02c2ea2dc8a610b2e045df78892d2b1de28981e8033625a7 SHA512 f47cc8bfb4c754a8585d4e8eca1a35039dc0879e87e59acb72e91bf2d33eca8c4f8dd17b3a56e8953bcba62cb08122120866e9d4b3ab9f008847d86a5f81716d
@@ -38,9 +33,7 @@ DIST jobserver-0.1.34.crate 29013 BLAKE2B 4d89234147386d61e8402872e577c52c60fba4
DIST leb128fmt-0.1.0.crate 14138 BLAKE2B 6353a2520bb93e0a3cfaade09ffbd8cf981d2cf75579e865941f3fea0dc745c54472b369873b1ef4f26dd7f356860e563bc7ca6e7615d600b272c698a55e54eb SHA512 82fbc7f0786185453fbf11fb3ae58e71fce9780f81eb6a56d7b559e3a0c6825751dd8b64f1266aab73fe65f7483a206e42f31ee1a1b7b1801246c6dc9c2ea817
DIST libc-0.2.182.crate 814873 BLAKE2B a5fae27ee77495d8638297523d7428eda4a608109e7e1b67db1ba621f7700761f8131710a49bbd24bedf62f8df7ecdeaedb5def47201146a05b4288ee2f92515 SHA512 7923eeb0ee1db8b5b00a6a4352cf5fd3f877a2f727af5857ca49ceeab2dc7519137eb3a982f5a763ae61fbe422ba8f0fe83d92dcabcfa18c23fae619960f96db
DIST log-0.4.29.crate 51515 BLAKE2B 3f5dc889e895428f27ef107a63004c1b321793b865c29b20293adca81db4e25443e24354af37018c9a60dff1d54897c3b7b2c014a64280523f4a3586a7eeed24 SHA512 31bcf1669c27980f0a8500082c4d0cc500f6cc943518a3dacacc3ad4d8a0c238517f23c2c1969e5a22dbb5d25614adbf4e914c0557e45e1ebc8e7385b2ed14b3
-DIST lru-0.16.3.crate 16743 BLAKE2B 0574e82714425293593e399930903da1004062ce84e5b90126c66d004e872ac580c6f474f7c39e1a8eafc9f78c6fe7a3049b50f248e8f3a9ecd03e9f04133b9b SHA512 5092b87dfbb7666e224dc6d8ed01fb8276929a2d1a31173034155afadb90e0762dbe6d5ce263bbf0353c079bb249027eff71dcac87228514a5406ef67dd06c15
DIST lru-0.18.0.crate 18186 BLAKE2B 9a8893bce457b67ae117dab0394d2707f755c681562f22ffb4b3afcc9e07777a0f248c92c6960c4fd43371d2d500c0c483483d3e12ec862e13d69faddd539f56 SHA512 9d3d5826103baf1da0ac290effea81fc4a91e313aad842d2600cd0b3e0b90ed003f1af55db1162188cc8ee7d3c4a716e6302cd6c7960e7c176df5fd05cedcfa0
-DIST memchr-2.7.6.crate 97616 BLAKE2B 3429786e97f1aa078892e417c8ed8198ec727969517309049b842e44097e58038583508aa974e6246888c18e11f9d23863c1bb012b542c5685250fe34e250d7b SHA512 38843817334da88ad74ce679b4401cf948cf8138815f3acc5eb0d005da3aabceb2216e20887e79344396569a2fa136e3aa1f7f3251a00d07dd6934cee79f4fad
DIST memchr-2.8.1.crate 98743 BLAKE2B 04182c5492975f5b5f609c1a00e2ce04ec1001a1126143a41084b467e185a02b8f0acd85635ffd8f180c51b97832e7558785dedbe1598b538ce222b9f4603ea0 SHA512 a11ff12e2e2fda7ee6e45dcc39bba289d0c2605e996263782d7039c3922781a51fdbe6e0b0455a0075e126b9ff2369a5935d9162e6d5903110120c12886322e1
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST pkg-config-0.3.33.crate 21590 BLAKE2B 576349a975cd4b9ff08c7f797f300cb2774425c72ed7baced19e0ba6231246f4479939c61bcc9efeb9174a2d6917bf009f02e93c26800c65e798b9e51ccf4d8b SHA512 af931d889e72f51e0ae41c880a1f5aa6215b93148cf7041378664e4ba013d0c83d654e560a73c9d7b301b5a008c221e48ac81b413d1123786e003c97f7fff63a
@@ -67,7 +60,6 @@ DIST serde-1.0.228.crate 83652 BLAKE2B d1909d671ea6d5c2eb4ce34ee4493ecaf665d4161
DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171bf337ec16bb1223075cbf81b6b85cd1c8d19abadf42460d0fbea323e2f351eeb6ef823389d519121b74e68edb215 SHA512 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4
DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003
DIST serde_json-1.0.149.crate 155994 BLAKE2B 7564c287a05c95feeba2b3a17e2e43ba047b0132b40fc4dd0c09141c2aac559c00bf4c63cbd24c17f12f5e6b49cf38b240d2c6c66677ee7a9edb197aba7d57fd SHA512 85fa8cb7b479f8241a4fd2255dd80e346fa5cde103aa7f25c14ccbcdf0e3276578fd0645e1d2542ee07c7e08c32058ff662bbf03926cd796c38622a12f423d43
-DIST sha2-0.10.9.crate 29271 BLAKE2B 1d614e0efe085cdb40e05726578a9b4ca6bce93f6d3324f5dc0444cb37054912cdaf5d28d468eac2c0046030d920fced2ccd006953b80865ce8a2d43ef3daa81 SHA512 963adeeb4ed8b0e7fc19085e8721ea13e9b3aea5d115ca1b3dbca495ad14810c6450991dd3753807c293c415aaeb1054b8b4124c72e7090cd9e86f09fcbb4f80
DIST sha2-0.11.0.crate 33969 BLAKE2B 3b3cf6f843096de127e2eb72c9eb0115715658c34aed44be423f59779450af204bad47f2f3320f3ee89db03f9b20d22b04033b0f93a72e275a0ee9106ae489b4 SHA512 04164d47ac648dc498f05245e3eb4313bd61234aaa33f1ba13f6fab0cf8cd8716dc88a9c71e8264e0d6cd020ff732461cec00d92bc294e9c261a646c1988f906
DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
@@ -75,13 +67,10 @@ DIST tap-1.0.1.crate 11316 BLAKE2B 60786fd5f12c2f06097330c26809fdcfce62716586d2e
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
DIST tibs-0.10.0.tar.gz 1921924 BLAKE2B f4c99e9599cee3ba19462364051252a12a7ac16d559c9357c8a7af680ab4b054d7556393054edaf833c222674b554974211a6494dcb129f99e56e404c2a55ddb SHA512 4d9689790612a3939fa855684ec8ae86f1c86460860772516df2f099e1b341ba7d6e7af7b7b2e759d7daa5ee9ed3b1729dee429ef1bf8ff3b8843043957f1e1c
DIST tibs-0.11.0.tar.gz 1930081 BLAKE2B 5a8f60767bf67f98d86ac72d6e079b69675f2feb5b335615d58090221bbde493c3fc9d6d2b7faa98b77b82e8a83e126d212cafaedbee719d6490d96668251961 SHA512 28b6af737198cecae38a985588f9ea14ad7763fa0f32475b4ee6654adf02bd7f042387ae0810e3d866fed7f3b93b2f1eb13f14a4a6b77891093c3f8532a34196
-DIST tibs-0.9.0.tar.gz 1319803 BLAKE2B cbe8c40d97a06b41b931a745fa01b6f7f1af4e1afe5424e0a7479b483b0fb09ddecd586acff6a0665b9162b36c4f9624c8ea66ebb79bc07885a63093d0b5ff8b SHA512 1b08d6bafe998a7adbb470a345566cea9fb3d792bf39e1689681bd5672d9cb3b14e2ba98acb622b37afa9f8a7e4684a02425e9b1d6098d7912e0c494fc6723b1
DIST tibs-0.9.2.tar.gz 1320735 BLAKE2B 3f0c72c9f8ba947ac9bd351fcba48ad430590982c61881d31eb0ae48edc5502d3b97e931bb32662047d346f442e83b07f60b1673746a5af743d2742a3d79edc8 SHA512 fcb314ebac4416c8bfb36930d86678709e6b2e0cf2dd524ea6c45577252313f2fb4f3cbfe32375927ceb54b13257361cdbb2a0a18216fe089a3a3e34290d21c3
-DIST typenum-1.19.0.crate 76414 BLAKE2B 8083988e0bf1d7927377112b8939607f32af098f198a2bfcc2c5302170d9f6e5b29cf02d3cab16c1ecd0fb9f0a45ea3c6bd4a4e4baaf2dfdf8f694093300deeb SHA512 09ebcd7a2cc11f422469cf4fe706f1988bcd81d628e2bab3f54ae82b0aa5486d03a4392187a3736c13dc0c2027053387f89ac656caff72f36365c8be38bc7ff4
DIST typenum-1.20.1.crate 105479 BLAKE2B aa3ff221502fb140dd500c302b09279f5d161123093d0f97d7b1a8761ae465ec71f7035109651e483b735121f8267ca2ff21a64825e9a91f83fcce4e7e1192d6 SHA512 ad4768b49dc06808e3135411ffaf21453572d152f71d73c34b7fe5d00e276d3e121dc78ebed57d620cf46b5ab24b5b5e0787f38ad9ce8bd12330b499cbbde5e1
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
-DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
DIST wasip2-1.0.2+wasi-0.2.9.crate 129778 BLAKE2B f41afceba3c586d12829d2c59f45198c61ae04a0dfe72d6bad6176a3d38189a097cf633f34accff83d7ccc238a35a833381e98291e5fd37f2f4d6e08138af2c4 SHA512 284571c833a1770fcadd9a70155d8b507e9f7f0590015e1a07ad0512ac0a7f0ca4693ccd1aa1ab27e74ec58cb75f314770b66562a2167cd6b5086a7871527eb1
DIST wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.crate 123354 BLAKE2B d8251ea31999f954eb1264bbc7792ba16a90aec3ed3112fe84b9a93dd8a0e493390b899be9e5e215ebebf644697d3bab680cb07d5e64617cbb57e6b2a28ae95f SHA512 fb136a5475fb4696902d4f4be43e0d5d28cf3bc1b6c83e5e7837499ee038f995c9f084064e2e4585dbc3bd260e0c7c95371526b04933f2c60fb6ce302416215d
DIST wasm-encoder-0.244.0.crate 85804 BLAKE2B 6dabb55c635d13d1d56711a43c655dfcb74bb9f0be10bccd412c21b5dcd63a46b73ff40955ff28aa0fba9341fe22161c8d253762afd587eaf69a7ca49c06e285 SHA512 ab78662abd6bc9edcc14531a87a848eb6c26081ce9bcb9ff15415ceecb48dad98ab6066638947780c65d7689d11502d4dd2353ff3462b4f49e1c1a8c00d2c1d2
diff --git a/dev-python/tibs/tibs-0.9.0.ebuild b/dev-python/tibs/tibs-0.9.0.ebuild
deleted file mode 100644
index 04bf288f06bd..000000000000
--- a/dev-python/tibs/tibs-0.9.0.ebuild
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
- allocator-api2@0.2.21
- anyhow@1.0.102
- bitflags@2.11.0
- bitvec@1.0.1
- block-buffer@0.10.4
- bytemuck@1.25.0
- cc@1.2.60
- cfg-if@1.0.4
- chacha20@0.10.0
- cpufeatures@0.2.17
- cpufeatures@0.3.0
- crunchy@0.2.4
- crypto-common@0.1.7
- digest@0.10.7
- equivalent@1.0.2
- find-msvc-tools@0.1.9
- foldhash@0.1.5
- foldhash@0.2.0
- funty@2.0.0
- generic-array@0.14.7
- getrandom@0.3.4
- getrandom@0.4.1
- half@2.7.1
- hashbrown@0.15.5
- hashbrown@0.16.1
- heck@0.5.0
- hex@0.4.3
- id-arena@2.3.0
- indexmap@2.13.0
- itoa@1.0.17
- jobserver@0.1.34
- leb128fmt@0.1.0
- libc@0.2.182
- log@0.4.29
- lru@0.16.3
- memchr@2.7.6
- once_cell@1.21.3
- pkg-config@0.3.33
- portable-atomic@1.13.1
- prettyplease@0.2.37
- proc-macro2@1.0.106
- pyo3-build-config@0.28.2
- pyo3-ffi@0.28.2
- pyo3-macros-backend@0.28.2
- pyo3-macros@0.28.2
- pyo3@0.28.2
- quote@1.0.44
- r-efi@5.3.0
- radium@0.7.0
- rand@0.10.0
- rand_core@0.10.0
- semver@1.0.27
- serde@1.0.228
- serde_core@1.0.228
- serde_derive@1.0.228
- serde_json@1.0.149
- sha2@0.10.9
- shlex@1.3.0
- syn@2.0.117
- tap@1.0.1
- target-lexicon@0.13.5
- typenum@1.19.0
- unicode-ident@1.0.24
- unicode-xid@0.2.6
- version_check@0.9.5
- wasip2@1.0.2+wasi-0.2.9
- wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
- wasm-encoder@0.244.0
- wasm-metadata@0.244.0
- wasmparser@0.244.0
- wit-bindgen-core@0.51.0
- wit-bindgen-rust-macro@0.51.0
- wit-bindgen-rust@0.51.0
- wit-bindgen@0.51.0
- wit-component@0.244.0
- wit-parser@0.244.0
- wyz@0.5.1
- zerocopy-derive@0.8.40
- zerocopy@0.8.40
- zmij@1.0.21
- zstd-safe@7.2.4
- zstd-sys@2.0.16+zstd.1.5.7
- zstd@0.13.3
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="A sleek Python library for your binary data"
-HOMEPAGE="
- https://github.com/scott-griffiths/tibs/
- https://pypi.org/project/tibs/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
-
-EPYTEST_PLUGINS=( hypothesis )
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=(
- tests/test_benchmarks.py
-)
-
-QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/tibs/tibs.abi3.*"
diff --git a/dev-python/tibs/tibs-0.9.2.ebuild b/dev-python/tibs/tibs-0.9.2.ebuild
index 919dd7d03f0d..ce831b9f63bc 100644
--- a/dev-python/tibs/tibs-0.9.2.ebuild
+++ b/dev-python/tibs/tibs-0.9.2.ebuild
@@ -109,7 +109,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 x86"
EPYTEST_PLUGINS=( hypothesis )
distutils_enable_tests pytest
diff --git a/dev-python/toml-fmt-common/Manifest b/dev-python/toml-fmt-common/Manifest
index a51b418a4183..d4b97a6e0994 100644
--- a/dev-python/toml-fmt-common/Manifest
+++ b/dev-python/toml-fmt-common/Manifest
@@ -1,8 +1,2 @@
-DIST toml_fmt_common-1.2.0.tar.gz 9735 BLAKE2B e1fb4d1de2cfd75bc4a8f903d25f16fed9c85dfa456b583f401f719d7bb43d64a8948dfcc7d4e358e391401d82800dabea3af497b4cc1b83f867a949981328f9 SHA512 00268bab8ef4f9dc8dc8ce9a456de568e8d17e60fc62780bd72609c4feeb95a0db9d81761bd03ff0529b4934fa021557f60fa89240180f9defb01258ca167d50
-DIST toml_fmt_common-1.2.0.tar.gz.provenance 9375 BLAKE2B c2d3f591c937792e6cb57d2c9a0714e4238fa9b79bf38cb8cee17c36e2059d3f629423707fc928862cefc6732c3ab81492533e5587df4e49ea0fa24e17470cbc SHA512 fce08940c3f521dd899484d2a46fa5bb0a6a8af845a5d4c4c56a2c4d8b3cabf407bb5dec11a67787b99d0cb2a4156ba14d4aa2b3809e07e1ceedab45db3b4a98
-DIST toml_fmt_common-1.3.2.tar.gz 7583 BLAKE2B 3c6a9c1c3c55b2fdb0738931c5830bfa977228f360dbe7435b01fb093dd80fddd331dcc3581138797fb2cef32d408270c3fbe2b6227d747eecbaf4f96628cc17 SHA512 abc650eb87e9dbf73fc095cc7b4fbbfb34432f75911234f947e8a082bbd3dd085fb43faa264d3b439ddef7f2d0a285902e6699399844425d698412ea81ef7aaf
-DIST toml_fmt_common-1.3.2.tar.gz.provenance 9831 BLAKE2B 5f98a390716e4bc7947903a3148fe3259803387fbbe33b453581fbc323878f9da087f54ec06d66e33e42daa6fe8cf193abc4e525674329e1a922d15d2a1c6e93 SHA512 66c156ee648333fa7ab99981aec9649c0daf30cffbb03c074298caa2082b81e480459c753061b4f7a701d6fef3c43560d89ce9c0d6db8566eb278cf989e9979e
-DIST toml_fmt_common-1.3.3.tar.gz 9171 BLAKE2B 943876edd18d27f31ddb0d1bdd3ad4dbdbc7efdb97fe16d8bc1625992d85e02f596e07844d931d67658dacc11ff0b0957f18b873f6ee063255ac5870737a1a4f SHA512 e05118338cb24270269739367168e95cd12677c38134fb72af455129e8e767ce08d33c6a7f562f88de42375b70c21ed67568098e3e7c73da0a0cd802971924d4
-DIST toml_fmt_common-1.3.3.tar.gz.provenance 9914 BLAKE2B caf3274d5c7a58a1bd1791a645122d54edfbedbc68106d9362753430a1f0b1bbe3c5f14f02a0f14459115402fce618393de9559d2a41de2085868c040fd8a870 SHA512 fedc55df7f2220903db6564ad26c952a0249f6d6f4df1e559c0922deefc661dd7987e4ebfda0f2f2ee3ec950dee7800bcbf5970789f6d626e9a9691921ce15c3
DIST toml_fmt_common-1.3.5.tar.gz 9729 BLAKE2B d8cb5b3c571f4dbb852a21e0bdcdafde060d67e44c96fad81a4587979d86ca1576469af610a710d1331c19684a79a0831571c8e5445f0572f7079b021b5fe518 SHA512 744c2b0c6a42b4b071982d1b73c6739ce8e0bb9ebca7839d03d3a9291acff6f8960eedbb096cc12dfbebcfc5b313fc98f88501bdb01eb0aa6e0bac503baa4160
DIST toml_fmt_common-1.3.5.tar.gz.provenance 10008 BLAKE2B cbcabbeb3dabd00e5df82d398772b83073e637ccc7a62ac0503292994f6291c6d88e4711a94ca10807fff6483de67bc9ea6e5dc4e541b6b5f58844e2091b1237 SHA512 82e9880e9e54f7ef57b4578305b02f13261e00f6217fa225727962564fb70edb66cdbef6523f84877e7c1c08940438e58af3b95e8f1eaa3ec17cfd1ebc9c8756
diff --git a/dev-python/toml-fmt-common/toml-fmt-common-1.2.0.ebuild b/dev-python/toml-fmt-common/toml-fmt-common-1.2.0.ebuild
deleted file mode 100644
index a96c5e20e6a1..000000000000
--- a/dev-python/toml-fmt-common/toml-fmt-common-1.2.0.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2024-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/toml-fmt-common
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Common logic to the TOML formatter"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt-common/
- https://pypi.org/project/toml-fmt-common/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
diff --git a/dev-python/toml-fmt-common/toml-fmt-common-1.3.2.ebuild b/dev-python/toml-fmt-common/toml-fmt-common-1.3.2.ebuild
deleted file mode 100644
index b8bba3ac9683..000000000000
--- a/dev-python/toml-fmt-common/toml-fmt-common-1.3.2.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=uv-build
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Common logic to the TOML formatter"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt-common/
- https://pypi.org/project/toml-fmt-common/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
diff --git a/dev-python/toml-fmt-common/toml-fmt-common-1.3.3.ebuild b/dev-python/toml-fmt-common/toml-fmt-common-1.3.3.ebuild
deleted file mode 100644
index 697d4e669c36..000000000000
--- a/dev-python/toml-fmt-common/toml-fmt-common-1.3.3.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=uv-build
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Common logic to the TOML formatter"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt-common/
- https://pypi.org/project/toml-fmt-common/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
diff --git a/dev-python/toml-fmt-common/toml-fmt-common-1.3.5.ebuild b/dev-python/toml-fmt-common/toml-fmt-common-1.3.5.ebuild
index 697d4e669c36..b8bba3ac9683 100644
--- a/dev-python/toml-fmt-common/toml-fmt-common-1.3.5.ebuild
+++ b/dev-python/toml-fmt-common/toml-fmt-common-1.3.5.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/tornado/Manifest b/dev-python/tornado/Manifest
index e691bb76a9d0..d020f3a2306b 100644
--- a/dev-python/tornado/Manifest
+++ b/dev-python/tornado/Manifest
@@ -1,5 +1,3 @@
-DIST tornado-6.5.5.tar.gz 516006 BLAKE2B b744e5d99fe1ffe1f8e8546457e53d5b995daed09c010b90026e4a037a6e22453b9bd5978c078b91b55f97a2852f661fda6e79b6e0f0efea35628c99ff61afcb SHA512 fbf1e4f74920e8d9a17663e75ff39c34dbefefd0e3df692716d01abae0e1747578e0a59c174591f8f03980702f18a0c935105840953cd3f7ef2c200e9f3cf491
-DIST tornado-6.5.5.tar.gz.provenance 9424 BLAKE2B 51c7d29182ff9d88ca37fbd3572d3d73504f3d97f81799b35fc79a4f56224f4525c77dbdf25fc9a455d83536d1ada060b9e36c035da9279bf1e74fd39f53c38a SHA512 15d5fe16e96037c16dae4b744ecd3a8d9d460558c050bb438a6415523ae0881b2750616f258ea3314eb5db75e134e36b177d67eff1b349a1522aec1c9284ea97
DIST tornado-6.5.6.tar.gz 518139 BLAKE2B 2707573e1e2d87ff59b8b353db982afeb653b24914c53f06b8ae784571533043aed8cb5b80e4a9aca7da735a129b8c027391475c91d497656553e99b9c8d8cf2 SHA512 7618d73a0bab94f91624ad9279368e0f4ec87de6139cfc9c0efff491eeced4d57310422754c629e5ea58a3c86902f8916ebe0f0989d509c56333680ac6a2bb03
DIST tornado-6.5.6.tar.gz.provenance 9706 BLAKE2B d15888fcdcbecd80a6b3c198e6eb5399e7965c3387f57306eba36c47a07946936bc28a136e696b04406cfd1ee059e6bb6c1802e1b283bbc46c4ef62dcfc4df51 SHA512 3d5f81149d4282d872770092fa0e0a6eaa83238b47cebee3fc1ed8afd5ef5514e44a348ca0ee5c82b686d189410e3688553661d27c6856bb363e02400f104cf9
DIST tornado-6.5.7.tar.gz 519252 BLAKE2B 7d2a2f265de1137c632bf222dc8e8e65efe9328c7c82af5741e069be1dae34de33547a93844518c213ca131d064d87db1d438145e47cfc0da4ddb4485bad9a33 SHA512 bd9790da5dc84580710cc74cda0f8f691ff0af845e9e4b47c431333aae5107d808f8a3a82155d4cddefb86f4c516f3a2bef15edcb19d743b936d20d101db7cf1
diff --git a/dev-python/tornado/files/tornado-6.5.7-pycurl-7.47.0.patch b/dev-python/tornado/files/tornado-6.5.7-pycurl-7.47.0.patch
new file mode 100644
index 000000000000..4bc9ebd46c69
--- /dev/null
+++ b/dev-python/tornado/files/tornado-6.5.7-pycurl-7.47.0.patch
@@ -0,0 +1,82 @@
+From 9648c5892c232fd7b02b9ad80d2bbe09ac38edb3 Mon Sep 17 00:00:00 2001
+From: Claude <noreply@anthropic.com>
+Date: Sat, 4 Jul 2026 19:10:59 +0000
+Subject: [PATCH] Fix test_strip_headers_on_redirect's URL-embedded-credentials
+ cases
+
+url.replace("http://", ...) replaced every occurrence of "http://" in
+the fetched URL, including the one inside the "url" query parameter
+that RedirectHandler uses as the redirect target. That accidentally
+embedded the test credentials in the Location header's URL too, so
+the "different origin" subtest was actually exercising "does libcurl
+honor credentials the server explicitly put in the redirect target"
+rather than "does libcurl strip credentials carried over from the
+original request" - libcurl correctly does the former, which is not
+a credential leak.
+
+Limit the replacement to the first occurrence so only the outer,
+fetched URL carries the test credentials.
+
+Separately, the "same origin" subtest for this case now surfaces an
+actual libcurl regression (still present in curl's git master as of
+this writing): credentials embedded in the URL are dropped across a
+same-origin redirect when the Location header is an absolute URL
+(a relative Location correctly preserves them). This isn't a security
+issue since nothing leaks to another origin, so that specific
+assertion is skipped rather than asserted either way.
+---
+ tornado/test/httpclient_test.py | 29 ++++++++++++++++++++++-------
+ 1 file changed, 22 insertions(+), 7 deletions(-)
+
+diff --git a/tornado/test/httpclient_test.py b/tornado/test/httpclient_test.py
+index 64e5cc5ff..1540ac3c2 100644
+--- a/tornado/test/httpclient_test.py
++++ b/tornado/test/httpclient_test.py
+@@ -785,7 +785,12 @@ def test_strip_headers_on_redirect(self):
+ "/redirect?url=%s&status=302" % self.get_url2("/echo_headers")
+ )
+ if url_creds:
+- url = url.replace("http://", "http://%s@" % url_creds)
++ # Only add credentials to the outer URL being fetched, not to the
++ # "url" query parameter (the redirect target), which also starts
++ # with "http://". Otherwise the redirect's Location header would
++ # carry its own explicit credentials for the new origin, which
++ # libcurl legitimately honors instead of stripping.
++ url = url.replace("http://", "http://%s@" % url_creds, 1)
+ response = self.fetch(**dict(path=url) | kwargs)
+ response.rethrow()
+ echoed_headers = json_decode(response.body)
+@@ -799,17 +804,27 @@ def test_strip_headers_on_redirect(self):
+ "/redirect?url=%s&status=302" % self.get_url("/echo_headers")
+ )
+ if url_creds:
+- url = url.replace("http://", "http://%s@" % url_creds)
++ url = url.replace("http://", "http://%s@" % url_creds, 1)
+ response = self.fetch(**dict(path=url) | kwargs)
+ response.rethrow()
+ echoed_headers = json_decode(response.body)
+ # Confirm that non-auth headers are getting through
+ self.assertIn("User-Agent", echoed_headers)
+- # Auth headers are not stripped when the redirect is same-origin.
+- # Each of our tests uses one of these headers, but not both.
+- self.assertTrue(
+- "Authorization" in echoed_headers or "Cookie" in echoed_headers
+- )
++ if name == "credentials in URL":
++ # Some libcurl versions (known regression as of 8.20/8.21,
++ # still present as of curl's git master) drop credentials
++ # embedded in the URL across a same-origin redirect whose
++ # Location header is an absolute URL, even though they
++ # should be preserved. This isn't a security concern
++ # (nothing is leaked to another origin), so just don't
++ # assert on it either way here.
++ pass
++ else:
++ # Auth headers are not stripped when the redirect is same-origin.
++ # Each of our tests uses one of these headers, but not both.
++ self.assertTrue(
++ "Authorization" in echoed_headers or "Cookie" in echoed_headers
++ )
+
+
+ class RequestProxyTest(unittest.TestCase):
diff --git a/dev-python/tornado/tornado-6.5.5.ebuild b/dev-python/tornado/tornado-6.5.5.ebuild
deleted file mode 100644
index f73a5bc3e333..000000000000
--- a/dev-python/tornado/tornado-6.5.5.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/tornadoweb/tornado
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python web framework and asynchronous networking library"
-HOMEPAGE="
- https://www.tornadoweb.org/
- https://github.com/tornadoweb/tornado/
- https://pypi.org/project/tornado/
-"
-
-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="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- >=dev-python/pycurl-7.19.3.1[${PYTHON_USEDEP}]
- ' 'python*')
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-6.3.2-ignore-deprecationwarning.patch"
-)
-
-src_prepare() {
- # network-sandbox? ipv6?
- sed -i -e 's:test_localhost:_&:' \
- tornado/test/netutil_test.py || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x ASYNC_TEST_TIMEOUT=60
- # Avoid time-sensitive tests
- # https://github.com/tornadoweb/tornado/blob/10974e6ebee80a26a2a65bb9bd715cf858fafde5/tornado/test/util.py#L19
- local -x TRAVIS=1
- local -x NO_NETWORK=1
-
- cd "${T}" || die
- "${EPYTHON}" -m tornado.test.runtests --verbose ||
- die "tests failed under ${EPYTHON}"
-}
diff --git a/dev-python/tornado/tornado-6.5.6.ebuild b/dev-python/tornado/tornado-6.5.6.ebuild
index 34eff013d738..f73a5bc3e333 100644
--- a/dev-python/tornado/tornado-6.5.6.ebuild
+++ b/dev-python/tornado/tornado-6.5.6.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/tornado/tornado-6.5.7.ebuild b/dev-python/tornado/tornado-6.5.7.ebuild
index 34eff013d738..20627518cb9c 100644
--- a/dev-python/tornado/tornado-6.5.7.ebuild
+++ b/dev-python/tornado/tornado-6.5.7.ebuild
@@ -38,6 +38,8 @@ BDEPEND="
PATCHES=(
"${FILESDIR}/${PN}-6.3.2-ignore-deprecationwarning.patch"
+ # https://github.com/tornadoweb/tornado/pull/3678
+ "${FILESDIR}/${P}-pycurl-7.47.0.patch"
)
src_prepare() {
diff --git a/dev-python/towncrier/towncrier-25.8.0.ebuild b/dev-python/towncrier/towncrier-25.8.0.ebuild
index f04508e550cb..235260f9789a 100644
--- a/dev-python/towncrier/towncrier-25.8.0.ebuild
+++ b/dev-python/towncrier/towncrier-25.8.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 4a94ee4e0818..2da0d5a81faa 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -1,8 +1,4 @@
-DIST tox-4.54.0.tar.gz 279256 BLAKE2B f1a1265879ce21f9f4005268dd5800dd7d84d6c914f453d75c86fca6176aaab7c8e2c7a8091bc9103320469ab7c8b82f6faecb9473521f9442f818ca1a94d741 SHA512 923f622c8c0706a7d667e74b1ff42ec9c8ef578bc59e335cbb03ec3b654025263350241ee72c775499519f9d0b504fa859fe365b9435f25698c84449a3e217ed
-DIST tox-4.54.0.tar.gz.provenance 9424 BLAKE2B b9f9dee2859d4e640edd8e9ca8274a2715c25a11fe4639ec0b210f9565a12a50523c7f3e051f370259a70772b29abd617b28fa177da7bdc69179b8bd8ff35cf7 SHA512 efdf4aabc3d64219f842c06b9b8ae07b1532076269bd4753bf11e93ff59498337e35eb436f5c5a43028ba4027cd63b5d216febdeb6e0ec9208a435305c8a785f
DIST tox-4.55.1.tar.gz 280676 BLAKE2B ccbf018634d708ba00710ea1c15fa1328acf402f021559cb0d3e78a050449a0a0fae9e3a072c0efcf13e98031ed4aa3baf0298b35cba8cae2d8336c181edb40a SHA512 5d34cccd8e4813c0e4a4406711f2e9e3bd61228d3668044d82858d7fbd9aca60e28ac4cf9a3b13f01acc181de1822b3b4f8d27acb99d403faafbfc8063fc5dcf
DIST tox-4.55.1.tar.gz.provenance 9530 BLAKE2B 6a8de7003c54e6c388154619fc5900bd968e72862267615f67157e4b4c1294cd1d70dfcb02189788bb415ef84e07775acf08c38fa66113f850c78b00a28f2b68 SHA512 c8773255b47b7078b80c179dff30b0a51a1ec3e0b2576377c377aec87fefa74383e14e4a9c19a067b9eadd45e8611e6d0c2eddbd60b774ac91fbb62abf803e56
-DIST tox-4.56.0.tar.gz 282319 BLAKE2B 249d44656daa4ff9e75fed48765f83367572dc69faa27890b1dbad817baa2e6a7e5d3f2d1dd20856023d86e81e96343ae32db96453d8699de731c6739460c67d SHA512 f7f81161f85986e20c05d96de4555cf7349792383bc4bf9800d43c5ca7642a0395cce61b9d9d07c91c70331f40f725ca9167cbc83409da9baf8e90b9b736fd2c
-DIST tox-4.56.0.tar.gz.provenance 9624 BLAKE2B 5ae867da302c83d469372412a849a6f6d68b87832a9f8e31ddb6822763308051dc698c9987c1344cc938685da127da5302b421f0d9c701d81915325461eee03e SHA512 9f5ba8f0f48b2ede83366f6cffd015a5a6ac68a8d3fe4863cd495b0a5abcf1710e5e86d4ca871b8ecc976bd81e261121e292e97eee11d41c9e7b20a84f415362
DIST tox-4.56.1.tar.gz 283155 BLAKE2B 069d9d91af3d667a4eb52cea7b7aa74fde60504d5894a327b33090881646d314536fe7a48febb5474a2d2ed21d6125bce80862be5150956aa8204666907043fd SHA512 ca5f785d54977e291f06094e00dbce99e75c56c0678aa62b3007f690376810d2ce0074f34996e49bd976e405d5b1d9e3404802d59a00bb98084cbf1de369f28a
DIST tox-4.56.1.tar.gz.provenance 9765 BLAKE2B 82bb31e94025f83f587457cb6215b7177c82172d86f2e6513dd3e5042eda921fb532ee6f88e2adf8cb29ee53af0d1de31986d3590ed9b9f906390e72e85cead1 SHA512 7d9a39c7a78e7947a15caec9528fda34ccb9e8652d3d5b62e66d302c9e00179d2f90ccf8de44253373133cb48e4d2516abf618f71f9f60e89a8a26ce7cb179ee
diff --git a/dev-python/tox/tox-4.54.0.ebuild b/dev-python/tox/tox-4.54.0.ebuild
deleted file mode 100644
index f4ba6ade1972..000000000000
--- a/dev-python/tox/tox-4.54.0.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# 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}]
-"
-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}]
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' 'python*')
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} )
-# xdist seems to mess up state between successive implementation runs
-distutils_enable_tests pytest
-
-src_prepare() {
- # upstream lower bounds are meaningless
- sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- # devpi_process is not packaged, and has lots of dependencies
- cat > "${T}"/devpi_process.py <<-EOF || die
- def IndexServer(*args, **kwargs): raise NotImplementedError()
- EOF
-
- local -x PYTHONPATH=${T}:${PYTHONPATH}
- local EPYTEST_DESELECT=(
- # Internet
- tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
- tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
- tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
- # require tombi
- tests/session/cmd/test_schema.py::test_schema_tombi_lint
- )
- local EPYTEST_IGNORE=(
- # requires devpi*
- tests/test_provision.py
- )
-
- case ${EPYTHON} in
- python*)
- local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine )
- ;;
- pypy3*)
- EPYTEST_DESELECT+=(
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
- 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
- )
- ;;
- esac
-
- epytest -o addopts=
-}
diff --git a/dev-python/tox/tox-4.55.1.ebuild b/dev-python/tox/tox-4.55.1.ebuild
index db6e52f11b21..f4ba6ade1972 100644
--- a/dev-python/tox/tox-4.55.1.ebuild
+++ b/dev-python/tox/tox-4.55.1.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.56.0.ebuild b/dev-python/tox/tox-4.56.0.ebuild
deleted file mode 100644
index 23fd6cf278e6..000000000000
--- a/dev-python/tox/tox-4.56.0.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# 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}]
-"
-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 )
-# upstream timeouts are quite short
-: ${EPYTEST_TIMEOUT:=180}
-# xdist seems to mess up state between successive implementation runs
-distutils_enable_tests pytest
-
-src_prepare() {
- # upstream lower bounds are meaningless
- sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- # devpi_process is not packaged, and has lots of dependencies
- cat > "${T}"/devpi_process.py <<-EOF || die
- def IndexServer(*args, **kwargs): raise NotImplementedError()
- EOF
-
- local -x PYTHONPATH=${T}:${PYTHONPATH}
- local EPYTEST_DESELECT=(
- # Internet
- tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
- tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
- tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
- # 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/translate-toolkit/translate-toolkit-3.19.11.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild
index 87c171eea069..e3e3737485ca 100644
--- a/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild
+++ b/dev-python/translate-toolkit/translate-toolkit-3.19.11.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/trio-websocket/trio-websocket-0.12.2.ebuild b/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild
index 0b7fb6c57d0f..dee94465a41f 100644
--- a/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild
+++ b/dev-python/trio-websocket/trio-websocket-0.12.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2025 Gentoo Authors
+# Copyright 2023-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -31,26 +31,21 @@ RDEPEND="
"
BDEPEND="
test? (
- >=dev-python/pytest-trio-0.5.0[${PYTHON_USEDEP}]
dev-python/trustme[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-trio )
distutils_enable_tests pytest
-python_test() {
- local EPYTEST_DESELECT=(
- # exception tests are broken with trio-0.25
- # https://github.com/python-trio/trio-websocket/issues/187
- tests/test_connection.py::test_handshake_exception_before_accept
- tests/test_connection.py::test_reject_handshake
- tests/test_connection.py::test_reject_handshake_invalid_info_status
- tests/test_connection.py::test_client_open_timeout
- tests/test_connection.py::test_client_close_timeout
- tests/test_connection.py::test_client_connect_networking_error
- tests/test_connection.py::test_finalization_dropped_exception
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p trio
-}
+EPYTEST_DESELECT=(
+ # exception tests are broken with trio-0.25
+ # https://github.com/python-trio/trio-websocket/issues/187
+ tests/test_connection.py::test_handshake_exception_before_accept
+ tests/test_connection.py::test_reject_handshake
+ tests/test_connection.py::test_reject_handshake_invalid_info_status
+ tests/test_connection.py::test_client_open_timeout
+ tests/test_connection.py::test_client_close_timeout
+ tests/test_connection.py::test_client_connect_networking_error
+ tests/test_connection.py::test_finalization_dropped_exception
+)
diff --git a/dev-python/trio/trio-0.33.0.ebuild b/dev-python/trio/trio-0.33.0.ebuild
index 73f2ab90d31b..77009d878fb4 100644
--- a/dev-python/trio/trio-0.33.0.ebuild
+++ b/dev-python/trio/trio-0.33.0.ebuild
@@ -57,16 +57,6 @@ python_test() {
_tests/tools/test_gen_exports.py
)
- case ${EPYTHON} in
- python3.14)
- EPYTEST_DESELECT+=(
- # xfail-ed upstream with ref to
- # https://github.com/python/cpython/issues/125603
- _core/_tests/test_run.py::test_ki_protection_doesnt_leave_cyclic_garbage
- )
- ;;
- esac
-
rm -rf trio || die
epytest -m "not redistributors_should_skip" --pyargs trio \
--skip-optional-imports
diff --git a/dev-python/truststore/truststore-0.10.4.ebuild b/dev-python/truststore/truststore-0.10.4.ebuild
index 66b78f24d018..33a32f3406a5 100644
--- a/dev-python/truststore/truststore-0.10.4.ebuild
+++ b/dev-python/truststore/truststore-0.10.4.ebuild
@@ -1,9 +1,10 @@
-# Copyright 2023-2025 Gentoo Authors
+# Copyright 2023-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_TESTED=( python3_{13..14} )
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
@@ -21,20 +22,34 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="test"
# The vast majority of tests require Internet access.
-PROPERTIES="test_network"
+PROPERTIES="test? ( test_network )"
RESTRICT="test"
BDEPEND="
test? (
- dev-python/aiohttp[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/trustme[${PYTHON_USEDEP}]
- dev-python/urllib3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-httpserver[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
)
"
-EPYTEST_PLUGINS=( pytest-{asyncio,httpserver,rerunfailures} )
-distutils_enable_tests pytest
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_PLUGINS=( pytest-{asyncio,httpserver,rerunfailures} )
+ epytest
+}
diff --git a/dev-python/twisted/files/twisted-26.4.0-py315.patch b/dev-python/twisted/files/twisted-26.4.0-py315.patch
new file mode 100644
index 000000000000..a82f2c8d2949
--- /dev/null
+++ b/dev-python/twisted/files/twisted-26.4.0-py315.patch
@@ -0,0 +1,114 @@
+From 3962d15a2c593d2e47d240ab6f0c5352caca3464 Mon Sep 17 00:00:00 2001
+From: Lumir Balhar <lbalhar@redhat.com>
+Date: Wed, 1 Apr 2026 12:56:27 +0200
+Subject: [PATCH] Fix Python 3.15 compatibility issues
+
+- Replace deprecated SourceFileLoader.load_module() with exec_module()
+- Add addSubTest() method to _AdaptedReporter for Python 3.15 doctest support
+- Update test expectations for Python 3.15 doctest changes:
+ - Different success/failure counts
+ - Changed error output format
+---
+ src/twisted/trial/reporter.py | 13 +++++++++++++
+ src/twisted/trial/runner.py | 6 +++++-
+ src/twisted/trial/test/test_doctest.py | 9 +++++++--
+ src/twisted/trial/test/test_reporter.py | 17 ++++++++++++-----
+ 4 files changed, 37 insertions(+), 8 deletions(-)
+
+diff --git a/src/twisted/trial/reporter.py b/src/twisted/trial/reporter.py
+index 98ad7eb1aa6..bfdaca5e907 100644
+--- a/src/twisted/trial/reporter.py
++++ b/src/twisted/trial/reporter.py
+@@ -390,6 +390,19 @@ def stopTest(self, test):
+ """
+ return self._originalReporter.stopTest(self.testAdapter(test))
+
++ def addSubTest(self, test, subtest, outcome):
++ """
++ See L{unittest.TestResult.addSubTest}.
++
++ Called by the doctest runner in Python 3.15+ when reporting sub-test results.
++ """
++ test = self.testAdapter(test)
++ if hasattr(self._originalReporter, "addSubTest"):
++ return self._originalReporter.addSubTest(test, subtest, outcome)
++ # If the underlying reporter doesn't support subtests, treat as error/success
++ if outcome is not None:
++ return self._originalReporter.addError(test, outcome)
++
+
+ @implementer(itrial.IReporter)
+ class Reporter(TestResult):
+diff --git a/src/twisted/trial/runner.py b/src/twisted/trial/runner.py
+index 6d4fdb96d18..6d780bb3545 100644
+--- a/src/twisted/trial/runner.py
++++ b/src/twisted/trial/runner.py
+@@ -760,7 +760,11 @@ def loadFile(self, fileName, recurse=False):
+ """
+ name = reflect.filenameToModuleName(fileName)
+ try:
+- module = SourceFileLoader(name, fileName).load_module()
++ loader = SourceFileLoader(name, fileName)
++ spec = importlib.util.spec_from_loader(name, loader)
++ module = importlib.util.module_from_spec(spec)
++ sys.modules[name] = module
++ spec.loader.exec_module(module)
+ return self.loadAnything(module, recurse=recurse)
+ except OSError:
+ raise ValueError(f"{fileName} is not a Python file.")
+diff --git a/src/twisted/trial/test/test_doctest.py b/src/twisted/trial/test/test_doctest.py
+index 05d57d44e06..5f6a1c17fe8 100644
+--- a/src/twisted/trial/test/test_doctest.py
++++ b/src/twisted/trial/test/test_doctest.py
+@@ -4,6 +4,7 @@
+ """
+ Test Twisted's doctest support.
+ """
++import sys
+ import unittest as pyunit
+
+ from twisted.trial import itrial, reporter, runner, unittest
+@@ -40,8 +41,12 @@ def _testRun(self, suite: pyunit.TestSuite) -> None:
+ """
+ result = reporter.TestResult()
+ suite.run(result)
+- self.assertEqual(5, result.successes)
+- self.assertEqual(2, len(result.failures))
++ # Python 3.15+ counts doctest examples differently, resulting in more successes
++ # and also consolidates some failures
++ expected_successes = 7 if sys.version_info >= (3, 15) else 5
++ expected_failures = 1 if sys.version_info >= (3, 15) else 2
++ self.assertEqual(expected_successes, result.successes)
++ self.assertEqual(expected_failures, len(result.failures))
+
+ def test_expectedResults(self, count: int = 1) -> None:
+ """
+diff --git a/src/twisted/trial/test/test_reporter.py b/src/twisted/trial/test/test_reporter.py
+index 76172e7a6de..441704c7662 100644
+--- a/src/twisted/trial/test/test_reporter.py
++++ b/src/twisted/trial/test/test_reporter.py
+@@ -205,12 +205,19 @@ def test_doctestError(self):
+ suite = unittest.decorate(self.loader.loadDoctests(erroneous), itrial.ITestCase)
+ output = self.getOutput(suite)
+ path = "twisted.trial.test.erroneous.unexpectedException"
+- for substring in ["1/0", "ZeroDivisionError", "Exception raised:", path]:
++ # Python 3.15+ changed doctest error output format
++ if sys.version_info >= (3, 15):
++ substrings = ["1/0", "ZeroDivisionError", path]
++ else:
++ substrings = ["1/0", "ZeroDivisionError", "Exception raised:", path]
++ for substring in substrings:
+ self.assertSubstring(substring, output)
+- self.assertTrue(
+- re.search("Fail(ed|ure in) example:", output),
+- "Couldn't match 'Failure in example: ' " "or 'Failed example: '",
+- )
++ # Python 3.15+ no longer uses "Failed example:" format
++ if sys.version_info < (3, 15):
++ self.assertTrue(
++ re.search("Fail(ed|ure in) example:", output),
++ "Couldn't match 'Failure in example: ' " "or 'Failed example: '",
++ )
+ expect = [self.doubleSeparator, re.compile(r"\[(ERROR|FAIL)\]")]
+ self.stringComparison(expect, output.splitlines())
+
diff --git a/dev-python/twisted/files/twisted-26.4.0-pyopenssl.patch b/dev-python/twisted/files/twisted-26.4.0-pyopenssl.patch
new file mode 100644
index 000000000000..ff0861af8008
--- /dev/null
+++ b/dev-python/twisted/files/twisted-26.4.0-pyopenssl.patch
@@ -0,0 +1,456 @@
+From 5b4601c9965ffc92d6aa952b8c05127d5ac37307 Mon Sep 17 00:00:00 2001
+From: Alex Gaynor <alex.gaynor@gmail.com>
+Date: Mon, 8 Jun 2026 08:51:19 -0700
+Subject: [PATCH 1/5] #12660 Replace OpenSSL.crypto.X509Req with
+ pyca/cryptography CSR
+
+Replace usage of pyOpenSSL's X509Req with pyca/cryptography's
+CertificateSigningRequest in twisted.internet._sslverify and the
+test_ssl certificate generation helpers.
+
+Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
+---
+ src/twisted/internet/_sslverify.py | 103 ++++++++++++++++++++++-----
+ src/twisted/newsfragments/12660.misc | 0
+ src/twisted/test/test_ssl.py | 42 +++++++----
+ 3 files changed, 114 insertions(+), 31 deletions(-)
+ create mode 100644 src/twisted/newsfragments/12660.misc
+
+diff --git a/src/twisted/internet/_sslverify.py b/src/twisted/internet/_sslverify.py
+index c6dabf6c4c4..f1cec9c2d87 100644
+--- a/src/twisted/internet/_sslverify.py
++++ b/src/twisted/internet/_sslverify.py
+@@ -20,6 +20,9 @@
+
+ import attr
+ from constantly import FlagConstant, Flags, NamedConstant, Names
++from cryptography import x509
++from cryptography.hazmat.primitives import hashes, serialization
++from cryptography.x509.oid import NameOID
+ from incremental import Version
+
+ from twisted.internet.abstract import isIPAddress, isIPv6Address
+@@ -169,6 +172,29 @@ def protocolNegotiationMechanisms() -> FlagConstant:
+ "emailAddress": "emailAddress",
+ }
+
++_x509NameOIDs = {
++ "commonName": NameOID.COMMON_NAME,
++ "organizationName": NameOID.ORGANIZATION_NAME,
++ "organizationalUnitName": NameOID.ORGANIZATIONAL_UNIT_NAME,
++ "localityName": NameOID.LOCALITY_NAME,
++ "stateOrProvinceName": NameOID.STATE_OR_PROVINCE_NAME,
++ "countryName": NameOID.COUNTRY_NAME,
++ "emailAddress": NameOID.EMAIL_ADDRESS,
++}
++
++# Reverse of _x509NameOIDs, for translating a parsed subject back into a
++# DistinguishedName.
++_x509OIDNames = {oid: name for name, oid in _x509NameOIDs.items()}
++
++_digestAlgorithms = {
++ "md5": hashes.MD5,
++ "sha1": hashes.SHA1,
++ "sha224": hashes.SHA224,
++ "sha256": hashes.SHA256,
++ "sha384": hashes.SHA384,
++ "sha512": hashes.SHA512,
++}
++
+
+ class DistinguishedName(dict[str, bytes]):
+ """
+@@ -490,19 +516,51 @@ class CertificateRequest(CertBase):
+
+ Certificate requests are given to certificate authorities to be signed and
+ returned resulting in an actual certificate.
++
++ @ivar original: The underlying CSR object.
++ @type original: L{cryptography.x509.CertificateSigningRequest}
+ """
+
+ @classmethod
+- def load(Class, requestData, requestFormat=crypto.FILETYPE_ASN1):
+- req = crypto.load_certificate_request(requestFormat, requestData)
++ def load(
++ cls, requestData: bytes, requestFormat=crypto.FILETYPE_ASN1
++ ) -> CertificateRequest:
++ if requestFormat == crypto.FILETYPE_ASN1:
++ req = x509.load_der_x509_csr(requestData)
++ elif requestFormat == crypto.FILETYPE_PEM:
++ req = x509.load_pem_x509_csr(requestData)
++ else:
++ raise ValueError(f"Unsupported format: {requestFormat!r}")
++ if not req.is_signature_valid:
++ subject = req.subject
++ raise VerifyError(
++ f"Can't verify that request for {subject!r} is self-signed."
++ )
++ return cls(req)
++
++ def _subjectToDistinguishedName(self) -> DistinguishedName:
++ """
++ Retrieve the subject of this certificate request.
++
++ @return: A copy of the subject of this certificate request.
++ @rtype: L{DistinguishedName}
++ """
+ dn = DistinguishedName()
+- dn._copyFrom(req.get_subject())
+- if not req.verify(req.get_pubkey()):
+- raise VerifyError(f"Can't verify that request for {dn!r} is self-signed.")
+- return Class(req)
++ for attribute in self.original.subject:
++ try:
++ name = _x509OIDNames[attribute.oid]
++ except KeyError:
++ raise ValueError(f"Unknown X509 name attribute: {attribute.oid!r}")
++ setattr(dn, name, attribute.value)
++ return dn
+
+- def dump(self, format=crypto.FILETYPE_ASN1):
+- return crypto.dump_certificate_request(format, self.original)
++ def dump(self, format=crypto.FILETYPE_ASN1) -> bytes:
++ if format == crypto.FILETYPE_ASN1:
++ return self.original.public_bytes(serialization.Encoding.DER)
++ elif format == crypto.FILETYPE_PEM:
++ return self.original.public_bytes(serialization.Encoding.PEM)
++ else:
++ raise ValueError(f"Unsupported format: {format!r}")
+
+
+ class PrivateCertificate(Certificate):
+@@ -714,10 +772,21 @@ def newCertificate(self, newCertData, format=crypto.FILETYPE_ASN1):
+ return PrivateCertificate.load(newCertData, self, format)
+
+ def requestObject(self, distinguishedName, digestAlgorithm="sha256"):
+- req = crypto.X509Req()
+- req.set_pubkey(self.original)
+- distinguishedName._copyInto(req.get_subject())
+- req.sign(self.original, digestAlgorithm)
++ req = (
++ x509.CertificateSigningRequestBuilder()
++ .subject_name(
++ x509.Name(
++ [
++ x509.NameAttribute(_x509NameOIDs[k], nativeString(v))
++ for k, v in distinguishedName.items()
++ ]
++ )
++ )
++ .sign(
++ self.original.to_cryptography_key(),
++ _digestAlgorithms[digestAlgorithm](),
++ )
++ )
+ return CertificateRequest(req)
+
+ def certificateRequest(
+@@ -750,7 +819,7 @@ def signCertificateRequest(
+ """
+ hlreq = CertificateRequest.load(requestData, requestFormat)
+
+- dn = hlreq.getSubject()
++ dn = hlreq._subjectToDistinguishedName()
+ vval = verifyDNCallback(dn)
+
+ def verified(value):
+@@ -787,8 +856,8 @@ def signRequestObject(
+ req = requestObject.original
+ cert = crypto.X509()
+ issuerDistinguishedName._copyInto(cert.get_issuer())
+- cert.set_subject(req.get_subject())
+- cert.set_pubkey(req.get_pubkey())
++ requestObject._subjectToDistinguishedName()._copyInto(cert.get_subject())
++ cert.set_pubkey(crypto.PKey.from_cryptography_key(req.public_key()))
+ cert.gmtime_adj_notBefore(0)
+ cert.gmtime_adj_notAfter(secondsToExpiry)
+ cert.set_serial_number(serialNumber)
+@@ -1656,10 +1725,10 @@ def contextSelectionCallback(connection: SSL.Connection) -> None:
+ return ctx
+
+
+-OpenSSLCertificateOptions.__getstate__ = deprecated( # type:ignore[method-assign]
++OpenSSLCertificateOptions.__getstate__ = deprecated( # type: ignore[method-assign]
+ Version("Twisted", 15, 0, 0), "a real persistence system"
+ )(OpenSSLCertificateOptions.__getstate__)
+-OpenSSLCertificateOptions.__setstate__ = deprecated( # type:ignore[method-assign]
++OpenSSLCertificateOptions.__setstate__ = deprecated( # type: ignore[method-assign]
+ Version("Twisted", 15, 0, 0), "a real persistence system"
+ )(OpenSSLCertificateOptions.__setstate__)
+
+diff --git a/src/twisted/newsfragments/12660.misc b/src/twisted/newsfragments/12660.misc
+new file mode 100644
+index 00000000000..e69de29bb2d
+diff --git a/src/twisted/test/test_ssl.py b/src/twisted/test/test_ssl.py
+index cb5d6925af7..8e2eb423949 100644
+--- a/src/twisted/test/test_ssl.py
++++ b/src/twisted/test/test_ssl.py
+@@ -21,6 +21,10 @@
+ try:
+ from OpenSSL import SSL, crypto
+
++ from cryptography import x509
++ from cryptography.hazmat.primitives import hashes, serialization
++ from cryptography.x509.oid import NameOID
++
+ from twisted.internet import ssl
+ from twisted.test.ssl_helpers import ClientTLSContext, certPath
+ except ImportError:
+@@ -164,21 +168,31 @@ def generateCertificateObjects(organization, organizationalUnit):
+ """
+ pkey = crypto.PKey()
+ pkey.generate_key(crypto.TYPE_RSA, 2048)
+- req = crypto.X509Req()
+- subject = req.get_subject()
+- subject.O = organization
+- subject.OU = organizationalUnit
+- req.set_pubkey(pkey)
+- req.sign(pkey, "md5")
++ req = (
++ x509.CertificateSigningRequestBuilder()
++ .subject_name(
++ x509.Name(
++ [
++ x509.NameAttribute(NameOID.ORGANIZATION_NAME, organization),
++ x509.NameAttribute(
++ NameOID.ORGANIZATIONAL_UNIT_NAME, organizationalUnit
++ ),
++ ]
++ )
++ )
++ .sign(pkey.to_cryptography_key(), hashes.SHA256())
++ )
+
+ # Here comes the actual certificate
+ cert = crypto.X509()
+ cert.set_serial_number(1)
+ cert.gmtime_adj_notBefore(0)
+ cert.gmtime_adj_notAfter(60) # Testing certificates need not be long lived
+- cert.set_issuer(req.get_subject())
+- cert.set_subject(req.get_subject())
+- cert.set_pubkey(req.get_pubkey())
++ subject = cert.get_subject()
++ subject.O = organization
++ subject.OU = organizationalUnit
++ cert.set_issuer(cert.get_subject())
++ cert.set_pubkey(pkey)
+ cert.sign(pkey, "md5")
+
+ return pkey, req, cert
+@@ -191,13 +205,13 @@ def generateCertificateFiles(basename, organization, organizationalUnit):
+ """
+ pkey, req, cert = generateCertificateObjects(organization, organizationalUnit)
+
+- for ext, obj, dumpFunc in [
+- ("key", pkey, crypto.dump_privatekey),
+- ("req", req, crypto.dump_certificate_request),
+- ("cert", cert, crypto.dump_certificate),
++ for ext, data in [
++ ("key", crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)),
++ ("req", req.public_bytes(serialization.Encoding.PEM)),
++ ("cert", crypto.dump_certificate(crypto.FILETYPE_PEM, cert)),
+ ]:
+ fName = os.extsep.join((basename, ext)).encode("utf-8")
+- FilePath(fName).setContent(dumpFunc(crypto.FILETYPE_PEM, obj))
++ FilePath(fName).setContent(data)
+
+
+ class ContextGeneratingMixin:
+
+From 3fc8db4e7e3924eb3e6b93bb67380bcdb273e17e Mon Sep 17 00:00:00 2001
+From: Alex Gaynor <alex.gaynor@gmail.com>
+Date: Mon, 8 Jun 2026 09:00:00 -0700
+Subject: [PATCH 2/5] Fix mypy errors in CertificateRequest
+
+Annotate the format parameters and type the original CSR attribute so
+public_bytes is no longer inferred as Any.
+
+Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
+---
+ src/twisted/internet/_sslverify.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/twisted/internet/_sslverify.py b/src/twisted/internet/_sslverify.py
+index f1cec9c2d87..fdfa37adeef 100644
+--- a/src/twisted/internet/_sslverify.py
++++ b/src/twisted/internet/_sslverify.py
+@@ -521,9 +521,11 @@ class CertificateRequest(CertBase):
+ @type original: L{cryptography.x509.CertificateSigningRequest}
+ """
+
++ original: x509.CertificateSigningRequest
++
+ @classmethod
+ def load(
+- cls, requestData: bytes, requestFormat=crypto.FILETYPE_ASN1
++ cls, requestData: bytes, requestFormat: int = crypto.FILETYPE_ASN1
+ ) -> CertificateRequest:
+ if requestFormat == crypto.FILETYPE_ASN1:
+ req = x509.load_der_x509_csr(requestData)
+@@ -554,7 +556,7 @@ def _subjectToDistinguishedName(self) -> DistinguishedName:
+ setattr(dn, name, attribute.value)
+ return dn
+
+- def dump(self, format=crypto.FILETYPE_ASN1) -> bytes:
++ def dump(self, format: int = crypto.FILETYPE_ASN1) -> bytes:
+ if format == crypto.FILETYPE_ASN1:
+ return self.original.public_bytes(serialization.Encoding.DER)
+ elif format == crypto.FILETYPE_PEM:
+
+From 7cb81ce013455a0adfee8e439c309593bd9d192d Mon Sep 17 00:00:00 2001
+From: Alex Gaynor <alex.gaynor@gmail.com>
+Date: Mon, 8 Jun 2026 09:17:26 -0700
+Subject: [PATCH 3/5] Add CertificateRequest test coverage
+
+Cover the PEM/DER load and dump branches, unsupported-format and
+unverifiable-signature errors, and the unknown subject attribute path.
+
+Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
+---
+ src/twisted/test/test_sslverify.py | 81 ++++++++++++++++++++++++++++++
+ 1 file changed, 81 insertions(+)
+
+diff --git a/src/twisted/test/test_sslverify.py b/src/twisted/test/test_sslverify.py
+index c50fb8b1055..579ae1d03f6 100644
+--- a/src/twisted/test/test_sslverify.py
++++ b/src/twisted/test/test_sslverify.py
+@@ -51,6 +51,7 @@
+ from cryptography import x509
+ from cryptography.hazmat.backends import default_backend
+ from cryptography.hazmat.primitives import hashes
++ from cryptography.hazmat.primitives.asymmetric import ec
+ from cryptography.hazmat.primitives.asymmetric.rsa import (
+ RSAPrivateKey,
+ generate_private_key,
+@@ -3472,3 +3473,83 @@ def test_noTrailingNewlinePemCert(self):
+
+ certPEM = noTrailingNewlineKeyPemPath.getContent()
+ ssl.Certificate.loadPEM(certPEM)
++
++
++class CertificateRequestTests(SynchronousTestCase):
++ """
++ Tests for L{sslverify.CertificateRequest}.
++ """
++
++ if skipSSL:
++ skip = skipSSL
++
++ def _makeRequest(self):
++ """
++ Create a self-signed L{sslverify.CertificateRequest}.
++
++ @return: a fresh certificate request.
++ @rtype: L{sslverify.CertificateRequest}
++ """
++ dn = sslverify.DistinguishedName(commonName="example.twistedmatrix.com")
++ return sslverify.KeyPair.generate().requestObject(dn)
++
++ def test_pemRoundTrip(self):
++ """
++ A L{sslverify.CertificateRequest} dumped to PEM format and loaded back
++ again preserves its subject.
++ """
++ request = self._makeRequest()
++ pem = request.dump(FILETYPE_PEM)
++ self.assertIn(b"BEGIN CERTIFICATE REQUEST", pem)
++ loaded = sslverify.CertificateRequest.load(pem, FILETYPE_PEM)
++ self.assertEqual(
++ loaded._subjectToDistinguishedName(),
++ request._subjectToDistinguishedName(),
++ )
++
++ def test_loadUnsupportedFormat(self):
++ """
++ L{sslverify.CertificateRequest.load} raises L{ValueError} when given an
++ unrecognized format.
++ """
++ request = self._makeRequest()
++ with self.assertRaises(ValueError):
++ sslverify.CertificateRequest.load(request.dump(), object())
++
++ def test_loadUnverifiableSignature(self):
++ """
++ L{sslverify.CertificateRequest.load} raises L{sslverify.VerifyError}
++ when the request's self-signature does not verify.
++ """
++ data = bytearray(self._makeRequest().dump())
++ # Corrupt the trailing signature bytes so the self-signature no longer
++ # verifies while the structure still parses.
++ data[-1] ^= 0xFF
++ with self.assertRaises(sslverify.VerifyError):
++ sslverify.CertificateRequest.load(bytes(data))
++
++ def test_dumpUnsupportedFormat(self):
++ """
++ L{sslverify.CertificateRequest.dump} raises L{ValueError} when given an
++ unrecognized format.
++ """
++ with self.assertRaises(ValueError):
++ self._makeRequest().dump(object())
++
++ def test_subjectUnknownAttribute(self):
++ """
++ L{sslverify.CertificateRequest._subjectToDistinguishedName} raises
++ L{ValueError} when the subject contains a name attribute that does not
++ correspond to a known L{sslverify.DistinguishedName} field.
++ """
++ key = ec.generate_private_key(ec.SECP256R1(), backend=default_backend())
++ csr = (
++ x509.CertificateSigningRequestBuilder()
++ .subject_name(
++ x509.Name([x509.NameAttribute(NameOID.GIVEN_NAME, "Alice")])
++ )
++ .sign(key, hashes.SHA256())
++ )
++ request = sslverify.CertificateRequest(csr)
++ with self.assertRaises(ValueError):
++ request._subjectToDistinguishedName()
+
+From 7f5219d25e9eabed51f20f707ac10b1533c7a8c3 Mon Sep 17 00:00:00 2001
+From: Alex Gaynor <alex.gaynor@gmail.com>
+Date: Wed, 10 Jun 2026 06:14:45 -0700
+Subject: [PATCH 4/5] remove comment that's no longer required
+
+---
+ src/twisted/internet/_sslverify.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/twisted/internet/_sslverify.py b/src/twisted/internet/_sslverify.py
+index fdfa37adeef..bd71a401636 100644
+--- a/src/twisted/internet/_sslverify.py
++++ b/src/twisted/internet/_sslverify.py
+@@ -518,7 +518,6 @@ class CertificateRequest(CertBase):
+ returned resulting in an actual certificate.
+
+ @ivar original: The underlying CSR object.
+- @type original: L{cryptography.x509.CertificateSigningRequest}
+ """
+
+ original: x509.CertificateSigningRequest
+
+From b2201db3e08760d4d0ae6563b44109d5c5f555df Mon Sep 17 00:00:00 2001
+From: Alex Gaynor <alex.gaynor@gmail.com>
+Date: Wed, 10 Jun 2026 06:15:39 -0700
+Subject: [PATCH 5/5] fmt
+
+---
+ src/twisted/test/test_sslverify.py | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/twisted/test/test_sslverify.py b/src/twisted/test/test_sslverify.py
+index 579ae1d03f6..282121bc023 100644
+--- a/src/twisted/test/test_sslverify.py
++++ b/src/twisted/test/test_sslverify.py
+@@ -3545,9 +3545,7 @@ def test_subjectUnknownAttribute(self):
+ key = ec.generate_private_key(ec.SECP256R1(), backend=default_backend())
+ csr = (
+ x509.CertificateSigningRequestBuilder()
+- .subject_name(
+- x509.Name([x509.NameAttribute(NameOID.GIVEN_NAME, "Alice")])
+- )
++ .subject_name(x509.Name([x509.NameAttribute(NameOID.GIVEN_NAME, "Alice")]))
+ .sign(key, hashes.SHA256())
+ )
+ request = sslverify.CertificateRequest(csr)
diff --git a/dev-python/twisted/twisted-26.4.0.ebuild b/dev-python/twisted/twisted-26.4.0-r1.ebuild
index 8f4db1a83746..5c6f3d34ac40 100644
--- a/dev-python/twisted/twisted-26.4.0.ebuild
+++ b/dev-python/twisted/twisted-26.4.0-r1.ebuild
@@ -96,6 +96,10 @@ python_prepare_all() {
local PATCHES=(
# https://github.com/twisted/twisted/pull/12637
"${FILESDIR}/${P}-py314.patch"
+ # https://github.com/twisted/twisted/pull/12661
+ "${FILESDIR}/${P}-pyopenssl.patch"
+ # https://github.com/twisted/twisted/pull/12602
+ "${FILESDIR}/${P}-py315.patch"
)
distutils-r1_python_prepare_all
diff --git a/dev-python/txtorcon/Manifest b/dev-python/txtorcon/Manifest
index fd7ad8296a45..ec74b01fd531 100644
--- a/dev-python/txtorcon/Manifest
+++ b/dev-python/txtorcon/Manifest
@@ -1,2 +1 @@
-DIST txtorcon-24.8.0.gh.tar.gz 395135 BLAKE2B 14e800e64788fac8d840ee00f2032d697227d568ec671a040ae63d95849fc50d17e602bcac625251094237ef642dc1f05032735b06b52053a05fde33d41acc0d SHA512 b5e3d8f470dd2561b3291349d2d7b60bcc78b6f4eae7cc98e400cdbe57ff8dc5a5f7c59b3068a221faf60715296af1dd2587663c32d40ac70f37ddaa94cdd940
DIST txtorcon-26.6.0.gh.tar.gz 395419 BLAKE2B 0c7f542c721e0c69404ba8bcff14f48708863ff8add48925f58861ad53ccf9538be3ffaff12bebd4f17928438a006a7c7050b5c026b8289e9a964c2290478e5a SHA512 21e2fe189c3b5275a32ea2d8fc03ebd3ea4d546977c7570660005b65d8fa0c0da0310e95ccd419d42eb1a254c42a3f57f959d6063d3fb935980dae8bb170d00d
diff --git a/dev-python/txtorcon/txtorcon-24.8.0-r1.ebuild b/dev-python/txtorcon/txtorcon-24.8.0-r1.ebuild
deleted file mode 100644
index 635ba7dd6408..000000000000
--- a/dev-python/txtorcon/txtorcon-24.8.0-r1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-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
-
-DESCRIPTION="Twisted-based Tor controller client, with state-tracking abstractions"
-HOMEPAGE="
- https://txtorcon.readthedocs.org/
- https://github.com/meejah/txtorcon/
- https://pypi.org/project/txtorcon/
-"
-SRC_URI="
- https://github.com/meejah/txtorcon/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-
-RDEPEND="
- dev-python/automat[${PYTHON_USEDEP}]
- dev-python/cryptography[${PYTHON_USEDEP}]
- dev-python/twisted[ssl,${PYTHON_USEDEP}]
- dev-python/zope-interface[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- test? (
- sys-process/lsof
- )
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/txtorcon/txtorcon-26.6.0.ebuild b/dev-python/txtorcon/txtorcon-26.6.0.ebuild
index 272373e365b4..dfa38ad3a7c5 100644
--- a/dev-python/txtorcon/txtorcon-26.6.0.ebuild
+++ b/dev-python/txtorcon/txtorcon-26.6.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
RDEPEND="
dev-python/automat[${PYTHON_USEDEP}]
diff --git a/dev-python/typer/Manifest b/dev-python/typer/Manifest
index b5e6f647557a..506e5f631e93 100644
--- a/dev-python/typer/Manifest
+++ b/dev-python/typer/Manifest
@@ -1,3 +1,2 @@
-DIST typer-0.25.1.tar.gz 122276 BLAKE2B 08089d17ca0c038806d0dcc5795d5f88cd0e0163697288b5ae003bdfcaf95537ff465874f1bb5510fe84e0ae1f7ea9c68ebe08639253a0575c220b26297abeb2 SHA512 26e9927a82d8e17e8eae370b7235a7481b6d875c77c5600f8390c22a5274b3a0e3abe14d1c2eae93850613bf685555afe67a2e495687328615c65fc8d27bcb7b
DIST typer-0.26.7.tar.gz 201709 BLAKE2B 7c596ef29150726a82261b9f19374418a5380e3de6d8d43cb10299bf6f3afe3c428e92bdd3923ed0485819e0b68d5f0e93df567ef193294c6734dff2a9907186 SHA512 6efa29c2fc45d1c28acd6cbbe49e63784a51c26c833dff20e55281f45b2282838d5ebd7939693ffcc185a9a95ec00485c749183d19d6b33cd41eb402b314bbcc
DIST typer-0.26.8.tar.gz 202097 BLAKE2B efe6413355b2db0cb8f4c6b2692ca9d5ec7fc89f789163711001ced9688337ff80b1ff351dfb6b55c42c9b301ef48f184b3bbdbd9ba636e7fcf3d733de773d95 SHA512 5550332a799655e25c85ee70f4904c4b0f8f6942c9815c09e10c2b3f5d0a9663165e78bb6b8bfaad5498b55bfd4e63abd5d733bd96cf1c05f2abc0e9adb32c18
diff --git a/dev-python/typer/typer-0.25.1.ebuild b/dev-python/typer/typer-0.25.1.ebuild
deleted file mode 100644
index 30fdb3f7d23d..000000000000
--- a/dev-python/typer/typer-0.25.1.ebuild
+++ /dev/null
@@ -1,69 +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} )
-
-inherit distutils-r1 shell-completion pypi
-
-DESCRIPTION="Build great CLIs. Easy to code. Based on Python type hints"
-HOMEPAGE="
- https://typer.tiangolo.com/
- https://github.com/fastapi/typer/
- https://pypi.org/project/typer/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
-IUSE="cli"
-
-RDEPEND="
- >=dev-python/annotated-doc-0.0.2[${PYTHON_USEDEP}]
- >=dev-python/click-8.2.1[${PYTHON_USEDEP}]
- >=dev-python/rich-13.8.0[${PYTHON_USEDEP}]
- >=dev-python/shellingham-1.3.0[${PYTHON_USEDEP}]
- cli? ( !dev-lang/erlang )
-"
-BDEPEND="
- test? (
- dev-python/coverage[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # LLM crap
- rm -r typer/.agents || die
- if ! use cli; then
- sed -i -e '/typer\.cli/d' pyproject.toml || die
- fi
-}
-
-python_test() {
- # See scripts/tests.sh
- local -x TERMINAL_WIDTH=3000
- local -x _TYPER_FORCE_DISABLE_TERMINAL=1
- local -x _TYPER_RUN_INSTALL_COMPLETION_TESTS=1
-
- epytest
-}
-
-python_install() {
- if use cli && [[ ! ${COMPLETIONS_INSTALLED} ]]; then
- local -x _TYPER_COMPLETE_TEST_DISABLE_SHELL_DETECTION=1
- newbashcomp - typer < <(typer --show-completion bash || die)
- newzshcomp - typer < <(typer --show-completion zsh || die)
- newfishcomp - typer < <(typer --show-completion fish || die)
- COMPLETIONS_INSTALLED=1
- fi
-
- distutils-r1_python_install
-}
diff --git a/dev-python/typer/typer-0.26.7.ebuild b/dev-python/typer/typer-0.26.7.ebuild
index f875bee44d47..79b071cc47c8 100644
--- a/dev-python/typer/typer-0.26.7.ebuild
+++ b/dev-python/typer/typer-0.26.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 x86"
IUSE="cli"
RDEPEND="
diff --git a/dev-python/urllib3/urllib3-2.7.0.ebuild b/dev-python/urllib3/urllib3-2.7.0.ebuild
index 8b8b1b944c5d..5bbffdaa7838 100644
--- a/dev-python/urllib3/urllib3-2.7.0.ebuild
+++ b/dev-python/urllib3/urllib3-2.7.0.ebuild
@@ -69,7 +69,7 @@ BDEPEND="
" "${PYTHON_TESTED[@]}")
$(python_gen_cond_dep '
>=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
- ' 3.{11..13})
+ ' 3.{12..13})
)
"
@@ -77,6 +77,12 @@ src_prepare() {
# upstream considers 0.5 s to be "long" for a timeout
# we get tons of test failures on *fast* systems because of that
sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die
+
+ # remove stupid warning checks
+ sed -e '/str(wm)/d' \
+ -e '/assert not warn\.called/d' \
+ -i test/with_dummyserver/test_https.py || die
+
distutils-r1_src_prepare
}
@@ -98,16 +104,10 @@ python_test() {
# hangs randomly
test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread
test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread
+ # more random warning failures
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_ssl_correct_system_time
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_ssl_wrong_system_time
)
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # lots of random "coroutine not awaited" warnings
- test/contrib/test_pyopenssl.py
- test/with_dummyserver/test_https.py
- )
- ;;
- esac
local EPYTEST_PLUGINS=( pytest-timeout )
local EPYTEST_RERUNS=10
diff --git a/dev-python/urwid/Manifest b/dev-python/urwid/Manifest
index 7154403b717d..0b379c6388fb 100644
--- a/dev-python/urwid/Manifest
+++ b/dev-python/urwid/Manifest
@@ -1,7 +1,3 @@
-DIST urwid-4.0.0.tar.gz 859221 BLAKE2B 18519d58c1837f3871535876cd3fc17734239714211cd682a5e0a00e7ff6da064d2b1c660d2d6b8674efb58f3b6e39de40f963ec9f2df8d7563e9d99b6271e16 SHA512 c0241275d3808d81cb13e941d66aa6769c20a8913f992c2de892de6210c698503df5acd81121614acb39017ba91b4abb777675f3921db88d9801c6ebc2551169
-DIST urwid-4.0.0.tar.gz.provenance 9160 BLAKE2B 8a5965cd7e09ec0ee6e84286a46dd016bf3dcbf93605edd1c88c09306012ebc8a1e67a015a91e7f63a1ad1dc8d4b07a5f6dc99ccd36e96fcacb2ec182af93fdd SHA512 8da8be2f2450ecfdd08df7a4beaa38408695c6cd3e5c11031c1b52fbc1e531e8a5546ea43361ed911596008d57a419de046dccb6b4efb69521a3353724069282
-DIST urwid-4.0.1.tar.gz 859593 BLAKE2B 9bb60c1e75e211932f7dba091bd6869fbdf9a43a434787d3ee4477bf58ecd1dfa2f5c28d04f1d8565a38e4d1b7b53ce8a02cbc1e98dd0f780a940deb4c68e9c8 SHA512 f350753ba53d945f56a19e475c4de42809d9d24e2d39d06308260b972eb9ca2ec8604ab68b5078f1a18c7e93ff0942b4802b79e1e0c566d754a02cab605da142
-DIST urwid-4.0.1.tar.gz.provenance 9297 BLAKE2B 5319623b9212e6e6939117195c95155a56076e22cb3414d9ccc17bebcd51866fe1bca2161f500d6ce65d52505701629260cac126b8454d8ab815899c0122c4f9 SHA512 5c7fdbb6685d6582e91a3136b3e0adc25a94a12cd85d4c7ee441484d974fe0b586bde07f244773b625f5125206ece40335b45eb92038c22e8d77e9b5f77b203d
DIST urwid-4.0.2.tar.gz 861918 BLAKE2B 9b549d6e5c16e34b20f30646489d0ef0732c2ef8fe0464d8425d3e90d55a7f8abb602cd25b2b605ac2a74291882c0443c002204a7fbd1534e921556468e6b9c1 SHA512 a1611414eb26fdb15773fb2a4fa78bc6c886b26c8940ff422b38d2d772d81e58ff8ed284c858e848819d6e7fc983286a2d263845a1730304eaf36322a288f2d2
DIST urwid-4.0.2.tar.gz.provenance 9434 BLAKE2B 3b97cfdccb84e4c2436cde05a0d0019d8498fcc87a67047ab0e84bf2b9f7646684be46c78eed31d2567f0fc139a07683200746a8614e1c18949010a48223cadd SHA512 220ddb6d1ba3a8d4504612a4195e7e4b417d26564d5e64239aa71b087151fc4ef9e42755ed3edad9b404440d98d481b1334423b6ab6f256c73e75017363cfb00
DIST urwid-4.0.3.tar.gz 868487 BLAKE2B 5687138af349dc0fa80be8fbf6fcc91f51d15debb3ec6c2f2c9a72bd5019944e98d3706fa09cce361702d2c4508cbcec387f1620d0173ddfd7e4bda1433faaeb SHA512 b3d76e97944b8d46bfe88840b84f251a9acb5e6787e55ae35fa6a18a9425648ef24b6989c6235a8ecf1dc924b185fa4e2ceaeae3f666cc8d4dc3211ba17a91f0
diff --git a/dev-python/urwid/urwid-4.0.0.ebuild b/dev-python/urwid/urwid-4.0.0.ebuild
deleted file mode 100644
index 5cca05b5d2a1..000000000000
--- a/dev-python/urwid/urwid-4.0.0.ebuild
+++ /dev/null
@@ -1,41 +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/wcwidth-0.4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-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.0.1.ebuild b/dev-python/urwid/urwid-4.0.1.ebuild
deleted file mode 100644
index 95826b3fd94b..000000000000
--- a/dev-python/urwid/urwid-4.0.1.ebuild
+++ /dev/null
@@ -1,41 +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/wcwidth-0.4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-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.0.2.ebuild b/dev-python/urwid/urwid-4.0.2.ebuild
index 95826b3fd94b..5cca05b5d2a1 100644
--- a/dev-python/urwid/urwid-4.0.2.ebuild
+++ b/dev-python/urwid/urwid-4.0.2.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.11.19.ebuild b/dev-python/uv-build/uv-build-0.11.19.ebuild
index d66584ed2ede..71429631d035 100644
--- a/dev-python/uv-build/uv-build-0.11.19.ebuild
+++ b/dev-python/uv-build/uv-build-0.11.19.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/uv/uv-0.11.19.ebuild b/dev-python/uv/uv-0.11.19.ebuild
index 278562102301..857a7f91d2e9 100644
--- a/dev-python/uv/uv-0.11.19.ebuild
+++ b/dev-python/uv/uv-0.11.19.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/Manifest b/dev-python/uvicorn/Manifest
index 80f0fef5a47f..4e93deeb354d 100644
--- a/dev-python/uvicorn/Manifest
+++ b/dev-python/uvicorn/Manifest
@@ -4,3 +4,5 @@ DIST uvicorn-0.48.0.tar.gz 91074 BLAKE2B 39b7133a0a83a3f8b09b95288132ef2ed689a8d
DIST uvicorn-0.48.0.tar.gz.provenance 9384 BLAKE2B f68abf277ebc678fa8345b10b8f2f784beb395840c20b60b7278d69b165c4ee59267696ca873a3947799004c0360fa001a60c133054dc8679f75e988beeab7db SHA512 5deed175065f2986de4b914a5840b0d45d2455f1afc3978895c924caab20604e90c291260fa8a17fab4aec15b44c22d44f8c28a91af59dc06b54f18cebdba952
DIST uvicorn-0.49.0.tar.gz 91284 BLAKE2B 44bc012868fe519132fba4485f0b8f7c6d9eb586ad7d710a00b9c43147b72ea88433a92121ee4ea0b8a83b017c7f4f8e953f9410341b313b2d04017feecdc3d2 SHA512 7aa56da2baa5f2aebee97a3ebb94f77bef68e4f160657c6ace770bd43c92d66234a2d7d692ff3bc2809a8f8149904ef38692b81f7ff08df8a5b765d4a47bd586
DIST uvicorn-0.49.0.tar.gz.provenance 9600 BLAKE2B 8b104211313a3da23431a693b7d6aa778f174ffc1e66e20b46f34b7986c02739559babd73f34490b07fe32dc8422bd1f5fa9a3f0fff6348a7d63bfe2d865bbf6 SHA512 075901986512a504961048faaf3e99600cd97f2940c2418616344843520e1924060d57acb214962d648c3c570f40cf1b3bce547bdf929d36adaf8a32f7ad8a5f
+DIST uvicorn-0.50.0.tar.gz 93257 BLAKE2B bc666cbdb981a35aa94bd1faf9636c7c0dae5a85268993beeb0b77e1542d70941d9da7b5e129711c8ff1904e23ed80909ead86409720147c7ee7cdf14cc8acb9 SHA512 682ffb55076452931c82b7ddaf643b0aea9aa869a709721bee30d0dc0b33bf2b36e362864f970841d2b69c2d0cbe98c55c86dc22cc0fa8395e0c51a0624b09cd
+DIST uvicorn-0.50.0.tar.gz.provenance 9741 BLAKE2B 2521229c05cf3b8fc31e208a12a27f767dd7d348c8fed1ae6452928859883ceb354448aab8d5709230c5e9c667a4cf2674e8a88f3ae9ade2f8dda8bccca80ca6 SHA512 8713deb05751d3897dc0b00965cc72e1c2c3ceef39c02b71ae43bbe6ecfe7ad88682114ef7be050d085cc984b7ff7781a30f31a4c132be58db4d90590ed00a9b
diff --git a/dev-python/uvicorn/uvicorn-0.49.0.ebuild b/dev-python/uvicorn/uvicorn-0.49.0.ebuild
index 71d102991929..ee2f9c671b89 100644
--- a/dev-python/uvicorn/uvicorn-0.49.0.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.49.0.ebuild
@@ -11,14 +11,14 @@ inherit distutils-r1 optfeature pypi
DESCRIPTION="Lightning-fast ASGI server implementation"
HOMEPAGE="
- https://www.uvicorn.org/
+ https://uvicorn.dev/
https://github.com/Kludex/uvicorn/
https://pypi.org/project/uvicorn/
"
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="
@@ -49,31 +49,17 @@ EPYTEST_RERUNS=5
EPYTEST_XDIST=1
distutils_enable_tests pytest
-python_test() {
- local EPYTEST_DESELECT=(
- # too long path for unix socket
- tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers
- # TODO
- 'tests/protocols/test_http.py::test_close_connection_with_multiple_requests[httptools]'
- 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[httptools-max=defaults sent=defaults+1]'
- 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[h11-max=defaults sent=defaults+1]'
- # tests broken with non-ancient dev-python/websockets
- tests/protocols/test_websocket.py::test_fragmented_message_exceeding_max_size
- tests/protocols/test_websocket.py::test_fragmented_message_reassembly
- )
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # TODO
- tests/middleware/test_logging.py::test_running_log_using_fd
- # crashes pytest-xdist
- tests/test_config.py::test_bind_stdin_works_with_reload_or_workers
- )
- ;;
- esac
-
- epytest
-}
+EPYTEST_DESELECT=(
+ # too long path for unix socket
+ tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers
+ # TODO
+ 'tests/protocols/test_http.py::test_close_connection_with_multiple_requests[httptools]'
+ 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[httptools-max=defaults sent=defaults+1]'
+ 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[h11-max=defaults sent=defaults+1]'
+ # tests broken with non-ancient dev-python/websockets
+ tests/protocols/test_websocket.py::test_fragmented_message_exceeding_max_size
+ tests/protocols/test_websocket.py::test_fragmented_message_reassembly
+)
pkg_postinst() {
optfeature "auto reload on file changes" dev-python/watchfiles
diff --git a/dev-python/uvicorn/uvicorn-0.50.0.ebuild b/dev-python/uvicorn/uvicorn-0.50.0.ebuild
new file mode 100644
index 000000000000..0f30968ddef0
--- /dev/null
+++ b/dev-python/uvicorn/uvicorn-0.50.0.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2021-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/Kludex/uvicorn
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Lightning-fast ASGI server implementation"
+HOMEPAGE="
+ https://uvicorn.dev/
+ https://github.com/Kludex/uvicorn/
+ https://pypi.org/project/uvicorn/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/asgiref-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ >=dev-python/h11-0.8[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/a2wsgi[${PYTHON_USEDEP}]
+ >=dev-python/httptools-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28[${PYTHON_USEDEP}]
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ >=dev-python/websockets-11.0[${PYTHON_USEDEP}]
+ dev-python/wsproto[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ >=dev-python/watchfiles-0.20[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-mock )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # too long path for unix socket
+ tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers
+ # TODO
+ 'tests/protocols/test_http.py::test_close_connection_with_multiple_requests[httptools]'
+ 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[httptools-max=defaults sent=defaults+1]'
+ 'tests/protocols/test_websocket.py::test_send_binary_data_to_server_bigger_than_default_on_websockets[h11-max=defaults sent=defaults+1]'
+ # tests broken with non-ancient dev-python/websockets
+ tests/protocols/test_websocket.py::test_fragmented_message_exceeding_max_size
+ tests/protocols/test_websocket.py::test_fragmented_message_reassembly
+)
+
+EPYTEST_IGNORE=(
+ tests/benchmarks
+)
+
+pkg_postinst() {
+ optfeature "auto reload on file changes" dev-python/watchfiles
+}
diff --git a/dev-python/vcrpy/Manifest b/dev-python/vcrpy/Manifest
index 273b76748059..1b5330873665 100644
--- a/dev-python/vcrpy/Manifest
+++ b/dev-python/vcrpy/Manifest
@@ -1,3 +1,4 @@
DIST vcrpy-8.1.1.gh.tar.gz 339641 BLAKE2B 140678b9d8ba38ac6c3492fcfe35ffaa9db17b9e07d52554466a84b5bf0ddb7d932eab8d009f20dd1e74722cf56c330b6bcb3c58245dac04613f480aca8586e2 SHA512 3596c1ca34dc9f9f461579e9f4ec64395d028abd8180388af664078a0cb9dd557aee3b5a654ff6873b63969865f9ac3c6e021ba1ac302c11def090d873ae5bf2
DIST vcrpy-8.2.0.gh.tar.gz 342891 BLAKE2B 1ac45a640cb8204c666b8f7f1ebc64a17c39abc08551d4d683d25beb1b2ab14723de64beed063b7e8e6e79bd926bbade7f48dc2a49802e404f031d79b9e1aae1 SHA512 97c621e12360f0de7c108b3914ee604d7d9abdf49c435addae687f4b732600a0a77a92b97447a518b6d1c42581781ee91c5cb714cfcdfb94c30afd8439f728da
DIST vcrpy-8.2.1.gh.tar.gz 344628 BLAKE2B f1f5974b798f4cc9f43059de6afcae5473b605e8be392b876db30068f6a0e95ce8d709aca9d6dd2f05a487d1e567416a6ee5e1a57d6f05343f07bf942dfdb887 SHA512 7e997bced734f6d0379da018596b4f0aa91d3591190f1a1b2ec48516f6bc6085954314f945d242ae510f74d742bf820eff5732495696cfab7849f2011fd8f8ee
+DIST vcrpy-8.3.0.gh.tar.gz 350920 BLAKE2B 9651e76d1a418e15348fe92b67d6c70e4b3ec3135da92cc01b12275c9f57d84de418ff327042039b0db2567b69b904fa373c2d495896c071234865df2a2371d0 SHA512 940d929d08dee3415b745ac3aa408ebcf611ecc04274ba9489eb8bb2ad0ad396cd51a4e78b00215287140f63136df2b34a53dd73fc64e5abb3a0e2b9f1eb4dbb
diff --git a/dev-python/vcrpy/vcrpy-8.3.0.ebuild b/dev-python/vcrpy/vcrpy-8.3.0.ebuild
new file mode 100644
index 000000000000..2d2a8bacfbe4
--- /dev/null
+++ b/dev-python/vcrpy/vcrpy-8.3.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Automatically mock your HTTP interactions to simplify and speed up testing"
+HOMEPAGE="
+ https://github.com/kevin1024/vcrpy/
+ https://pypi.org/project/vcrpy/
+"
+SRC_URI="
+ https://github.com/kevin1024/vcrpy/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc ~x86"
+
+RDEPEND="
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ dev-python/wrapt[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/httpx2[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,httpbin} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # aiohttp incompatibility
+ tests/transport/aio/test_aiohttp.py::TestRequest::test_request_clone_with_active_session
+ # Internet
+ "tests/integration/test_urllib3.py::test_post[https]"
+ )
+
+ local EPYTEST_IGNORE=(
+ # requires boto3
+ tests/integration/test_boto3.py
+ # Internet
+ tests/integration/test_tornado.py
+ tests/integration/test_aiohttp.py
+ )
+
+ local -x REQUESTS_CA_BUNDLE=$("${EPYTHON}" -m pytest_httpbin.certs)
+ epytest -m 'not online'
+}
diff --git a/dev-python/vcsgraph/Manifest b/dev-python/vcsgraph/Manifest
index 3f17fd512877..be9baeb3ed50 100644
--- a/dev-python/vcsgraph/Manifest
+++ b/dev-python/vcsgraph/Manifest
@@ -1,5 +1,3 @@
-DIST vcsgraph-0.3.0-crates.tar.xz 1958984 BLAKE2B e315d3dca011e5ad422e4944a2972ca8698c3b8993e7c7f8be6c81a9dd04e6188a2ad41432ed6364713ecc7037f484c6c4812af5f783f15779b4ddaaead9bb0c SHA512 73e3a54e2a5aae51135c73c72316f49e0d52f4ccef7dc3a1540b1040d47a334d7a19ddaca841009dc01fa7aa36daea337df417cfd976c90b9fc0e57f0bb82d00
-DIST vcsgraph-0.3.0.gh.tar.gz 101890 BLAKE2B 5508bc0d5b480decaba64f98a598d0cd1168f5869e316820cf948538b3cdcf2575d8038e5d01765ad8594cceae3b7fa255958c32ec07424e784eacf4f1477d2e SHA512 8e60badda65836a9ecc2a1d9558395c3f7e856d7fc5d2bbce7639c288d41fadb6a343f1df3f0c42592eb842ac0789e2df356ba77e81e6e784d7fe4bfa7e1566b
DIST vcsgraph-0.3.2-crates.tar.xz 1958984 BLAKE2B e315d3dca011e5ad422e4944a2972ca8698c3b8993e7c7f8be6c81a9dd04e6188a2ad41432ed6364713ecc7037f484c6c4812af5f783f15779b4ddaaead9bb0c SHA512 73e3a54e2a5aae51135c73c72316f49e0d52f4ccef7dc3a1540b1040d47a334d7a19ddaca841009dc01fa7aa36daea337df417cfd976c90b9fc0e57f0bb82d00
DIST vcsgraph-0.3.2.tar.gz 99202 BLAKE2B 670a41a48f10c24ff15a590db7393bcc2d5ff1ae8f8c816ed4e3a574b963f6b5b183435a4832998b316f7e3971626010410a8dd8a741a574ab4b2b283079a7db SHA512 2aa4802221d4a4cc4bc0f341ef521912bc493cbe1765a7880b4dedc1f598e7f398c7781d6a0a222a2cd4afcc17178fb50347c6c06bda1071d0b22c65885c654c
DIST vcsgraph-0.3.2.tar.gz.provenance 9838 BLAKE2B 4724f8083025ca24eb3881aa8f964ae4b13d74384ea722d422587ffec345840963461cd34e62be92361754618a24c3107eb6f29e538d4f05bca1616f2be51568 SHA512 5553f43e89d8e236c5e7bb5f061f6f9e8b6bbf667b77e13defeb1c0c3de69734911d344c54772eb31e8a447371e2d322dad1fe9eb9bd647ad77939288a13deb4
diff --git a/dev-python/vcsgraph/vcsgraph-0.3.0.ebuild b/dev-python/vcsgraph/vcsgraph-0.3.0.ebuild
deleted file mode 100644
index b2b6b926f3f0..000000000000
--- a/dev-python/vcsgraph/vcsgraph-0.3.0.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES=""
-RUST_MIN_VER="1.83"
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit cargo distutils-r1
-
-DESCRIPTION="Graph algorithms for version control systems"
-HOMEPAGE="https://pypi.org/project/vcsgraph/ https://github.com/breezy-team/vcsgraph"
-SRC_URI="https://github.com/breezy-team/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-SRC_URI+=" https://github.com/gentoo-crate-dist/${PN}/releases/download/v${PV}/${P}-crates.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-BDEPEND="
- dev-python/setuptools-rust[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- eunittest
-}
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index ec913100c48d..f9bd8032271c 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,10 +1,6 @@
-DIST virtualenv-20.39.1.tar.gz 5870061 BLAKE2B 30fb2c107616c080935ede0ea2e72e5b70bc184d46d7eb26e08f612f8cc6be26dde2a8c53c8d415b586904749e5dd4bfc5f82ff6c186cdc51815a480e1dbbe80 SHA512 8d8fb281cd55bf60065b4d57e37963a90bf116e46e67eb3688177f40d975da93a558e1ad67b6d7ee8ecfd1a005cd3d4dccc4c50c72569fad221634136a61e23d
-DIST virtualenv-20.39.1.tar.gz.provenance 9445 BLAKE2B 39909e09db2ab5b8fdd9a192943e3e8279a16efd2c55a88dca6c2f76bb86b78d569d6e9a8a6ef8415a6805d42a0967f0862609eb9a59a5ef7bf35dbfb3a55a51 SHA512 6c7f752fc702cfb00005215186fc6062a30f319d5d22457abc7a98ee9fbc8e7e466aa6b0af319ff3a98dde013e98759f16100003012c00e644ae91982ceaf157
DIST virtualenv-21.3.3.tar.gz 7613784 BLAKE2B b196f2e02c44aca34d53f1e0208bb8b6a10523dc6f59cb4a7dca0b6141c807dd807f61e05832ec5efc027af3d8823cbb5c3e09a9c2ea834fec694571f863b140 SHA512 f3e7c71f2fafa0bff05aba89bc0cb2e2eede0c6ed5373fb253a6ac59f103505108671e5c19866562146723ea9630fc472dade53498c4fb97d6ec5c8e1c125d19
DIST virtualenv-21.3.3.tar.gz.provenance 9284 BLAKE2B 87ae9b8009c397d949d9fafecafd4690e1bf034edd70287b589ca0a96476087ceba27fffe608a60361a370f80d3b3b9e89cd801a8a41f89441cf24464105b655 SHA512 8c957c4dcaa13886bb03fb52a5a29ad632fa48effbdd7273baf6985c376d760a0b00b5dd0fca6a641baf91b1431b7319beee2916676926ee9c2d57cf49bd778d
DIST virtualenv-21.4.3.tar.gz 7644454 BLAKE2B ef289a57f1cad1c42aa0bb38624a0abd37323538ca6b60397b12b0cdb2a60fb2b02fa02c0b72681bb062573a2c245b8b67538d32ab5b2cb0ae0082a1458ca61f SHA512 4ed4d90ab17871c4738102a3186593669b2fcf2c5f512949e995251636bcc58fb6b50f74db13dff40fdf4cb3d9e73acd8bf9db429960b28e5c9ab5d2ac684e3c
DIST virtualenv-21.4.3.tar.gz.provenance 9500 BLAKE2B d5adf2b90488d9d0728101d7ecebb593350d07d0f1b08f0acd67847f22b99a7b1b8d1fd082fe739bc927fd79c75cda1f55cf39b2b8467fa8ddaa6178505d1909 SHA512 6c5dfc394d1c95c161c30235994b2066127653678430e69b769dc50ed2a007b6703379eb8c495d1395b953ec67d797ad1e4433121cdfd6fc722367937ac5178a
-DIST virtualenv-21.5.0.tar.gz 4577424 BLAKE2B 16f683b0c124478cd6dbd2eb4b4ad89c283c0669fe96062c199ae3e230e3009f5cd18066f4e98eeec3f6fab5f7bc04fbb5f1ecdafe2599d2bce13218fd8a5b2e SHA512 214d487e71fa30814982ea79979d37fd76f9dd175d47bbaa8704b917e917d348ad6a5352faf9a1fbd66cec40a51a7beb5b7a8d5f2adfba45f98de52c570b30fe
-DIST virtualenv-21.5.0.tar.gz.provenance 9555 BLAKE2B e9e6410cc70900f98d039924e0fe95e1e8ff483f0b4e9072ead40f3ebfb80ee9b10c043d12f47cccada8037901a4e38f6cccfa979fd8fd08d36612a40d6f9950 SHA512 683baa83889889292ebeb5646662c91598bfdef6653a04ee07cd3e8dbb7ebd1647cb8a41544ae52ea4860a04a16eba0ab230bee49d4b67c4319be0e335abd796
DIST virtualenv-21.5.1.tar.gz 4578798 BLAKE2B 495289992d27ca98114ad713e680c7db257ef887dae500cf2b432486984b3c9a84d2108a39318f2d95a840fb3d000aaa894a189a8345a0023024d9c4f3b17568 SHA512 c7d49b496ede5ffcd6bf10ba8bcf47acae3c98470c5bb1e41c2a074c9f128ee0a6d83f89a0e088c4ca1e237e27e6d73affe0adbaa884f5afd526ac6881d2dbb8
DIST virtualenv-21.5.1.tar.gz.provenance 9602 BLAKE2B 1e436f34c3b5a85ef334727eed745f3ca76bdfb5f6e8d7a484d602c177f4b680e8200a7ffa4fd2d6c4b43ec53a3829dd4c6c2b90db0487d752fec175aec456fc SHA512 37b56c52097132ba42d78c606c13b1e2d2a470662e4de29ae32f923db735b538b13f7f7365e220da8b97f788ba496e53705b6af20060826fc0168d323608ae91
diff --git a/dev-python/virtualenv/files/virtualenv-20.31.1-ensurepip.patch b/dev-python/virtualenv/files/virtualenv-20.31.1-ensurepip.patch
deleted file mode 100644
index 54a989fecb9d..000000000000
--- a/dev-python/virtualenv/files/virtualenv-20.31.1-ensurepip.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ab30a98f4bb53b7aad6fd130cf723271e2b7f638 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Sat, 22 Jun 2024 14:28:23 +0200
-Subject: [PATCH] Use ensurepip wheels instead of local bundle
-
----
- src/virtualenv/seed/wheels/embed/__init__.py | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/virtualenv/seed/wheels/embed/__init__.py b/src/virtualenv/seed/wheels/embed/__init__.py
-index 6b3ef263..37c114f8 100644
---- a/src/virtualenv/seed/wheels/embed/__init__.py
-+++ b/src/virtualenv/seed/wheels/embed/__init__.py
-@@ -1,5 +1,6 @@
- from __future__ import annotations
-
-+import sysconfig
- from pathlib import Path
-
- from virtualenv.seed.wheels.util import Wheel
-@@ -40,6 +41,13 @@ MAX = "3.8"
-
-
- def get_embed_wheel(distribution, for_py_version):
-+ # Gentoo hack: get wheel from ensurepip directory
-+ bundle_dir = Path(sysconfig.get_config_var("WHEEL_PKG_DIR"))
-+ try:
-+ return Wheel.from_path(next(bundle_dir.glob(f"{distribution}-*.whl")))
-+ except StopIteration:
-+ return None
-+
- mapping = BUNDLE_SUPPORT.get(for_py_version, {}) or BUNDLE_SUPPORT[MAX]
- wheel_file = mapping.get(distribution)
- if wheel_file is None:
diff --git a/dev-python/virtualenv/virtualenv-20.39.1.ebuild b/dev-python/virtualenv/virtualenv-20.39.1.ebuild
deleted file mode 100644
index 952db93a229d..000000000000
--- a/dev-python/virtualenv/virtualenv-20.39.1.ebuild
+++ /dev/null
@@ -1,133 +0,0 @@
-# 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/platformdirs-3.9.1[${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/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/wheel[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' python3_{11..14})
- $(python_gen_cond_dep '
- >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
- ' 'pypy3*')
- )
-"
-
-src_prepare() {
- local PATCHES=(
- # use wheels from ensurepip bundle
- "${FILESDIR}/${PN}-20.31.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
- # 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
- )
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # these don't like the executable called pypy3.11?
- tests/unit/activation/test_bash.py::test_bash
- tests/unit/activation/test_fish.py::test_fish
- tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
- )
- ;;
- esac
-
- local -x TZ=UTC
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- if [[ ${EPYTHON} == pypy3* ]]; then
- EPYTEST_PLUGINS+=( pytest-freezer )
- else
- EPYTEST_PLUGINS+=( time-machine )
- fi
- 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.3.3.ebuild b/dev-python/virtualenv/virtualenv-21.3.3.ebuild
index fa6305a0d919..5e679c2a7d14 100644
--- a/dev-python/virtualenv/virtualenv-21.3.3.ebuild
+++ b/dev-python/virtualenv/virtualenv-21.3.3.ebuild
@@ -19,7 +19,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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/virtualenv/virtualenv-21.5.0.ebuild b/dev-python/virtualenv/virtualenv-21.5.0.ebuild
deleted file mode 100644
index 41eb5014a19f..000000000000
--- a/dev-python/virtualenv/virtualenv-21.5.0.ebuild
+++ /dev/null
@@ -1,136 +0,0 @@
-# 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 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~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/platformdirs-3.9.1[${PYTHON_USEDEP}]
- >=dev-python/python-discovery-1.4.2[${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/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/wheel[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' python3_{11..14})
- $(python_gen_cond_dep '
- >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
- ' 'pypy3*')
- )
-"
-
-src_prepare() {
- local PATCHES=(
- # use wheels from ensurepip bundle
- "${FILESDIR}/${PN}-21.2.4-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
- # 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
- # we do not use bundled wheels
- tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
- )
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # these don't like the executable called pypy3.11?
- tests/unit/activation/test_bash.py::test_bash
- tests/unit/activation/test_fish.py::test_fish
- tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
- )
- ;;
- esac
-
- local -x TZ=UTC
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- if [[ ${EPYTHON} == pypy3* ]]; then
- EPYTEST_PLUGINS+=( pytest-freezer )
- else
- EPYTEST_PLUGINS+=( time-machine )
- fi
- 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.5.1.ebuild b/dev-python/virtualenv/virtualenv-21.5.1.ebuild
index 96575f686dd3..0abb2e161fb7 100644
--- a/dev-python/virtualenv/virtualenv-21.5.1.ebuild
+++ b/dev-python/virtualenv/virtualenv-21.5.1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/wand/wand-0.7.1.ebuild b/dev-python/wand/wand-0.7.1.ebuild
index 87561d7d15cd..4d35041e6c1d 100644
--- a/dev-python/wand/wand-0.7.1.ebuild
+++ b/dev-python/wand/wand-0.7.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
RDEPEND="
media-gfx/imagemagick
diff --git a/dev-python/weasyprint/Manifest b/dev-python/weasyprint/Manifest
index 73d810c76184..d99708b12ba3 100644
--- a/dev-python/weasyprint/Manifest
+++ b/dev-python/weasyprint/Manifest
@@ -1,4 +1,2 @@
-DIST weasyprint-68.1.tar.gz 1542379 BLAKE2B 4ed931ba9bb4f67a63f652ffb298b4c9c804b440a0d2be938b806b49658e62da13e4933eaa43ab353b00c3c35ded304850caa0e83626ef1924a454682095a6a9 SHA512 b080a40882d0b56dc3696aa4edc403a85c20a7b69a14c0bf179f0897af173945f327bc42f9be354d6734822af54413c56a1fec84b8ecd37e51bb5b752c3c676a
-DIST weasyprint-68.1.tar.gz.provenance 9164 BLAKE2B 1e2853a47274bba4ab311a0335b9588b8872530e07441f9646d1998332b450c317af1511ee76a6ca1a99357f84f0b2216f2409a6a8afcaf068e2712670670b00 SHA512 7ec9e302e1a70245ef94ed9f8f396819ce1f9b33456244c0e2ba79e7440d99604d8817f93aa6b1e1bf8011bf1aa8fe4acc8943654934e49a49e8234f7376cba3
DIST weasyprint-69.0.tar.gz 1549834 BLAKE2B eef92c0fbf753ca225ce5d04904544faece8c4bd3d677d60174ec31779141c42c22ffc2d3fe9d42ee36aa427b592a704dad5493a57b9514e859b4e0771eed535 SHA512 fb56d7f6173f8a67f8ef4c31408c03625b0a774d0efde003f779e3da054737c88afe9f44ee40b6dda5fc92cfacfa5709d4d96bf1a112862d309eaf2d93881ef6
DIST weasyprint-69.0.tar.gz.provenance 9576 BLAKE2B 0aa230580b5cb7f2067c413fcb997edfa5c6d4b95fd8625525c23aa3caa449fa17286ff073c579180685f545aeb2a86a4fe72f9191c7b435e6b3176cb77c615f SHA512 c739fc257a8dc332559413b9767b21d5fc96372b90d6f3de22a3c10bd948574b91207c335f0a62653a802a99a07fa66cc099679ae39eb50d2bb7bea43249d9db
diff --git a/dev-python/weasyprint/weasyprint-68.1.ebuild b/dev-python/weasyprint/weasyprint-68.1.ebuild
deleted file mode 100644
index 7396ac7689c3..000000000000
--- a/dev-python/weasyprint/weasyprint-68.1.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYPI_VERIFY_REPO=https://github.com/Kozea/WeasyPrint
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Visual rendering engine for HTML and CSS that can export to PDF"
-HOMEPAGE="
- https://weasyprint.org/
- https://github.com/Kozea/WeasyPrint/
- https://pypi.org/project/weasyprint/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-
-RDEPEND="
- >=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
- >=dev-python/cssselect2-0.8.0[${PYTHON_USEDEP}]
- >=dev-python/fonttools-4.59.2[${PYTHON_USEDEP}]
- >=dev-python/pillow-9.1.0[jpeg,jpeg2k,${PYTHON_USEDEP}]
- >=dev-python/pydyf-0.11.0[${PYTHON_USEDEP}]
- >=dev-python/pyphen-0.9.1[${PYTHON_USEDEP}]
- >=dev-python/tinycss2-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/tinyhtml5-2.0.0[${PYTHON_USEDEP}]
- media-fonts/dejavu
- x11-libs/pango
-"
-
-BDEPEND="
- test? (
- >=app-text/ghostscript-gpl-9.56.1-r3
- >=dev-python/pillow-12.1.0
- media-fonts/ahem
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
diff --git a/dev-python/weasyprint/weasyprint-69.0.ebuild b/dev-python/weasyprint/weasyprint-69.0.ebuild
index 72e6dfd0d76d..ab30f4d782e1 100644
--- a/dev-python/weasyprint/weasyprint-69.0.ebuild
+++ b/dev-python/weasyprint/weasyprint-69.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RDEPEND="
>=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
diff --git a/dev-python/websockets/files/websockets-16.0-py315.patch b/dev-python/websockets/files/websockets-16.0-py315.patch
new file mode 100644
index 000000000000..6ce426da962c
--- /dev/null
+++ b/dev-python/websockets/files/websockets-16.0-py315.patch
@@ -0,0 +1,29 @@
+From f3bf8033276aa4fc272940e650c319c517bb3479 Mon Sep 17 00:00:00 2001
+From: Lumir Balhar <lbalhar@redhat.com>
+Date: Tue, 7 Apr 2026 09:16:08 +0200
+Subject: [PATCH] Python 3.15+ requires C-contiguous buffers for
+ int.from_bytes()
+
+---
+ src/websockets/utils.py | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/websockets/utils.py b/src/websockets/utils.py
+index b2a90e52..84904ea0 100644
+--- a/src/websockets/utils.py
++++ b/src/websockets/utils.py
+@@ -47,6 +47,14 @@ def apply_mask(data: BytesLike, mask: bytes | bytearray) -> bytes:
+ if len(mask) != 4:
+ raise ValueError("mask must contain 4 bytes")
+
++ # Python 3.15+ requires C-contiguous buffers for int.from_bytes()
++ # CPython (https://github.com/python/cpython/pull/132109) optimized
++ # int.from_bytes() to use the buffer protocol with PyBUF_SIMPLE, which requires
++ # C-contiguous buffers. Non-contiguous memoryviews (e.g., created by [::-1])
++ # now raise BufferError. Convert to bytes to create a contiguous copy.
++ if isinstance(data, memoryview) and not data.c_contiguous:
++ data = bytes(data)
++
+ data_int = int.from_bytes(data, sys.byteorder)
+ mask_repeated = mask * (len(data) // 4) + mask[: len(data) % 4]
+ mask_int = int.from_bytes(mask_repeated, sys.byteorder)
diff --git a/dev-python/websockets/websockets-16.0-r1.ebuild b/dev-python/websockets/websockets-16.0-r1.ebuild
new file mode 100644
index 000000000000..d670bdcd26ef
--- /dev/null
+++ b/dev-python/websockets/websockets-16.0-r1.ebuild
@@ -0,0 +1,65 @@
+# 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="Library for building WebSocket servers and clients in Python"
+HOMEPAGE="
+ https://websockets.readthedocs.io/
+ https://github.com/python-websockets/websockets/
+ https://pypi.org/project/websockets/
+"
+# tests are missing pypi sdist, as of 16.0
+SRC_URI="
+ https://github.com/python-websockets/websockets/archive/${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="+native-extensions"
+
+BDEPEND="
+ test? (
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=10
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/python-websockets/websockets/pull/1706
+ "${FILESDIR}/${P}-py315.patch"
+)
+
+python_compile() {
+ if use native-extensions && [[ ${EPYTHON} != pypy3 ]] ; then
+ local -x BUILD_EXTENSION=yes
+ else
+ local -x BUILD_EXTENSION=no
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires DNS access
+ # https://bugs.gentoo.org/909567
+ tests/legacy/test_client_server.py::ClientServerTests::test_explicit_host_port
+ tests/legacy/test_client_server.py::SecureClientServerTests::test_explicit_host_port
+ # TODO
+ tests/asyncio/test_server.py::ServerTests::test_close_server_keeps_handlers_running
+ )
+
+ epytest tests --reruns-delay=2
+}
diff --git a/dev-python/ytmusicapi/ytmusicapi-1.12.1-r1.ebuild b/dev-python/ytmusicapi/ytmusicapi-1.12.1-r1.ebuild
index d469f6a3d6e9..bec16f2ea00e 100644
--- a/dev-python/ytmusicapi/ytmusicapi-1.12.1-r1.ebuild
+++ b/dev-python/ytmusicapi/ytmusicapi-1.12.1-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RESTRICT="test"
RDEPEND="
diff --git a/dev-python/zope-exceptions/zope-exceptions-6.0.ebuild b/dev-python/zope-exceptions/zope-exceptions-6.0.ebuild
index 038862b66c68..759885b0be18 100644
--- a/dev-python/zope-exceptions/zope-exceptions-6.0.ebuild
+++ b/dev-python/zope-exceptions/zope-exceptions-6.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/zope-hookable/zope-hookable-8.2.ebuild b/dev-python/zope-hookable/zope-hookable-8.2.ebuild
index e5febb1927c3..c586571202b1 100644
--- a/dev-python/zope-hookable/zope-hookable-8.2.ebuild
+++ b/dev-python/zope-hookable/zope-hookable-8.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/zope-interface/Manifest b/dev-python/zope-interface/Manifest
index af336b4fc2c7..cc360a13fc16 100644
--- a/dev-python/zope-interface/Manifest
+++ b/dev-python/zope-interface/Manifest
@@ -1,3 +1,2 @@
-DIST zope_interface-8.4.tar.gz 257736 BLAKE2B 6dd39e9d345418602b94dfb6516f82e08d2e542df140582c5849ed791f45bb46b36d57b25ca07fd47db52d7d3dd2d9b10d2f2f7b041761bd2ebe8f5a5a7cedcb SHA512 aa72783ed8abc43a482758ab83abc013b372b94cb940dec809b751d44b3fd9d9c0c3b196d7758a7b7adc696d9bce597d76b5116ee880f894a06a72a1e22abbb5
DIST zope_interface-8.5.tar.gz 257957 BLAKE2B 15f142fe8636def9cab24d91394b7d69e2ef5a420635830b9da35c75846ff323d7b4463cd00d9bd866916322ad1c18a3d4cb1e2f2210955e8772fc3b48906048 SHA512 099f88e47cc29312ff79f3efd904710fc4cfe4c81cacacc1f3cf40471a6b46e9d82646e42c539b14d8f0619beba74b1d0cec90a3a22897949f59dd26750dba7e
DIST zope_interface-8.5.tar.gz.provenance 9454 BLAKE2B 56d347195516e86ff0c56092d92acd8c5c00aa376c9149d14ae5b7e7d2a2b1872975fc85436c37d013e8f16e4ec366f7ee28b76683b9dfd02ef028a16bab699d SHA512 31d39871d4bf74c1aca8c11aad96cab3e0ab4848b7c846022455f5f733877e0902684cb128c0d13a3f3d036d8fffe307c622ec91710c11e9c391f7e176a2594a
diff --git a/dev-python/zope-interface/zope-interface-8.4.ebuild b/dev-python/zope-interface/zope-interface-8.4.ebuild
deleted file mode 100644
index d894ec682609..000000000000
--- a/dev-python/zope-interface/zope-interface-8.4.ebuild
+++ /dev/null
@@ -1,51 +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_PN=${PN/-/.}
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Interfaces for Python"
-HOMEPAGE="
- https://github.com/zopefoundation/zope.interface/
- https://pypi.org/project/zope.interface/
-"
-
-LICENSE="ZPL"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
-IUSE="+native-extensions test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- test? (
- dev-python/zope-event[${PYTHON_USEDEP}]
- dev-python/zope-testing[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # force failure if extension build fails
- sed -i -e "/'build_ext':/d" setup.py || die
- if ! use native-extensions; then
- sed -i -e '/ext_modules=/d' setup.py || die
- fi
-}
-
-python_test() {
- local -x PURE_PYTHON=0
- if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
- PURE_PYTHON=1
- fi
-
- eunittest -s "${BUILD_DIR}/install$(python_get_sitedir)/zope"
-}
diff --git a/dev-python/zope-interface/zope-interface-8.5.ebuild b/dev-python/zope-interface/zope-interface-8.5.ebuild
index b3b5480ac141..e817db8928b1 100644
--- a/dev-python/zope-interface/zope-interface-8.5.ebuild
+++ b/dev-python/zope-interface/zope-interface-8.5.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
IUSE="+native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zope-schema/zope-schema-8.1.ebuild b/dev-python/zope-schema/zope-schema-8.1.ebuild
index ca092fbecec9..3e07b6d43cdb 100644
--- a/dev-python/zope-schema/zope-schema-8.1.ebuild
+++ b/dev-python/zope-schema/zope-schema-8.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8