summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-07-13 03:04:35 -0500
committerroot <root@alpha.trunkmasters.com>2026-07-13 03:04:35 -0500
commitd6c616f80bd44aa3323ca5211338d251e1215938 (patch)
tree9597c13f86588aca7eeb854a486440bdcace1c30 /dev-python
parent40d2213d241ba50dbaf9b311a92a93e480fbd474 (diff)
downloadbaldeagleos-repo-d6c616f80bd44aa3323ca5211338d251e1215938.tar.gz
baldeagleos-repo-d6c616f80bd44aa3323ca5211338d251e1215938.tar.xz
baldeagleos-repo-d6c616f80bd44aa3323ca5211338d251e1215938.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/agent-client-protocol/Manifest2
-rw-r--r--dev-python/agent-client-protocol/agent-client-protocol-0.11.0.ebuild (renamed from dev-python/agent-client-protocol/agent-client-protocol-0.10.1.ebuild)18
-rw-r--r--dev-python/anthropic/Manifest10
-rw-r--r--dev-python/anthropic/anthropic-0.116.0.ebuild (renamed from dev-python/anthropic/anthropic-0.86.0.ebuild)29
-rw-r--r--dev-python/anthropic/files/anthropic-0.116.0-mock-server-package-lock.json96
-rw-r--r--dev-python/anthropic/files/anthropic-0.116.0-mock-server-package.json5
-rw-r--r--dev-python/anyio/Manifest2
-rw-r--r--dev-python/anyio/anyio-4.14.2.ebuild72
-rw-r--r--dev-python/asgiref/asgiref-3.11.1-r1.ebuild29
-rw-r--r--dev-python/asgiref/files/asgiref-3.11.1-ft.patch206
-rw-r--r--dev-python/blinker/blinker-1.9.0.ebuild2
-rw-r--r--dev-python/blockbuster/blockbuster-1.5.26.ebuild21
-rw-r--r--dev-python/coverage/Manifest2
-rw-r--r--dev-python/coverage/coverage-7.15.1.ebuild110
-rw-r--r--dev-python/cryptography/Manifest25
-rw-r--r--dev-python/cryptography/cryptography-47.0.0.ebuild139
-rw-r--r--dev-python/cryptography/cryptography-48.0.0.ebuild144
-rw-r--r--dev-python/cryptography/cryptography-48.0.1.ebuild144
-rw-r--r--dev-python/cryptography/cryptography-49.0.0.ebuild4
-rw-r--r--dev-python/cyclopts/Manifest1
-rw-r--r--dev-python/cyclopts/cyclopts-4.20.0.ebuild58
-rw-r--r--dev-python/dropbox/Manifest1
-rw-r--r--dev-python/dropbox/dropbox-12.1.0.ebuild52
-rw-r--r--dev-python/expression/Manifest1
-rw-r--r--dev-python/expression/expression-5.6.0.ebuild62
-rw-r--r--dev-python/expression/metadata.xml9
-rw-r--r--dev-python/fastmcp/Manifest2
-rw-r--r--dev-python/fastmcp/fastmcp-3.2.4.ebuild113
-rw-r--r--dev-python/fastmcp/fastmcp-3.4.3.ebuild158
-rw-r--r--dev-python/frozenlist/files/frozenlist-1.8.0-tests.patch46
-rw-r--r--dev-python/frozenlist/frozenlist-1.8.0.ebuild12
-rw-r--r--dev-python/gitpython/Manifest2
-rw-r--r--dev-python/gitpython/gitpython-3.1.51.ebuild81
-rw-r--r--dev-python/ignore-python/Manifest2
-rw-r--r--dev-python/ignore-python/ignore-python-0.4.1.ebuild35
-rw-r--r--dev-python/inquirerpy/Manifest2
-rw-r--r--dev-python/inquirerpy/inquirerpy-0.3.4.ebuild48
-rw-r--r--dev-python/inquirerpy/metadata.xml9
-rw-r--r--dev-python/ipykernel/ipykernel-7.3.0.ebuild2
-rw-r--r--dev-python/jaraco-test/Manifest1
-rw-r--r--dev-python/jaraco-test/jaraco-test-5.7.0.ebuild50
-rw-r--r--dev-python/jaraco-text/Manifest1
-rw-r--r--dev-python/jaraco-text/jaraco-text-4.3.0.ebuild50
-rw-r--r--dev-python/json-repair/Manifest2
-rw-r--r--dev-python/json-repair/json-repair-0.61.1.ebuild (renamed from dev-python/json-repair/json-repair-0.61.0.ebuild)0
-rw-r--r--dev-python/lark/lark-1.3.1.ebuild4
-rw-r--r--dev-python/libtmux/Manifest2
-rw-r--r--dev-python/libtmux/libtmux-0.62.0.ebuild40
-rw-r--r--dev-python/listparser/metadata.xml2
-rw-r--r--dev-python/litellm/Manifest3
-rw-r--r--dev-python/litellm/litellm-1.89.3.ebuild171
-rw-r--r--dev-python/litellm/litellm-1.91.1.ebuild274
-rw-r--r--dev-python/lmdb/Manifest2
-rw-r--r--dev-python/lmdb/lmdb-2.3.0.ebuild47
-rw-r--r--dev-python/lmnr/Manifest1
-rw-r--r--dev-python/lmnr/lmnr-0.7.52.ebuild111
-rw-r--r--dev-python/lmnr/metadata.xml9
-rw-r--r--dev-python/lxml/Manifest1
-rw-r--r--dev-python/lxml/lxml-6.1.0.ebuild120
-rw-r--r--dev-python/mcp/Manifest4
-rw-r--r--dev-python/mcp/mcp-1.28.1.ebuild (renamed from dev-python/mcp/mcp-1.26.0.ebuild)35
-rw-r--r--dev-python/mcp/metadata.xml3
-rw-r--r--dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild2
-rw-r--r--dev-python/nethsm/Manifest2
-rw-r--r--dev-python/nethsm/nethsm-2.1.2.ebuild (renamed from dev-python/nethsm/nethsm-2.1.0.ebuild)1
-rw-r--r--dev-python/openai/Manifest5
-rw-r--r--dev-python/openai/openai-2.29.0.ebuild162
-rw-r--r--dev-python/openai/openai-2.44.0.ebuild6
-rw-r--r--dev-python/peewee/Manifest1
-rw-r--r--dev-python/peewee/peewee-4.2.1.ebuild83
-rw-r--r--dev-python/pfzy/Manifest1
-rw-r--r--dev-python/pfzy/metadata.xml9
-rw-r--r--dev-python/pfzy/pfzy-0.3.4.ebuild22
-rw-r--r--dev-python/poetry-core/poetry-core-2.4.1.ebuild12
-rw-r--r--dev-python/posthog/Manifest2
-rw-r--r--dev-python/posthog/posthog-7.22.1.ebuild (renamed from dev-python/posthog/posthog-7.19.2.ebuild)9
-rw-r--r--dev-python/pydocket/Manifest4
-rw-r--r--dev-python/pydocket/pydocket-0.21.1.ebuild75
-rw-r--r--dev-python/pydocket/pydocket-0.23.0.ebuild (renamed from dev-python/pydocket/pydocket-0.22.0.ebuild)4
-rw-r--r--dev-python/pyopenssl/Manifest4
-rw-r--r--dev-python/pyopenssl/pyopenssl-26.1.0.ebuild60
-rw-r--r--dev-python/pyopenssl/pyopenssl-26.2.0.ebuild60
-rw-r--r--dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild4
-rw-r--r--dev-python/pyqt6-webengine/pyqt6-webengine-6.11.0.ebuild2
-rw-r--r--dev-python/pyqt6/pyqt6-6.10.2.ebuild2
-rw-r--r--dev-python/pyqt6/pyqt6-6.11.0.ebuild2
-rw-r--r--dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild5
-rw-r--r--dev-python/referencing/referencing-0.37.0.ebuild2
-rw-r--r--dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild4
-rw-r--r--dev-python/rich-rst/Manifest2
-rw-r--r--dev-python/rich-rst/rich-rst-2.1.0.ebuild (renamed from dev-python/rich-rst/rich-rst-2.0.1.ebuild)2
-rw-r--r--dev-python/scikit-build-core/Manifest2
-rw-r--r--dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild52
-rw-r--r--dev-python/simplejson/Manifest6
-rw-r--r--dev-python/simplejson/simplejson-3.20.2.ebuild38
-rw-r--r--dev-python/simplejson/simplejson-4.0.1.ebuild38
-rw-r--r--dev-python/simplejson/simplejson-4.1.0.ebuild38
-rw-r--r--dev-python/standardwebhooks/Manifest2
-rw-r--r--dev-python/standardwebhooks/metadata.xml9
-rw-r--r--dev-python/standardwebhooks/standardwebhooks-1.0.1.ebuild23
-rw-r--r--dev-python/stone/Manifest1
-rw-r--r--dev-python/stone/stone-3.5.0.ebuild30
-rw-r--r--dev-python/streamingjson/Manifest1
-rw-r--r--dev-python/streamingjson/metadata.xml9
-rw-r--r--dev-python/streamingjson/streamingjson-0.0.5.ebuild22
-rw-r--r--dev-python/tempora/Manifest2
-rw-r--r--dev-python/tempora/tempora-5.10.0.ebuild28
-rw-r--r--dev-python/tempora/tempora-5.8.1.ebuild37
-rw-r--r--dev-python/tibs/Manifest1
-rw-r--r--dev-python/tibs/tibs-1.0.0.ebuild131
-rw-r--r--dev-python/tom-swe/Manifest1
-rw-r--r--dev-python/tom-swe/metadata.xml9
-rw-r--r--dev-python/tom-swe/tom-swe-1.0.3.ebuild41
-rw-r--r--dev-python/types-docutils/Manifest1
-rw-r--r--dev-python/types-docutils/types-docutils-0.22.3.20260712.ebuild16
-rw-r--r--dev-python/types-gdb/Manifest1
-rw-r--r--dev-python/types-gdb/types-gdb-16.3.0.20260712.ebuild16
-rw-r--r--dev-python/tzdata/tzdata-10001.ebuild2
-rw-r--r--dev-python/uri-template/Manifest2
-rw-r--r--dev-python/uri-template/uri-template-1.3.0.ebuild10
-rw-r--r--dev-python/watchdog/watchdog-6.0.0.ebuild1
121 files changed, 2303 insertions, 1505 deletions
diff --git a/dev-python/agent-client-protocol/Manifest b/dev-python/agent-client-protocol/Manifest
index 814b0b7692db..55428724cc51 100644
--- a/dev-python/agent-client-protocol/Manifest
+++ b/dev-python/agent-client-protocol/Manifest
@@ -1 +1 @@
-DIST agent_client_protocol-0.10.1.tar.gz 81924 BLAKE2B aee953c8610db3a1ed5330641d521d34674d776f7ffc4db7c304b9960e0d6465666c371c86267e6571c566dc91d7c1c133f6e8e2cb7f7e36431af7c3c58ed804 SHA512 adaaca3fddfcd08c6ea908ad24e564e70fdc8169ff9000f81b1e2ff6ddf18f50b5fd3d71579bae36d138f73045276ad7a10dcaa1e1514d84b1fc74a2f26af9a2
+DIST python-sdk-0.11.0.gh.tar.gz 233517 BLAKE2B 49274c9b4dcd1728c725cd389e846ed46a8345d8a575e1964ee78e9a6a65ba5605c037e465203fcddd8b5bca2d5f36c7362ae254503751b6d98efb3cb9fbef2e SHA512 b9c3f6d8e44b2bdc61eae19b0dbcd9ba0500adc6e0d4a8580542a017bff505e0579b4ba4b1bc4e09da423b0b048ee9a418e3fc0a06d469939e6dfe55c052758e
diff --git a/dev-python/agent-client-protocol/agent-client-protocol-0.10.1.ebuild b/dev-python/agent-client-protocol/agent-client-protocol-0.11.0.ebuild
index 0409726b36db..18b7f631b86d 100644
--- a/dev-python/agent-client-protocol/agent-client-protocol-0.10.1.ebuild
+++ b/dev-python/agent-client-protocol/agent-client-protocol-0.11.0.ebuild
@@ -6,21 +6,35 @@ EAPI=8
DISTUTILS_USE_PEP517=pdm-backend
PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 pypi
+inherit distutils-r1
+MY_PN="python-sdk"
+MY_P="${MY_PN}-${PV}"
DESCRIPTION="Client protocol specification for agent interactions"
HOMEPAGE="
https://github.com/agentclientprotocol/python-sdk
https://pypi.org/project/agent-client-protocol/
"
+SRC_URI="
+ https://github.com/agentclientprotocol/${MY_PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
RDEPEND="
- >=dev-python/pydantic-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.7.0[${PYTHON_USEDEP}]
"
EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # raise timeout
+ sed -i "s/timeout=2/timeout=10/" tests/real_user/test_stdio_limits.py || die
+}
diff --git a/dev-python/anthropic/Manifest b/dev-python/anthropic/Manifest
index 94ce6858255d..4ad49d5e6d7e 100644
--- a/dev-python/anthropic/Manifest
+++ b/dev-python/anthropic/Manifest
@@ -1,5 +1,5 @@
-DIST anthropic-openapi-spec-v2026.03.18.yml 724122 BLAKE2B d890c6d5082b0e540c340943dccd2a48d0d18dc31bbc5e55df45d93bbd3e2b64e515d46a814365bc0e56a7a1904a94ae252d65bd6fb631a0ea872fa6f3b05b14 SHA512 41aceb88f1b93437a9a15ec9a8ab917b65c647ee4ac579456a6b35a8d1a5df4903345927e7443739461dc430cec3156c980258f92f57b298c31ca53dcb66c608
-DIST anthropic-sdk-python-0.86.0.gh.tar.gz 602140 BLAKE2B 31a0c049926f1f3049a2846a0b62062c7e03d29a4deda739a9a7583a26e52dddde92d4207ce424022d848e793cd758e257e734018f33ddbae556bb274264a7fb SHA512 7aae6861a4c042ccfd2c15b97c89fa7a1855f525a59e2eccdf22ef5550bc7b31b3546cefa746a107ff74027061de0bb6951f2db9bd34d0ee373b17f9f8b8e8f5
-DIST npm-@stdy-cli-cli-0.19.7.tgz 7773 BLAKE2B 6ddc9db08ab06ef1ece58d3aeaf27517319a399262a63caa06e2d13a1bd8c83fac298a451f0ea57a71aaf9c4120f4efb742308106498d492d2593a4b58e04151 SHA512 ba4758dbe0d32e7c9994471713d0ae9a0967813bd1ec8fbce88247c2582ea248196f7858b56ce76e0716e016d5366b42700a78b603626d8de00e5a92599e009e
-DIST npm-@stdy-cli-linux-arm64-cli-linux-arm64-0.19.7.tgz 36812291 BLAKE2B b0c8fba73598ce1e6aa824ffefd237eb35875879308820ef1aeeba9ba80378ef346ef9ffd40107b1b9d7754cd8acac1076d74a55fddbf3cbad9881cb8b19b0be SHA512 8b9cb95aadbbba48b2531451cf991b9d067b6ef697a38ff2b3df72d82d3967c1ab1e29274dee23283557c47e881ee0cb12e5223163d1fec06ecea96fdaecfda4
-DIST npm-@stdy-cli-linux-x64-cli-linux-x64-0.19.7.tgz 37584041 BLAKE2B b9b6bee19fdf51c985d907b7dc8638ab3d3ebf88083794fb0d39a5f6c64beffbaf321cd71fc2869812092c0504fa47e3b889d0ffe483622fd215d214e4c1645e SHA512 2719af63c71ad21293bd3cac5d19f6b0ca960d0888026d9ffa5a62467d5d434d8937edb0ce90d467fdd348ba40b6f96a3ccd5e9c6b551b75a7de79d5fcc40df1
+DIST anthropic-openapi-spec-0.116.0.yml 1719154 BLAKE2B 32be75b7450aa5062831d2f1a78a97303f2f783a94df1850e724882b2e587328bb58245225f0dc605a30c9d681f3ee7f5dea53e7988997343fd753e8ceac9fe2 SHA512 c9849308da448eaac0960006c01fde2f4f2f749fdcfe9316931be0fd11b9fcbee6d6897140722c6e5c211480e93b19f0ee274fd31ab1c2ec4193dd1ab3af77f2
+DIST anthropic-sdk-python-0.116.0.gh.tar.gz 970819 BLAKE2B 74a310bffe030cce92c7be650cfd77c1cb41fe1ce660536a383502a8239fbe4ff49a83f574e3637354d743e585fc2760c1e4446830def8f7135192788e4838b3 SHA512 0efd6713463fb242427ed86bb963501c99dd54f6da455d9ee5124fc3309a2fc7490add508bf09037583199de77f8e38e8766bfa42854b085c1e6bb38cc385647
+DIST npm-@stdy-cli-cli-0.22.1.tgz 7776 BLAKE2B ec66af59c4c864a4331dc7918ed0a82d452579427663c3666b94d6008e769cb8a61d00e1971a394c326ca180da7f3009597b15d4c6bea8d169bda56c87ae21fb SHA512 55d9c2a0afddd09588853a1a8c1c4075a813a4b097ff34dded18ae2b529d4f5d90e29667ffe792f7b82af78fa3bfa4db88c77ef5259e39db100a86a0a4b98d7c
+DIST npm-@stdy-cli-linux-arm64-cli-linux-arm64-0.22.1.tgz 37635112 BLAKE2B f749d99342d9cffb831f0feea34ed74301a3beea7ec4c7e46cd5b942cacfea4b10c28632cc3e38a0ac00b565c2ca5889cb6587fcccb75f1557fa29dace58a343 SHA512 5c6432dd9a85e423aa4600151b109da16f5dcf19dfc710920070869a1a4573ea557e941c6077cf72736199686994c09eae24d4c8228b246fbf7c67728e2eded9
+DIST npm-@stdy-cli-linux-x64-cli-linux-x64-0.22.1.tgz 38431354 BLAKE2B f6b49ce9f79ad98de58f6f01874e5ae03f728f062b09b91b092f1410e1bf3d2874d25dfb30038291429043eeffc4c5e3183e7e9307c6fb889521008b981df4f9 SHA512 bbbe7cd48dec73a47e3d4c0692f1056ef0ffc3a617bd193e893d0122658a3ed298036e9c3cfd7a96003b82abaeded00493eddcf581a7e71854a6109cf7a68b4a
diff --git a/dev-python/anthropic/anthropic-0.86.0.ebuild b/dev-python/anthropic/anthropic-0.116.0.ebuild
index 201646f522ac..922126f18931 100644
--- a/dev-python/anthropic/anthropic-0.86.0.ebuild
+++ b/dev-python/anthropic/anthropic-0.116.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2024-2026 Gentoo Authors
+# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,13 +6,15 @@ EAPI=8
DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 optfeature pypi
+inherit distutils-r1 optfeature
# See https://github.com/anthropics/anthropic-sdk-python/blob/main/.stats.yml
-API_SPEC_BASE="https://storage.googleapis.com/stainless-sdk-openapi-specs"
-API_SPEC="anthropic-openapi-spec-v2026.03.18.yml"
+API_SPEC_BASE="https://storage.googleapis.com/stainless-sdk-openapi-specs/anthropic"
+API_SPEC="anthropic-openapi-spec-${PV}.yml"
MY_PN="anthropic-sdk-python"
-STDY_PV=0.19.7
+MY_P="${MY_PN}-${PV}"
+# See https://github.com/anthropics/anthropic-sdk-python/blob/main/scripts/mock
+STDY_PV=0.22.1
DESCRIPTION="The official Python library for the anthropic API"
HOMEPAGE="
https://github.com/anthropics/anthropic-sdk-python
@@ -20,10 +22,10 @@ HOMEPAGE="
"
SRC_URI="
https://github.com/anthropics/${MY_PN}/archive/refs/tags/v${PV}.tar.gz
- -> ${MY_PN}-${PV}.gh.tar.gz
+ -> ${MY_P}.gh.tar.gz
test? (
- ${API_SPEC_BASE}/anthropic%2Fanthropic-dd2dcd00a757075370a7e4a7f469a1e2d067c2118684c3b70d7906a8f5cf518b.yml
+ ${API_SPEC_BASE}/anthropic-506a5ad71d522b4ae56ac3429380486647af1f92eddde80603480fb592d62b54.yml
-> ${API_SPEC}
https://registry.npmjs.org/@stdy/cli/-/cli-${STDY_PV}.tgz
@@ -40,7 +42,7 @@ SRC_URI="
)
)
"
-S="${WORKDIR}/${MY_PN}-${PV}"
+S="${WORKDIR}/${MY_P}"
LICENSE="MIT"
SLOT="0"
@@ -62,8 +64,9 @@ BDEPEND="
test? (
>=dev-python/boto3-1.28.57[${PYTHON_USEDEP}]
>=dev-python/botocore-1.31.57[${PYTHON_USEDEP}]
- dev-python/httpx-aiohttp[${PYTHON_USEDEP}]
+ >=dev-python/httpx-aiohttp-0.1.9[${PYTHON_USEDEP}]
>=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
+ >=dev-python/standardwebhooks-1.0.1[${PYTHON_USEDEP}]
net-libs/nodejs[npm]
net-misc/curl
)
@@ -100,9 +103,9 @@ src_test() {
local mock_dir="${WORKDIR}/mock-server"
mkdir -p "${mock_dir}" || die
- cp "${FILESDIR}/${PN}-0.86.0-mock-server-package.json" \
+ cp "${FILESDIR}/${PN}-0.116.0-mock-server-package.json" \
"${mock_dir}/package.json" || die
- cp "${FILESDIR}/${PN}-0.86.0-mock-server-package-lock.json" \
+ cp "${FILESDIR}/${PN}-0.116.0-mock-server-package-lock.json" \
"${mock_dir}/package-lock.json" || die
local mock_dir="${WORKDIR}/mock-server"
@@ -126,7 +129,9 @@ src_test() {
is_mock_running() {
local -a args
readarray -d '' args < "/proc/${mock_pid}/cmdline" 2>/dev/null || return 1
- [[ "${args[1]}" == "${mock}" ]]
+
+ # Check args[1] (native) or args[2] (QEMU user-mode emulation)
+ [[ "${args[1]}" == "${mock}" || "${args[2]}" == "${mock}" ]]
}
local attempts=0
diff --git a/dev-python/anthropic/files/anthropic-0.116.0-mock-server-package-lock.json b/dev-python/anthropic/files/anthropic-0.116.0-mock-server-package-lock.json
new file mode 100644
index 000000000000..f651ba1b6452
--- /dev/null
+++ b/dev-python/anthropic/files/anthropic-0.116.0-mock-server-package-lock.json
@@ -0,0 +1,96 @@
+{
+ "name": "mock-server",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "@stdy/cli": "0.22.1"
+ }
+ },
+ "node_modules/@stdy/cli": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@stdy/cli/-/cli-0.22.1.tgz",
+ "integrity": "sha512-VdnCoK/d0JWIhToajBxAdagTpLCX/zTd7RiuK1KdT12Q4pZn/+eS97gq94+jv6TbiMd+9SWeOdsQCoagpLmNfA==",
+ "license": "Elastic-2.0",
+ "bin": {
+ "steady": "steady.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@stdy/cli-darwin-arm64": "0.22.1",
+ "@stdy/cli-darwin-x64": "0.22.1",
+ "@stdy/cli-linux-arm64": "0.22.1",
+ "@stdy/cli-linux-x64": "0.22.1",
+ "@stdy/cli-win32-x64": "0.22.1"
+ }
+ },
+ "node_modules/@stdy/cli-darwin-arm64": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@stdy/cli-darwin-arm64/-/cli-darwin-arm64-0.22.1.tgz",
+ "integrity": "sha512-sahxc3R9I+vO7dDr7t9aneE8aLZdZeaQU5OfhZVLny97K8K7RXqhpXHN/0DFvg3Pw5ZKisHvJysY3iu/LIZA6g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Elastic-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@stdy/cli-darwin-x64": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@stdy/cli-darwin-x64/-/cli-darwin-x64-0.22.1.tgz",
+ "integrity": "sha512-/bVzcHkbX6zn5qZL73oWR5YXVc/+/IP7uWYw905B+hWRuZlJfN7hX4+68BxCBOI8wiRf82cSQjRnI/Datdwz1Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Elastic-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@stdy/cli-linux-arm64": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@stdy/cli-linux-arm64/-/cli-linux-arm64-0.22.1.tgz",
+ "integrity": "sha512-XGQy3ZqF5COqRgAVGxCdoW9dzxnfxxCSAHCGmhpFc+pVfpQcYHfPcnNhmWhplMCeriTUyCKLJG+/fGdyji7e2Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Elastic-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@stdy/cli-linux-x64": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@stdy/cli-linux-x64/-/cli-linux-x64-0.22.1.tgz",
+ "integrity": "sha512-u7581I3sc6R+PUwGkvEFbvD/w6YXvRk+iT0BImWKPtKYA26cPP16lgA7gquu3tAEk+3c9YGn5xhUphCc96aLSg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Elastic-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@stdy/cli-win32-x64": {
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@stdy/cli-win32-x64/-/cli-win32-x64-0.22.1.tgz",
+ "integrity": "sha512-4kkgSGCKTO/Fb+ciBANshegYIztBqynIyOveWYc3Vp7mXszg8yx6slKSzz5bg757H8Ol2jxxuL4XxHVIGMr6Rw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Elastic-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ }
+ }
+}
diff --git a/dev-python/anthropic/files/anthropic-0.116.0-mock-server-package.json b/dev-python/anthropic/files/anthropic-0.116.0-mock-server-package.json
new file mode 100644
index 000000000000..66616ec5d29b
--- /dev/null
+++ b/dev-python/anthropic/files/anthropic-0.116.0-mock-server-package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "@stdy/cli": "0.22.1"
+ }
+}
diff --git a/dev-python/anyio/Manifest b/dev-python/anyio/Manifest
index cf41c93d5760..abd68aa411f0 100644
--- a/dev-python/anyio/Manifest
+++ b/dev-python/anyio/Manifest
@@ -4,3 +4,5 @@ DIST anyio-4.14.0.tar.gz 253586 BLAKE2B 742b3d27dfc41983e39b61fa19daaa014d3cbba5
DIST anyio-4.14.0.tar.gz.provenance 9955 BLAKE2B 707a0f47ac4a65d6b766b4de926ea3721addfe80a0ece1d30857e3558c3cdeb909860d24b3bf35201e086f80fe2ab428daa295b8efa8e0b3cd2cc5cf953f616d SHA512 1cc0c4db2eacdff59331146831285f7580ef2f4d4d5fc9e49f903d2e876a8464e18ac3d2f6d54eef7c6feaca1273e2c151faad9cc4720401d8c436fdfa3221af
DIST anyio-4.14.1.tar.gz 254831 BLAKE2B f28882aba2e169e4815785d7e943c9d3b1564a17db0ce9c1cdfa57d39c0ee804b6f1d4fda7c99ba87e78dce12211614d845405b8a19483f655810e3c8e6d6255 SHA512 46561cd8e551953237ad079fc0669fbf21fc9f8bcf5e1a3dbd44f52248a9dbcb54a34a801d094994b4a22fb5470439be681f6c743b02f73dbdc27ebb1de911ce
DIST anyio-4.14.1.tar.gz.provenance 9673 BLAKE2B f1ae1a8ca9467acf52eb91113143975a20bf5f10dba68d4d9ccffe27feaad68a5825757b4563d2c2f640fa7566fe2158eafdf01902ef91445ca9dd60d30f7dc9 SHA512 6caff3807431390ce4b358a8677e22cc5636231608344d93b9d3960afdb90fa4d125078ce44fb31d79abb2e091d853c628a22c724df13000918945fbce875b87
+DIST anyio-4.14.2.tar.gz 260176 BLAKE2B a349231f06bc2591dbee9c11bf3862c17ba00f8096095182a801607e3e8bf30178aa220cf53123d09e362c1245bba98bb1935a0235559dbdc755f40afc69135e SHA512 94f52ab81fbfab5d30937a0a7f4714f5cc9d8265f5450ccce1fff1f953f234f8c286d484f06f91e8737fa8d4d325275a1a62cce31fd66d4447c55eddcca87f2e
+DIST anyio-4.14.2.tar.gz.provenance 9673 BLAKE2B 9e0d02159e5379d2404d9c1b69ee95af5aa47ea7279be393dd58f001f13e5442ec8ee266ecfd7b2e23799902e8faf734b55741cd7734b231d67493724a3d9884 SHA512 3c7fefa8feec3e78e08f0b42bfa3edd0809389640deb9cec8da11c4ae498943343d42860d9f66a2aaac7ddcd8f1ce09a97251ced8cdfa74a5e6f9e89c0ab0567
diff --git a/dev-python/anyio/anyio-4.14.2.ebuild b/dev-python/anyio/anyio-4.14.2.ebuild
new file mode 100644
index 000000000000..e3bc6babc4f4
--- /dev/null
+++ b/dev-python/anyio/anyio-4.14.2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/agronholm/anyio
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Compatibility layer for multiple asynchronous event loop implementations"
+HOMEPAGE="
+ https://github.com/agronholm/anyio/
+ https://pypi.org/project/anyio/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/idna-2.8[${PYTHON_USEDEP}]
+ >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+ ' 3.{11..12})
+"
+# On amd64, let's get more test coverage by dragging in uvloop, but let's
+# not bother on other arches where uvloop may not be supported.
+BDEPEND="
+ >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
+ >=dev-python/trustme-1.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/blockbuster-1.5.23[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.32.0[${PYTHON_USEDEP}]
+ amd64? (
+ >=dev-python/uvloop-0.22.1[${PYTHON_USEDEP}]
+ )
+ ' 3.{11..14})
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-{mock,timeout} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ '>=dev-python/sphinx-rtd-theme-1.2.2' \
+ dev-python/sphinxcontrib-jquery \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-tabs
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires link-local IPv6 interface
+ tests/test_sockets.py::TestTCPListener::test_bind_link_local
+ )
+
+ local filter=()
+ if ! has_version ">=dev-python/trio-0.26.1[${PYTHON_USEDEP}]"; then
+ filter+=( -k "not trio" )
+ EPYTEST_DESELECT+=(
+ tests/test_pytest_plugin.py::test_plugin
+ tests/test_pytest_plugin.py::test_autouse_async_fixture
+ tests/test_pytest_plugin.py::test_cancel_scope_in_asyncgen_fixture
+ )
+ fi
+
+ epytest -m 'not network' "${filter[@]}"
+}
diff --git a/dev-python/asgiref/asgiref-3.11.1-r1.ebuild b/dev-python/asgiref/asgiref-3.11.1-r1.ebuild
new file mode 100644
index 000000000000..a99062ccbb46
--- /dev/null
+++ b/dev-python/asgiref/asgiref-3.11.1-r1.ebuild
@@ -0,0 +1,29 @@
+# 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 pypi
+
+DESCRIPTION="ASGI utilities (successor to WSGI)"
+HOMEPAGE="
+ https://asgi.readthedocs.io/en/latest/
+ https://github.com/django/asgiref/
+ https://pypi.org/project/asgiref/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/django/asgiref/pull/564
+ "${FILESDIR}/${P}-ft.patch"
+)
diff --git a/dev-python/asgiref/files/asgiref-3.11.1-ft.patch b/dev-python/asgiref/files/asgiref-3.11.1-ft.patch
new file mode 100644
index 000000000000..af3fb5e38e13
--- /dev/null
+++ b/dev-python/asgiref/files/asgiref-3.11.1-ft.patch
@@ -0,0 +1,206 @@
+From 05125d34a139db0d5b9392786ba3bc6d00c79826 Mon Sep 17 00:00:00 2001
+From: Carlton Gibson <carlton.gibson@noumenal.es>
+Date: Fri, 19 Jun 2026 12:25:46 +0200
+Subject: [PATCH] Test free-threading builds and fix Local data leak for
+ thread_inherit_context.
+
+--- a/asgiref/local.py
++++ b/asgiref/local.py
+@@ -2,21 +2,58 @@
+ import contextlib
+ import contextvars
+ import threading
+-from typing import Any, Dict, Union
++from typing import Any, Union
++
++
++class _Storage:
++ """Thread-tagged storage for a non-thread-critical ``Local``.
++
++ The data is tagged with the identity of the thread that owns it. This lets
++ ``_CVar`` ignore data that leaked into an unrelated thread.
++
++ Python 3.14 added ``sys.flags.thread_inherit_context``, which is enabled by
++ default on free-threaded builds. When set, a new thread starts with a copy
++ of the spawning thread's context instead of an empty one, so the contextvar
++ backing a ``Local`` would otherwise be visible in any thread spawned from
++ one that had set it -- breaking the documented "thread-local in sync
++ threads" behaviour. asgiref re-homes the storage to the current thread at
++ the points where it *intentionally* moves work between threads (see
++ ``asgiref.sync._restore_context``); data merely inherited by an unrelated
++ thread is never re-homed and so stays isolated.
++ """
++
++ __slots__ = ("thread_id", "data")
++
++ def __init__(self, thread_id: int, data: dict[str, Any]) -> None:
++ self.thread_id = thread_id
++ self.data = data
++
++
++def _rehome(storage: "_Storage") -> "_Storage":
++ """Return a copy of *storage* owned by the current thread."""
++ return _Storage(threading.get_ident(), storage.data)
+
+
+ class _CVar:
+ """Storage utility for Local."""
+
+ def __init__(self) -> None:
+- self._data: "contextvars.ContextVar[Dict[str, Any]]" = contextvars.ContextVar(
++ self._data: "contextvars.ContextVar[_Storage]" = contextvars.ContextVar(
+ "asgiref.local"
+ )
+
++ def _storage(self) -> "_Storage":
++ # Only return storage that belongs to the current thread. Storage with
++ # a different thread id was inherited by this thread (rather than
++ # intentionally moved here by asgiref) and must not be visible.
++ storage = self._data.get(None)
++ if storage is None or storage.thread_id != threading.get_ident():
++ return _Storage(threading.get_ident(), {})
++ return storage
++
+ def __getattr__(self, key):
+- storage_object = self._data.get({})
+ try:
+- return storage_object[key]
++ return self._storage().data[key]
+ except KeyError:
+ raise AttributeError(f"{self!r} object has no attribute {key!r}")
+
+@@ -24,15 +61,15 @@ def __setattr__(self, key: str, value: Any) -> None:
+ if key == "_data":
+ return super().__setattr__(key, value)
+
+- storage_object = self._data.get({}).copy()
+- storage_object[key] = value
+- self._data.set(storage_object)
++ data = self._storage().data.copy()
++ data[key] = value
++ self._data.set(_Storage(threading.get_ident(), data))
+
+ def __delattr__(self, key: str) -> None:
+- storage_object = self._data.get({}).copy()
+- if key in storage_object:
+- del storage_object[key]
+- self._data.set(storage_object)
++ data = self._storage().data.copy()
++ if key in data:
++ del data[key]
++ self._data.set(_Storage(threading.get_ident(), data))
+ else:
+ raise AttributeError(f"{self!r} object has no attribute {key!r}")
+
+--- a/asgiref/sync.py
++++ b/asgiref/sync.py
+@@ -23,7 +23,7 @@
+ )
+
+ from .current_thread_executor import CurrentThreadExecutor
+-from .local import Local
++from .local import Local, _rehome, _Storage
+
+ if TYPE_CHECKING:
+ # This is not available to import at runtime
+@@ -39,6 +39,12 @@ def _restore_context(context: contextvars.Context) -> None:
+ # context for downstream consumers
+ for cvar in context:
+ cvalue = context.get(cvar)
++ # asgiref is deliberately moving this context onto the current thread,
++ # so re-home any Local storage to it. This keeps Local data visible
++ # across async_to_sync / sync_to_async boundaries while leaving data
++ # merely inherited by an unrelated thread isolated (see asgiref.local).
++ if isinstance(cvalue, _Storage):
++ cvalue = _rehome(cvalue)
+ try:
+ if cvar.get() != cvalue:
+ cvar.set(cvalue)
+@@ -486,7 +492,15 @@ async def __call__(self, *args: _P.args, **kwargs: _P.kwargs) -> _R:
+ executor = self._executor
+
+ context = contextvars.copy_context() if self.context is None else self.context
+- child = functools.partial(self.func, *args, **kwargs)
++ inner = functools.partial(self.func, *args, **kwargs)
++
++ def child() -> _R:
++ # The sync function runs inside ``context`` (a copy of the calling
++ # async context) on a worker thread. Re-home any Local storage to
++ # this thread so it stays visible here (see _restore_context).
++ _restore_context(context)
++ return inner()
++
+ func = context.run
+ task_context: list[asyncio.Task[Any]] = []
+
+--- a/tests/test_garbage_collection.py
++++ b/tests/test_garbage_collection.py
+@@ -35,6 +35,14 @@ def clean_up_after_garbage_collection_test() -> None:
+ @pytest.mark.skipif(
+ sys.implementation.name == "pypy", reason="Test relies on CPython GC internals"
+ )
++@pytest.mark.skipif(
++ not getattr(sys, "_is_gil_enabled", lambda: True)(),
++ reason=(
++ "On a free-threaded build the cyclic collector may reclaim objects that "
++ "are freed immediately by reference counting under the GIL, so they show "
++ "up in gc.garbage with DEBUG_SAVEALL even without a real leak."
++ ),
++)
+ def test_thread_critical_Local_remove_all_reference_cycles() -> None:
+ try:
+ # given
+--- a/tests/test_local.py
++++ b/tests/test_local.py
+@@ -1,4 +1,5 @@
+ import asyncio
++import contextvars
+ import gc
+ import threading
+ from threading import Thread
+@@ -359,6 +360,45 @@ def _test() -> None:
+ assert test_local.value == 0
+
+
++def test_local_not_inherited_by_new_thread() -> None:
++ """
++ A value set in one sync thread must not be visible in a separately spawned
++ sync thread.
++
++ On Python 3.14+ a new thread inherits a copy of the spawning thread's
++ context when ``sys.flags.thread_inherit_context`` is enabled. That flag
++ defaults to on for free-threaded builds and off for the regular GIL build
++ (where it is opt-in via ``-X thread_inherit_context=1`` /
++ ``PYTHON_THREAD_INHERIT_CONTEXT=1``). When enabled it would otherwise leak
++ non-thread-critical ``Local`` data across unrelated threads.
++ """
++ test_local = Local()
++ test_local.value = "parent"
++
++ # Capture the child's observation in the parent so an in-thread assertion
++ # failure actually fails the test.
++ observed: "dict[str, object]" = {}
++
++ def child() -> None:
++ observed["has_value"] = hasattr(test_local, "value")
++ # The child gets its own isolated storage.
++ test_local.value = "child"
++ observed["child_value"] = test_local.value
++
++ # Force the worst case by running the child in a copy of this thread's
++ # context (mirroring thread_inherit_context), so the test exercises the leak
++ # path on every build regardless of the flag default.
++ parent_context = contextvars.copy_context()
++ thread = Thread(target=lambda: parent_context.run(child))
++ thread.start()
++ thread.join()
++
++ assert observed["has_value"] is False
++ assert observed["child_value"] == "child"
++ # The child's write must not leak back to the parent either.
++ assert test_local.value == "parent"
++
++
+ @pytest.mark.asyncio
+ async def test_visibility_task() -> None:
+ """Check visibility with asyncio tasks."""
diff --git a/dev-python/blinker/blinker-1.9.0.ebuild b/dev-python/blinker/blinker-1.9.0.ebuild
index 613008231c95..cbb4b3c7cc27 100644
--- a/dev-python/blinker/blinker-1.9.0.ebuild
+++ b/dev-python/blinker/blinker-1.9.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
PYPI_VERIFY_REPO=https://github.com/pallets-eco/blinker
PYTHON_COMPAT=( python3_{13..14} )
diff --git a/dev-python/blockbuster/blockbuster-1.5.26.ebuild b/dev-python/blockbuster/blockbuster-1.5.26.ebuild
index 420d8f29776f..f8f1f25580ed 100644
--- a/dev-python/blockbuster/blockbuster-1.5.26.ebuild
+++ b/dev-python/blockbuster/blockbuster-1.5.26.ebuild
@@ -19,9 +19,7 @@ SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/forbiddenfruit-0.1.4[${PYTHON_USEDEP}]
- ' 'python*')
+ >=dev-python/forbiddenfruit-0.1.4[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
@@ -39,22 +37,5 @@ python_test() {
tests/test_blockbuster.py::test_ssl_socket
)
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # upstream doesn't care, however that doesn't stop
- # people from depending on it...
- # https://github.com/cbornet/blockbuster/issues/47
- tests/test_blockbuster.py::test_file_random
- tests/test_blockbuster.py::test_file_read_bytes
- tests/test_blockbuster.py::test_file_text
- tests/test_blockbuster.py::test_file_write_bytes
- tests/test_blockbuster.py::test_lock
- tests/test_blockbuster.py::test_os_scandir
- tests/test_blockbuster.py::test_scanned_modules
- )
- ;;
- esac
-
epytest
}
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 85301e6192c5..f87a63650bd0 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -6,3 +6,5 @@ DIST coverage-7.14.3.tar.gz 924398 BLAKE2B 8f1699e1c4b6c93ae22f5799df40843ff9ff3
DIST coverage-7.14.3.tar.gz.provenance 9907 BLAKE2B c1876fbc3b147afa865812c8f09d1595f317f62b4c07f644f4bacf450d4c21bc45e8de8cdb001d0f497967d7aa77dd4340877457462bed39006ebfd72b856fa6 SHA512 13702b5009e3a416e341bb6db12d9b2251d832650595f6439e2aeaf212994624a37047f1eb34c1473e65c7fac597658e6ada02788fef4526a0b60e410bdedbbd
DIST coverage-7.15.0.tar.gz 925362 BLAKE2B 2ecd07a36f06d9c047733cd89dfd0db412797a251d8ff9becb2b90b69be07f3ebb69dee4dca9cc4ed246850b7f77ccfc1a2799b02b92f591c9683a6f8f44676c SHA512 559aea2ef68f488b3863f9919ee586b011197bb7e91c73cc72e61d4811af0ec7b084dc77752355f661f230147633ea2245e23c3a9a7c081a10872ae77e58dfc5
DIST coverage-7.15.0.tar.gz.provenance 9903 BLAKE2B 0ac0779725018ed2b284fe0baf8d91076dd02af8263a1955d8688c2bfa8ec3333d0f96004812968d3a02048d22b941367faa59545669396289574314eccb8a27 SHA512 caf9b9f57391720f55bc88148de7b97275f41a0d1ecbbc314ee1adee6ec938949e5616227ba23c27d1f27cbd80b2cefd73eae47151a85719c75957c924dad2ff
+DIST coverage-7.15.1.tar.gz 927640 BLAKE2B 8ee2cce28ba521b439e062170628a4a4645a8f7b81cb34bce5b1527e47c6e75a5554d358c2167cbe4672672ff768ab7b14ea4f39326447e63d8b8f29507033d8 SHA512 a4d98d8f17e6e11430be7d2ce9f83730c775a1d76aa20c46d2fa931f2439b5814afaa6cec1f3f5563fc11929e823513264715882c84cbc92a7ea032024c7a1d4
+DIST coverage-7.15.1.tar.gz.provenance 9907 BLAKE2B c93b401bb05ac8bf5baf4dc487c3704ba68d685deae8cb7559c60929dfd767fb9e2b2706d00eb77354573dcec0d2ee4ba8d55daaf04204b5677c434d5f5f0a60 SHA512 b4a5a2b040a331ff050cd7a1a33dc42b63207e029bd13c7d14e877619b9c89fdf2bb355e42bd1b6a8f3052048c78c36a007a41dbc8836a2d21eda246c4ce8ac8
diff --git a/dev-python/coverage/coverage-7.15.1.ebuild b/dev-python/coverage/coverage-7.15.1.ebuild
new file mode 100644
index 000000000000..6aae2bf728ac
--- /dev/null
+++ b/dev-python/coverage/coverage-7.15.1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/coveragepy/coveragepy
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+ https://coverage.readthedocs.io/en/latest/
+ https://github.com/coveragepy/coveragepy/
+ https://pypi.org/project/coverage/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+ test? (
+ >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-{rerunfailures,xdist} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_compile() {
+ if ! use native-extensions; then
+ local -x COVERAGE_DISABLE_EXTENSION=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+test_tracer() {
+ local -x COVERAGE_CORE=${1}
+ einfo " Testing with the ${COVERAGE_CORE} core ..."
+ epytest -o addopts= "${@:2}" tests
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken because of pytest plugins explicity loaded
+ tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
+ # these expect specific availability of C extension matching
+ # COVERAGE_CORE (which breaks testing pytracer on CPython)
+ tests/test_cmdline.py::CmdLineStdoutTest::test_version
+ tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
+ # mismatch of expected concurrency in error message
+ # TODO: report upstream?
+ tests/test_concurrency.py::ConcurrencyTest::test_greenlet
+ tests/test_concurrency.py::ConcurrencyTest::test_greenlet_simple_code
+ # packaging tests, fragile to setuptools version
+ tests/test_setup.py
+ # looks like a difference in exit status reporting?
+ # https://github.com/nedbat/coveragepy/issues/2008
+ tests/test_process.py::ProcessTest::test_save_signal_usr1
+ )
+ local EPYTEST_IGNORE=(
+ # pip these days insists on fetching build deps from Internet
+ tests/test_venv.py
+ )
+
+ "${EPYTHON}" igor.py zip_mods || die
+
+ local -x COVERAGE_TESTING=True
+ # TODO: figure out why they can't be imported inside test env
+ local -x COVERAGE_NO_CONTRACTS=1
+
+ local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
+ local xdist_args=()
+ if [[ ${jobs} -gt 1 ]]; then
+ # required upstream to avoid cross-test conflicts
+ xdist_args+=( --dist=loadgroup )
+ fi
+
+ local prev_opt=$(shopt -p nullglob)
+ shopt -s nullglob
+ local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+ ${prev_opt}
+
+ if [[ -n ${c_ext} ]]; then
+ cp "${c_ext}" coverage/ || die
+ test_tracer ctrace "${xdist_args[@]}"
+ fi
+
+ test_tracer pytrace "${xdist_args[@]}"
+
+ case ${EPYTHON} in
+ *3.11)
+ ;;
+ *)
+ # available since Python 3.12
+ test_tracer sysmon "${xdist_args[@]}"
+ ;;
+ esac
+
+ if [[ -n ${c_ext} ]]; then
+ rm coverage/*.so || die
+ fi
+}
diff --git a/dev-python/cryptography/Manifest b/dev-python/cryptography/Manifest
index 441c3ba095d4..ff87ad4db682 100644
--- a/dev-python/cryptography/Manifest
+++ b/dev-python/cryptography/Manifest
@@ -1,26 +1,11 @@
DIST asn1-0.24.1.crate 50502 BLAKE2B ebb6ec767929765aa37a34f25c9ace8cebabc4b01268245c71691a247317d920e3f5dc6ff4026711e1ba99701f55d84eb1b8b66d79e9b88ad50d25606070a746 SHA512 72ab6700bc365456f6038f9d6d5ccb29a3baf378596f538b68e0e11d3668e57cebaabf72145d8fa86b6441d66eafe38aaadab41eb7b61731fd356a75ff5c45ee
DIST asn1_derive-0.24.1.crate 9534 BLAKE2B e498f5af8fef329668554673a2c583b1d0049a235ed70f2a7a26ab724304240b277c44b33995749437600568e084aaf018430b96c7011d8483bb6965ba0e9bfa SHA512 00990444fb13a033ea831f0688611ecbe33f8cdb63717382cdbccaa0834f953302383f05ae425525d8c336908780d7b80be0db430e1f233bded0544f32c9c199
DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
-DIST bitflags-2.11.1.crate 49082 BLAKE2B c9c875b54e0a12115ecd846ef0a66bc7070d38892285a4142f1b1f26b07d407fa440a2943f310046f5fbc9a2428fcc56f2e44d06360e551d4b27c9b8cf93eab0 SHA512 c91b5a8b420d8e875a0906ef9b518a392487fba5399355aa5e908132149ddea7cc4222dd271cd5072e50dd9abd6e56420f4205652ba32a57af46bf07636604b7
DIST bitflags-2.13.0.crate 51280 BLAKE2B 2926a828107adbf689705662a77e6f4f8d12c4d48ba8207d03e6220fe58082a0ebb48252f1652b760f4427e0b951276f31a08dc0467612d5b35b484a9f6fb74e SHA512 5a93a30662effe056132d33cd0b25670feedfe69e927b7e77ea1a417f68104988459f1c3a73eec1752eac08f44ae5333496526e1a96dfb3e7144deca1a94d19f
-DIST cc-1.2.60.crate 97051 BLAKE2B 292350c3fe7dc3e023fe4f7cd07b3a5a7233996963b42391243948f834a17cf69781bab32cf46d62722c45437f50123450811dce8aa0e96ee63f35480cc15d90 SHA512 d67fd7400bd1d20f26f7a6743ac02ad09dba0b8002172b87907f4a7ae2487ee41feb2f24fe375ca91a3ac4fde1dc8b48b6703b74297c9eb42bd1e91ac8fe4e80
-DIST cc-1.2.61.crate 97163 BLAKE2B d46641d905e44c60e36c3918c6fb666c7d5f19316a1415e5f51909f79a00773bd763784a71aa7ee85a4c058177596a06a5c4a807904bbd2340c31103312d415d SHA512 4728983b06cf6cfb8a042759b7da2d9123939cb3c87fd78d3d7dc565871b5a4aa522afe515bbfff62218d8ef5ca16ed88f777c30b746820c13c9a6bf98dc7ddd
DIST cc-1.2.64.crate 97697 BLAKE2B e13b32095a684f456627aba1f48c369f9b374001660e02aca695577b058aaacfa9a74edf6fe6a5979b031ba430c123fd3f484f895312db01bcd6730d104a36c3 SHA512 be9d702a2573d3977b9fbb79c09c163b297fa9efce7b490941e40fa77ad5d965949fd42e02ce0fa89de52f579f4400d26041576fc188542637f8fd27752b6b63
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
-DIST cryptography-47.0.0.tar.gz 830863 BLAKE2B fa4f148133c23025ede6bdfcbbce65288dbe61f0a28e3792ef9e1a7143ae05bd7e42947e0ffa3f70d027b7d2064f8d755eb9a83e4719c83ae4f4c79490e0c49e SHA512 0d2fd9de7b6cfafef5f66e4fb10b7eaa8712bc0ed7bca19a017963b8ea707813a7bdc841f7d4aa512da7963eff3707792d46cb93058875fcc447961256c32d9e
-DIST cryptography-47.0.0.tar.gz.provenance 9322 BLAKE2B 9107587d781c2fc6eaa26d40f96b404a054bcf317f56974f2efc5f88111f4ed9ab1aa6fc91b2101ae3c5b66467b43858e0a0010df18001999a4a904773ef97df SHA512 744b8be907b623b44c3b4e0aba8ffdb61fa54df5161c20c946da272e0d5ec4cd23a242edb7d2378b8783d50a610be7e6e902ef02acac25a90b67b7908ab5f01d
-DIST cryptography-48.0.0.tar.gz 832984 BLAKE2B 100bbd35411874c4b9a6fb855fa19dd5271c753daa28cd6c52fac0b926dbcee6b4dce37a59c28b5ff435028965a60fa898e501f6215e837cc28e056c1b8a4680 SHA512 4d04983e25eb5fc856705f63e8cca32a357ef0a369c4596b1beb2e0befa2b3dcd763eb4e9baed4230bd75aa6738790ec56b107a45d5e02ce09f78fc1851c2ff9
-DIST cryptography-48.0.0.tar.gz.provenance 9676 BLAKE2B a61479b36aae65fd67c0622f6483da49bbd2666131a2f5b016796125168bae24d7bedfcfa7987e89ae8fa051c2e0875ac6b6d8e60f736186812a7909d3fcad7d SHA512 0053d20118f0b427ee0fc9e787e938a4e8e78467a693403fb3118a5a1577dbea7f613b2cf72d2a79620ca966d850e33ba4f565b69a1217c1a834dac751076fd6
-DIST cryptography-48.0.1.tar.gz 832989 BLAKE2B a98f0ebc40b762ec53f504d9d3cc3ff1666befa505572218365764b0987fd5067172789ea037a31d1d6583854cbe39c3df3de5c87561f18a794ca6110ab4ce7f SHA512 014424f7de1e04840d88c2e047021027aeb2aa8b3b4fb29d2c7f3e7b8744c4b5601b8adc19694d12da014523859aaffa2b4922ea6f1b9bbe694835edff4ce08b
-DIST cryptography-48.0.1.tar.gz.provenance 9687 BLAKE2B 47ccd383cbd387ff24e15df41ecd22cde4aa09851e7094606fb76e75e0d02b38720b9029721f547bd2895286f3c76b8f76e82cf7f88e4167fc8011b2221b8eab SHA512 b196f115240801090aae00611a904f56ac5785b0caca64066b33add06be92bf35860a4d336a51703fe0a0cc845e46f26e5392f84cb966d90950d93c269b75563
DIST cryptography-49.0.0.tar.gz 854345 BLAKE2B 735d303659d101bacf967bb2388190052caf5f3f02d02487a0b49c21eb594b8d133be58411d98b73ee35fd50597ee872f716f2a4f9de391fcdd66d6b7292a205 SHA512 047ffa4073ed124bc6fe3459663853b50c55c6ed9e5604bd1709b7f17e72788f0e4eb5c533a174afbead40fc16a1a798600d29f4963b190867d9d9e50dea6af8
DIST cryptography-49.0.0.tar.gz.provenance 9824 BLAKE2B b2b08f93894aa7bc9de98185a37e2b90a1e041d7473674752e52724baa8b90759354763eaf5b4403172a2dfe48596653abae79a604d1dbebe7664c2fd71dd6f2 SHA512 4228eaaab0ae7b34763ae3d60cf2d24d5b803efea85718c7eac34073e7fc48aefb7ba2c699c25f82a34f05a050d04f634956f4e717c201608e2f02451ec5a318
-DIST cryptography_vectors-47.0.0.tar.gz 54877496 BLAKE2B f8c24d09bb84557a4ad9f5c885da47a95853948104c49b0e4e877e62c35e8c826fa0c470e8450c230c727de19102a8c80992b52aa51aee051267ab43e966535b SHA512 82fbad5a395879ba4dac4aa015271522a832da126f7ec204274821d78100ed17c4047bf4d1526f82e7785bdf9d375741eecfe4cd24f3c5dcdcabc2c7cd01f67d
-DIST cryptography_vectors-47.0.0.tar.gz.provenance 9377 BLAKE2B 55019d10ba343cb445dc6d0934c12cfc6909ffb2b016520a9d75c485223175ba1fd7ea71bb2da9af37489c4bfda4c4956fc272acedbe5cd3276c2999c198bbb1 SHA512 6adbd02d17f64a7e4fa6bbe453f7eca936683f0e569dc1978a6a8db861eaec93600bf5c1198c0d25e200913a85d5f74ba44616cf05775c44fb042cc20c258cdd
-DIST cryptography_vectors-48.0.0.tar.gz 54877461 BLAKE2B 1a8dbe98ff653f8f6ccf90843e8fbecfc6ed7123d9b78db2f34203336613c62083ab7e0803a95a0d3cdbf6b78f837302bc8ab927fc244e54a809f9a321cda67a SHA512 282d6bee83649ee2d80d4c4d51a0ca5de63d1af978e93d3cff2eee20a5aecede2c13e9164cd79e45af0b72fd7bacedf73653986d93032ed148ef55614f9751cb
-DIST cryptography_vectors-48.0.0.tar.gz.provenance 9735 BLAKE2B 08065c55da5deeae8c41c7be9c35b1840834454d9fc18db789c5e696e66245c77fb910913465f6bfb242d5a3166113d3186ac1cfc61c3f83335b9e6f8a72204c SHA512 b0aa45486fe08563135739ba2fc3572a70f88bdf27eb4765e52fa0d1a7d8aff305c0076606c91d2325c07374310537c8d8f7f28b462e0f9cfebda6a973250e25
-DIST cryptography_vectors-48.0.1.tar.gz 54877436 BLAKE2B 7b4c386588e5ad0b6e0fc7c0c9e73e597c6fc0a3940d791052a503f09e4f83aec709571878245842203ee66d75b2391c7c743175da0543409c6658973c0b2eaa SHA512 08912c2dfe0c290cb0a74bcefefab44a3e628554487f059073dfa4cb441d2dce4fc2d14ac367b5d237b1fc9f3fd705dfd44b90d020ea36ad5483d752dc093b81
-DIST cryptography_vectors-48.0.1.tar.gz.provenance 9789 BLAKE2B 22bdad6ea48bf56ba0a3c95d83d2e4c2de88a77032d4f08806e74c3ade60012ed89d034337a3a5396a76d79b75c9376244a9f608dcc4436d3a4f698f9e84614b SHA512 d578ae5a517cd6a1fbe10fa33ef6f135207cf129c01d602b146cfca2345d625fb048394d70768469752eb5af821ffdfea551aee36e863336e199051d67e94536
DIST cryptography_vectors-49.0.0.tar.gz 54876507 BLAKE2B 58c4e75c33ee0926a7a0d348356be18884145f0f7bd04c771fdb7fdbc8c779b503cdf6e659e167cc64d20b5d5c2c46fec615e968a9cd49b2e9207945f079ebbb SHA512 dbec0a8198ea7a6ee56d1b5b8079752487cb8c2916c9239d26c664c08402c1ab8832585889ec79313e37f64151a3664b98c6a5e1eb69adceb4caeff32b56f838
DIST cryptography_vectors-49.0.0.tar.gz.provenance 9789 BLAKE2B 66f3e0881b4715dc8304e832b7e976cbc1570cb08b573304935c8625c0fe673602777d6e90fbcd455e97ca32a586350a52e58c8c96a086038fe2aa935db8ed93 SHA512 c8915a33aa32ffd32602f645138cfd3dcb95dcf9bfcebae96ac9ffb9c8c27c7b1df727f44e8fa8f2f21f7b516cd8a142cc58fbc6dccb509afdb697f7e51e5955
DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
@@ -30,30 +15,20 @@ DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a
DIST itoa-1.0.18.crate 15935 BLAKE2B 8e41446056ccd94979f6f5a8fe8c48d6c47abaab99a41715cca31816f859b56e0cbacb998f300b62be8b719a6470f8a087f1439b72f2f6662d1cdd3d552ede5b SHA512 8dbad156e2863c28e2b380901a92414ef00e39f1fcdb06d91a0f3fb73108c2f7f36b699ccd93287808c24c29cca7f1783d48d5ca95f2173502963c0abcb2d09c
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
-DIST openssl-0.10.78.crate 292622 BLAKE2B 17ec5a5efd1fa997a8179bb107912c62c47ea901d93df1c8c0c63e548427a01e57d79c23f0d4a7d614f0d2059c6c07097a4047aa91dfbc4d224c942615eb3587 SHA512 fc27483ebf36daf4b97a43aab2b347255a35e03268c4424df133c714da41a415025be7e6d12579590ab03d237eebaacf89c056d722a66591a7e77c1f45297b4d
-DIST openssl-0.10.79.crate 307119 BLAKE2B c282a190830e6970bf4617d0a41cb12db34625c827c19ac02575635c2ff375ca2fc1ca5d2206a296af733c1fd5c5d4e962325820a3dd643e8913145385c9026b SHA512 da9b6025324499bef777f8a7caa3705e3857ddf0aa80c659da5adcc6b6518e8734ccdbe10410a578003bde1dec2006e8d7b84224d635d03003f4a91f2e71406d
DIST openssl-0.10.81.crate 311187 BLAKE2B a66963c92f34d6efaa80363681664eafdf21af640727132155b2aa1f8c167a9af081091addb675e901ffa352145d1a155b2917df90c4a7917b01c722a592d559 SHA512 533c23b4f1e9b942ff30eb3d22232298135c370fc31c97940f4ac18c73291acca6be4e03284efecbd01096999a6529d1a33a63db332efb4aee478cbcb3f37eba
DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c
-DIST openssl-sys-0.9.114.crate 75617 BLAKE2B f4c313dae993116f249d27d9b161263e8ed770ea8ba0446738aa9fcb2f94d2aebb069f6a713f94ed64e99350f3241b095ef6f433b0e4f75cc3de2b0916d04a75 SHA512 a1404b613d77b039fee2e2195867f8db75520aaa558d125c99f1a6694e513e15454914dd8ab84ab1ef4ab729afd53eac8ddf5f3c42d152f758faa1d0c1fbd258
-DIST openssl-sys-0.9.115.crate 75821 BLAKE2B 56de1b3874f67e0e5771d7b0227246a143ef862301769086dc10bece0b772cc08bf3f6169462b01bf9b90c5691ddd406531cb48104fe4619bbe8f1d19d9fa271 SHA512 2a5c46d20f8d194e92785311f3866cca4ccf8b0e1b665afd49768f230eee76e1e00f04415b4b2f2b8f449dbf9f11a62b56cb639dfdc1d4783ee8bb256864dd05
DIST openssl-sys-0.9.117.crate 76045 BLAKE2B 074b44386a0a0833db961f8f8a249abdbacbc43a5428f8957e2284263206f4c2513c3eb7b38c96975f11ae75654656eb5d6d7d438c31bb5336835d9ed067e9b6 SHA512 89eeb0bfaa2c1ac3e0a8d268a46f8bfaa9942b0f840b0403faa15474961066559b3a1d24f672b445e1029301e6a99c7e2d84dec27528183523a409e9fb57b242
DIST pem-3.0.6.crate 18362 BLAKE2B 0cdd4855872e51d70bf6f3031a28ed9580c0fbad3ec7680938f121753e637f925a57ccb67ed5b85f3c0dff8b4c1fe936aa3ab4b4067ab9a3a3dd17dec02680cd SHA512 4d485bc3a14d7480b6fd0627869d4093124f173a3aeaeaff4ed69a37ba50a8327e6e9325a92d1a5c8ef337b7ca812de2e74ac786eaa94a644de8daf15619de15
DIST pkg-config-0.3.33.crate 21590 BLAKE2B 576349a975cd4b9ff08c7f797f300cb2774425c72ed7baced19e0ba6231246f4479939c61bcc9efeb9174a2d6917bf009f02e93c26800c65e798b9e51ccf4d8b SHA512 af931d889e72f51e0ae41c880a1f5aa6215b93148cf7041378664e4ba013d0c83d654e560a73c9d7b301b5a008c221e48ac81b413d1123786e003c97f7fff63a
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.3.crate 1204476 BLAKE2B 8540a1c51bac4fbe04ea34d5ce38471c13d5a3f0759e60cf21d67e846b00feb8316e70f32cb8dc6b74d09f0901ffc83d5f41b1a06da6d34790ef13e4cefcad45 SHA512 f955957eec4b95cc9337d331bba3bba52b4754b301cf86cd974601e64eb20c2424023b19be89a224661fe2e185de646cd3d0d00705b6b5cbd139856c9443a247
DIST pyo3-0.29.0.crate 1241253 BLAKE2B 29deb7fa70010bf3d7e9e93bbcd87c0b56c4ee7ef0c2e5956181d2fb5f06f4c9b3f28bd1ad280126c26c048808b91b847e1fb69ddd617ef9e9e5e004cf4e48ae SHA512 e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
-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.28.3.crate 80881 BLAKE2B 4ac7066c911e2aec18aa9245efed00585d063f81d69910e6a146f8efbf2939ab5de519bbf2a3dde78b40c264e97c62490db80e9b2e84aaf080d63659a6676459 SHA512 ec49b5cc67d19f46c9daea76b37b4988af0f63b9ed67c71190f015a0aa9691d4a8ffd4128413de430928428e1e8e26d44c3103f561e6b71b7e8c4597ab602d9f
DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a5ac46df3217d004f5c3a368f18331733c6723bd49e522c6f7105455df13e2be0f07695ed5ce6ae71c15dec438 SHA512 baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
-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.28.3.crate 88063 BLAKE2B a484b12bbab3031838f61149ab9f08b9e460a2bd02089e08e58dac2cb747afbc0cdfe64018ed4c8cb0bbbd1d22e3eb05a6a72b020da6b71a584ec51ca8d24292 SHA512 45ce31ed64ee4fd0249736d480c9840a756bc45934d6803ae11e0680057ecf4cc74c71b47ccf9241fc3ab5c1e0b9c758426f08bd523d1ace92fc308302ea3c84
DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
DIST self_cell-1.2.2.crate 23264 BLAKE2B dd4208f060b09e673178d0c66ba98670187d613fd903254d17e711ed2538c4ce6cdca7c0d65482a163ed2c91c8aa9b19d7f29df025b9964d69ba0fab3a6c7d6d SHA512 b47fb19bc623b5d670c21a2b1c32dd298934e295cc5b965b2b244ff4a076a7de4c652e4d820db32e68301b4124334ebd25837b55c610b75dc60bdd95a6ef9420
-DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
DIST shlex-2.0.1.crate 19332 BLAKE2B db2b6c5f7f30ad2f968d2dd386d39b362b8d19d7e17fffbb7407d6f35a4e165432b6607f3897c66cf8d32bf6e795ba7297080608c855b796fcf19842f4c509fa SHA512 d1bf35e2c5a93c718d3cc395fc4b06cc0c42d4891c0f37247de7e179492478020f0c57ae74c461d5bb1f833b071fd5c036d8d6d6ab8b61be6140cb64ae525921
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/cryptography/cryptography-47.0.0.ebuild b/dev-python/cryptography/cryptography-47.0.0.ebuild
deleted file mode 100644
index 7e9dc3629f91..000000000000
--- a/dev-python/cryptography/cryptography-47.0.0.ebuild
+++ /dev/null
@@ -1,139 +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=maturin
-PYPI_VERIFY_REPO=https://github.com/pyca/cryptography
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-CARGO_OPTIONAL=yes
-RUST_MIN_VER="1.83.0"
-CRATES="
- asn1@0.24.1
- asn1_derive@0.24.1
- base64@0.22.1
- bitflags@2.11.1
- cc@1.2.60
- cfg-if@1.0.4
- find-msvc-tools@0.1.9
- foreign-types-shared@0.1.1
- foreign-types@0.3.2
- heck@0.5.0
- itoa@1.0.18
- libc@0.2.186
- once_cell@1.21.4
- openssl-macros@0.1.1
- openssl-sys@0.9.114
- openssl@0.10.78
- pem@3.0.6
- pkg-config@0.3.33
- portable-atomic@1.13.1
- proc-macro2@1.0.106
- pyo3-build-config@0.28.3
- pyo3-ffi@0.28.3
- pyo3-macros-backend@0.28.3
- pyo3-macros@0.28.3
- pyo3@0.28.3
- quote@1.0.45
- self_cell@1.2.2
- shlex@1.3.0
- syn@2.0.117
- target-lexicon@0.13.5
- unicode-ident@1.0.24
- vcpkg@0.2.15
-"
-
-inherit cargo distutils-r1 flag-o-matic pypi
-
-VEC_P=cryptography_vectors-$(ver_cut 1-3)
-DESCRIPTION="Library providing cryptographic recipes and primitives"
-HOMEPAGE="
- https://github.com/pyca/cryptography/
- https://pypi.org/project/cryptography/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- test? (
- $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)")
- $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)")
- -> ${VEC_P}.tar.gz.provenance
- )
-"
-
-LICENSE="|| ( Apache-2.0 BSD ) PSF-2"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0
-"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- >=dev-libs/openssl-1.0.2o-r6:0=
- $(python_gen_cond_dep '
- >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
- ' 'python*')
-"
-DEPEND="
- ${RDEPEND}
-"
-
-BDEPEND="
- ${RUST_DEPEND}
- >=dev-util/maturin-1.9.4[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/certifi[${PYTHON_USEDEP}]
- dev-python/iso8601[${PYTHON_USEDEP}]
- dev-python/pretend[${PYTHON_USEDEP}]
- dev-python/pyasn1-modules[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-# Files built without CFLAGS/LDFLAGS, acceptable for rust
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so"
-
-EPYTEST_PLUGINS=( hypothesis pytest-subtests )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- if use verify-provenance; then
- pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance}
- use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance}
- fi
-
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e 's:--benchmark-disable::' pyproject.toml || die
-
- # work around availability macros not supported in GCC (yet)
- if [[ ${CHOST} == *-darwin* ]] ; then
- local darwinok=0
- if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
- darwinok=1
- fi
- sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
- src/_cffi_src/openssl/src/osrandom_engine.c || die
- fi
-}
-
-python_configure_all() {
- filter-lto # bug #903908
-}
-
-python_test() {
- local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}"
- local EPYTEST_IGNORE=(
- tests/bench
- )
- epytest
-}
diff --git a/dev-python/cryptography/cryptography-48.0.0.ebuild b/dev-python/cryptography/cryptography-48.0.0.ebuild
deleted file mode 100644
index a79231e2a15e..000000000000
--- a/dev-python/cryptography/cryptography-48.0.0.ebuild
+++ /dev/null
@@ -1,144 +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=maturin
-PYPI_VERIFY_REPO=https://github.com/pyca/cryptography
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-CARGO_OPTIONAL=yes
-RUST_MIN_VER="1.83.0"
-CRATES="
- asn1@0.24.1
- asn1_derive@0.24.1
- base64@0.22.1
- bitflags@2.11.1
- cc@1.2.61
- cfg-if@1.0.4
- find-msvc-tools@0.1.9
- foreign-types-shared@0.1.1
- foreign-types@0.3.2
- heck@0.5.0
- itoa@1.0.18
- libc@0.2.186
- once_cell@1.21.4
- openssl-macros@0.1.1
- openssl-sys@0.9.115
- openssl@0.10.79
- pem@3.0.6
- pkg-config@0.3.33
- portable-atomic@1.13.1
- proc-macro2@1.0.106
- pyo3-build-config@0.28.3
- pyo3-ffi@0.28.3
- pyo3-macros-backend@0.28.3
- pyo3-macros@0.28.3
- pyo3@0.28.3
- quote@1.0.45
- self_cell@1.2.2
- shlex@1.3.0
- syn@2.0.117
- target-lexicon@0.13.5
- unicode-ident@1.0.24
- vcpkg@0.2.15
-"
-
-inherit cargo distutils-r1 flag-o-matic pypi
-
-VEC_P=cryptography_vectors-$(ver_cut 1-3)
-DESCRIPTION="Library providing cryptographic recipes and primitives"
-HOMEPAGE="
- https://github.com/pyca/cryptography/
- https://pypi.org/project/cryptography/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- test? (
- $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)")
- $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)")
- -> ${VEC_P}.tar.gz.provenance
- )
-"
-
-LICENSE="|| ( Apache-2.0 BSD ) PSF-2"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0
-"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- >=dev-libs/openssl-1.0.2o-r6:0=
- $(python_gen_cond_dep '
- >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
- ' 'python*')
-"
-DEPEND="
- ${RDEPEND}
-"
-
-BDEPEND="
- ${RUST_DEPEND}
- >=dev-util/maturin-1.9.4[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/certifi[${PYTHON_USEDEP}]
- dev-python/iso8601[${PYTHON_USEDEP}]
- dev-python/pretend[${PYTHON_USEDEP}]
- dev-python/pyasn1-modules[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-# Files built without CFLAGS/LDFLAGS, acceptable for rust
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so"
-
-EPYTEST_PLUGINS=( hypothesis )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- if use verify-provenance; then
- pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance}
- use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance}
- fi
-
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e 's:--benchmark-disable::' pyproject.toml || die
-
- # work around availability macros not supported in GCC (yet)
- if [[ ${CHOST} == *-darwin* ]] ; then
- local darwinok=0
- if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
- darwinok=1
- fi
- sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
- src/_cffi_src/openssl/src/osrandom_engine.c || die
- fi
-}
-
-python_configure_all() {
- filter-lto # bug #903908
-}
-
-python_test() {
- local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}"
- local EPYTEST_IGNORE=(
- tests/bench
- )
- local EPYTEST_DESELECT=(
- # OOMs depending on overcommit setting and available memory
- tests/hazmat/primitives/test_argon2.py::TestArgon2::test_argon2_malloc_failure
- )
-
- epytest
-}
diff --git a/dev-python/cryptography/cryptography-48.0.1.ebuild b/dev-python/cryptography/cryptography-48.0.1.ebuild
deleted file mode 100644
index 05a756e9d8ce..000000000000
--- a/dev-python/cryptography/cryptography-48.0.1.ebuild
+++ /dev/null
@@ -1,144 +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=maturin
-PYPI_VERIFY_REPO=https://github.com/pyca/cryptography
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-CARGO_OPTIONAL=yes
-RUST_MIN_VER="1.83.0"
-CRATES="
- asn1@0.24.1
- asn1_derive@0.24.1
- base64@0.22.1
- bitflags@2.11.1
- cc@1.2.61
- cfg-if@1.0.4
- find-msvc-tools@0.1.9
- foreign-types-shared@0.1.1
- foreign-types@0.3.2
- heck@0.5.0
- itoa@1.0.18
- libc@0.2.186
- once_cell@1.21.4
- openssl-macros@0.1.1
- openssl-sys@0.9.115
- openssl@0.10.79
- pem@3.0.6
- pkg-config@0.3.33
- portable-atomic@1.13.1
- proc-macro2@1.0.106
- pyo3-build-config@0.28.3
- pyo3-ffi@0.28.3
- pyo3-macros-backend@0.28.3
- pyo3-macros@0.28.3
- pyo3@0.28.3
- quote@1.0.45
- self_cell@1.2.2
- shlex@1.3.0
- syn@2.0.117
- target-lexicon@0.13.5
- unicode-ident@1.0.24
- vcpkg@0.2.15
-"
-
-inherit cargo distutils-r1 flag-o-matic pypi
-
-VEC_P=cryptography_vectors-$(ver_cut 1-3)
-DESCRIPTION="Library providing cryptographic recipes and primitives"
-HOMEPAGE="
- https://github.com/pyca/cryptography/
- https://pypi.org/project/cryptography/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- test? (
- $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)")
- $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)")
- -> ${VEC_P}.tar.gz.provenance
- )
-"
-
-LICENSE="|| ( Apache-2.0 BSD ) PSF-2"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-libs/openssl-1.0.2o-r6:0=
- $(python_gen_cond_dep '
- >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
- ' 'python*')
-"
-DEPEND="
- ${RDEPEND}
-"
-
-BDEPEND="
- ${RUST_DEPEND}
- >=dev-util/maturin-1.9.4[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/certifi[${PYTHON_USEDEP}]
- dev-python/iso8601[${PYTHON_USEDEP}]
- dev-python/pretend[${PYTHON_USEDEP}]
- dev-python/pyasn1-modules[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-# Files built without CFLAGS/LDFLAGS, acceptable for rust
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so"
-
-EPYTEST_PLUGINS=( hypothesis )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- if use verify-provenance; then
- pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance}
- use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance}
- fi
-
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
-
- sed -i -e 's:--benchmark-disable::' pyproject.toml || die
-
- # work around availability macros not supported in GCC (yet)
- if [[ ${CHOST} == *-darwin* ]] ; then
- local darwinok=0
- if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
- darwinok=1
- fi
- sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
- src/_cffi_src/openssl/src/osrandom_engine.c || die
- fi
-}
-
-python_configure_all() {
- filter-lto # bug #903908
-}
-
-python_test() {
- local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}"
- local EPYTEST_IGNORE=(
- tests/bench
- )
- local EPYTEST_DESELECT=(
- # OOMs depending on overcommit setting and available memory
- tests/hazmat/primitives/test_argon2.py::TestArgon2::test_argon2_malloc_failure
- )
-
- epytest
-}
diff --git a/dev-python/cryptography/cryptography-49.0.0.ebuild b/dev-python/cryptography/cryptography-49.0.0.ebuild
index 2f6feba870ca..3c57447cf697 100644
--- a/dev-python/cryptography/cryptography-49.0.0.ebuild
+++ b/dev-python/cryptography/cryptography-49.0.0.ebuild
@@ -73,9 +73,7 @@ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-libs/openssl-1.0.2o-r6:0=
- $(python_gen_cond_dep '
- >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
- ' 'python*')
+ >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
"
DEPEND="
${RDEPEND}
diff --git a/dev-python/cyclopts/Manifest b/dev-python/cyclopts/Manifest
index a527c21178dd..94a73e2aa5fd 100644
--- a/dev-python/cyclopts/Manifest
+++ b/dev-python/cyclopts/Manifest
@@ -1 +1,2 @@
DIST cyclopts-4.16.1.gh.tar.gz 2336475 BLAKE2B ac5bc123d9b4286be687c86b77c8203a6933ff3ab3bd7575c06c4570cc44d485bdfc6adb59a6bda3ed5b98bc17677652bb0ac2eba8287d828e70a53bd02a1d3a SHA512 a4d1ca02ad59eee0b262500a587f3040482c7be1d17067a8b0e67a25744224d46a50b174ccb6c0dfabeb9bb94906eec25532bbba3b2b1136887290fc729b9986
+DIST cyclopts-4.20.0.gh.tar.gz 2357430 BLAKE2B 003086abcc021de87d9ecca7b02cb1a4cd1ba860d492e01601b52672150c2ae50505613594e8d772668293749ca3d12d9ba09fe0aec8c286e13fa45f67a08522 SHA512 86d78fda4e54d26ccda74b9e87f5a0904e18eb40d2312f889b21f4aa9355da3b8e25798f2f4c12ee440d51c4e2fa90b8a023031b1d66ef895af9292b99232a74
diff --git a/dev-python/cyclopts/cyclopts-4.20.0.ebuild b/dev-python/cyclopts/cyclopts-4.20.0.ebuild
new file mode 100644
index 000000000000..45e2a2ecbe70
--- /dev/null
+++ b/dev-python/cyclopts/cyclopts-4.20.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Intuitive, easy CLIs based on type hints"
+HOMEPAGE="
+ https://github.com/BrianPugh/cyclopts
+ https://pypi.org/project/cyclopts/
+"
+SRC_URI="https://github.com/BrianPugh/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/attrs-23.1.0[${PYTHON_USEDEP}]
+ >=dev-python/docstring-parser-0.15[${PYTHON_USEDEP}]
+ >=dev-python/rich-13.6.0[${PYTHON_USEDEP}]
+ >=dev-python/rich-rst-1.3.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/pydantic-2.11.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.10.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=(
+ pytest-mock
+ syrupy
+)
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Requires dev-python/mkdocs
+ tests/test_docs_snapshots.py::TestMkDocsDirectiveSnapshots
+)
+EPYTEST_IGNORE=(
+ # Requires dev-python/mkdocs
+ tests/test_mkdocs_ext.py
+)
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+pkg_postinst() {
+ optfeature "Trio async backend" dev-python/trio
+ optfeature "reading YAML configurations" dev-python/pyyaml
+}
diff --git a/dev-python/dropbox/Manifest b/dev-python/dropbox/Manifest
index ce32650dcad5..83a2ca7b1595 100644
--- a/dev-python/dropbox/Manifest
+++ b/dev-python/dropbox/Manifest
@@ -1 +1,2 @@
DIST dropbox-12.0.2_p20260506.gh.tar.gz 1152945 BLAKE2B 728a269669ab835541c71068f05c401131fbe1d06f2f095a59e338d83cb5bd2bae674c8c1d050ae252a6af7db60e95b5be28e4b13f16296ecb35b6abd7efc450 SHA512 68ff810162ff945bcbcd9c6e7fb0cbf255b35b0964aa2391377a3cbe928b87a5408abc3cbccf4c9d2d0cde365393faf4e8186da1cff3b2d400732ac110eb404d
+DIST dropbox-12.1.0.gh.tar.gz 1152840 BLAKE2B 61614cefcf4a7bafa5c7f68d906ff6afe772fe9a4a587f0f0eebbd880f152bd191aebccab0dc723c1c58f8fb772b6a956b03312e3b16d94754c21437207fe46b SHA512 8108efcf9bbd979807787bc545b0711e41356dc8a1a421df8eaa643bf0281e339d417e75a48b09ab2f3cd5894cf8c731c21e2d6ab3f5fe75349caf4422c8c28e
diff --git a/dev-python/dropbox/dropbox-12.1.0.ebuild b/dev-python/dropbox/dropbox-12.1.0.ebuild
new file mode 100644
index 000000000000..9d38922d580e
--- /dev/null
+++ b/dev-python/dropbox/dropbox-12.1.0.ebuild
@@ -0,0 +1,52 @@
+# 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
+
+MY_PN=dropbox-sdk-python
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="The offical Dropbox SDK for Python"
+HOMEPAGE="https://www.dropbox.com/developers"
+# pypi does not have tests, stick with gh
+SRC_URI="https://github.com/dropbox/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/requests-2.16.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.12.0[${PYTHON_USEDEP}]
+ dev-python/stone[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+
+# disable tests that need SCOPED_USER_DROPBOX_TOKEN
+# and tests that fail
+EPYTEST_DESELECT=(
+ test/integration/test_dropbox.py
+ test/unit/test_dropbox_unit.py::TestClient
+ test/unit/test_dropbox_unit.py::TestOAuth::test_NoRedirect_whole_flow
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ if [[ ${PV} == *_p* ]] ; then
+ local MY_PV=$(ver_cut 1-3)
+
+ sed -i -e "s/__version__ = '0.0.0'/__version__ = '${MY_PV}'/" dropbox/dropbox_client.py || die
+ fi
+
+ sed -i -e "s/^import mock$/from unittest import mock/" test/unit/test_dropbox_unit.py || die
+
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/expression/Manifest b/dev-python/expression/Manifest
new file mode 100644
index 000000000000..30862f506116
--- /dev/null
+++ b/dev-python/expression/Manifest
@@ -0,0 +1 @@
+DIST expression-5.6.0.gh.tar.gz 136000 BLAKE2B 348c35988bff149cec8da214ddeb8c52259acd976fd84ab9519b66ebb8f3ea12f987ee3fba86803ef8e5ca14e5d29473a3b0421bf6dd0110b31cd884efdf6169 SHA512 d4bd38b7e83e0d435d6dea1f90f0379d168107ff9085a95cbc11975b97f33427edc9b7c60b027eb7d4e67ae024329b3fd277efed46d40dd2e959492be1850785
diff --git a/dev-python/expression/expression-5.6.0.ebuild b/dev-python/expression/expression-5.6.0.ebuild
new file mode 100644
index 000000000000..38a5096484ce
--- /dev/null
+++ b/dev-python/expression/expression-5.6.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+MY_PN="Expression"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Practical functional programming for Python 3.10+"
+HOMEPAGE="
+ https://github.com/dbrattli/Expression
+ https://pypi.org/project/expression/
+"
+SRC_URI="https://github.com/dbrattli/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/pydantic-2.6.2[${PYTHON_USEDEP}]
+ ' python3_{12..14})
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-asyncio )
+distutils_enable_tests pytest
+
+src_prepare() {
+ default
+
+ sed '/^version = /s/"0.0.0"/"'${PV}'"/' -i pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_IGNORE=()
+
+ if ! has_version "dev-python/pydantic[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ # pydantic
+ tests/test_block.py
+ tests/test_option.py
+ tests/test_result.py
+ )
+ fi
+
+ epytest
+}
+
+pkg_setup() {
+ optfeature "Pydantic support" ">=dev-python/pydantic-2.6.2"
+}
diff --git a/dev-python/expression/metadata.xml b/dev-python/expression/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/expression/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/fastmcp/Manifest b/dev-python/fastmcp/Manifest
index ed4a6dcdeafa..b8063846aced 100644
--- a/dev-python/fastmcp/Manifest
+++ b/dev-python/fastmcp/Manifest
@@ -1 +1 @@
-DIST fastmcp-3.2.4.tar.gz 28746127 BLAKE2B 7e4c674372e575b4a33c53ae3ebac82b3f937c19e383f8ee9089e64998d795e5423f9a425d9b69de8a36ac1e8c40fe2f8e97dbc2a9b11c79b13d774419b4f059 SHA512 95a2952a061473bd631752f6d9a45dfd128fa453b4a3c6895a1c216ef4104311a4e6e55c898acb9e5c699f89397a8611e6df8d289dc2ce7fbbc9ac7f7fab7e2c
+DIST fastmcp-3.4.3.gh.tar.gz 28827501 BLAKE2B 3a54ff0a33315c4a8a1cff37239c9e938171f443479e67792089cb2ab911fdf095ca348c5953c7e8033c720fed4fcbe39e1b5a04c0b8489629d5d6dd4474f3a3 SHA512 1dbd1b5ef9eacdca3d0c8384cb36f539596e83bafcbf4878d59609770799ec88b39783540b1699d4085f93da4179a1d4e5a3933c7e8a3ce02a7ec9158ba16a2d
diff --git a/dev-python/fastmcp/fastmcp-3.2.4.ebuild b/dev-python/fastmcp/fastmcp-3.2.4.ebuild
deleted file mode 100644
index 557b1e5a12d3..000000000000
--- a/dev-python/fastmcp/fastmcp-3.2.4.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="The fast, Pythonic way to build MCP servers and clients"
-HOMEPAGE="
- https://gofastmcp.com/
- https://github.com/PrefectHQ/fastmcp
- https://pypi.org/project/fastmcp/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- >=dev-python/authlib-1.6.5[${PYTHON_USEDEP}]
- >=dev-python/cyclopts-4.0.0[${PYTHON_USEDEP}]
- >=dev-python/exceptiongroup-1.2.2[${PYTHON_USEDEP}]
- >=dev-python/fastapi-0.115.12[${PYTHON_USEDEP}]
- >=dev-python/griffelib-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
- >=dev-python/jsonref-1.1.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-path-0.3.4[${PYTHON_USEDEP}]
- >=dev-python/mcp-1.24.0[${PYTHON_USEDEP}]
- >=dev-python/openapi-pydantic-0.5.1[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-api-1.20.0[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-4.0.0[${PYTHON_USEDEP}]
- >=dev-python/py-key-value-aio-0.4.4[${PYTHON_USEDEP}]
- >=dev-python/pydantic-2.11.7[${PYTHON_USEDEP}]
- dev-python/email-validator[${PYTHON_USEDEP}]
- >=dev-python/pyperclip-1.9.0[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-1.1.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
- >=dev-python/rich-13.9.4[${PYTHON_USEDEP}]
- >=dev-python/uncalled-for-0.2.0[${PYTHON_USEDEP}]
- >=dev-python/uvicorn-0.35[${PYTHON_USEDEP}]
- >=dev-python/watchfiles-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/websockets-15.0.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/aiofile-3.5.0[${PYTHON_USEDEP}]
- >=dev-python/anthropic-0.48.0[${PYTHON_USEDEP}]
- >=dev-python/cachetools-5.0.0[${PYTHON_USEDEP}]
- >=dev-python/dirty-equals-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/inline-snapshot-0.27.2[${PYTHON_USEDEP}]
- dev-python/joserfc[${PYTHON_USEDEP}]
- >=dev-python/openai-1.102.0[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-sdk-1.20.0[${PYTHON_USEDEP}]
- <dev-python/prefab-ui-0.20.0[${PYTHON_USEDEP}]
- >=dev-python/pydocket-0.19.0[${PYTHON_USEDEP}]
- )
-"
-
-# raise default timeout
-# https://bugs.gentoo.org/978150
-: ${EPYTEST_TIMEOUT:=10}
-EPYTEST_PLUGINS=(
- inline-snapshot
- pytest-{asyncio,env,httpx,timeout}
-)
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # TODO These fail because >=pydocket-0.20.0 replaces fakeredis with burner-redis
- tests/server/tasks/test_concurrent_dependencies.py::test_sync_context_functions_work_in_background_without_deps
- tests/server/http/test_http_dependencies.py::test_background_task_can_read_snapshotted_request_headers
- tests/server/http/test_http_dependencies.py::test_background_task_current_http_dependencies_restore_headers
-
- # Tests succeed, but teardown fails with:
- # RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope
- tests/server/providers/proxy/test_stateful_proxy_client.py::TestStatefulProxyClient::test_concurrent_log_requests_no_mixing
- tests/server/providers/proxy/test_stateful_proxy_client.py::TestStatefulProxyClient::test_stateful_proxy
- tests/server/providers/proxy/test_stateful_proxy_client.py::TestStatefulProxyClient::test_multi_proxies_no_mixing
-)
-
-EPYTEST_IGNORE=(
- # requires pytest-examples
- tests/docs/test_doc_examples.py
-
- # requires pydantic-monty
- tests/experimental/transforms/test_code_mode.py
-
- # requires azure from azure-sdk-for-python
- tests/server/auth/providers/test_azure_scopes.py
-
- # require network
- tests/client/transports/test_uv_transport.py
- tests/server/providers/openapi/test_openapi_performance.py
-
- # requires node module @modelcontextprotocol/conformance@latest
- tests/conformance/test_conformance.py
-)
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # raise timeouts for slower CI systems
- # https://bugs.gentoo.org/977930
- sed -i -e 's/@pytest.mark.timeout(15)/@pytest.mark.timeout(60)/' \
- tests/client/test_stdio.py || die
- sed -i -e 's/INIT_TIMEOUT = 3/INIT_TIMEOUT = 10/' \
- tests/client/test_stdio.py || die
-}
diff --git a/dev-python/fastmcp/fastmcp-3.4.3.ebuild b/dev-python/fastmcp/fastmcp-3.4.3.ebuild
new file mode 100644
index 000000000000..3d4aa5156ac0
--- /dev/null
+++ b/dev-python/fastmcp/fastmcp-3.4.3.ebuild
@@ -0,0 +1,158 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The fast, Pythonic way to build MCP servers and clients"
+HOMEPAGE="
+ https://gofastmcp.com/
+ https://github.com/PrefectHQ/fastmcp
+ https://pypi.org/project/fastmcp/
+"
+SRC_URI="
+ https://github.com/PrefectHQ/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# email-validator via pydantic[email]
+BASE_DEPS="
+ dev-python/email-validator[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.11.7[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-settings-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/rich-13.9.4[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
+"
+
+MCP_DEPS="
+ >=dev-python/exceptiongroup-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ >=dev-python/mcp-1.24.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-api-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/starlette-1.0.1[${PYTHON_USEDEP}]
+"
+
+# >=aiofile-3.5.0, >=anyio-4.4.0 via py-key-value-aio[filetree]
+# >=keyring-25.6.0 via py-key-value-aio[keyring]
+# >=cachetools-5.0.0 via py-key-value-aio[memory]
+CLIENT_DEPS="
+ ${MCP_DEPS}
+ >=dev-python/aiofile-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/anyio-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/authlib-1.6.11[${PYTHON_USEDEP}]
+ >=dev-python/cachetools-5.0.0[${PYTHON_USEDEP}]
+ >=dev-python/keyring-25.6.0[${PYTHON_USEDEP}]
+ >=dev-python/py-key-value-aio-0.4.4[${PYTHON_USEDEP}]
+"
+
+# py-key-value-aio[filetree,keyring,memory] from CLIENT_DEPS
+SERVER_DEPS="
+ ${MCP_DEPS}
+ >=dev-python/authlib-1.6.11[${PYTHON_USEDEP}]
+ >=dev-python/cyclopts-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/griffelib-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/joserfc-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonref-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-path-0.3.4[${PYTHON_USEDEP}]
+ >=dev-python/openapi-pydantic-0.5.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
+ >=dev-python/pyperclip-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/python-multipart-0.0.26[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+ >=dev-python/uncalled-for-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/uvicorn-0.35[${PYTHON_USEDEP}]
+ >=dev-python/watchfiles-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/websockets-15.0.1[${PYTHON_USEDEP}]
+"
+
+RDEPEND="
+ ${BASE_DEPS}
+ ${CLIENT_DEPS}
+ ${SERVER_DEPS}
+"
+
+# TODO fastmcp[anthropic,apps,azure,code-mode,gemini,openai,tasks]
+# missing: [azure,code-mode,gemini]
+# TODO pydantic-monty==0.0.17
+BDEPEND="
+ >=dev-python/uv-dynamic-versioning-0.7.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/anthropic-0.48.0[${PYTHON_USEDEP}]
+ >=dev-python/dirty-equals-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/fastapi-0.115.12[${PYTHON_USEDEP}]
+ >=dev-python/openai-1.102.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-grpc-1.39.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-sdk-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/prefab-ui-0.18.0[${PYTHON_USEDEP}]
+ >=dev-python/psutil-7.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pydocket-0.20.0[${PYTHON_USEDEP}]
+ )
+"
+
+# raise default timeout
+# https://bugs.gentoo.org/978150
+: ${EPYTEST_TIMEOUT:=10}
+EPYTEST_PLUGINS=(
+ inline-snapshot
+ pytest-{asyncio,env,httpx,timeout}
+)
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # raise timeouts for slower CI systems
+ # https://bugs.gentoo.org/977930
+ sed -i -e 's/@pytest.mark.timeout(15)/@pytest.mark.timeout(60)/' \
+ tests/client/test_stdio.py || die
+ sed -i -e 's/INIT_TIMEOUT = 3/INIT_TIMEOUT = 10/' \
+ tests/client/test_stdio.py || die
+}
+
+python_compile() {
+ local -x UV_DYNAMIC_VERSIONING_BYPASS=${PV}
+ for d in fastmcp_{slim,remote}; do
+ pushd ${d} >/dev/null || die
+ distutils-r1_python_compile
+ popd >/dev/null || die
+ done
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # requires pytest-examples
+ tests/docs/test_doc_examples.py
+
+ # requires pydantic-monty
+ tests/experimental/transforms/test_code_mode.py
+
+ # require network
+ tests/client/transports/test_uv_transport.py
+ tests/server/providers/openapi/test_openapi_performance.py
+
+ # requires npm package @modelcontextprotocol/conformance@latest
+ tests/conformance/test_conformance.py
+ )
+ local EPYTEST_DESELECT=()
+
+ if [[ ${EPYTHON} == python3.14 ]]; then
+ EPYTEST_DESELECT+=(
+ # fails on Python 3.14 due to changes in functools.partial type hint resolution
+ tests/server/tasks/test_task_tools.py::test_resolve_param_hints_handles_partials
+ )
+ fi
+
+ rm -rf fastmcp_{slim,remote} || die
+ epytest
+}
diff --git a/dev-python/frozenlist/files/frozenlist-1.8.0-tests.patch b/dev-python/frozenlist/files/frozenlist-1.8.0-tests.patch
new file mode 100644
index 000000000000..72da86140502
--- /dev/null
+++ b/dev-python/frozenlist/files/frozenlist-1.8.0-tests.patch
@@ -0,0 +1,46 @@
+https://bugs.gentoo.org/976743
+
+From d59bf55e4de139a591671a2b86e8c421ca8ba9bf Mon Sep 17 00:00:00 2001
+From: Sam Bull <git@sambull.org>
+Date: Fri, 8 May 2026 21:04:01 +0100
+Subject: [PATCH 1/2] Add '__annotations_cache__' to SKIP_METHODS
+
+---
+ tests/test_frozenlist.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/test_frozenlist.py b/tests/test_frozenlist.py
+index c37f5c0d..7a7f38c4 100644
+--- a/tests/test_frozenlist.py
++++ b/tests/test_frozenlist.py
+@@ -14,6 +14,7 @@ class FrozenListMixin:
+
+ SKIP_METHODS = {
+ "__abstractmethods__",
++ "__annotations_cache__",
+ "__slots__",
+ "__static_attributes__",
+ "__firstlineno__",
+
+From 9fe5ca834512bdb3455865792c66b443350bf2a0 Mon Sep 17 00:00:00 2001
+From: Sam Bull <git@sambull.org>
+Date: Fri, 8 May 2026 21:25:36 +0100
+Subject: [PATCH 2/2] Apply suggestion from @Dreamsorcerer
+
+---
+ tests/test_frozenlist.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/test_frozenlist.py b/tests/test_frozenlist.py
+index 7a7f38c4..40476c90 100644
+--- a/tests/test_frozenlist.py
++++ b/tests/test_frozenlist.py
+@@ -14,6 +14,7 @@ class FrozenListMixin:
+
+ SKIP_METHODS = {
+ "__abstractmethods__",
++ "__annotate_func__",
+ "__annotations_cache__",
+ "__slots__",
+ "__static_attributes__",
+
diff --git a/dev-python/frozenlist/frozenlist-1.8.0.ebuild b/dev-python/frozenlist/frozenlist-1.8.0.ebuild
index 0411c4f5d400..c38cd0e626b3 100644
--- a/dev-python/frozenlist/frozenlist-1.8.0.ebuild
+++ b/dev-python/frozenlist/frozenlist-1.8.0.ebuild
@@ -29,18 +29,20 @@ BDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
native-extensions? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- ' 'python*')
+ dev-python/cython[${PYTHON_USEDEP}]
)
"
+PATCHES=(
+ # https://github.com/aio-libs/frozenlist/pull/749
+ "${FILESDIR}"/${P}-tests.patch
+)
+
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_compile() {
- # pypy is not using the C extension
- if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ if ! use native-extensions; then
local -x FROZENLIST_NO_EXTENSIONS=1
fi
diff --git a/dev-python/gitpython/Manifest b/dev-python/gitpython/Manifest
index 9b1ed9472471..733d443d692b 100644
--- a/dev-python/gitpython/Manifest
+++ b/dev-python/gitpython/Manifest
@@ -1,4 +1,6 @@
DIST GitPython-3.1.50.gitbundle 11365195 BLAKE2B a1c889dd431d94ef6a70aa7c26b29fcbc2a27224a7f939422ed2fb0bc77ccd63f96adb9fffde05ea8bf7947cdf6855c7096582f6763b1a4c790ab5e00011560c SHA512 11a09d70d5ba8527d0907739b6a7c355d62692afddfcd2cc4f31f30e0546746c824b29264429676f3a5b27136945901147590e4862fab6561e30a42aac059801
+DIST GitPython-3.1.51.gitbundle 11475069 BLAKE2B 42942f353b1e719d209b059d9f9047b9d6081b4b3e61e3405a526ed03215ad62ec6d8da70fd157e64631ab1a62b35bca01af531c0e1e65d875b4cfb2ffe3cdf1 SHA512 7d590c22a1ec8addd3cd0b445b1edb4ff3d7eec8fb356f9e12f768a613fadc25dbce461ac6b368ea0f9dbefba2d097e3af3fe6ea44caccd4a79ac6172e300126
DIST gitdb-4.0.12.gitbundle 1627457 BLAKE2B 2fb730fb72f682bac9a71a2b70af6ed476f69d57e00b323e669550793bcc330bd4b71575e0d0f008ed58f39e5beb622213ce2a10df6f512f1f5536b72c77871a SHA512 2fc619f511e373ad2ee51a108057e3a558dbfd68cbd7632244d7fd7914ed5fce99c182de5542264273de642e6e7680ee9b54a6da95224c562f43cf65e325db56
DIST gitpython-3.1.50.tar.gz 219798 BLAKE2B 405dce7a580de35973d460750df020d6c6959da36b46f724d45ed369d4a2bca98afe45947f35a66ee4ca746315a501173786b2e78970945ba285cd97199503cc SHA512 f5233ddd8eec95673df7ec035bc17c0f320277fa1392dff43e44f6781954d7e8d017832ae5e7b166bce094a16859468cbe0cef65ad40b13d75b77ab9a166c7f1
+DIST gitpython-3.1.51.tar.gz 223519 BLAKE2B 6f828a6a1bf0c222351d2f3c0d80107b87b82cc61c7f1b5086c98db89897e431c8310c932a9aad329dcae6b805b9b560be3bc18d1634f07639e2de8a680c36a9 SHA512 afee2f96b88f15bef46c4b2df45fd5e1eccd30609c6ba2f0ca319ff360d5b09b79167cdba8a3cf310ce42e612947329913dc4b97d79c24eb01677ef6c77be67f
DIST smmap-5.0.1.gitbundle 362567 BLAKE2B 72c8b48ad3250a33b94218c145c02033dee84c1da5f1eea57983a58699262d51844be675330d95c7d64924b6aeaacd4b0a57e9a5acad3be184aaad62102202e7 SHA512 9ca8386bfec25d1562cdf1c2ee85f7edb15fd3f44ecd1abbef738979f12b82f0b0f39a06589203a39f89518d981d7129e35f64f2d855cd162cd964bdd87c8d18
diff --git a/dev-python/gitpython/gitpython-3.1.51.ebuild b/dev-python/gitpython/gitpython-3.1.51.ebuild
new file mode 100644
index 000000000000..696f647771d9
--- /dev/null
+++ b/dev-python/gitpython/gitpython-3.1.51.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=GitPython
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+TEST_P=GitPython-${PV}
+GITDB_P=gitdb-4.0.12
+SMMAP_P=smmap-5.0.1
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="
+ https://github.com/gitpython-developers/GitPython/
+ https://pypi.org/project/GitPython/
+"
+SRC_URI+="
+ test? (
+ https://distfiles.gentoo.org/pub/proj/python/GitPython/${TEST_P}.gitbundle
+ https://distfiles.gentoo.org/pub/proj/python/GitPython/${GITDB_P}.gitbundle
+ https://distfiles.gentoo.org/pub/proj/python/GitPython/${SMMAP_P}.gitbundle
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-4.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.1.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_test() {
+ git config --global user.email "travis@ci.com" || die
+ git config --global user.name "Travis Runner" || die
+
+ git clone "${DISTDIR}/${TEST_P}.gitbundle" "${T}"/test || die
+ git clone "${DISTDIR}/${GITDB_P}.gitbundle" \
+ "${T}"/test/git/ext/gitdb || die
+ git clone "${DISTDIR}/${SMMAP_P}.gitbundle" \
+ "${T}"/test/git/ext/gitdb/gitdb/ext/smmap || die
+
+ cd "${T}"/test || die
+ git rev-parse HEAD > .git/refs/remotes/origin/master || die
+ # this tries to fetch again
+ sed -i -e '/git submodule/d' init-tests-after-clone.sh || die
+ TRAVIS=1 ./init-tests-after-clone.sh || die
+ cat test/fixtures/.gitconfig >> ~/.gitconfig || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # performance tests are unreliable by design
+ test/performance
+ # unimportant and problematic
+ test/test_installation.py
+ # Internet
+ test/test_quick_doc.py::QuickDoc::test_cloned_repo_object
+ # TODO
+ test/test_submodule.py::TestSubmodule::test_base_rw
+ test/test_submodule.py::TestSubmodule::test_root_module
+ )
+
+ epytest -o addopts= test
+}
diff --git a/dev-python/ignore-python/Manifest b/dev-python/ignore-python/Manifest
index bdbb5024ec82..4767f9475f3d 100644
--- a/dev-python/ignore-python/Manifest
+++ b/dev-python/ignore-python/Manifest
@@ -1,2 +1,4 @@
DIST ignore-python-0.3.3-deps.tar.xz 5151648 BLAKE2B 43c3d7d1d76e7433427f0488c811aa733cffc7681e802a3c51bcda4867f94bad1cf7f3c0f59e8bd85ba10685e8c143b96c5d0287d2c0ddd1b62df7b5f9ec36d4 SHA512 68095449686bd97aadeaa3e9732a62396246237f472e28be79bd4d0932acf8a8abad0d6c7146332e263d7c5be4cda229ea8960bda3e0dedba0a7d8e9c075d04b
DIST ignore-python-0.3.3.gh.tar.gz 12062 BLAKE2B 11fc24335c547d9381526adc5de846ae3eb5a9eb873db8d55ab43b2e55bb2e870b0624de73d56d15e844067089dd6eb3b1edf72f73e21f52b70d3f2cc88dd9b3 SHA512 ae7b4b31e07f4c6ea8594b237a0e8cdbd60d73902ba8b8502c9f935d6855ce599d191a025d7dc09b1a7c342076aca26ef2df576cfe29e53cfed07c292845896b
+DIST ignore-python-0.4.1-deps.tar.xz 5181584 BLAKE2B 7734636b8f7201e9d8ee982a046c1a9072b664d0898a08d1831add613140f2c2ad3cb5d509cb635a1420d10f293ae16b2ea2352ed7cb734c16892df2e0487a6f SHA512 de87f0c5dc0e917ad3671dcf83dbbef20ba81567518095b50e1446ade015a264eb066acee6ae82076748758c41cb763411a44a82e958b7d2e05b022604065ff6
+DIST ignore-python-0.4.1.gh.tar.gz 12048 BLAKE2B 03ded57a506f8c92e61fb4966e230664e91789fbf7c3a7ca74be8d39bdc6aac244106e65500748560a128341f843ddd8173b79961b2a909efe6646dd399b5b06 SHA512 f5948d58d958177f19f94f22d05fb1e2c0dc433da02409f99e37489cb101c5a1b5a9261d786ff22165e802f6546da9a8b29940aa6dc0b2440d354da01652c511
diff --git a/dev-python/ignore-python/ignore-python-0.4.1.ebuild b/dev-python/ignore-python/ignore-python-0.4.1.ebuild
new file mode 100644
index 000000000000..7a38bec54925
--- /dev/null
+++ b/dev-python/ignore-python/ignore-python-0.4.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.85.0"
+
+inherit cargo distutils-r1
+
+DESCRIPTION="Rust ignore crate Python bindings"
+HOMEPAGE="
+ https://github.com/borsattoz/ignore-python
+ https://pypi.org/project/ignore-python/
+"
+SRC_URI="
+ https://github.com/borsattoz/ignore-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ https://gitlab.com/api/v4/projects/69517529/packages/generic/${PN}/${PV}/${P}-deps.tar.xz
+"
+
+LICENSE="MIT Unicode-3.0 Apache-2.0-with-LLVM-exceptions"
+SLOT="0"
+KEYWORDS="~amd64"
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/ignore/ignore.*.so"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest --override-ini="pythonpath=${BUILD_DIR}/install$(python_get_sitedir)"
+}
diff --git a/dev-python/inquirerpy/Manifest b/dev-python/inquirerpy/Manifest
new file mode 100644
index 000000000000..110f1d9f39de
--- /dev/null
+++ b/dev-python/inquirerpy/Manifest
@@ -0,0 +1,2 @@
+DIST inquirerpy-0.3.4-support-prompt-toolkit-3.0.47.patch.xz 2720 BLAKE2B d7b0ee36fa58cadc51197ada2758a262aa9738dd7626c96e1d6856603589ad3d8f82b8436b5144dca9c950c0555677cf4a17b023d62a4f8e0360aced7ddd85bf SHA512 c35f96f5372186484bf615a2d2a1521a9f597235d16b06eceee9deae49d8cec5394e3eaa950ebe6e04422658e57f9a431ec6e94be602903157018984a9c38b88
+DIST inquirerpy-0.3.4.gh.tar.gz 118225 BLAKE2B b485d7bb07e4d22dc9b2a240cf2c2bdf8dba47ddcd5ee628268dec2fa5ede94a00123eaa93e24b0b853145fd040899ecb9f1c9c8e05f77e7699620bfec89ab50 SHA512 7a1c5c8fdda450bce77db39d67fa2a79c740ae3d34b112e144903a29301bf3c50189c9a7ed4b61f835e749403043c46674394399af70d56b910838fe8e2cb416
diff --git a/dev-python/inquirerpy/inquirerpy-0.3.4.ebuild b/dev-python/inquirerpy/inquirerpy-0.3.4.ebuild
new file mode 100644
index 000000000000..22d1da5971f1
--- /dev/null
+++ b/dev-python/inquirerpy/inquirerpy-0.3.4.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_PN="InquirerPy"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Python port of Inquirer.js (A collection of common interactive CLI UIs)"
+HOMEPAGE="
+ https://github.com/kazhala/InquirerPy
+ https://pypi.org/project/inquirerpy/
+"
+PATCH_BASE_URI="https://github.com/falbrechtskirchinger/overlay-assets/releases/download"
+SRC_URI="
+ https://github.com/kazhala/${MY_PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${PATCH_BASE_URI}/v2026.06.27.0/${PN}-0.3.4-support-prompt-toolkit-3.0.47.patch.xz
+"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+# prompt-toolkit raised from 3.0.1 to 3.0.47 for patch
+RDEPEND="
+ >=dev-python/pfzy-0.3.1[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.47[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ "${WORKDIR}/${PN}-0.3.4-support-prompt-toolkit-3.0.47.patch"
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_test() {
+ # test expects non-empty home
+ touch "${HOME}/.dummy" || die
+ distutils-r1_src_test
+}
diff --git a/dev-python/inquirerpy/metadata.xml b/dev-python/inquirerpy/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/inquirerpy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/ipykernel/ipykernel-7.3.0.ebuild b/dev-python/ipykernel/ipykernel-7.3.0.ebuild
index be6843686732..2f8eaad6ad1f 100644
--- a/dev-python/ipykernel/ipykernel-7.3.0.ebuild
+++ b/dev-python/ipykernel/ipykernel-7.3.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/comm-0.1.1[${PYTHON_USEDEP}]
diff --git a/dev-python/jaraco-test/Manifest b/dev-python/jaraco-test/Manifest
index d01c0781725d..67bcc953d735 100644
--- a/dev-python/jaraco-test/Manifest
+++ b/dev-python/jaraco-test/Manifest
@@ -1 +1,2 @@
DIST jaraco_test-5.6.0.tar.gz 11221 BLAKE2B bc7c0bec30d762be20fe21715007bb79c05258d4146574a344b4981f39d50af6e8a0b2c58a4ff1b6b8b1c77600322432846b10fe9938d0d44bfcae6ca34cf9d4 SHA512 cb22058edcdf1cc5aac6f66301a31e9c6a2935594090da3bbc0d4bfa58ae8b071917c166195559dfa9133147b79633efc50e6fa312ca1257d560a1ff85cc8ccc
+DIST jaraco_test-5.7.0.tar.gz 11762 BLAKE2B 5ab284742d7cbc0780f1badd3513116dd5758b74d09da1fc121bbf0c992aae646712d17b3f774ae6f0e4d10acc0abd586afa991ea726e54f1babd27effd0b3ab SHA512 93a4425fbc989465cb297625c4490931bc01a664f08e7a8bd937a4c9ef99345fa0e55a017b2a9ba6faf9ba5f441113fd56985394a7cd61acb8139e0d0c5ccc3b
diff --git a/dev-python/jaraco-test/jaraco-test-5.7.0.ebuild b/dev-python/jaraco-test/jaraco-test-5.7.0.ebuild
new file mode 100644
index 000000000000..d09b6362ba3f
--- /dev/null
+++ b/dev-python/jaraco-test/jaraco-test-5.7.0.ebuild
@@ -0,0 +1,50 @@
+# 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="Testing support by jaraco"
+HOMEPAGE="
+ https://github.com/jaraco/jaraco.test/
+ https://pypi.org/project/jaraco.test/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ dev-python/jaraco-context[${PYTHON_USEDEP}]
+ dev-python/jaraco-functools[${PYTHON_USEDEP}]
+ dev-python/test[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_test() {
+ # workaround namespaces blocking test.support import (sigh!)
+ mv jaraco/test jaraco_test || die
+ rmdir jaraco || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ # while technically these tests are skipped when Internet is
+ # not available (they test whether auto-skipping works), we don't
+ # want any Internet access whenever possible
+ local EPYTEST_DESELECT=(
+ tests/test_http.py::test_needs_internet
+ # https://github.com/pytest-dev/pytest/issues/14700
+ # (it is skipped anyway)
+ jaraco_test/git.py::jaraco_test.git.ensure_checkout
+ )
+ epytest -m "not network"
+}
diff --git a/dev-python/jaraco-text/Manifest b/dev-python/jaraco-text/Manifest
index d15531906cc7..0dc2b610821a 100644
--- a/dev-python/jaraco-text/Manifest
+++ b/dev-python/jaraco-text/Manifest
@@ -1 +1,2 @@
DIST jaraco_text-4.2.0.tar.gz 20077 BLAKE2B c2c991586f5696995ad60b0238c110fb1094c8b51c35961e01faec6a4b18f5ca1951d1c273c3908d41f1bf26fab7e639f5f4903328e106b7f770416c9990c218 SHA512 63cd8b4c7a66231b4951e2c5d5b8fcc6cab2fd3bddee0f6fb254eafdf131fc1cd8ed88430e0a822096dfd7d871acef335ac30e899b7f715832800cce4005f1dd
+DIST jaraco_text-4.3.0.tar.gz 20673 BLAKE2B f3b1b29fef20bf3bd17079f3632a99a9beb41f1bd900031c474fed9f2c1708069a9cc20affbc0fad8dd97846f15106105ea90e107a0d2af02870c8a4a0d5e240 SHA512 7dd7a309515e249eb6978a0d5614bb2114610d3cb15f3cbb17659236fa67b4206d0baf9791b604eb679d1da3a15236891cef2ab749a937baf06402b68289c863
diff --git a/dev-python/jaraco-text/jaraco-text-4.3.0.ebuild b/dev-python/jaraco-text/jaraco-text-4.3.0.ebuild
new file mode 100644
index 000000000000..a7277a70b0b6
--- /dev/null
+++ b/dev-python/jaraco-text/jaraco-text-4.3.0.ebuild
@@ -0,0 +1,50 @@
+# 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-core
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Text utilities used by other projects by developer jaraco"
+HOMEPAGE="
+ https://github.com/jaraco/jaraco.text/
+ https://pypi.org/project/jaraco.text/
+"
+
+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"
+
+RDEPEND="
+ >=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-3.5.0-r1[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "setuptools' 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 = "jaraco.text"
+ version = "${PV}"
+ description = "Module for text manipulation"
+ EOF
+
+ # remove CLI tools, they have annoying deps, no entry points
+ # and since there are dashes in their names, they can't be imported
+ # anyway
+ rm jaraco/text/*-*.py || die
+}
diff --git a/dev-python/json-repair/Manifest b/dev-python/json-repair/Manifest
index 6a5bf0630aa0..517b925a4479 100644
--- a/dev-python/json-repair/Manifest
+++ b/dev-python/json-repair/Manifest
@@ -1 +1 @@
-DIST json-repair-0.61.0.gh.tar.gz 2564244 BLAKE2B 48aa27476104a68a087db8fb4a990644cabc1447780f103c87a45f8bf9663fa05cd8132b5f76578727dd9b6893dd476962e1ff14608ad29ad2880f2213604dad SHA512 8feef307f7b3030a6828c4ffa65f273d8e531d4582cad22cd32e4bceef27f70d4a85ab6a491c9b5b1a8f4e6c60e3c9036c588f601b7c9745f83a17502e8c4a32
+DIST json-repair-0.61.1.gh.tar.gz 2563279 BLAKE2B b991b2ecbc49bed38365bfeb69b025f024e78815e7bbb8f41c5694fbfe85691b69c9fe001a21e07583867dfa5c2a613cc7a6b102a9942b2f8d868af6af8a924d SHA512 9fff86c8ce5ec3c70584fcd45e1fb701961137cc19f4857a0719bfd01779bed0e04e32eece1ace5240afe934e63da144dd38b92e85792746a2289afc5e434a6b
diff --git a/dev-python/json-repair/json-repair-0.61.0.ebuild b/dev-python/json-repair/json-repair-0.61.1.ebuild
index 7a42b021a172..7a42b021a172 100644
--- a/dev-python/json-repair/json-repair-0.61.0.ebuild
+++ b/dev-python/json-repair/json-repair-0.61.1.ebuild
diff --git a/dev-python/lark/lark-1.3.1.ebuild b/dev-python/lark/lark-1.3.1.ebuild
index dca7b2c96d71..3e1305c6b44b 100644
--- a/dev-python/lark/lark-1.3.1.ebuild
+++ b/dev-python/lark/lark-1.3.1.ebuild
@@ -23,9 +23,7 @@ BDEPEND="
>=dev-python/setuptools-scm-9.2.2[${PYTHON_USEDEP}]
test? (
dev-python/atomicwrites[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/regex[${PYTHON_USEDEP}]
- ' 'python*')
+ dev-python/regex[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index a12444e77ab9..3bf0872a4e57 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -23,3 +23,5 @@ DIST libtmux-0.60.0.tar.gz 527549 BLAKE2B 7d10107fb81888417b86206eeb355712396789
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
+DIST libtmux-0.62.0.tar.gz 571757 BLAKE2B 499d7ddaef63c3dc1034ef967fbc139e562408e6f46b177932fc74a11ab94aa82f0286c3754f32c92146716bb1caf388c86fb5e24b0cb5a7f462021b354a8660 SHA512 e4b535352e56a99dea27f789276c46d41bd0f18013cfa22a9a44fc5fdefde77c4025289b533608ee4c6d72c05dd036924edb3c2db57006ec2c42ad5b433c13b8
+DIST libtmux-0.62.0.tar.gz.provenance 9720 BLAKE2B 45670a6d758469472c8a730d07da18c078b8d22cca614012286bed77e0a9f9d7966f93644f0706f497251e2d696b20b95fdf0a620980999a41fddc0fbeb677ea SHA512 f9e8b3341086e6ce4f788fd1b9656678ff5b0c1e019114eab604635cedacb8719a5bf18e8bf05bcff30ab06585d3d181fa50956d7a4f2f61be2302448aee96a0
diff --git a/dev-python/libtmux/libtmux-0.62.0.ebuild b/dev-python/libtmux/libtmux-0.62.0.ebuild
new file mode 100644
index 000000000000..a85d2d5eaa37
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.62.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/listparser/metadata.xml b/dev-python/listparser/metadata.xml
index e27af00e8f0e..7ed7b7ad3172 100644
--- a/dev-python/listparser/metadata.xml
+++ b/dev-python/listparser/metadata.xml
@@ -2,7 +2,7 @@
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>t@laumann.xyz</email>
+ <email>laumann@gentoo.org</email>
<name>Thomas Bracht Laumann Jespersen</name>
</maintainer>
<stabilize-allarches />
diff --git a/dev-python/litellm/Manifest b/dev-python/litellm/Manifest
index 9e85f070ecb1..3dcf58f6142c 100644
--- a/dev-python/litellm/Manifest
+++ b/dev-python/litellm/Manifest
@@ -1 +1,2 @@
-DIST litellm-1.89.3.gh.tar.gz 42966576 BLAKE2B cd6a811ee7fe2ad514ce83ee6081eaaa78b62e7678d9ba457c482cb008143493479522cca01b01c0b2e730ac66eda4a238482fffe1d9441f6520450e86541e12 SHA512 da7f20d6e1cac7d47f82c9296d7a0b8105f456236e239fe40dcd2819180788bd9a8452977bc6c3746ef98f1165c08b99b06a04d0e0fdb9d6f9a5f9ed6ccec608
+DIST litellm-1.91.1-openapi-spec.json 292048 BLAKE2B 963f9c6d0172f7ce1561ce9646588ce0286c1b58401c1c0bac8b8b91368264e52af1af7ee65fefc588f3fa3b6472df5ea30406196d6b4b816feeacf9a4a57b54 SHA512 aacc06bbc4baa9b0cc8119a789ea3ab5f6f4036e77de9cc14eb0442c2088fbcd0d161799cf60ef6e6bb98857e2ef949b4b1b1b65e99e21ad64de103db31e595d
+DIST litellm-1.91.1.gh.tar.gz 44633171 BLAKE2B ef94db51b2dfab0d759fdba679467ab3f331a2558ea370771d1d138ed466085b53571cc13c9505077588ba68863a03462e8109885c085872a52dc369fa61962a SHA512 d67162460e25d7bedf49bc165ae3bc9132bd1d2ae9b199203cdde61de94ad41b14a8e46a8609d1975ee230d36de628d8e7a96056cee904246081616143623d71
diff --git a/dev-python/litellm/litellm-1.89.3.ebuild b/dev-python/litellm/litellm-1.89.3.ebuild
deleted file mode 100644
index 851a16dd9c5d..000000000000
--- a/dev-python/litellm/litellm-1.89.3.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=uv-build
-DISTUTILS_SINGLE_IMPL=1
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Lightweight package to seamlessly call OpenAI, Azure, Cohere, Anthropic, etc."
-HOMEPAGE="
- https://github.com/BerriAI/litellm
- https://pypi.org/project/litellm/
-"
-SRC_URI="https://github.com/BerriAI/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64" # ~arm64: fastapi, tokenizers
-
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/aiohttp-3.10.0[${PYTHON_USEDEP}]
- >=dev-python/click-8.0.0[${PYTHON_USEDEP}]
- >=dev-python/fastuuid-0.14.0[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
- >=dev-python/importlib-metadata-8.0.0[${PYTHON_USEDEP}]
- >=dev-python/jinja2-3.1.6[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4.0.0[${PYTHON_USEDEP}]
- >=dev-python/openai-2.20.0[${PYTHON_USEDEP}]
- >=dev-python/pydantic-2.10.0[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/tiktoken-0.8.0[${PYTHON_USEDEP}]
- ')
- >=sci-ml/tokenizers-0.21.0[${PYTHON_SINGLE_USEDEP}]
-"
-BDEPEND="
- test? (
- $(python_gen_cond_dep '
- >=dev-python/apscheduler-3.11.2[${PYTHON_USEDEP}]
- >=dev-python/backoff-2.2.1[${PYTHON_USEDEP}]
- >=dev-python/boto3-1.43.1[${PYTHON_USEDEP}]
- >=dev-python/fakeredis-2.34.1[${PYTHON_USEDEP}]
- >=dev-python/fastapi-0.136.3[${PYTHON_USEDEP}]
- >=dev-python/fastapi-sso-0.19.0[${PYTHON_USEDEP}]
- dev-python/google-auth[${PYTHON_USEDEP}]
- >=dev-python/mcp-1.26.0[${PYTHON_USEDEP}]
- >=dev-python/openapi-core-0.22.0[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-api-1.28.0[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-exporter-otlp-proto-grpc-1.28.0[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-exporter-otlp-proto-http-1.28.0[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-sdk-1.28.0[${PYTHON_USEDEP}]
- >=dev-python/orjson-3.11.6[${PYTHON_USEDEP}]
- >=dev-python/parameterized-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/prometheus-client-0.20.0[${PYTHON_USEDEP}]
- >=dev-python/pydantic-settings-2.14.1[${PYTHON_USEDEP}]
- >=dev-python/soundfile-0.12.1[${PYTHON_USEDEP}]
- >=dev-python/websockets-15.0.1[${PYTHON_USEDEP}]
- ')
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,mock,recording} respx )
-EPYTEST_RERUNS=10
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
- cp -a "${BUILD_DIR}"/{install,test} || die
-
- local EPYTEST_IGNORE=(
- # missing various packages for the optional proxy function
- # see below
- tests/test_litellm/proxy/
-
- # a2a
- tests/test_litellm/a2a_protocol/
- tests/test_litellm/llms/langflow/test_langflow_a2a.py
-
- # azure-identity
- tests/test_litellm/caching/test_azure_blob_cache.py
- tests/test_litellm/secret_managers/test_get_azure_ad_token_provider.py
- tests/test_litellm/llms/azure/test_azure_common_utils.py
-
- # fastapi-offline
- # tests/test_litellm/proxy/test_fastapi_offline_routes.py
-
- # polars
- tests/test_litellm/integrations/cloudzero/test_cloudzero.py
- tests/test_litellm/integrations/cloudzero/test_cloudzero_database.py
- tests/test_litellm/integrations/cloudzero/test_cz_stream_api.py
- tests/test_litellm/integrations/cloudzero/test_dry_run_endpoint.py
- tests/test_litellm/integrations/cloudzero/test_transform.py
- tests/test_litellm/integrations/focus/test_csv_serializer.py
- tests/test_litellm/integrations/focus/test_focus_database.py
- tests/test_litellm/integrations/focus/test_focus_transformer.py
-
- # prisma
- # tests/test_litellm/proxy/auth/test_auth_exception_handler.py
- # tests/test_litellm/proxy/db/test_exception_handler.py
- # tests/test_litellm/proxy/db/test_exception_handler_reconnect_retry.py
- # tests/test_litellm/proxy/health_endpoints/test_health_endpoints.py
- # tests/test_litellm/proxy/management_endpoints/test_access_group_endpoints.py
- # tests/test_litellm/proxy/management_endpoints/test_config_override_endpoints.py
- # tests/test_litellm/proxy/management_endpoints/test_workflow_management_endpoints.py
-
- # RestrictedPython
- # tests/test_litellm/proxy/guardrails/guardrail_hooks/test_response_rejection_guardrail_code.py
- # tests/test_litellm/proxy/guardrails/test_custom_code_security.py
- # tests/test_litellm/proxy/guardrails/test_guardrail_endpoints.py
- # tests/test_litellm/proxy/management_endpoints/policy_endpoints/test_ai_policy_suggester.py
- # tests/test_litellm/proxy/management_endpoints/policy_endpoints/test_endpoints.py
- # tests/test_litellm/proxy/management_endpoints/test_policy_endpoints.py
- # tests/test_litellm/proxy/policy_engine/test_pipeline_executor.py
-
- # network
- tests/test_litellm/llms/volcengine/test_volcengine_embedding.py
-
- # fail because inspect.getfullargspec(redis.Redis) isn't returning the
- # constructor args (Redis.__init__ is a wrapped function)
- # Fix: https://github.com/BerriAI/litellm/pull/30644
- tests/test_litellm/caching/test_redis_cache.py
- tests/test_litellm/caching/test_redis_connection_pool.py
- tests/test_litellm/test_redis.py
- )
-
- local EPYTEST_DESELECT=(
- # proxy
- tests/test_litellm/integrations/arize/test_arize_otel_coexistence.py::TestProxyLoggerNotOverwritten::test_arize_does_not_set_proxy_otel_logger
- tests/test_litellm/integrations/arize/test_arize_otel_coexistence.py::TestProxyLoggerNotOverwritten::test_arize_phoenix_does_not_set_proxy_otel_logger
- tests/test_litellm/passthrough/test_passthrough_main.py::test_pass_through_request_stream_param_no_override
- tests/test_litellm/passthrough/test_passthrough_main.py::test_pass_through_request_stream_param_override
- tests/test_litellm/llms/anthropic/chat/guardrail_translation/test_anthropic_guardrail_handler.py::TestAnthropicMessagesHandlerInputProcessing::test_process_input_messages_preserves_litellm_metadata_guardrails
-
- # azure-identity
- tests/test_litellm/secret_managers/test_secret_managers_main.py::test_oidc_azure_ad_token_succes
-
- # google-cloud-aiplatform
- tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_gemini_legacy_vertex_stop_finish_reason_normalised
- tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_gemini_legacy_vertex_tool_calls_finish_reason_with_stop_enum
- tests/test_litellm/llms/gemini/test_gemini_common_utils.py::TestGoogleAIStudioTokenCounter::test_clean_contents_for_gemini_api_preserves_other_fields
- tests/test_litellm/llms/gemini/test_gemini_common_utils.py::TestGoogleAIStudioTokenCounter::test_clean_contents_for_gemini_api_removes_id_field
- tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_basic_request
- tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_error_handling
- tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_fake_streaming
- tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_filters_context_management
- tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_filters_stream_and_stream_options
-
- # langfuse
- tests/test_litellm/enterprise/enterprise_callbacks/test_callback_controls.py::TestEnterpriseCallbackControls::test_callback_disabled_langfuse_customlogger
-
- # network (broken mock?)
- tests/test_litellm/llms/custom_httpx/test_credential_leak_prevention.py::TestHTTPHandlerErrorPaths::test_async_raises_masked_error
- tests/test_litellm/test_dashscope_image_generation.py::test_litellm_image_generation_dashscope_end_to_end
-
- # flaky (async issues)
- tests/test_litellm/caching/test_s3_cache.py::test_s3_cache_concurrent_async_operations
- )
-
- # Covered by the BerriAI Enterprise license
- # Our "non-production-use" is implicitly allowed
- # https://github.com/BerriAI/litellm/blob/v1.89.3/enterprise/LICENSE.md
- pushd enterprise >/dev/null || die
- distutils_pep517_install "${BUILD_DIR}"/test
- popd >/dev/null || die
-
- epytest tests/test_litellm
-}
diff --git a/dev-python/litellm/litellm-1.91.1.ebuild b/dev-python/litellm/litellm-1.91.1.ebuild
new file mode 100644
index 000000000000..8465dac32a1d
--- /dev/null
+++ b/dev-python/litellm/litellm-1.91.1.ebuild
@@ -0,0 +1,274 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Lightweight package to seamlessly call OpenAI, Azure, Cohere, Anthropic, etc."
+HOMEPAGE="
+ https://github.com/BerriAI/litellm
+ https://pypi.org/project/litellm/
+"
+SRC_URI="
+ https://github.com/BerriAI/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ test? (
+ https://ai.google.dev/static/api/interactions.openapi.json
+ -> ${P}-openapi-spec.json
+ )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64" # ~arm64: fastapi, tokenizers
+
+CORE_DEPS="
+ $(python_gen_cond_dep '
+ >=dev-python/aiohttp-3.10.0[${PYTHON_USEDEP}]
+ >=dev-python/click-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/fastuuid-0.14.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/importlib-metadata-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.1.6[${PYTHON_USEDEP}]
+ >=dev-python/openai-2.20.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.10.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/tiktoken-0.8.0[${PYTHON_USEDEP}]
+ ')
+ >=sci-ml/tokenizers-0.21.0[${PYTHON_SINGLE_USEDEP}]
+"
+
+PROXY_AND_TEST_DEPS="
+ $(python_gen_cond_dep '
+ >=dev-python/apscheduler-3.11.2[${PYTHON_USEDEP}]
+ >=dev-python/backoff-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/boto3-1.43.1[${PYTHON_USEDEP}]
+ >=dev-python/expression-5.6.0[${PYTHON_USEDEP}]
+ >=dev-python/fastapi-0.136.3[${PYTHON_USEDEP}]
+ >=dev-python/fastapi-sso-0.19.0[${PYTHON_USEDEP}]
+ >=dev-python/mcp-1.26.0[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.11.6[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.13.0[${PYTHON_USEDEP}]
+ >=dev-python/soundfile-0.12.1[${PYTHON_USEDEP}]
+ >=dev-python/starlette-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/websockets-15.0.1[${PYTHON_USEDEP}]
+ ')
+"
+
+# TODO
+# azure-identity>=1.25.2
+# azure-storage-blob>=12.28.0
+# litellm-proxy-extras==0.4.74
+# litellm-enterprise==0.1.44
+# polars>=1.38.1
+# pyroscope-io>=0.8.16
+#
+# staged (pending push to ::guru):
+# >=dev-python/restrictedpython-8.1[${PYTHON_USEDEP}]
+PROXY_DEPS="
+ ${PROXY_AND_TEST_DEPS}
+ $(python_gen_cond_dep '
+ >=dev-python/cryptography-48.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-settings-2.14.1[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.6.2[${PYTHON_USEDEP}]
+ >=dev-python/python-multipart-0.0.27[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
+ >=dev-python/rich-13.9.4[${PYTHON_USEDEP}]
+ >=dev-python/rq-2.7.0[${PYTHON_USEDEP}]
+ >=dev-python/soundfile-0.12.1[${PYTHON_USEDEP}]
+ >=dev-python/starlette-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/uvicorn-0.33.0[${PYTHON_USEDEP}]
+ >=dev-python/uvloop-0.21.0[${PYTHON_USEDEP}]
+ >=dev-python/websockets-15.0.1[${PYTHON_USEDEP}]
+ >=www-servers/gunicorn-23.0.0[${PYTHON_USEDEP}]
+ ')
+"
+
+PROXY_RT_AND_TEST_DEPS="
+ $(python_gen_cond_dep '
+ >=dev-python/prometheus-client-0.20.0[${PYTHON_USEDEP}]
+ ')
+"
+
+# TODO
+# anthropic[vertex]
+# google-cloud-aiplatform>=1.133.0
+# google-genai>=1.37.0
+# langfuse>=2.59.7
+# opentelemetry-instrumentation-fastapi==0.49b0
+# ddtrace>=2.19.0,<3.0",
+# sentry-sdk>=2.21.0
+# mangum>=0.17.0,<1.0
+# azure-ai-contentsafety>=1.0.0
+# azure-storage-file-datalake>=12.20.0
+# llm-sandbox>=0.3.39
+# detect-secrets>=1.5.0
+#
+# omitted transitive dependencies:
+# grpcio, opentelemetry-api
+PROXY_RT_DEPS="
+ ${PROXY_RT_AND_TEST_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/anthropic-0.84.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-grpc-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-http-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-sdk-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/pypdf-6.12.0[${PYTHON_USEDEP}]
+ ')
+"
+
+# TODO
+# pytest-postgresql==7.0.2
+# opentelemetry-instrumentation-fastapi==0.49b0
+# langfuse==2.59.7
+# fastapi-offline==1.7.6
+TEST_DEPS="
+ $(python_gen_cond_dep '
+ >=dev-python/fakeredis-2.34.1[${PYTHON_USEDEP}]
+ >=dev-python/openapi-core-0.22.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-grpc-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-http-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-sdk-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/parameterized-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/psycopg-3.3.3[native-extensions,${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.12.1[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.26.0[${PYTHON_USEDEP}]
+ ')
+"
+
+RDEPEND="
+ ${CORE_DEPS}
+"
+
+# google-auth is a transitive dependency we add to enable a few more tests
+BDEPEND="
+ test? (
+ ${PROXY_AND_TEST_DEPS}
+ ${PROXY_RT_AND_TEST_DEPS}
+ ${TEST_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/google-auth[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,recording} respx )
+EPYTEST_RERUN=10
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # >=dev-python/redis-6
+ sed '/from redis.commands.search.indexDefinition /s/indexDefinition/index_definition/' \
+ -i litellm/caching/valkey_semantic_cache.py
+
+ # patch online test
+ local openapi_spec="${DISTDIR}/${P}-openapi-spec.json"
+ sed -i \
+ '/if __name__ == "__main__":/,/spec = response.json()/ {
+ s|response = .*|import json; f = open("'"${openapi_spec}"'", "r")|
+ s|spec = .*|spec = json.load(f); f.close()|
+ }' tests/test_litellm/interactions/test_openapi_compliance.py || die
+}
+
+python_test() {
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+ cp -a "${BUILD_DIR}"/{install,test} || die
+
+ local EPYTEST_IGNORE=(
+ # proxy
+ tests/test_litellm/proxy/
+
+ # a2a
+ tests/test_litellm/a2a_protocol/
+ tests/test_litellm/llms/langflow/test_langflow_a2a.py
+
+ # azure-identity
+ tests/test_litellm/caching/test_azure_blob_cache.py
+ tests/test_litellm/llms/azure/test_azure_common_utils.py
+ tests/test_litellm/secret_managers/test_get_azure_ad_token_provider.py
+
+ # polars
+ tests/test_litellm/integrations/cloudzero/test_cloudzero.py
+ tests/test_litellm/integrations/cloudzero/test_cloudzero_database.py
+ tests/test_litellm/integrations/cloudzero/test_cz_stream_api.py
+ tests/test_litellm/integrations/cloudzero/test_dry_run_endpoint.py
+ tests/test_litellm/integrations/cloudzero/test_transform.py
+ tests/test_litellm/integrations/focus/test_csv_serializer.py
+ tests/test_litellm/integrations/focus/test_focus_database.py
+ tests/test_litellm/integrations/focus/test_focus_transformer.py
+ tests/test_litellm/integrations/focus/test_transformer.py
+
+ # network
+ tests/test_litellm/llms/volcengine/test_volcengine_embedding.py
+
+ # flaky due to module reloading
+ tests/test_litellm/llms/custom_httpx/test_credential_leak_prevention.py
+ tests/test_litellm/llms/custom_httpx/test_http_handler.py
+ tests/test_litellm/llms/custom_httpx/test_llm_http_handler.py
+
+ # Tests fail because inspect.getfullargspec(redis.Redis) isn't returning
+ # the constructor args (Redis.__init__ is a wrapped function)
+ # Fix: https://github.com/BerriAI/litellm/pull/30644
+ tests/test_litellm/caching/test_redis_cache.py
+ tests/test_litellm/caching/test_redis_connection_pool.py
+ tests/test_litellm/test_redis.py
+ )
+ local EPYTEST_DESELECT=(
+ # azure-identity
+ tests/test_litellm/secret_managers/test_secret_managers_main.py::test_oidc_azure_ad_token_succes
+
+ # google-cloud-aiplatform
+ tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_dispatch_vertex_ai_legacy_function_call
+ tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_dispatch_vertex_ai_legacy_text_and_finish_reason
+ tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_dispatch_vertex_ai_legacy_without_candidates_stringifies_chunk
+ tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_gemini_legacy_vertex_stop_finish_reason_normalised
+ tests/test_litellm/litellm_core_utils/test_streaming_handler.py::test_gemini_legacy_vertex_tool_calls_finish_reason_with_stop_enum
+ tests/test_litellm/llms/gemini/test_gemini_common_utils.py::TestGoogleAIStudioTokenCounter::test_clean_contents_for_gemini_api_preserves_other_fields
+ tests/test_litellm/llms/gemini/test_gemini_common_utils.py::TestGoogleAIStudioTokenCounter::test_clean_contents_for_gemini_api_removes_id_field
+ tests/test_litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/test_vertex_ai_partner_models_anthropic_messages_config.py::test_vertex_claude_completion_does_not_mutate_shared_extra_headers
+ tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_basic_request
+ tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_error_handling
+ tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_fake_streaming
+ tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_filters_context_management
+ tests/test_litellm/llms/vertex_ai/vertex_gemma_models/test_vertex_gemma_transformation.py::TestVertexGemmaCompletion::test_acompletion_filters_stream_and_stream_options
+
+ # polars
+ tests/test_litellm/integrations/focus/test_mavvrik_destination.py::test_catchup_capped_at_max_catchup_days
+ tests/test_litellm/integrations/focus/test_mavvrik_destination.py::test_export_window_passes_max_rows_as_limit
+ tests/test_litellm/integrations/focus/test_mavvrik_destination.py::test_run_scheduled_export_catches_up_missed_dates
+ tests/test_litellm/integrations/focus/test_mavvrik_destination.py::test_run_scheduled_export_no_catchup_when_marker_is_current
+ tests/test_litellm/integrations/focus/test_mavvrik_destination.py::test_run_scheduled_export_skips_catchup_when_marker_is_unparseable
+
+ # langfuse
+ tests/test_litellm/enterprise/enterprise_callbacks/test_callback_controls.py::TestEnterpriseCallbackControls::test_callback_disabled_langfuse_customlogger
+
+ # git
+ tests/test_litellm/test_budget_ratchet_check.py::test_ref_is_commit_distinguishes_real_from_bogus
+ tests/test_litellm/test_budget_ratchet_check.py::test_load_base_reads_a_present_file_and_none_for_an_absent_one
+
+ # flaky (async ordering issues)
+ tests/test_litellm/caching/test_s3_cache.py::test_s3_cache_async_set_cache_pipeline
+ tests/test_litellm/caching/test_s3_cache.py::test_s3_cache_concurrent_async_operations
+
+ # network
+ tests/test_litellm/llms/bedrock/chat/agentcore/test_agentcore_transformation.py::TestAgentCoreStreamingJsonFallback::test_async_streaming_malformed_json_raises_error
+ tests/test_litellm/llms/bedrock/chat/agentcore/test_agentcore_transformation.py::TestAgentCoreStreamingJsonFallback::test_async_streaming_with_json_response
+ )
+
+ # Covered by the BerriAI Enterprise license
+ # Our "non-production-use" is implicitly allowed
+ # https://github.com/BerriAI/litellm/blob/v1.89.3/enterprise/LICENSE.md
+ pushd enterprise >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+
+ epytest --import-mode=importlib tests/test_litellm
+}
diff --git a/dev-python/lmdb/Manifest b/dev-python/lmdb/Manifest
index 90ede3deb7b9..cac65e4fca99 100644
--- a/dev-python/lmdb/Manifest
+++ b/dev-python/lmdb/Manifest
@@ -1,2 +1,4 @@
DIST lmdb-2.2.1.tar.gz 938665 BLAKE2B f89d62b84779ddc72f4f5b3b7cfbb0c34c5fe321f2279d96ed6a1d4c9e5f717677c902967def0bb334cf29b670e650768cbf0b0e60c53c4ec84f2dcfb334c293 SHA512 3a20a20e0efbf8dd242a7a76c3966595c33b98d6af53f5bd38ad7c39dcbba9ab87333ae09b50ae31cd7098d3eecdce23736f000a08097a4ce345a8aa272d000d
DIST lmdb-2.2.1.tar.gz.provenance 10020 BLAKE2B 58a00d5855ad8830d37dfb981e0412c9e173cfba0a8a006631a585748adf97cbc47c0cf9aa463ccc526c9719aa06b5c35170cd071671a0ebc06a1c43917bae4f SHA512 6382771cd752f2dbedbee0990a869c37aad24b7039aa20f45d8011e51734690d71e476f7f4608a04dd9450262ab68f20994a4f8b0bcc0d5c4764e4f1b2a06b56
+DIST lmdb-2.3.0.tar.gz 954381 BLAKE2B 165ac0c2a3494947d986278087f145ed8d8e1b8f41ac6da6002619e5719c6154b9b75d8b46cfa226cc8bf3afe1b8cfe0e1398808bda2f56d2d0f01080ef27674 SHA512 4e9dc23af060e20b402b8a69bb253f06f0ac9d68e09fd74a70f189f59b5b6661a9ec297bd748568717702c1316f81854407490f184f7f9a1dbaf23705f20fdc8
+DIST lmdb-2.3.0.tar.gz.provenance 9973 BLAKE2B bcca679a170150b9e09f3506f94a0eb735f7332aac98e680a6691ed376d8122f582ef893e6c3f1607c4abb0b9568fff7757a2d0e9924322968dc1804bbc2849b SHA512 1ff24b819e1645ebe24822d744f6cfe34570cce0f5ef639353d304bea06612302d6154ac7dffc39e6ca00426da22fe8baca97d0f6c1662ef8ba39265b955db97
diff --git a/dev-python/lmdb/lmdb-2.3.0.ebuild b/dev-python/lmdb/lmdb-2.3.0.ebuild
new file mode 100644
index 000000000000..82a3ad5dbe7e
--- /dev/null
+++ b/dev-python/lmdb/lmdb-2.3.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/jnwatson/py-lmdb
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for the Lightning Database"
+HOMEPAGE="
+ https://github.com/jnwatson/py-lmdb/
+ https://pypi.org/project/lmdb/
+"
+
+LICENSE="OPENLDAP"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+# cffi is used only on pypy, so no dep
+DEPEND="
+ >=dev-db/lmdb-0.9.28:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+export LMDB_FORCE_SYSTEM=1
+
+python_test() {
+ rm -rf lmdb || die
+ epytest tests
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove temporary files
+ find "${D}" -name '*.o' -delete || die
+ find "${D}" -depth -type d -empty -delete || die
+}
diff --git a/dev-python/lmnr/Manifest b/dev-python/lmnr/Manifest
new file mode 100644
index 000000000000..ab00441f7c66
--- /dev/null
+++ b/dev-python/lmnr/Manifest
@@ -0,0 +1 @@
+DIST lmnr-python-0.7.52.gh.tar.gz 3699962 BLAKE2B 12a29bdd6161f127bcbcd5bdf20a1e91dd3e3b4ac1dbf1d0f30ffebe03d209ab0cafb1eebd4bbd570015b664438b3f842e17e98c97c1a0c7785e58d64b163b3b SHA512 1600aa3eb117f075130d56682373ab05eae0f33db1bd2ab68d5c3040b77d93bbf8497cd49fc3dcce6f05609bbb6d92b4f2faa50ce48114952a9acd5f6d98d70c
diff --git a/dev-python/lmnr/lmnr-0.7.52.ebuild b/dev-python/lmnr/lmnr-0.7.52.ebuild
new file mode 100644
index 000000000000..e70079b71c44
--- /dev/null
+++ b/dev-python/lmnr/lmnr-0.7.52.ebuild
@@ -0,0 +1,111 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_PN="lmnr-python"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Python SDK for Laminar"
+HOMEPAGE="
+ https://github.com/lmnr-ai/lmnr-python
+ https://pypi.org/project/lmnr/
+"
+SRC_URI="
+ https://github.com/lmnr-ai/${MY_PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/grpcio-1[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-api-1.39.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-grpc-1.39.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-exporter-otlp-proto-http-1.39.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-instrumentation-0.54_beta0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-instrumentation-threading-0.54_beta0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-sdk-1.39.0[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-semantic-conventions-0.60_beta1[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-semantic-conventions-ai-0.4.13[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-22.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.0.3[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.0[${PYTHON_USEDEP}]
+ >=dev-python/tenacity-8.0[${PYTHON_USEDEP}]
+ >=dev-python/tqdm-4.0[${PYTHON_USEDEP}]
+"
+# FIXME keyword litellm and dependencies for arm64
+BDEPEND="
+ test? (
+ >=dev-python/anthropic-0.95.0[${PYTHON_USEDEP}]
+ >=dev-python/boto3-1.28.57[${PYTHON_USEDEP}]
+ !arm64? (
+ $(python_gen_any_dep '
+ >=dev-python/litellm-1.85.2[${PYTHON_SINGLE_USEDEP}]
+ ')
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,recording,sugar} )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # missing optional deps
+ tests/test_google_genai.py
+ tests/test_instrumentations/test_claude_agent/
+ tests/test_langchain.py
+ tests/test_instrumentations/test_groq/
+ tests/test_instrumentations/test_openai_agents/
+ )
+ local EPYTEST_DESELECT=(
+ # google-genai
+ tests/test_utils.py::test_merge_text_parts_empty_list
+ tests/test_utils.py::test_merge_text_parts_consecutive_strings
+ tests/test_utils.py::test_merge_text_parts_consecutive_part_objects
+ tests/test_utils.py::test_merge_text_parts_consecutive_part_dicts
+ tests/test_utils.py::test_merge_text_parts_mixed_types
+ tests/test_utils.py::test_merge_text_parts_with_non_text_part
+ tests/test_utils.py::test_merge_text_parts_with_function_call
+ tests/test_utils.py::test_merge_text_parts_multiple_non_text_parts
+ tests/test_utils.py::test_merge_text_parts_only_non_text_parts
+ tests/test_utils.py::test_merge_text_parts_single_text_part
+ tests/test_utils.py::test_merge_text_parts_with_file_object
+ tests/test_utils.py::test_merge_text_parts_trailing_text_only
+ tests/test_utils.py::test_merge_text_parts_leading_non_text
+
+ # langchain-openai
+ tests/test_observe_concurrency.py::test_observe_threadpool_parallel_spans_with_langchain
+ tests/test_tracing.py::test_use_span_with_auto_instrumentation_langchain
+ tests/test_tracing_concurrency.py::test_threadpool_parallel_spans_with_langchain
+
+ # network
+ tests/test_instrumentations/test_openai/traces/test_chat.py::test_chat_exception
+ tests/test_instrumentations/test_openai/traces/test_chat.py::test_chat_async_exception
+ tests/test_instrumentations/test_openai/traces/test_chat_parse.py::test_parsed_completion_exception
+ tests/test_instrumentations/test_openai/traces/test_chat_parse.py::test_async_parsed_completion_exception
+ tests/test_instrumentations/test_openai/traces/test_completions.py::test_completion_streaming
+ tests/test_instrumentations/test_openai/traces/test_completions.py::test_completion_exception
+ tests/test_instrumentations/test_openai/traces/test_completions.py::test_async_completion_exception
+ tests/test_instrumentations/test_openai/traces/test_embeddings.py::test_embeddings_exception
+ tests/test_instrumentations/test_openai/traces/test_embeddings.py::test_async_embeddings_exception
+ )
+
+ if ! has_version "dev-python/litellm[${PYTHON_SINGLE_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/test_litellm.py
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/lmnr/metadata.xml b/dev-python/lmnr/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/lmnr/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/lxml/Manifest b/dev-python/lxml/Manifest
index 9f573ba16b5b..85bf62da8b58 100644
--- a/dev-python/lxml/Manifest
+++ b/dev-python/lxml/Manifest
@@ -1,2 +1 @@
-DIST lxml-6.1.0.gh.tar.gz 992616 BLAKE2B bf0269bb5d757fb91e586b73436a2502b86ba23a4f09143d1af5131ba4d8fbec57cd5ce0804113a8d258c6312f17404b0d67992722f19b9544610bf26f7caf7b SHA512 c738958839f9fb627ede8c4758b849d60be5210617fb2f4d9d2072f9f724a54d63648964b8716b0e23eaba044d77d02e621579c7aaee53fa2e30bc206a4a8534
DIST lxml-6.1.1.gh.tar.gz 995492 BLAKE2B 0ddb8b59ad1c6fa237830fed00ee5fd8626930a25baa08ab8343530568ae2917dfc2c8bd72a2f700ac62a1420db628ef63a86178790e4405844ccfd271ca3bdb SHA512 c8bd3825f5b15af8a39b7e0a11b114ad67bcfcaf8fd08928e34918ea194525d26fa498057a30a014e452817d78a839bea7cf5221f089ae8ba0d4f5f4527dc62d
diff --git a/dev-python/lxml/lxml-6.1.0.ebuild b/dev-python/lxml/lxml-6.1.0.ebuild
deleted file mode 100644
index c8a269d1e40a..000000000000
--- a/dev-python/lxml/lxml-6.1.0.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
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 optfeature toolchain-funcs
-
-DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
-HOMEPAGE="
- https://lxml.de/
- https://pypi.org/project/lxml/
- https://github.com/lxml/lxml/
-"
-SRC_URI="
- https://github.com/lxml/lxml/archive/${P}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/lxml-${P}
-
-LICENSE="BSD ElementTree GPL-2 PSF-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
-IUSE="doc examples +threads test"
-RESTRICT="!test? ( test )"
-
-# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
-DEPEND="
- >=dev-libs/libxml2-2.10.3:=
- >=dev-libs/libxslt-1.1.38
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- >=dev-python/cython-3.1.4[${PYTHON_USEDEP}]
- doc? (
- $(python_gen_any_dep '
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/pygments[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
- ')
- )
- test? (
- dev-python/cssselect[${PYTHON_USEDEP}]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-6.0.4-pypy.patch"
-)
-
-python_check_deps() {
- use doc || return 0
- python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" &&
- python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" &&
- python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" &&
- python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
-}
-
-python_prepare_all() {
- # don't use some random SDK on Darwin
- sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \
- setupinfo.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_compile() {
- local DISTUTILS_ARGS=(
- # by default it adds -w to CFLAGS
- --warnings
- )
- tc-export PKG_CONFIG
- distutils-r1_python_compile
-}
-
-python_compile_all() {
- # disable automagic dep on coverage
- use doc && emake CYTHON_WITH_COVERAGE= html
-}
-
-python_test() {
- local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml
- local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
-
- cp -al "${BUILD_DIR}"/{install,test} || die
- cp -al src/lxml/tests "${dir}/" || die
- cp -al src/lxml/html/tests "${dir}/html/" || die
- mkdir "${dir}"/../../doc || die
- # this one needs to be copied, because upstream uses doc/../../../doc
- cp -r "${S}"/doc "${dir}"/../../ || die
- ln -s "${S}"/doc "${dir}"/../../../../ || die
-
- "${EPYTHON}" test.py --no-src -vv --all-levels -p ||
- die "Tests fail on ${EPYTHON}"
-}
-
-python_install_all() {
- if use doc; then
- local DOCS=( README.rst *.txt doc/*.txt )
- local HTML_DOCS=( doc/html/. )
- fi
- if use examples; then
- dodoc -r samples
- fi
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4
- optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect
- optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean
-}
diff --git a/dev-python/mcp/Manifest b/dev-python/mcp/Manifest
index 0adec0a72e14..a666e1ec46ee 100644
--- a/dev-python/mcp/Manifest
+++ b/dev-python/mcp/Manifest
@@ -1,2 +1,2 @@
-DIST mcp-1.26.0.tar.gz 608005 BLAKE2B d1dd8dd2cbe38574a9a7a6e7e9369e5944a63b750ed932c1b7751e171f06dca7f95db7f76dd0d9cc4b049baa3c945bc1074efd9e1a583dd41e183b40bdce5f7e SHA512 3de0c77f0fe580065a92be570528d1e56839973e79c035616008f186a0ff0eec85fdb10d1b3b3adb36f1ad0d52adb41fd5360873cb73c9271c33ada351549f12
-DIST mcp-1.26.0.tar.gz.provenance 9789 BLAKE2B a2457a56ac3ad700805a886606199d4053c532cf2ac202ca1713d83b3c9f2a88557174e54da4bc710b55ff85478ac738e47c1dd86ed4f0f089e95241d36525c7 SHA512 c38d1125b8049bccdfeccb686ffe324d6b1bac5b38fe96089f5652e34e1c38247c1d2c07e8ffed7ae849d580b15dba4eee1c9f5cf049ee608e3ce94ad6baacc1
+DIST mcp-1.28.1.tar.gz 638501 BLAKE2B 8aed47464fdd3a8214fd3344ab4b81965c6d9b287b91919771484cb8049b2db4d92ee434894ad2e42be5fe9812018ec38a256af75bd071e727d82404ecaab435 SHA512 565cc9e6f17f031d864a346c3aa98b6b2c139b4672f6bfb82675e3bc23ce5adb295783563b964d9d0a62c307f1bae239add7d90ef7b48e0d95caaa0c75bad405
+DIST mcp-1.28.1.tar.gz.provenance 10257 BLAKE2B 681b37aa9fadfd67f12df90a312a09f3722fbc7c927d5aa9dae9a81daaae83f7f561a0b06b3dd5c2c69b4896e9fce37843310f0b4ef2c09c439e59e171f01481 SHA512 1f11a3981b523f390a94e7a0c387d499a5ebc5b7008ed385398a30770719ddede3482d4a6b7a94713952b34caa8cb14c2771cf7de7d16ed8dc2d10a150f6bfc8
diff --git a/dev-python/mcp/mcp-1.26.0.ebuild b/dev-python/mcp/mcp-1.28.1.ebuild
index 1f0d4ba074e5..a533d4761857 100644
--- a/dev-python/mcp/mcp-1.26.0.ebuild
+++ b/dev-python/mcp/mcp-1.28.1.ebuild
@@ -19,39 +19,35 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="cli"
-REQUIRED_USE="test? ( cli )"
+# >=cryptography-3.4.0 via pywt[crypto] (>=pyjwt-2.10.1)
RDEPEND="
- >=dev-python/anyio-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/anyio-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.4.0[${PYTHON_USEDEP}]
>=dev-python/httpx-0.27.1[${PYTHON_USEDEP}]
>=dev-python/httpx-sse-0.4.0[${PYTHON_USEDEP}]
>=dev-python/jsonschema-4.20.0[${PYTHON_USEDEP}]
>=dev-python/pydantic-2.12.0[${PYTHON_USEDEP}]
>=dev-python/pydantic-settings-2.5.2[${PYTHON_USEDEP}]
>=dev-python/pyjwt-2.10.1[${PYTHON_USEDEP}]
- >=dev-python/cryptography-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.0.0[${PYTHON_USEDEP}]
>=dev-python/python-multipart-0.0.9[${PYTHON_USEDEP}]
- >=dev-python/sse-starlette-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/starlette-0.27.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.13.0[${PYTHON_USEDEP}]
+ >=dev-python/typer-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.9.0[${PYTHON_USEDEP}]
>=dev-python/typing-inspection-0.4.1[${PYTHON_USEDEP}]
+ >=dev-python/sse-starlette-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/starlette-0.48.0[${PYTHON_USEDEP}]
>=dev-python/uvicorn-0.31.1[${PYTHON_USEDEP}]
- cli? (
- >=dev-python/python-dotenv-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/typer-0.16.0[${PYTHON_USEDEP}]
- )
"
BDEPEND="
test? (
- >=dev-python/python-dotenv-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/dirty-equals-0.9.0[${PYTHON_USEDEP}]
>=dev-python/rich-13.9.4[${PYTHON_USEDEP}]
- >=dev-python/typer-0.16.0[${PYTHON_USEDEP}]
>=dev-python/websockets-15.0.1[${PYTHON_USEDEP}]
)
"
-EPYTEST_PLUGINS=( anyio )
+EPYTEST_PLUGINS=( anyio inline-snapshot )
EPYTEST_XDIST=1
distutils_enable_tests pytest
@@ -61,20 +57,11 @@ EPYTEST_IGNORE=(
tests/test_examples.py
)
EPYTEST_DESELECT=(
- # TODO Tests have changed significantly/moved in master; re-check on vbump
- # Fails due to changes in schema generation in newer Pydantic versions (v1.26.0)
- tests/server/fastmcp/test_func_metadata.py::test_structured_output_unserializable_type_error
- # Runs dev-python/uv and requires network access (v1.26.0)
+ # Runs dev-python/uv and requires network access (v1.28.1)
tests/client/test_config.py::test_command_execution
- # Fails for an unknown reason (wrong response type) (v1.26.0)
- tests/shared/test_streamable_http.py::test_json_response
)
pkg_postinst() {
optfeature "colorized log output" dev-python/rich
optfeature "WebSockets support" dev-python/websockets
}
-
-python_test() {
- epytest -o asyncio_mode=auto
-}
diff --git a/dev-python/mcp/metadata.xml b/dev-python/mcp/metadata.xml
index 05004dc31217..20f07fe1573a 100644
--- a/dev-python/mcp/metadata.xml
+++ b/dev-python/mcp/metadata.xml
@@ -5,8 +5,5 @@
<email>falbrechtskirchinger@gmail.com</email>
<name>Florian Albrechtskirchinger</name>
</maintainer>
- <use>
- <flag name="cli">Install dependencies required for the Command Line Interface</flag>
- </use>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild b/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild
index 872366f3d95d..f3bd69d53ff1 100644
--- a/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild
+++ b/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/nethsm/Manifest b/dev-python/nethsm/Manifest
index ca613b615bb8..0257a4003850 100644
--- a/dev-python/nethsm/Manifest
+++ b/dev-python/nethsm/Manifest
@@ -1 +1 @@
-DIST nethsm-2.1.0.gh.tar.gz 307311 BLAKE2B 704e102348dbe93f00b38c19f500bd5c30b98e0b7d52f4cd7a8d54adbbf4960aa506b2ec7930cf93219a4dc3b37ad748ab92523833d0a1f57b52541fc655ddc7 SHA512 ee2f37b548cc0737dbb2e07793e7ecec781580f95a1679bfdcda62acf15a1e3e28ef175b90ca1323a5585a53c5110925146a6e5553971475665df8b385eb913a
+DIST nethsm-2.1.2.gh.tar.gz 296521 BLAKE2B e1b034fe620b905aa705dd1dc4fbf3d43bbdef57027f5f290f8479e27558524a2bb80270e04068176f0f660b4e478f1af0c8b162737eba9dfaac9215c0223cf2 SHA512 e7e01bd6b45f2db49a2bb89f6b47b6bf7e74e71f2128bbb373f83b774d41b6d3054c1ecba4058066ea8ae024bcbcad04ec05741cb75edbdf8278aa61436c4a1c
diff --git a/dev-python/nethsm/nethsm-2.1.0.ebuild b/dev-python/nethsm/nethsm-2.1.2.ebuild
index 1451d6c1ef9a..e27b15deab86 100644
--- a/dev-python/nethsm/nethsm-2.1.0.ebuild
+++ b/dev-python/nethsm/nethsm-2.1.2.ebuild
@@ -21,7 +21,6 @@ KEYWORDS="~amd64"
RDEPEND="
dev-python/certifi[${PYTHON_USEDEP}]
>=dev-python/cryptography-41[${PYTHON_USEDEP}]
- =dev-python/python-dateutil-2*[${PYTHON_USEDEP}]
=dev-python/typing-extensions-4*[${PYTHON_USEDEP}]
=dev-python/urllib3-2*[${PYTHON_USEDEP}]
"
diff --git a/dev-python/openai/Manifest b/dev-python/openai/Manifest
index cab0dd560388..dc682265788a 100644
--- a/dev-python/openai/Manifest
+++ b/dev-python/openai/Manifest
@@ -1,10 +1,5 @@
-DIST npm-@stdy-cli-cli-0.19.7.tgz 7773 BLAKE2B 6ddc9db08ab06ef1ece58d3aeaf27517319a399262a63caa06e2d13a1bd8c83fac298a451f0ea57a71aaf9c4120f4efb742308106498d492d2593a4b58e04151 SHA512 ba4758dbe0d32e7c9994471713d0ae9a0967813bd1ec8fbce88247c2582ea248196f7858b56ce76e0716e016d5366b42700a78b603626d8de00e5a92599e009e
DIST npm-@stdy-cli-cli-0.22.1.tgz 7776 BLAKE2B ec66af59c4c864a4331dc7918ed0a82d452579427663c3666b94d6008e769cb8a61d00e1971a394c326ca180da7f3009597b15d4c6bea8d169bda56c87ae21fb SHA512 55d9c2a0afddd09588853a1a8c1c4075a813a4b097ff34dded18ae2b529d4f5d90e29667ffe792f7b82af78fa3bfa4db88c77ef5259e39db100a86a0a4b98d7c
-DIST npm-@stdy-cli-linux-arm64-cli-linux-arm64-0.19.7.tgz 36812291 BLAKE2B b0c8fba73598ce1e6aa824ffefd237eb35875879308820ef1aeeba9ba80378ef346ef9ffd40107b1b9d7754cd8acac1076d74a55fddbf3cbad9881cb8b19b0be SHA512 8b9cb95aadbbba48b2531451cf991b9d067b6ef697a38ff2b3df72d82d3967c1ab1e29274dee23283557c47e881ee0cb12e5223163d1fec06ecea96fdaecfda4
DIST npm-@stdy-cli-linux-arm64-cli-linux-arm64-0.22.1.tgz 37635112 BLAKE2B f749d99342d9cffb831f0feea34ed74301a3beea7ec4c7e46cd5b942cacfea4b10c28632cc3e38a0ac00b565c2ca5889cb6587fcccb75f1557fa29dace58a343 SHA512 5c6432dd9a85e423aa4600151b109da16f5dcf19dfc710920070869a1a4573ea557e941c6077cf72736199686994c09eae24d4c8228b246fbf7c67728e2eded9
-DIST npm-@stdy-cli-linux-x64-cli-linux-x64-0.19.7.tgz 37584041 BLAKE2B b9b6bee19fdf51c985d907b7dc8638ab3d3ebf88083794fb0d39a5f6c64beffbaf321cd71fc2869812092c0504fa47e3b889d0ffe483622fd215d214e4c1645e SHA512 2719af63c71ad21293bd3cac5d19f6b0ca960d0888026d9ffa5a62467d5d434d8937edb0ce90d467fdd348ba40b6f96a3ccd5e9c6b551b75a7de79d5fcc40df1
DIST npm-@stdy-cli-linux-x64-cli-linux-x64-0.22.1.tgz 38431354 BLAKE2B f6b49ce9f79ad98de58f6f01874e5ae03f728f062b09b91b092f1410e1bf3d2874d25dfb30038291429043eeffc4c5e3183e7e9307c6fb889521008b981df4f9 SHA512 bbbe7cd48dec73a47e3d4c0692f1056ef0ffc3a617bd193e893d0122658a3ed298036e9c3cfd7a96003b82abaeded00493eddcf581a7e71854a6109cf7a68b4a
DIST openai-openapi-spec-2.44.0.yml 2333764 BLAKE2B f96a21463f43efd8e4930e91fae4f48b4be28ed497223374d3402a22a7f1fc1644deb89ce613901dde2a05c1ac92551406ebc8a99c58bf014698f3932565da77 SHA512 0a1c51e2a330f05c91f76646c7efc02633632524db0a18cf2eabbac9147ecbe60083b1e5789b0e3efd445cbebf34b48c025d4f640e4948289c44c8d2c4ef52ba
-DIST openai-openapi-spec-v2.3.0.yml 2167549 BLAKE2B f4f87bbaf33689e8f1336ad4ea78d39302c7b4c457ab47a164936f3e4056068d9a49e5bc54e47d196123c12da7b033f0c018c22ce8bef3a6fa7504dbd8f758ac SHA512 23ac527df45040575a5f9b020af0971a86acf1cc296eda538a39b003692277ba86b7d6d477eff0466e9178a2d8271a3374692aecad4e6b6ecd29c5bcae64947d
-DIST openai-python-2.29.0.gh.tar.gz 691490 BLAKE2B ce5dd047bc178d10e2505733e532b0e45bf604ce940902bed8656f41bfcdbdbdf61af91aaca30f1fc2e4175002d53a4c4b0c70ee8385e2e065d125e7f661faf6 SHA512 9bc5d9dbb747920412c1f73bbdcc36f6450dd0c4a245fde1e397864376816181823d92886ae4eb87fbee09e098fedeee8785602198deebd037a5f7bc520d2596
DIST openai-python-2.44.0.gh.tar.gz 1017643 BLAKE2B bedd273b0e790b331c20244ae967a5082f878db1764451a47a6fbdedb71dd72c18f075d63e6cd2500bd4a6e95521034f5280cb5aa08ef06b0bfc09738cbdce6a SHA512 c0ae402fb6e60499220416c010ab3ce7f89c755f9ab04f61465c6b5033c339a1a94c971fe6af2eaf926d2d08a76d7270f249eb07f580978fe23a0aaa436e3d47
diff --git a/dev-python/openai/openai-2.29.0.ebuild b/dev-python/openai/openai-2.29.0.ebuild
deleted file mode 100644
index 618d4a419ff8..000000000000
--- a/dev-python/openai/openai-2.29.0.ebuild
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-# See https://github.com/openai/openai-python/blob/main/.stats.yml
-API_SPEC_BASE="https://storage.googleapis.com/stainless-sdk-openapi-specs"
-API_SPEC="openai-openapi-spec-v2.3.0.yml"
-MY_PN="openai-python"
-STDY_PV=0.19.7
-DESCRIPTION="The official Python library for the openai API"
-HOMEPAGE="
- https://github.com/openai/openai-python
- https://pypi.org/project/openai/
-"
-SRC_URI="
- https://github.com/openai/${MY_PN}/archive/refs/tags/v${PV}.tar.gz
- -> ${MY_PN}-${PV}.gh.tar.gz
-
- test? (
- ${API_SPEC_BASE}/openai%2Fopenai-00994178cc8e20d71754b00c54b0e4f5b4128e1c1cce765e9b7d696bd8c80d33.yml
- -> ${API_SPEC}
-
- https://registry.npmjs.org/@stdy/cli/-/cli-${STDY_PV}.tgz
- -> npm-@stdy-cli-cli-${STDY_PV}.tgz
-
- amd64? (
- https://registry.npmjs.org/@stdy/cli-linux-x64/-/cli-linux-x64-${STDY_PV}.tgz
- -> npm-@stdy-cli-linux-x64-cli-linux-x64-${STDY_PV}.tgz
- )
-
- arm64? (
- https://registry.npmjs.org/@stdy/cli-linux-arm64/-/cli-linux-arm64-${STDY_PV}.tgz
- -> npm-@stdy-cli-linux-arm64-cli-linux-arm64-${STDY_PV}.tgz
- )
- )
-"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- >=dev-python/anyio-3.5.0[${PYTHON_USEDEP}]
- >=dev-python/distro-1.7.0[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.23.0[${PYTHON_USEDEP}]
- >=dev-python/jiter-0.10.0[${PYTHON_USEDEP}]
- >=dev-python/pydantic-1.9.0[${PYTHON_USEDEP}]
- dev-python/sniffio[${PYTHON_USEDEP}]
- >=dev-python/tqdm-4.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.14[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
- test? (
- dev-python/dirty-equals[${PYTHON_USEDEP}]
- dev-python/distro[${PYTHON_USEDEP}]
- dev-python/httpx-aiohttp[${PYTHON_USEDEP}]
- net-libs/nodejs[npm]
- net-misc/curl
- )
-"
-
-EPYTEST_PLUGINS=(
- inline-snapshot
- nest-asyncio
- pytest-{asyncio,xdist}
- respx
- time-machine
-)
-distutils_enable_tests pytest
-
-src_unpack() {
- unpack "${MY_PN}-${PV}.gh.tar.gz"
-}
-
-src_test() {
- einfo "Assembling npm cache..."
-
- local -x npm_config_cache="${WORKDIR}/npm-cache"
- mkdir -p "${npm_config_cache}" || die
-
- for distfile in ${A}; do
- if [[ "${distfile}" == npm-* ]]; then
- npm cache add "${DISTDIR}/${distfile}" &>/dev/null || die
- fi
- done
-
- einfo "Installing mock server..."
-
- local mock_dir="${WORKDIR}/mock-server"
- mkdir -p "${mock_dir}" || die
-
- cp "${FILESDIR}/${PN}-2.29.0-mock-server-package.json" \
- "${mock_dir}/package.json" || die
- cp "${FILESDIR}/${PN}-2.29.0-mock-server-package-lock.json" \
- "${mock_dir}/package-lock.json" || die
-
- local mock_dir="${WORKDIR}/mock-server"
- local mock="${mock_dir}/node_modules/.bin/steady"
-
- pushd "${mock_dir}" >/dev/null || die
-
- npm ci &>/dev/null || die
-
- einfo "Starting mock server..."
-
- # Replicate the logic from scripts/mock --daemon
- "${mock}" --host 127.0.0.1 -p 4010 \
- --validator-form-array-format=brackets \
- --validator-query-array-format=brackets \
- --validator-form-object-format=brackets \
- --validator-query-object-format=brackets \
- "${DISTDIR}/${API_SPEC}" &> .stdy.log &
- local mock_pid=$!
-
- is_mock_running() {
- local -a args
- readarray -d '' args < "/proc/${mock_pid}/cmdline" 2>/dev/null || return 1
- [[ "${args[1]}" == "${mock}" ]]
- }
-
- local attempts=0
- while ! curl -sf "http://127.0.0.1:4010/_x-steady/health" &>/dev/null; do
- if ! is_mock_running; then
- cat .stdy.log
- die "Mock server failed to start"
- fi
- attempts=$((attempts + 1))
- if (( attempts >= 300 )); then
- cat .stdy.log
- die "Timed out waiting for mock server to start"
- fi
- sleep 0.1
- done
-
- # Oops; connected to another Steady instance running on 4010
- is_mock_running || die
-
- popd >/dev/null || die
-
- nonfatal distutils-r1_src_test
- local ret=${?}
-
- if is_mock_running; then
- einfo "Stopping mock server..."
- kill "${mock_pid}" || die
- fi
-
- [[ ${ret} -ne 0 ]] && die
-}
-
-python_test() {
- epytest -o asyncio_mode=auto
-}
diff --git a/dev-python/openai/openai-2.44.0.ebuild b/dev-python/openai/openai-2.44.0.ebuild
index f87c9ccfc949..b0c7575698f5 100644
--- a/dev-python/openai/openai-2.44.0.ebuild
+++ b/dev-python/openai/openai-2.44.0.ebuild
@@ -6,7 +6,7 @@ EAPI=8
DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1 pypi
+inherit distutils-r1
# See https://github.com/openai/openai-python/blob/main/.stats.yml
API_SPEC_BASE="https://storage.googleapis.com/stainless-sdk-openapi-specs/openai"
@@ -129,7 +129,9 @@ src_test() {
is_mock_running() {
local -a args
readarray -d '' args < "/proc/${mock_pid}/cmdline" 2>/dev/null || return 1
- [[ "${args[1]}" == "${mock}" ]]
+
+ # Check args[1] (native) or args[2] (QEMU user-mode emulation)
+ [[ "${args[1]}" == "${mock}" || "${args[2]}" == "${mock}" ]]
}
local attempts=0
diff --git a/dev-python/peewee/Manifest b/dev-python/peewee/Manifest
index 9b70d9e6e105..02e1e4268744 100644
--- a/dev-python/peewee/Manifest
+++ b/dev-python/peewee/Manifest
@@ -4,3 +4,4 @@ DIST peewee-4.0.9.gh.tar.gz 1002262 BLAKE2B 456af69c3d57d2e8344080cf40845163c9d0
DIST peewee-4.1.0.gh.tar.gz 1002833 BLAKE2B 65d8317829f59aa67b2650bd8e690e99f291d0bb8383a5945b16387c0c6a313236ec0b9654e8c81faf868208b41e4776d1d5dc1b2ce220aefd5215c4bed8b4a8 SHA512 c24e46e339b84e68db86efb2a39bc4c15a6620dd91c6c28ecf982bcf74499febdc878707bc35cfe49dbee960ab88d2162032cfd57057adcf212da8119910d747
DIST peewee-4.1.1.gh.tar.gz 1035158 BLAKE2B 653ce44483664b81563b8e755ffc54cbf1295e932881c8c89df3f09c06e9fcc74a3544a6e6eaa400090c43bb3485a96aab8c99e8ec1e2be596491bc6a86eb915 SHA512 5d2451f791b6221418269f6c3fd87dd4f374d665f8d960e28763db8bcc45f690d75c935dc89c6b5a350b58bdf899155d0a32bc6e720d50db1731152fba9fdd62
DIST peewee-4.1.2.gh.tar.gz 1046776 BLAKE2B 8a66ea828ad669db4d20cce089e485f75b9f792bc94fea8a1a1d46f9391e062f89c33cb2e7a34aae84645580967c586d4efff067d1aa4d7cfd6cc1da01fe90e9 SHA512 4a384817a8b3a146ac818b7327cc1ef4a02c0322409353ac29f64d9c66e1e6eeebb226db67fa6e4754662e82307b0abaa57b7526faa4dc7d90d911b8cc3094e9
+DIST peewee-4.2.1.gh.tar.gz 1052835 BLAKE2B 1e6600f93622b06ab83b049f6f0ba0791c61e0027c9d00fd6c66a7619176b6be13fd50e655bf233c62247834f9804df338a5cbb8dfac5a9e384f54bafdc3fd8e SHA512 14fef860da92f7408047a24b2faaa9e1941072ff293044d610971ad5a8fafdc9c72f1784a57258529e769e81438a1c47ed42a784f1f7a41bffa563c1a956fd90
diff --git a/dev-python/peewee/peewee-4.2.1.ebuild b/dev-python/peewee/peewee-4.2.1.ebuild
new file mode 100644
index 000000000000..354b1a91f483
--- /dev/null
+++ b/dev-python/peewee/peewee-4.2.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+DESCRIPTION="Small Python ORM"
+HOMEPAGE="
+ https://github.com/coleifer/peewee/
+ https://pypi.org/project/peewee/
+"
+SRC_URI="
+ https://github.com/coleifer/peewee/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ native-extensions? ( dev-db/sqlite:3= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-db/postgresql
+ dev-python/psycopg:0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+src_prepare() {
+ default
+
+ # disable test failing on postgres 16
+ sed -e 's/test_timeout/_&/' -i tests/sqliteq.py || die
+}
+
+src_compile() {
+ if ! use native-extensions; then
+ local -x NO_SQLITE=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+src_test() {
+ initdb -D "${T}"/pgsql || die
+ pg_ctl -w -D "${T}"/pgsql start -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" peewee_test || die
+ psql -h "${T}" peewee_test -c 'create extension hstore;' || die
+
+ local -x PEEWEE_PSQL_HOST="${T}"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ "${EPYTHON}" runtests.py -v 2 || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && DOCS=( examples/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pfzy/Manifest b/dev-python/pfzy/Manifest
new file mode 100644
index 000000000000..d3d2db2403d9
--- /dev/null
+++ b/dev-python/pfzy/Manifest
@@ -0,0 +1 @@
+DIST pfzy-0.3.4.tar.gz 8396 BLAKE2B 62c3cd0a2ec9e430fa91e159e550eb3feae610a4a07646e5f3221c479c8d58b660dfc7ed8345d5e9a857aa01a39ee36400ce2849051af54ff91e2d35eb9d03cf SHA512 5ec3dfb8ab62bcf3018d6a3cf09158c25079d10ee657f7b9c094d4cfa948994148ac5710d701f505fc73ed51aeb5866eca1b3981bf7777e4d6aae36b05888385
diff --git a/dev-python/pfzy/metadata.xml b/dev-python/pfzy/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/pfzy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/pfzy/pfzy-0.3.4.ebuild b/dev-python/pfzy/pfzy-0.3.4.ebuild
new file mode 100644
index 000000000000..3bf3aef4a1c8
--- /dev/null
+++ b/dev-python/pfzy/pfzy-0.3.4.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python port of the fzy fuzzy string matching algorithm"
+HOMEPAGE="
+ https://github.com/kazhala/pfzy
+ https://pypi.org/project/pfzy/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
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 b2f449e8ddc5..2ebb88a06a54 100644
--- a/dev-python/poetry-core/poetry-core-2.4.1.ebuild
+++ b/dev-python/poetry-core/poetry-core-2.4.1.ebuild
@@ -57,11 +57,23 @@ python_test() {
return
fi
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python*t)
+ EPYTEST_DESELECT+=(
+ # tests not adjusted for freethreading tags
+ tests/masonry/builders/test_complete.py::test_wheel_c_extension
+ tests/masonry/builders/test_wheel.py::test_tag
+ )
+ ;;
+ esac
+
# 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 )
+ # NB: xdist breaks test collection
epytest
}
diff --git a/dev-python/posthog/Manifest b/dev-python/posthog/Manifest
index e89a26b5c431..b29bcc248229 100644
--- a/dev-python/posthog/Manifest
+++ b/dev-python/posthog/Manifest
@@ -1,2 +1,2 @@
-DIST posthog-7.19.2.gh.tar.gz 3853161 BLAKE2B 6b22ed9e84e5c03dcb9ba25966f11bee074b5c3273febb8c7bc65c4e024d4365bdab082ef6c032525e747b05602721a31fe7d86ee3e3b72d5f5d1b8febf1d2c4 SHA512 e25a26a01422dd6ef9118e298f83bbe3e384172e7cc18816a67a11e865ab905c495754b835ee4887f874cf6d5826a8e7fdfed1c382a12e71c99831976ee876ec
DIST posthog-7.21.0.gh.tar.gz 4026210 BLAKE2B 2e180d4c265898fbb374410e45586fd6198cff810cd8f435d7f074b7914910e774d9e15e832d6b33d3f4ac298f8247bcf4070c24fcb7905aec34a0717ae0f256 SHA512 e4f9b33b54d6395b142ab718bfa793999ca795fccef075a591ed2c07a74cee87e850313167297e1436de705fd670eae7ca91290ec73d3446de245412e1c0276e
+DIST posthog-7.22.1.gh.tar.gz 4130713 BLAKE2B 327d68ae63093ff86cd0ce07fa9e79ed590ac1544ea7676e90cd342f7a780f333349149ef2c9d197f6e286a053ef43c3c8f8bbb7d99c180ec6d6e2ca950eb9db SHA512 2d240219b2fd3025eb8555aa752d3692a7a258be743ea141f10249351a1448c0b44905749755d4e8fa2a6e14f9d0d5adb0fc6d369117614c1f9619c62b2bc709
diff --git a/dev-python/posthog/posthog-7.19.2.ebuild b/dev-python/posthog/posthog-7.22.1.ebuild
index 658fc3ec7e99..8bb2058a9a6e 100644
--- a/dev-python/posthog/posthog-7.19.2.ebuild
+++ b/dev-python/posthog/posthog-7.22.1.ebuild
@@ -13,9 +13,9 @@ HOMEPAGE="
https://github.com/PostHog/posthog-python
https://pypi.org/project/posthog/
"
-SRC_URI="https://github.com/PostHog/posthog-python/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
+SRC_URI="https://github.com/PostHog/posthog-python/archive/refs/tags/posthog-v${PV}.tar.gz -> ${P}.gh.tar.gz"
-S="${WORKDIR}/posthog-python-${PV}"
+S="${WORKDIR}/posthog-python-posthog-v${PV}"
LICENSE="MIT"
SLOT="0"
@@ -33,17 +33,22 @@ DEPEND="${RDEPEND}"
BDEPEND="
test? (
${RDEPEND}
+ dev-python/cachetools[${PYTHON_USEDEP}]
dev-python/django[${PYTHON_USEDEP}]
+ dev-python/fastmcp[${PYTHON_USEDEP}]
dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mcp[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
dev-python/opentelemetry-exporter-otlp-proto-http[${PYTHON_USEDEP}]
dev-python/opentelemetry-sdk[${PYTHON_USEDEP}]
dev-python/parameterized[${PYTHON_USEDEP}]
dev-python/pydantic[${PYTHON_USEDEP}]
+ dev-python/zstandard[${PYTHON_USEDEP}]
)
"
EPYTEST_DESELECT=(
+ "posthog/test/test_consumer.py::TestConsumer::test_message_only_error_logs_include_posthog_prefix"
"posthog/test/test_consumer.py::TestConsumer::test_request"
"posthog/test/test_consumer.py::TestConsumer::test_upload"
"posthog/test/test_exception_capture.py::test_excepthook"
diff --git a/dev-python/pydocket/Manifest b/dev-python/pydocket/Manifest
index fed6e672502e..de1b229402f4 100644
--- a/dev-python/pydocket/Manifest
+++ b/dev-python/pydocket/Manifest
@@ -1,2 +1,2 @@
-DIST pydocket-0.21.1.tar.gz 399652 BLAKE2B f9ab6e069368fd1939b323d7e12fe9be954af0920ca12058b3dad12dabab48abe6f6227bbf34fe9f24adca1dd6274ac9866b8f9b62da8a2ad971708687dcba68 SHA512 350dbd2003db4dc3525ba6c2e6150857061d3fb0cdc46a3fce6f3fcfe61f0056f456a4d549efba3ef4c5d6070a8c4ad6af3327ef2173de10dc866a52e0089f5d
-DIST pydocket-0.22.0.tar.gz 407557 BLAKE2B f451435dfe9c76090e2d2af37321747d79e3b7b5869370a92cd09735cfa1490b0eb140890834715c445ecc67a85085d7148416c6ab51681671f58b31e4dd52d2 SHA512 49f8acfbce87ac90114463d40dcf5f6dffd76e350eef87f185d643eca3edddfc3b2b49ad444b6e737454968c8648def0577df9fbf2059e69e2f706689f234bc3
+DIST pydocket-0.23.0.tar.gz 424266 BLAKE2B 0fee0a9428216eeb0266b22bcaa3d23d185070634d4e6970bdd8df2db3ce00982faa4f111a128e7cd3a465706352ab8da45334a9e8a9c4b247c9731c639ff5b6 SHA512 15a7a4627fe19bd19fd1a84f5ce220e8761cd4226cd4aa1d71846c845821c068f04fda4a5cd627d00471740c78a9720bd806c9f99d90f2bd65f13f17f27d4e19
+DIST pydocket-0.23.0.tar.gz.provenance 9776 BLAKE2B aa0b313e6300a090880d9b337c3b190dbc6fc5d873127394bc8dd3e9754dd119c145b2de6ba0e3f90d940a07480d21fe9d50f8d95fd36056d6ab286404480118 SHA512 12f7e6644d9d59034134809b862a1a2608c2b1652971ae7613545c7bbf2a48147fa248bfe5b3ac2923c26747c575eb794069e71f3edb496c95e69e94867c55ce
diff --git a/dev-python/pydocket/pydocket-0.21.1.ebuild b/dev-python/pydocket/pydocket-0.21.1.ebuild
deleted file mode 100644
index c3bfcb73a0a4..000000000000
--- a/dev-python/pydocket/pydocket-0.21.1.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="A distributed background task system for Python functions"
-HOMEPAGE="
- https://docket.lol/
- https://github.com/chrisguidry/docket
- https://pypi.org/project/pydocket/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- >=dev-python/burner-redis-0.1.7[${PYTHON_USEDEP}]
- >=dev-python/cloudpickle-3.1.1[${PYTHON_USEDEP}]
- >=dev-python/cronsim-2.6[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-api-1.33.0[${PYTHON_USEDEP}]
- >=dev-python/prometheus-client-0.21.1[${PYTHON_USEDEP}]
- >=dev-python/py-key-value-aio-0.3.0[${PYTHON_USEDEP}]
- >=dev-python/python-json-logger-2.0.7[${PYTHON_USEDEP}]
- >=dev-python/redis-5[${PYTHON_USEDEP}]
- >=dev-python/rich-13.9.4[${PYTHON_USEDEP}]
- >=dev-python/typer-0.15.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}]
- >=dev-python/uncalled-for-0.3.2[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- test? (
- >=dev-python/docker-7.1.0[${PYTHON_USEDEP}]
- >=dev-python/opentelemetry-sdk-1.33.0[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # requires dev-python/opentelemetry-exporter-prometheus
- tests/instrumentation/test_export.py::test_exports_metrics_as_prometheus_metrics
-
- # fails with xdist
- tests/instrumentation/test_tracing.py::test_admission_blocked_span_has_ok_status
-)
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # no coverage
- sed -i \
- -e '/--cov/d' \
- -e '/--numprocesses/d' \
- -e '/--maxprocesses/d' \
- pyproject.toml || die
- rm tests/sitecustomize.py || die
-}
-
-python_test() {
- local -x REDIS_VERSION="memory"
- epytest
-}
-
-pkg_postinst() {
- optfeature "metrics" dev-python/opentelemetry-sdk
-}
diff --git a/dev-python/pydocket/pydocket-0.22.0.ebuild b/dev-python/pydocket/pydocket-0.23.0.ebuild
index c3bfcb73a0a4..bdcf20f6d939 100644
--- a/dev-python/pydocket/pydocket-0.22.0.ebuild
+++ b/dev-python/pydocket/pydocket-0.23.0.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/chrisguidry/docket
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1 optfeature pypi
@@ -48,9 +49,6 @@ distutils_enable_tests pytest
EPYTEST_DESELECT=(
# requires dev-python/opentelemetry-exporter-prometheus
tests/instrumentation/test_export.py::test_exports_metrics_as_prometheus_metrics
-
- # fails with xdist
- tests/instrumentation/test_tracing.py::test_admission_blocked_span_has_ok_status
)
src_prepare() {
diff --git a/dev-python/pyopenssl/Manifest b/dev-python/pyopenssl/Manifest
index e808b1d17321..90afc883e642 100644
--- a/dev-python/pyopenssl/Manifest
+++ b/dev-python/pyopenssl/Manifest
@@ -1,6 +1,2 @@
-DIST pyopenssl-26.1.0.tar.gz 186181 BLAKE2B 047bfcbcd21bb00bb8ae6d2e39c30f21f3925971fb199ef50d7fea4d12b3edbb9af0d74bce828f8b10a3d7f4b6739a6ba62ec3d9ae52ee83ccf8445b9b056ec8 SHA512 084117296b7013d665d7f30705b26ad5dd2758febfc7080ae656328d40a2e992b74c52abcc39b9243bc9a918b4611f1f497e56928a5789ffc63c0b521357eb9c
-DIST pyopenssl-26.1.0.tar.gz.provenance 9212 BLAKE2B 2a0d770895ffd4d306f87a15b273233f3297741fc4ab0032f176d76319bdd8997868ceebdf6e6f75a4d169a69a3304de236809fe864d31374c830d4f8749bda1 SHA512 6542d8fb16868c390600c452ef99f05b831645dcf78ec0aba5a71b0504a88a5b0ac2f4467d776423ec5cc97f36020e35904a5f01d9418d69695dfc45850117a6
-DIST pyopenssl-26.2.0.tar.gz 182195 BLAKE2B aa86a2869e83fc133f0a608b6769199ecc57f7a9847dda018266c6be9fd34fb89c258eef42f42cc7f7fb392799bbe6a297148dd627d81bfccda9bc20b0b44e46 SHA512 701f205adad7384731710f572b48a41af87ea4ba7c7111421962e01079407f3e7b289dd5972feec80a6d182b818ee39e45c88464108589b16fe8239c19080265
-DIST pyopenssl-26.2.0.tar.gz.provenance 9306 BLAKE2B 114c21eafc21fcde8f3d12f84826a819d134d5ca357d9928073654027077e2cee7795200611e12d1900923e1084aff56880f39baa8f2b5badc46830adb5d8a31 SHA512 8976149e09e1dda78292578c53aa9d988004cff346a0f602fd1373c3fb209a86a3f0db3a3e5e9ae0b252275e1448e8190076a1811ff48b3ba7873cb438eb7d00
DIST pyopenssl-26.3.0.tar.gz 182024 BLAKE2B f683028e0735b0b5517ae6a7b3cfd65da76280a5acbd2f9c0896972e69656a2afa8023a7c144498dde021e95733081ba1934d76ef474a5d80de972da9566789f SHA512 b3f98a1d2b7ad85606dc38a85449b89660049384b4914b0c66465f0bceafa5b26316223bf41dd2929cd36091e871d2226d06d0d84c969835bc199632c882b484
DIST pyopenssl-26.3.0.tar.gz.provenance 9624 BLAKE2B 501c0a5a517886847555dd0f8eb6384cf7e815b08a01e972989af70f2d753bb6c7159dabb6f5d7fb068375bbeea38d831a1fa6d328df0426a05589fa180c9843 SHA512 3de2c37148c12033d582c5a54de487cbb2b8b8be3edef111e230725d6caf2d8d3ae4c6f1ca35546fd3cc3b23cc42bfa84b35d0d3aa52f217011670e2bd8627c5
diff --git a/dev-python/pyopenssl/pyopenssl-26.1.0.ebuild b/dev-python/pyopenssl/pyopenssl-26.1.0.ebuild
deleted file mode 100644
index aad2387434d3..000000000000
--- a/dev-python/pyopenssl/pyopenssl-26.1.0.ebuild
+++ /dev/null
@@ -1,60 +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=pyOpenSSL
-PYPI_VERIFY_REPO=https://github.com/pyca/pyopenssl
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 toolchain-funcs pypi
-
-DESCRIPTION="Python interface to the OpenSSL library"
-HOMEPAGE="
- https://www.pyopenssl.org/
- https://github.com/pyca/pyopenssl/
- https://pypi.org/project/pyOpenSSL/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- <dev-python/cryptography-48[${PYTHON_USEDEP}]
- >=dev-python/cryptography-46.0.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.9[${PYTHON_USEDEP}]
- ' 3.{11..12})
-"
-BDEPEND="
- test? (
- $(python_gen_cond_dep '
- dev-python/cffi[${PYTHON_USEDEP}]
- ' 'python*')
- dev-python/pretend[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_sphinx doc \
- dev-python/sphinx-rtd-theme
-EPYTEST_PLUGINS=( pytest-rerunfailures )
-distutils_enable_tests pytest
-
-src_test() {
- local -x TZ=UTC
- local EPYTEST_DESELECT=(
- tests/test_ssl.py::TestContext::test_set_default_verify_paths
- )
-
- if ! tc-has-64bit-time_t; then
- einfo "time_t is smaller than 64 bits, will skip broken tests"
- EPYTEST_DESELECT+=(
- tests/test_crypto.py::TestX509StoreContext::test_verify_with_time
- )
- fi
-
- distutils-r1_src_test
-}
diff --git a/dev-python/pyopenssl/pyopenssl-26.2.0.ebuild b/dev-python/pyopenssl/pyopenssl-26.2.0.ebuild
deleted file mode 100644
index 90c6a34941bb..000000000000
--- a/dev-python/pyopenssl/pyopenssl-26.2.0.ebuild
+++ /dev/null
@@ -1,60 +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=pyOpenSSL
-PYPI_VERIFY_REPO=https://github.com/pyca/pyopenssl
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 toolchain-funcs pypi
-
-DESCRIPTION="Python interface to the OpenSSL library"
-HOMEPAGE="
- https://www.pyopenssl.org/
- https://github.com/pyca/pyopenssl/
- https://pypi.org/project/pyOpenSSL/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- <dev-python/cryptography-49[${PYTHON_USEDEP}]
- >=dev-python/cryptography-46.0.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.9[${PYTHON_USEDEP}]
- ' 3.{11..12})
-"
-BDEPEND="
- test? (
- $(python_gen_cond_dep '
- dev-python/cffi[${PYTHON_USEDEP}]
- ' 'python*')
- dev-python/pretend[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_sphinx doc \
- dev-python/sphinx-rtd-theme
-EPYTEST_PLUGINS=( pytest-rerunfailures )
-distutils_enable_tests pytest
-
-src_test() {
- local -x TZ=UTC
- local EPYTEST_DESELECT=(
- tests/test_ssl.py::TestContext::test_set_default_verify_paths
- )
-
- if ! tc-has-64bit-time_t; then
- einfo "time_t is smaller than 64 bits, will skip broken tests"
- EPYTEST_DESELECT+=(
- tests/test_crypto.py::TestX509StoreContext::test_verify_with_time
- )
- fi
-
- distutils-r1_src_test
-}
diff --git a/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild b/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild
index 9306f1c6de53..8df3db49363c 100644
--- a/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild
+++ b/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.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
@@ -54,7 +54,7 @@ python_configure_all() {
DISTUTILS_ARGS=(
--jobs="$(makeopts_jobs)"
- --qmake="$(qt6_get_bindir)"/qmake
+ --qmake="$(qt_get_broot_binary 6 qmake)"
--qmake-setting="$(qt6_get_qmake_args)"
--verbose
diff --git a/dev-python/pyqt6-webengine/pyqt6-webengine-6.11.0.ebuild b/dev-python/pyqt6-webengine/pyqt6-webengine-6.11.0.ebuild
index 32cb2358a1c6..debbcf6ebb3b 100644
--- a/dev-python/pyqt6-webengine/pyqt6-webengine-6.11.0.ebuild
+++ b/dev-python/pyqt6-webengine/pyqt6-webengine-6.11.0.ebuild
@@ -54,7 +54,7 @@ python_configure_all() {
DISTUTILS_ARGS=(
--jobs="$(makeopts_jobs)"
- --qmake="$(qt6_get_bindir)"/qmake
+ --qmake="$(qt_get_broot_binary 6 qmake)"
--qmake-setting="$(qt6_get_qmake_args)"
--verbose
diff --git a/dev-python/pyqt6/pyqt6-6.10.2.ebuild b/dev-python/pyqt6/pyqt6-6.10.2.ebuild
index a7ec61a12bf7..dc46ffe1a452 100644
--- a/dev-python/pyqt6/pyqt6-6.10.2.ebuild
+++ b/dev-python/pyqt6/pyqt6-6.10.2.ebuild
@@ -123,7 +123,7 @@ python_configure_all() {
DISTUTILS_ARGS=(
--jobs="$(makeopts_jobs)"
- --qmake="$(qt6_get_bindir)"/qmake
+ --qmake="$(qt_get_broot_binary 6 qmake)"
--qmake-setting="$(qt6_get_qmake_args)"
--verbose
--confirm-license
diff --git a/dev-python/pyqt6/pyqt6-6.11.0.ebuild b/dev-python/pyqt6/pyqt6-6.11.0.ebuild
index 1a103f24bb03..d6ad3585c1e0 100644
--- a/dev-python/pyqt6/pyqt6-6.11.0.ebuild
+++ b/dev-python/pyqt6/pyqt6-6.11.0.ebuild
@@ -128,7 +128,7 @@ python_configure_all() {
DISTUTILS_ARGS=(
--jobs="$(makeopts_jobs)"
- --qmake="$(qt6_get_bindir)"/qmake
+ --qmake="$(qt_get_broot_binary 6 qmake)"
--qmake-setting="$(qt6_get_qmake_args)"
--verbose
--confirm-license
diff --git a/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild b/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild
index 157b845af4f8..c202df7cf10e 100644
--- a/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild
+++ b/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild
@@ -39,7 +39,7 @@ BDEPEND="
>=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
>=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
>=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/python-openstackclient-5.3.0[${PYTHON_USEDEP}]
+ >=dev-python/python-openstackclient-10.1.0[${PYTHON_USEDEP}]
)
"
@@ -49,9 +49,6 @@ src_prepare() {
# This test requires tempest which has been removed.
rm --force manilaclient/tests/unit/test_functional_utils.py
- # Not sure what's happened here.
- sed --in-place --expression='s/FakeIdentityClient/FakeIdentityv3Client/g' manilaclient/tests/unit/osc/v2/fakes.py
-
distutils-r1_src_prepare
}
diff --git a/dev-python/referencing/referencing-0.37.0.ebuild b/dev-python/referencing/referencing-0.37.0.ebuild
index 1ddb21d8d251..fd722d087eb6 100644
--- a/dev-python/referencing/referencing-0.37.0.ebuild
+++ b/dev-python/referencing/referencing-0.37.0.ebuild
@@ -24,7 +24,7 @@ RDEPEND="
>=dev-python/rpds-py-0.7.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/typing-extensions-4.4.0[${PYTHON_USEDEP}]
- ' 3.{11..12})
+ ' 3.12)
"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild b/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild
index 705970537491..c2f088413491 100644
--- a/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild
+++ b/dev-python/rfc3987/rfc3987-1.3.8-r3.ebuild
@@ -21,9 +21,7 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390
# dev-python/regex doesn't support pypy. The package falls back to re and has most
# functionality without it.
RDEPEND="
- $(python_gen_cond_dep '
- dev-python/regex[${PYTHON_USEDEP}]
- ' 'python*')
+ dev-python/regex[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
diff --git a/dev-python/rich-rst/Manifest b/dev-python/rich-rst/Manifest
index 786247bb7f5e..2c0f6b788e85 100644
--- a/dev-python/rich-rst/Manifest
+++ b/dev-python/rich-rst/Manifest
@@ -1 +1 @@
-DIST rich-rst-2.0.1.gh.tar.gz 3101267 BLAKE2B be4a5ab4b563906a2368199c7c91b3971f37ae6de5ebf2e36e328fb4b218c327e542c58b9545d13fe4f1420828c3f6f9e306c97aea2971274cc6f2088bf3a3a8 SHA512 eff9936a2bcb27beb3b7eaeb63dedc5b3c97bc59a8c904ca665d4379595cb8415e2c6d91c4c7f9aa35346317357ebfb4db256096cbbad03aad55598d6f86a09b
+DIST rich-rst-2.1.0.gh.tar.gz 3107306 BLAKE2B 8b566e000974532a103884680af18493360a77f49beee4ff9e4fe9f7a19d5476d14a204d82d7331d730376cfabb9c732843503b4ff280fb4eaed88a56ba4fc29 SHA512 1f9d7f4763c44138125c18a2759a25597c1b8fc354ea1b67356b4a63186eb44938b1760e62a7e9233ef0d6f68adfce8f2eb50f075767237b2eedd51f5f5fe60f
diff --git a/dev-python/rich-rst/rich-rst-2.0.1.ebuild b/dev-python/rich-rst/rich-rst-2.1.0.ebuild
index 00de6bfe59f8..6b4dfd7633a3 100644
--- a/dev-python/rich-rst/rich-rst-2.0.1.ebuild
+++ b/dev-python/rich-rst/rich-rst-2.1.0.ebuild
@@ -20,7 +20,7 @@ SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
- dev-python/docutils[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.0.0[${PYTHON_USEDEP}]
>=dev-python/rich-12.0.0[${PYTHON_USEDEP}]
"
diff --git a/dev-python/scikit-build-core/Manifest b/dev-python/scikit-build-core/Manifest
index 3127518cc8c4..0d66fd66a130 100644
--- a/dev-python/scikit-build-core/Manifest
+++ b/dev-python/scikit-build-core/Manifest
@@ -6,3 +6,5 @@ DIST scikit_build_core-1.0.1.tar.gz 468128 BLAKE2B 7b2ba289a5e79a8b1a71432e3ebab
DIST scikit_build_core-1.0.1.tar.gz.provenance 9823 BLAKE2B 93694a5ed43fcc0cee035a2c19a39da00531a1f1e9a30983061b018ecbf971d142915b3e4e7baa7feda85b5c3ed6cdc641a79c4b5515447d800d8e7f36b6c382 SHA512 9dfdf575d24f80cae3f534a7a1e5334f1cf60867a09e747afba8bf56c534f48b64ee5d97aa77af6e1c076c9d180ff52a90adaa381195fcd1dec48693c4696e33
DIST scikit_build_core-1.0.2.tar.gz 469825 BLAKE2B 11abd8868155e046a0c25b1b2596e2993cd13749c94b236005366e8eb8fbe7fe8b4a6965e54e5b2322a633602cf19d820dec2b2c90015cbc01962ed84ff1cf0b SHA512 9c2986e755b1ac1ace4c77033053084494551b9a41fbae5896f4a9cb9491e68bada713723b454c9a27c1abae214cc0de834c78805c2d8fb55d58ab95114a0b3d
DIST scikit_build_core-1.0.2.tar.gz.provenance 10011 BLAKE2B c1c9d40f30db12f204447fa487c79ec5aaf2b6361d1a39bc4dfeb4d2188ff6b2f60294d7d3396630c6bb5c3071d29cfa4a5a5c77d9c66a56add636ca322b7fc1 SHA512 e68f3c66e62ab402d5eca861e7711cad3726e33d7378a79c0dbd3b78f31b0ead88d41928669f6cedfbf7372d7e00265e2344a1e6f59d093c0d75ba056efe13d9
+DIST scikit_build_core-1.0.3.tar.gz 477539 BLAKE2B c06ccb744e5c0ebe6afef33425d1442e7e515b5209ab76ee9891776cb75b31a5f01c847056c3df68ae0464f4417e48f1a2a863252f2d8f43b0a0563bf1b15aac SHA512 84f73b5133750ed09804e9cfde48435cd533881948320613c425c42820b78d19a1041f8354a3fb385745bd2036a569dc04b393aea6cb93fd4cc289ed837c8b18
+DIST scikit_build_core-1.0.3.tar.gz.provenance 9921 BLAKE2B 19e77a7d1ba1fa8c0b46933494427a3c8ebe41a865e2a6e9dca2781a2e2b634c69034df110c62c97ff144c5d03c0d05296a044be90966a8d7b64bccf9611325b SHA512 313a5a7fe184725a9b18a7a53950ce05cf128c87c10d93698e75f9aac236d55d609430003778e8207e80c9386d73337edc52fa35c14c5d8727d0b37276db7377
diff --git a/dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild b/dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild
new file mode 100644
index 000000000000..96f33014caf2
--- /dev/null
+++ b/dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2023-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/scikit-build/scikit-build-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Build backend for CMake based projects"
+HOMEPAGE="
+ https://github.com/scikit-build/scikit-build-core/
+ https://pypi.org/project/scikit-build-core/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+# we always want [pyproject] extra
+RDEPEND="
+ app-alternatives/ninja
+ dev-build/cmake
+ >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.12.0[${PYTHON_USEDEP}]
+ >=dev-python/pyproject-metadata-0.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ >=dev-python/cattrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/fastjsonschema[${PYTHON_USEDEP}]
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-subprocess )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # needs unpackaged validate_pyproject
+ tests/test_schema.py
+ )
+
+ epytest -m "not isolated and not network"
+}
diff --git a/dev-python/simplejson/Manifest b/dev-python/simplejson/Manifest
index 90a23da8fc44..734c5ee67f05 100644
--- a/dev-python/simplejson/Manifest
+++ b/dev-python/simplejson/Manifest
@@ -1,8 +1,2 @@
-DIST simplejson-3.20.2.tar.gz 85784 BLAKE2B f4ccb67d50aa0c9462fa205d7960e0b255c12bbe2dba7dec5b6ecd989604166690122af11c0a21b55272272131ea0cc5c8d1edabf8cfbceedc1af9abfea10227 SHA512 78e5066d75752797e39da5627c3deeedbcaf98aaf62444123b05e9b7cc251a8c1e21b8c45137f6cbcfed3052f569401d9e2120e8625721737f66dc6dae273416
-DIST simplejson-3.20.2.tar.gz.provenance 9593 BLAKE2B 5e7116d4f28837f3cf05acb63f8fb5c3ee544687db9ec38f35e5453ea50468b56b43310f0fe0411a83012addb75b286ed9670a51ca32a3658c389f3132f418fa SHA512 7390b763448d0b6450b59528213197a79a230eb8030fc5f3cf72e55a2a3e084ea40b077d009e2cdcdeb1b3025fb032f8118eec0be93241a2266dc2c143b0edae
-DIST simplejson-4.0.1.tar.gz 115959 BLAKE2B 6e882ac33343552c472e4fe045c09d73d6e1d3dbe99bc8e3b915d35d989311858055961d453e2650b52d30c7c1720cd8432b6c439d58bfab8cad006b05ba221c SHA512 eeeb67a2266abea57d6ecd3cfc29d741ae899059fc918f9b92029138c864a20d73a85d9d451a7dfdef417da13270b794e81c28e4ed92f82f8ce68f712a931acc
-DIST simplejson-4.0.1.tar.gz.provenance 9422 BLAKE2B af77b146445c6b9db0dacd7bed5644bc21bb8d84245f1b4e93003859a690006b027beddc4a3ca1924c5e38348368004116e6ad0216facc78499c22845769b89b SHA512 1aa9c8491d900a2371b1a6bf99151094205999612f92a6d0fe43589208df7573f1df9d0f5e19c02f84ff08055a356552bf6be7c6d79e46514a14d0a82d5d5dd1
-DIST simplejson-4.1.0.tar.gz 118653 BLAKE2B 2451f491567664d4aac9ff6bbbe3e379042c174297a1e46b6b38085235faffb33e02384bd4c085d870f1f6b0cee5d7648b666e7fb0cd50d6a1e3abb2f87636a4 SHA512 1cc9a34cc4f3217fda7b46ed38119827508051e3ef0f3e8f13c794c24446b553f198ddc06a94363ed70ba60032edd13aede7c40d323f8d27657735bb662589cc
-DIST simplejson-4.1.0.tar.gz.provenance 9383 BLAKE2B 93e6890550cbc1cdc89fca50ae1a1a867f70a5884d2d9e0795dea2bdad1a339c8ef0b626a5aab250e32653dd7cea819d8c95330ec5d4e7cc98aeee63f87d4e86 SHA512 19cbe306c8c85409a9aaea42e149fd5bf8ed9252f8d70850ea0fc3c28f31c379105542c0e4a1b5f9e9c61c6c061ebb69e33a91a88add301a43adf3ee54b25af8
DIST simplejson-4.1.1.tar.gz 118860 BLAKE2B 75af5b57638bb5282bf9f81ea26422bbe3d687155eb88f782300f723c8ce116537d5cf16c51e2d2424ba2100e4db10b075faec4d81347ab6e2ee2363d90d8837 SHA512 1690a070738aa8609170d9a329c2f9cb489e9e24de8058ed5e243327f21b02aab1d0b638a2306331d21b2f0b5021c591d40cacb00f8c94957928790caf95bfca
DIST simplejson-4.1.1.tar.gz.provenance 9802 BLAKE2B fa57f47ac3183ad9fe5c75af0fd3c24355ce8b5c93d8f010d9363d041c8b49774d027b7eee15fc77da16f9b4e6b6745c74b513480798536997fb253ab3175e50 SHA512 464d7479ea42f0ca4e9626a7d2013a1a954f97333c7774c0633a7c68073b25bd8f0e821d8aa71f3138c64016e6f18761f420778858dff470fd10bb38bc373b52
diff --git a/dev-python/simplejson/simplejson-3.20.2.ebuild b/dev-python/simplejson/simplejson-3.20.2.ebuild
deleted file mode 100644
index dd002189bb0b..000000000000
--- a/dev-python/simplejson/simplejson-3.20.2.ebuild
+++ /dev/null
@@ -1,38 +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/simplejson/simplejson
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Simple, fast, extensible JSON encoder/decoder for Python"
-HOMEPAGE="
- https://github.com/simplejson/simplejson/
- https://pypi.org/project/simplejson/
-"
-
-LICENSE="|| ( MIT AFL-2.1 )"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="+native-extensions"
-
-DOCS=( README.rst CHANGES.txt )
-
-distutils_enable_tests unittest
-
-src_configure() {
- # native-extensions are always disabled on PyPy
- # https://github.com/simplejson/simplejson/blob/master/setup.py#L121
- export DISABLE_SPEEDUPS=$(usex native-extensions 0 1)
- use native-extensions && export REQUIRE_SPEEDUPS=1
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- eunittest
-}
diff --git a/dev-python/simplejson/simplejson-4.0.1.ebuild b/dev-python/simplejson/simplejson-4.0.1.ebuild
deleted file mode 100644
index dd002189bb0b..000000000000
--- a/dev-python/simplejson/simplejson-4.0.1.ebuild
+++ /dev/null
@@ -1,38 +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/simplejson/simplejson
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Simple, fast, extensible JSON encoder/decoder for Python"
-HOMEPAGE="
- https://github.com/simplejson/simplejson/
- https://pypi.org/project/simplejson/
-"
-
-LICENSE="|| ( MIT AFL-2.1 )"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="+native-extensions"
-
-DOCS=( README.rst CHANGES.txt )
-
-distutils_enable_tests unittest
-
-src_configure() {
- # native-extensions are always disabled on PyPy
- # https://github.com/simplejson/simplejson/blob/master/setup.py#L121
- export DISABLE_SPEEDUPS=$(usex native-extensions 0 1)
- use native-extensions && export REQUIRE_SPEEDUPS=1
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- eunittest
-}
diff --git a/dev-python/simplejson/simplejson-4.1.0.ebuild b/dev-python/simplejson/simplejson-4.1.0.ebuild
deleted file mode 100644
index dd002189bb0b..000000000000
--- a/dev-python/simplejson/simplejson-4.1.0.ebuild
+++ /dev/null
@@ -1,38 +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/simplejson/simplejson
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Simple, fast, extensible JSON encoder/decoder for Python"
-HOMEPAGE="
- https://github.com/simplejson/simplejson/
- https://pypi.org/project/simplejson/
-"
-
-LICENSE="|| ( MIT AFL-2.1 )"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="+native-extensions"
-
-DOCS=( README.rst CHANGES.txt )
-
-distutils_enable_tests unittest
-
-src_configure() {
- # native-extensions are always disabled on PyPy
- # https://github.com/simplejson/simplejson/blob/master/setup.py#L121
- export DISABLE_SPEEDUPS=$(usex native-extensions 0 1)
- use native-extensions && export REQUIRE_SPEEDUPS=1
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- eunittest
-}
diff --git a/dev-python/standardwebhooks/Manifest b/dev-python/standardwebhooks/Manifest
new file mode 100644
index 000000000000..59d2dc45f4a0
--- /dev/null
+++ b/dev-python/standardwebhooks/Manifest
@@ -0,0 +1,2 @@
+DIST standardwebhooks-1.0.1.tar.gz 5103 BLAKE2B f9859cf581b19f655f1cac27f3ba2b7d746e313447da1f9af0e98c00e551c547c07c256469626a3f46463b39cc091d46c5c35dc7c21e02349a50b6954fb4a98c SHA512 5b96701260b1597664b2d3a09efa366a7c4cdbc759873be327e35a1525a0940a0fe1dacfee87dfbbbdb2361cf0a218122e84bb937efc4413568b9e29b3f4a998
+DIST standardwebhooks-1.0.1.tar.gz.provenance 9930 BLAKE2B f47ce7b47e9eb011ccc89a8b160d2fa5e8f178601833b8d00d502c2dc91596269254659a3221014782188d70ef897b60b2e2caef6a9aaeb8edd505517935b5cb SHA512 4209dc85c9db300a87099089ee176c4a51d691ce8329f4364f262ecf90d6090b8f0de723d8484d38c3e2471fb2d293cdf3ea4176ee59b2a4c809c1097780d61d
diff --git a/dev-python/standardwebhooks/metadata.xml b/dev-python/standardwebhooks/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/standardwebhooks/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/standardwebhooks/standardwebhooks-1.0.1.ebuild b/dev-python/standardwebhooks/standardwebhooks-1.0.1.ebuild
new file mode 100644
index 000000000000..4ab80314a8fc
--- /dev/null
+++ b/dev-python/standardwebhooks/standardwebhooks-1.0.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 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/standard-webhooks/standard-webhooks
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Standard Webhooks"
+HOMEPAGE="
+ https://github.com/standard-webhooks/standard-webhooks
+ https://pypi.org/project/standardwebhooks/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/stone/Manifest b/dev-python/stone/Manifest
index 1bf8dddc3615..dd2314b9f4b4 100644
--- a/dev-python/stone/Manifest
+++ b/dev-python/stone/Manifest
@@ -1 +1,2 @@
DIST stone-3.3.9.gh.tar.gz 290882 BLAKE2B ad6e579d98b95d1828d0050ec29c53c6e5e52968def1fc10d315d311afdb8f350e9a7fd26330dce692c8f2419fe62ee22dba5ae54f0bcc91f09f51d7a7368f9c SHA512 916e8bce6e46114da8e684af25666d15257aa33bb0abb571c10f84457cfb958c309ca35bd3884f816ef8091c877e20b56b392cf5c85a760fab95f116efc7b321
+DIST stone-3.5.0.gh.tar.gz 289745 BLAKE2B cbc1b2fb37b097ac8e6e9167a973b376377912e3a69ccc1a05c2e686d61c15212d767614cce1167535717ee4530b2013a2f13dbc86af3ca23150c7e8ac6497f0 SHA512 f595308e0bb11e5a27d9c8652db13b9a0f1f3646b9a54ff48b1e39a4041c88f0a41a2eae4437c31f7c9ae7a31e3634aa41da0b4b4c3ed7caa90dbf852efe3071
diff --git a/dev-python/stone/stone-3.5.0.ebuild b/dev-python/stone/stone-3.5.0.ebuild
new file mode 100644
index 000000000000..2ba0a6152fe5
--- /dev/null
+++ b/dev-python/stone/stone-3.5.0.ebuild
@@ -0,0 +1,30 @@
+# 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="The Official Api Spec Language for Dropbox"
+HOMEPAGE="
+ https://www.dropbox.com/developers
+ https://github.com/dropbox/stone
+ https://pypi.org/project/stone/
+"
+SRC_URI="https://github.com/dropbox/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/streamingjson/Manifest b/dev-python/streamingjson/Manifest
new file mode 100644
index 000000000000..b56395c53031
--- /dev/null
+++ b/dev-python/streamingjson/Manifest
@@ -0,0 +1 @@
+DIST streamingjson-0.0.5.tar.gz 15544 BLAKE2B 6fc7dda2363e0a042719395e86d533ca07cbe64146093451e6457a0bedfc1681529a82d672471d1d4d7f3c290a3c081d39dd5707a0a13b641a8266147c2f8518 SHA512 79747d41540ddfb49e67e22543fb6002a25e9544b4e05ce9c6779dd5e2e648f59ed7d1526d47628741d280349329fdd27813d4269c38643c722fe29fbbf2c7b7
diff --git a/dev-python/streamingjson/metadata.xml b/dev-python/streamingjson/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/streamingjson/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/streamingjson/streamingjson-0.0.5.ebuild b/dev-python/streamingjson/streamingjson-0.0.5.ebuild
new file mode 100644
index 000000000000..98c3c666ae32
--- /dev/null
+++ b/dev-python/streamingjson/streamingjson-0.0.5.ebuild
@@ -0,0 +1,22 @@
+# Copyright 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 streamlined, user-friendly JSON streaming preprocessor"
+HOMEPAGE="
+ https://github.com/karminski/streaming-json-py
+ https://pypi.org/project/streamingjson/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/tempora/Manifest b/dev-python/tempora/Manifest
index e2c9f7e2cf1f..7c8cd1e4cd31 100644
--- a/dev-python/tempora/Manifest
+++ b/dev-python/tempora/Manifest
@@ -1,2 +1,2 @@
-DIST tempora-5.8.1.tar.gz 23072 BLAKE2B fc82f096814853bfff5b5634779daf28539b32b2f84fab6d35ac3e8cba1cf9ac6fff9b29bad1ac7ad7ec66f421c60a4e4871554f2430cbcdd4507378f3a1795f SHA512 d53c44f613c6897b3fee09a4e127e261bfc1b63373b0465fce6d8cc21f9fd38a45c1c32ed33acc23a32f1959ca1b88f9377af4b8267ede2a6504a64e208f9d15
+DIST tempora-5.10.0.tar.gz 18902 BLAKE2B a15b9270de675933767ff4f609417c548e27734e056e43b650d2b4d1d6f69124a14942e04fb8a057e229ee8c327fb7a9ecd7d886c9d36aa3bdf94ea6558fc88b SHA512 03444c55810bd5b46e97a1a0698e5b070aaffaf5679541cfd83f7713f3fee22eb33da680d1fc165c8805d3fb9c12edd0b74ca28be8843a9d3838cd1b575efaf9
DIST tempora-5.9.0.tar.gz 24490 BLAKE2B 94107a16e7f56188b156e305cf4ca57574684eae92ab4d97cdc4ca8b610f8e44d9fc589af2fcb3a0f17a4188739e90a9112dd8d1fbe6d00bd8c3b6adf3263c61 SHA512 f515a35345968b765d7bd61d6828d9e1761d2b9ab8915015804597e9f4204942da3801de01e80ab1ed93be604bd4011f650a8bd970f09c14abad3e4af8e586eb
diff --git a/dev-python/tempora/tempora-5.10.0.ebuild b/dev-python/tempora/tempora-5.10.0.ebuild
new file mode 100644
index 000000000000..6496341a40fb
--- /dev/null
+++ b/dev-python/tempora/tempora-5.10.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Objects and routines pertaining to date and time"
+HOMEPAGE="
+ https://github.com/jaraco/tempora/
+ https://pypi.org/project/tempora/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/jaraco-collections-5.2.1[${PYTHON_USEDEP}]
+ dev-python/jaraco-context[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-4.2[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-freezer )
+distutils_enable_tests pytest
diff --git a/dev-python/tempora/tempora-5.8.1.ebuild b/dev-python/tempora/tempora-5.8.1.ebuild
deleted file mode 100644
index c2c7e199e695..000000000000
--- a/dev-python/tempora/tempora-5.8.1.ebuild
+++ /dev/null
@@ -1,37 +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="Objects and routines pertaining to date and time"
-HOMEPAGE="
- https://github.com/jaraco/tempora/
- https://pypi.org/project/tempora/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-RDEPEND="
- >=dev-python/jaraco-functools-1.20[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-freezer[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p freezer
-}
diff --git a/dev-python/tibs/Manifest b/dev-python/tibs/Manifest
index a199aaf6aa2b..8aa455653e1c 100644
--- a/dev-python/tibs/Manifest
+++ b/dev-python/tibs/Manifest
@@ -70,6 +70,7 @@ DIST tibs-0.10.0.tar.gz 1921924 BLAKE2B f4c99e9599cee3ba19462364051252a12a7ac16d
DIST tibs-0.11.0.tar.gz 1930081 BLAKE2B 5a8f60767bf67f98d86ac72d6e079b69675f2feb5b335615d58090221bbde493c3fc9d6d2b7faa98b77b82e8a83e126d212cafaedbee719d6490d96668251961 SHA512 28b6af737198cecae38a985588f9ea14ad7763fa0f32475b4ee6654adf02bd7f042387ae0810e3d866fed7f3b93b2f1eb13f14a4a6b77891093c3f8532a34196
DIST tibs-0.12.0.tar.gz 2164862 BLAKE2B 0ab165a01180d709e67142bf34bb48b7b3ec9d8b7d1f9de42be05bdd756e6572c6d528615352c940765cc88d06b364ea87e74371dd04ef20cd65da27230930f5 SHA512 58d8161c5eb553b3e211777da67fdb0fd6dac326b9ccb4dccf917fd0ec24b79f395a214f53829e129267b6830a4d557d4b4bac85a2edbaefaef5eb25ae4667fa
DIST tibs-0.9.2.tar.gz 1320735 BLAKE2B 3f0c72c9f8ba947ac9bd351fcba48ad430590982c61881d31eb0ae48edc5502d3b97e931bb32662047d346f442e83b07f60b1673746a5af743d2742a3d79edc8 SHA512 fcb314ebac4416c8bfb36930d86678709e6b2e0cf2dd524ea6c45577252313f2fb4f3cbfe32375927ceb54b13257361cdbb2a0a18216fe089a3a3e34290d21c3
+DIST tibs-1.0.0.tar.gz 2166659 BLAKE2B 5dc454458f3926b9db5a187c640d7929ea9b0975ce140580a84388c1465151c0d37f9b3985777ef06f1d2f4bfe26712b53034767af94130bcd8e09db95c746f4 SHA512 64fce5f0dfa8ce4d5e6c3f2b9ee7a610c22b5651ca17e8e23b8d5182ec7f44438a614d64eec7ccb324d6d2fdf0f1f5e3b094bb92620367a53119904d3c0fc859
DIST typenum-1.20.1.crate 105479 BLAKE2B aa3ff221502fb140dd500c302b09279f5d161123093d0f97d7b1a8761ae465ec71f7035109651e483b735121f8267ca2ff21a64825e9a91f83fcce4e7e1192d6 SHA512 ad4768b49dc06808e3135411ffaf21453572d152f71d73c34b7fe5d00e276d3e121dc78ebed57d620cf46b5ab24b5b5e0787f38ad9ce8bd12330b499cbbde5e1
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
diff --git a/dev-python/tibs/tibs-1.0.0.ebuild b/dev-python/tibs/tibs-1.0.0.ebuild
new file mode 100644
index 000000000000..49cc4885a365
--- /dev/null
+++ b/dev-python/tibs/tibs-1.0.0.ebuild
@@ -0,0 +1,131 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+ allocator-api2@0.2.21
+ anyhow@1.0.102
+ bitflags@2.11.0
+ bitvec@1.1.1
+ block-buffer@0.12.0
+ bytemuck@1.25.0
+ cc@1.2.60
+ cfg-if@1.0.4
+ chacha20@0.10.0
+ const-oid@0.10.2
+ cpufeatures@0.3.0
+ crunchy@0.2.4
+ crypto-common@0.2.2
+ digest@0.11.3
+ equivalent@1.0.2
+ find-msvc-tools@0.1.9
+ foldhash@0.1.5
+ foldhash@0.2.0
+ funty@2.0.0
+ getrandom@0.3.4
+ getrandom@0.4.1
+ half@2.7.1
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ hashbrown@0.17.1
+ heck@0.5.0
+ hex@0.4.3
+ hybrid-array@0.4.12
+ id-arena@2.3.0
+ indexmap@2.13.0
+ itoa@1.0.17
+ jobserver@0.1.34
+ leb128fmt@0.1.0
+ libc@0.2.182
+ log@0.4.29
+ lru@0.18.0
+ memchr@2.8.1
+ once_cell@1.21.3
+ pkg-config@0.3.33
+ portable-atomic@1.13.1
+ prettyplease@0.2.37
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
+ quote@1.0.44
+ r-efi@5.3.0
+ radium@0.7.0
+ rand@0.10.0
+ rand_core@0.10.0
+ semver@1.0.27
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ sha2@0.11.0
+ shlex@1.3.0
+ syn@2.0.117
+ tap@1.0.1
+ target-lexicon@0.13.5
+ typenum@1.20.1
+ unicode-ident@1.0.24
+ unicode-xid@0.2.6
+ wasip2@1.0.2+wasi-0.2.9
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ wyz@0.5.1
+ zerocopy-derive@0.8.40
+ zerocopy@0.8.40
+ zmij@1.0.21
+ zstd-safe@7.2.4
+ zstd-sys@2.0.16+zstd.1.5.7
+ zstd@0.13.3
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="A sleek Python library for your binary data"
+HOMEPAGE="
+ https://github.com/scott-griffiths/tibs/
+ https://pypi.org/project/tibs/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+DEPEND="
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ tests/test_benchmarks.py
+)
+
+QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/tibs/tibs.abi3.*"
+
+# enable system libraries where supported
+export ZSTD_SYS_USE_PKG_CONFIG=1
diff --git a/dev-python/tom-swe/Manifest b/dev-python/tom-swe/Manifest
new file mode 100644
index 000000000000..92a5d941c72f
--- /dev/null
+++ b/dev-python/tom-swe/Manifest
@@ -0,0 +1 @@
+DIST tom-swe-1.0.3.gh.tar.gz 412141 BLAKE2B bc8d598c118e67d51efb85f06f96075a3b53fa7512ed893358fc0e5597cb8f691d335df8979296219a10f3f1344f7f1007768775bc940a5a5a8a834e81401d18 SHA512 b9f35cbf0501a4136ce48af19e8777bee0e34658b1119569705764b964df87dc00b1a04d42e2bd17983b5585e24862493e5d29c70a8bb583995d617bbd186890
diff --git a/dev-python/tom-swe/metadata.xml b/dev-python/tom-swe/metadata.xml
new file mode 100644
index 000000000000..20f07fe1573a
--- /dev/null
+++ b/dev-python/tom-swe/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>falbrechtskirchinger@gmail.com</email>
+ <name>Florian Albrechtskirchinger</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/tom-swe/tom-swe-1.0.3.ebuild b/dev-python/tom-swe/tom-swe-1.0.3.ebuild
new file mode 100644
index 000000000000..3fd78f9e3b92
--- /dev/null
+++ b/dev-python/tom-swe/tom-swe-1.0.3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_PN="ToM-SWE"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Theory of Mind modeling for Software Engineering assistants"
+HOMEPAGE="
+ https://github.com/OpenHands/ToM-SWE
+ https://pypi.org/project/tom-swe/
+"
+SRC_URI="https://github.com/OpenHands/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64" # ~arm64: litellm
+
+# pyyaml via litellm[proxy]
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/jinja2-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/json-repair-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
+ >=dev-python/tiktoken-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tqdm-4.65.0[${PYTHON_USEDEP}]
+ ')
+ >=dev-python/litellm-1.0.0[${PYTHON_SINGLE_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/types-docutils/Manifest b/dev-python/types-docutils/Manifest
index 5aa4704c0eb1..b6f8af3475df 100644
--- a/dev-python/types-docutils/Manifest
+++ b/dev-python/types-docutils/Manifest
@@ -1 +1,2 @@
DIST types_docutils-0.22.3.20260518.tar.gz 57504 BLAKE2B 21d6dcc5006dcef7a8ef44a70837b84719f55f62997fc9ff92e1a039764f39244d3ddf6bdf91d37c16092e6a46427bef3d4312865ccee2dc0dbcf5bc6435ca51 SHA512 b6a6905a2483e7f3c0c52994689064b956efbce7854db72648861981531a93f0e230a84a5586d22ce44cda10a795595ffc75e5a54ea5ce3a8c9e4b567c4961ea
+DIST types_docutils-0.22.3.20260712.tar.gz 57848 BLAKE2B 83b0f5b5a7915a02c8964ecb4080076df0b61098d1a3df68c1b40a0687830e8e3be1c773b1e8d0880c171a101582a1799220d8c7346ebc44fa592f0978f75685 SHA512 050064f777bbf22f80b7f9971879e6de0d1c42121b9f26bd7991db39b0a208924a51c5b75daacf3310ec240ef1e05d4374e297a646a91a5113292a328158e29f
diff --git a/dev-python/types-docutils/types-docutils-0.22.3.20260712.ebuild b/dev-python/types-docutils/types-docutils-0.22.3.20260712.ebuild
new file mode 100644
index 000000000000..c92bb7bf56ff
--- /dev/null
+++ b/dev-python/types-docutils/types-docutils-0.22.3.20260712.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-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="Typing stubs for docutils"
+HOMEPAGE="https://pypi.org/project/types-docutils/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
diff --git a/dev-python/types-gdb/Manifest b/dev-python/types-gdb/Manifest
index cdf2adc12cd1..61d74ffa2acd 100644
--- a/dev-python/types-gdb/Manifest
+++ b/dev-python/types-gdb/Manifest
@@ -1 +1,2 @@
DIST types_gdb-16.3.0.20260518.tar.gz 25677 BLAKE2B 4f4db2294ce28b29a7c4f49fb4e2b14cbec1e46f9a555308db70aca555441842549b80f4ec52c56f3602712985c422153152cefd456799b5ec6e23bb62151a65 SHA512 fa1b8370a7a2e05a48c849f9063d8654e94e5ee99dd10310a347fd185fbfb5b827a85efee0a1b0a379fb455746a56fbb09c22060e7bf419d4390e2d7514c39f1
+DIST types_gdb-16.3.0.20260712.tar.gz 25821 BLAKE2B c8433e34057af70c9f76dd5dd8248eaa21e3614f33958b0a40d4ecb62276604d56323f81dfc7f8b9ac7d0967d9017d671b04fb92994f1a6f3084a33a26c6ab7d SHA512 c6c8c3962874dc434217c4fb077320b2b0e7827754601de0012cce37485f8b66c7c595f35a5c6d89163de25ffadc646b00a5c363c94facac499a768e9e080a13
diff --git a/dev-python/types-gdb/types-gdb-16.3.0.20260712.ebuild b/dev-python/types-gdb/types-gdb-16.3.0.20260712.ebuild
new file mode 100644
index 000000000000..28150e73f252
--- /dev/null
+++ b/dev-python/types-gdb/types-gdb-16.3.0.20260712.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-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="Typing stubs for gdb"
+HOMEPAGE="https://pypi.org/project/types-gdb/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
diff --git a/dev-python/tzdata/tzdata-10001.ebuild b/dev-python/tzdata/tzdata-10001.ebuild
index 9441b0ecbdb0..15f20c557982 100644
--- a/dev-python/tzdata/tzdata-10001.ebuild
+++ b/dev-python/tzdata/tzdata-10001.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
diff --git a/dev-python/uri-template/Manifest b/dev-python/uri-template/Manifest
index 2a69d7808d7d..74d6bb3245e9 100644
--- a/dev-python/uri-template/Manifest
+++ b/dev-python/uri-template/Manifest
@@ -1 +1 @@
-DIST uri-template-v1.3.0.tar.bz2 17076 BLAKE2B e8d6c1c35190beab4b2b51cf82dacd6e7bf51397abb142f89f975ce4e7c3067dd9c59895127446deafd84420b63ef62c1484c29037dd9e3833e0d0d55950dcc4 SHA512 654eb700de68a5b992b910e1ff0a038ed699453f021d1eb844d71ddebb32e3ffb77851b5704879bf3eb894eaca33477a0173223a5d9df6a06e33fdc27f6b0f5c
+DIST uri-template-1.3.0.tar.gz 21678 BLAKE2B ae7c371b9f6238360b77f5b11d8066e94e2466764f6807cb27e50d97562adfd251ac3b91760ac1bc9179388f6243806cd030d00e01a4369ca574a08311b5b1b1 SHA512 f5ab679060a7bd6bd0160b4ee0e6e78c3b95e7227bff4828ad9312812453961426bba39d1190cf1e28512f568bcbf7765724a941f03e8e6eb3206eca3b53d245
diff --git a/dev-python/uri-template/uri-template-1.3.0.ebuild b/dev-python/uri-template/uri-template-1.3.0.ebuild
index 598d2675c572..b9e2e8fea0d3 100644
--- a/dev-python/uri-template/uri-template-1.3.0.ebuild
+++ b/dev-python/uri-template/uri-template-1.3.0.ebuild
@@ -4,20 +4,16 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{13..14} )
-inherit distutils-r1
+inherit distutils-r1 pypi
-MY_P="uri-template-v${PV}"
DESCRIPTION="URI Template expansion in strict adherence to RFC 6570"
HOMEPAGE="
https://gitlab.linss.com/open-source/python/uri-template/
https://pypi.org/project/uri-template/
"
-SRC_URI="
- https://gitlab.linss.com/open-source/python/uri-template/-/archive/v${PV}/${MY_P}.tar.bz2
-"
-S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
@@ -27,8 +23,6 @@ BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
"
-export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
python_test() {
"${EPYTHON}" "test.py" || die "Tests fail with ${EPYTHON}"
}
diff --git a/dev-python/watchdog/watchdog-6.0.0.ebuild b/dev-python/watchdog/watchdog-6.0.0.ebuild
index 3dba87e6a1e9..cdab0e1ab79d 100644
--- a/dev-python/watchdog/watchdog-6.0.0.ebuild
+++ b/dev-python/watchdog/watchdog-6.0.0.ebuild
@@ -23,6 +23,7 @@ RDEPEND="
"
EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
distutils_enable_tests pytest
python_test() {