commit:     cc7b80402e92be374d1d44deb70f3b719b461059
Author:     Kyle Elbert <kcelbert <AT> gmail <DOT> com>
AuthorDate: Tue Jan 21 06:02:45 2025 +0000
Commit:     Kyle Elbert <kcelbert <AT> gmail <DOT> com>
CommitDate: Tue Jan 21 06:02:52 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=cc7b8040

dev-python/cloudflare: add 4.0.0

Bug: https://bugs.gentoo.org/948477

Signed-off-by: Kyle Elbert <kcelbert <AT> gmail.com>

 dev-python/cloudflare/Manifest                |   2 +
 dev-python/cloudflare/cloudflare-4.0.0.ebuild | 100 ++++++++++++++++++++++++++
 2 files changed, 102 insertions(+)

diff --git a/dev-python/cloudflare/Manifest b/dev-python/cloudflare/Manifest
index 2a7fa2788..f6b85cb49 100644
--- a/dev-python/cloudflare/Manifest
+++ b/dev-python/cloudflare/Manifest
@@ -1 +1,3 @@
 DIST cloudflare-2.19.4.gh.tar.gz 151397 BLAKE2B 
c91c95f52314c5177d823ef8f827ea2f76f6cc703260449aea12d54c1b77d061feca15d4bb845f84cfb4fd80789e5064e54d7530daf546d54d17054b9e0b4fda
 SHA512 
8ae11e73760c57b610abfe5e2c8fdc83c2e0b9e07340884925ec9ac3bf5b40b4edf39b2b8ce7330538369d7573146a2ddac195efb0efb4ff657f75fdacb31aed
+DIST cloudflare-4.0.0.gh.tar.gz 1715334 BLAKE2B 
3ec5ace00c173caec36e75001a7f0fb08e3747902cfbd45a29958c7d4a124b93b24c431ed0967d2100056de7b3063625379723512aee4be7a03dfeb2c4bdbc5a
 SHA512 
ac156af42cadfd1c63568df485c816de0b3720af18ec12b25cb88e06476e817707a29de91bfce8da3b7f7b4e690b6c33aa6c38bc2b485901e81e032dae0d0109
+DIST cloudflare-python-4.0.0-prism.tar.gz 10687934 BLAKE2B 
d8696ec3f20d56e8ed5578d96ff41e4b90faf8d440b734b76d7217b8127f1c428e523f75f266cd9a677a3501b961844107afb03b2ec06f9940aadbf369a3567e
 SHA512 
0d622922f26f9a6749858f226ff8ac5baee613a771e9cbe16787932304b5c1654c1a6d928ce7fe4734bc0710f3357160dcbe441f9238ae8c33cde02435e169e8

diff --git a/dev-python/cloudflare/cloudflare-4.0.0.ebuild 
b/dev-python/cloudflare/cloudflare-4.0.0.ebuild
new file mode 100644
index 000000000..013ddf060
--- /dev/null
+++ b/dev-python/cloudflare/cloudflare-4.0.0.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..12} )
+DISTUTILS_USE_PEP517="hatchling"
+inherit distutils-r1
+DESCRIPTION="Python wrapper for the Cloudflare v4 API"
+HOMEPAGE="https://pypi.org/project/cloudflare/";
+if [ "${PV}" == 9999 ]; then
+       EGIT_REPO_URI="https://github.com/cloudflare/cloudflare-python";
+       inherit git-r3
+else
+       MYPV=$(ver_rs 3 -)
+       MYPV=${MYPV/beta/beta.}
+       MYPN="cloudflare-python"
+       
SRC_URI="https://github.com/cloudflare/cloudflare-python/archive/refs/tags/v${MYPV}.tar.gz
 -> ${P}.gh.tar.gz
+               test? ( 
https://github.com/Phoenix591/${MYPN}/releases/download/${PV}/${MYPN}-${PV}-prism.tar.gz
 )"
+       #Prism archive generated by workflow
+       # 
https://github.com/Phoenix591/cloudflare-python/blob/master/.github/workflows/test-tar.yml
+       S="${WORKDIR}/${MYPN}-${MYPV}"
+       KEYWORDS="~amd64 ~arm64"
+fi
+LICENSE="MIT test? ( ISC Apache-2.0 MIT BSD CC0-1.0 0BSD )"
+# nodejs module and deps used to test
+SLOT="0"
+RDEPEND=" ${DEPEND}
+       >=dev-python/httpx-0.23.0[${PYTHON_USEDEP}]
+       >=dev-python/pydantic-2.9.2[${PYTHON_USEDEP}]
+       >=dev-python/typing-extensions-4.7.0[${PYTHON_USEDEP}]
+       >=dev-python/anyio-4.3.0[${PYTHON_USEDEP}]
+       >=dev-python/distro-1.7.0[${PYTHON_USEDEP}]
+       >=dev-python/sniffio-1.3.1[${PYTHON_USEDEP}]
+        "
+
+BDEPEND="test? (
+       >=net-libs/nodejs-18.20.1
+        dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+        dev-python/time-machine[${PYTHON_USEDEP}]
+        dev-python/dirty-equals[${PYTHON_USEDEP}]
+        dev-python/respx[${PYTHON_USEDEP}]
+       ${RDEPEND}
+)"
+
+distutils_enable_tests pytest
+RESTRICT+=" !test? ( test )"
+
+src_unpack() {
+       unpack "${P}.gh.tar.gz"
+       use test && cd "${S}" && unpack "cloudflare-python-${PV}-prism.tar.gz"
+}
+
+#python_prepare_all() {
+#      # don't install tests or examples
+#      sed -i -e "s/'cli4', 'examples'/'cli4'/" \
+#              -e "s#'CloudFlare/tests',##" \
+#               setup.py || die
+#      sed -i -e "/def 
test_ips7_should_fail():/[email protected](reason='Now fails upstream')" \
+#              -e "2s/^/import pytest/" \
+#              CloudFlare/tests/test_cloudflare_calls.py || die
+#      distutils-r1_python_prepare_all
+#}
+
+python_test() {
+       # these 2 tests fail in an ebuild environment for some reason
+       # help appreciated
+       local EPYTEST_DESELECT=(
+       tests/test_client.py::TestCloudflare::test_validate_headers
+       tests/test_client.py::TestAsyncCloudflare::test_validate_headers )
+               #intermittently fail for unknown reasons, passed along to 
upstream
+               EPYTEST_DESELECT+=(
+               
tests/test_client.py::TestAsyncCloudflare::test_copy_build_request
+               tests/test_client.py::TestCloudflare::test_copy_build_request )
+       epytest
+}
+
+src_test() {
+       start_mock
+       distutils-r1_src_test
+       stop_mock
+}
+start_mock() {
+# Run prism mock api server, this is what needs nodejs
+       node --no-warnings node_modules/@stainless-api/prism-cli/dist/index.js 
mock \
+               "cloudflare-spec.yml" >prism.log || die "Failed starting prism" 
&
+       echo $! >"${T}/mock.pid" || die
+       # Wait for server to come online
+       echo -n "Waiting for mockserver"
+       while ! grep -q "✖  fatal\|Prism is listening" "prism.log" ; do
+           echo -n "." || die
+           sleep 0.5
+       done
+       if grep -q "✖  fatal" prism.log; then
+               die "Prism mock server failed"
+       fi
+}
+stop_mock() {
+       kill $(cat "${T}/mock.pid") || die
+}

Reply via email to