mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-19 20:13:01 -04:00
dev-python/openai: use stainless-python.eclass
Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
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
|
||||
DIST openai-openapi-spec-2.44.0.yml 2333764 BLAKE2B f96a21463f43efd8e4930e91fae4f48b4be28ed497223374d3402a22a7f1fc1644deb89ce613901dde2a05c1ac92551406ebc8a99c58bf014698f3932565da77 SHA512 0a1c51e2a330f05c91f76646c7efc02633632524db0a18cf2eabbac9147ecbe60083b1e5789b0e3efd445cbebf34b48c025d4f640e4948289c44c8d2c4ef52ba
|
||||
DIST openai-python-2.44.0.gh.tar.gz 1017643 BLAKE2B bedd273b0e790b331c20244ae967a5082f878db1764451a47a6fbdedb71dd72c18f075d63e6cd2500bd4a6e95521034f5280cb5aa08ef06b0bfc09738cbdce6a SHA512 c0ae402fb6e60499220416c010ab3ce7f89c755f9ab04f61465c6b5033c339a1a94c971fe6af2eaf926d2d08a76d7270f249eb07f580978fe23a0aaa436e3d47
|
||||
DIST stdy-cli-0.22.1.npm.tgz 7776 BLAKE2B ec66af59c4c864a4331dc7918ed0a82d452579427663c3666b94d6008e769cb8a61d00e1971a394c326ca180da7f3009597b15d4c6bea8d169bda56c87ae21fb SHA512 55d9c2a0afddd09588853a1a8c1c4075a813a4b097ff34dded18ae2b529d4f5d90e29667ffe792f7b82af78fa3bfa4db88c77ef5259e39db100a86a0a4b98d7c
|
||||
DIST stdy-cli-linux-arm64-0.22.1.npm.tgz 37635112 BLAKE2B f749d99342d9cffb831f0feea34ed74301a3beea7ec4c7e46cd5b942cacfea4b10c28632cc3e38a0ac00b565c2ca5889cb6587fcccb75f1557fa29dace58a343 SHA512 5c6432dd9a85e423aa4600151b109da16f5dcf19dfc710920070869a1a4573ea557e941c6077cf72736199686994c09eae24d4c8228b246fbf7c67728e2eded9
|
||||
DIST stdy-cli-linux-x64-0.22.1.npm.tgz 38431354 BLAKE2B f6b49ce9f79ad98de58f6f01874e5ae03f728f062b09b91b092f1410e1bf3d2874d25dfb30038291429043eeffc4c5e3183e7e9307c6fb889521008b981df4f9 SHA512 bbbe7cd48dec73a47e3d4c0692f1056ef0ffc3a617bd193e893d0122658a3ed298036e9c3cfd7a96003b82abaeded00493eddcf581a7e71854a6109cf7a68b4a
|
||||
|
||||
@@ -6,41 +6,24 @@ EAPI=8
|
||||
DISTUTILS_USE_PEP517=hatchling
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
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"
|
||||
API_SPEC="openai-openapi-spec-${PV}.yml"
|
||||
STAINLESS_SPEC_PATH=${PN}/${PN}-b5b621065906a2579dc180db1236ee3b08a4fca9539accc2fbbf88da0ca3923f.yml
|
||||
# See https://github.com/openai/openai-python/blob/main/scripts/mock
|
||||
STAINLESS_MOCK_SERVER_VERSION=0.22.1
|
||||
STAINLESS_MOCK_SERVER_PACKAGE_JSON="${FILESDIR}/${PN}-2.44.0-mock-server-package.json"
|
||||
|
||||
inherit distutils-r1 stainless-python
|
||||
|
||||
MY_PN="openai-python"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
# See https://github.com/openai/openai-python/blob/main/scripts/mock
|
||||
STDY_PV=0.22.1
|
||||
DESCRIPTION="The official Python library for the openai API"
|
||||
HOMEPAGE="
|
||||
https://github.com/openai/openai-python
|
||||
https://pypi.org/project/openai/
|
||||
"
|
||||
SRC_URI="
|
||||
SRC_URI+="
|
||||
https://github.com/openai/${MY_PN}/archive/refs/tags/v${PV}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
|
||||
test? (
|
||||
${API_SPEC_BASE}/openai-b5b621065906a2579dc180db1236ee3b08a4fca9539accc2fbbf88da0ca3923f.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_P}"
|
||||
|
||||
@@ -68,8 +51,6 @@ BDEPEND="
|
||||
dev-python/httpx-aiohttp[${PYTHON_USEDEP}]
|
||||
>=dev-python/importlib-metadata-6.7.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
|
||||
net-libs/nodejs[npm]
|
||||
net-misc/curl
|
||||
)
|
||||
"
|
||||
|
||||
@@ -81,89 +62,3 @@ EPYTEST_PLUGINS=(
|
||||
time-machine
|
||||
)
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_unpack() {
|
||||
unpack "${MY_P}.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.44.0-mock-server-package.json" \
|
||||
"${mock_dir}/package.json" || die
|
||||
cp "${FILESDIR}/${PN}-2.44.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
|
||||
|
||||
# Check args[1] (native) or args[2] (QEMU user-mode emulation)
|
||||
[[ "${args[1]}" == "${mock}" || "${args[2]}" == "${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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user