summaryrefslogtreecommitdiff
path: root/dev-python/curl-cffi
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/curl-cffi')
-rw-r--r--dev-python/curl-cffi/Manifest1
-rw-r--r--dev-python/curl-cffi/curl-cffi-0.16.3.ebuild78
-rw-r--r--dev-python/curl-cffi/metadata.xml12
3 files changed, 91 insertions, 0 deletions
diff --git a/dev-python/curl-cffi/Manifest b/dev-python/curl-cffi/Manifest
new file mode 100644
index 000000000000..38ccd9fae83e
--- /dev/null
+++ b/dev-python/curl-cffi/Manifest
@@ -0,0 +1 @@
+DIST curl-cffi-0.16.3.tar.gz 895751 BLAKE2B ef246160bc09df24577d53cc6f8e97503ff2bc4727762eba9060d39638ce552cb20f01848a4340b4ef65d1745d575a73cc9e39a4a41e48451fed6d4f450cd908 SHA512 6d0a5249ba560c5799e1761093d242bbd9b223841b39c75c1e35e06a9552a47cd8f3ba55d26e786ad0bf3b573acfd56e3d22be67dbb949132198ca49955ac0de
diff --git a/dev-python/curl-cffi/curl-cffi-0.16.3.ebuild b/dev-python/curl-cffi/curl-cffi-0.16.3.ebuild
new file mode 100644
index 000000000000..da8d158992e2
--- /dev/null
+++ b/dev-python/curl-cffi/curl-cffi-0.16.3.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for curl-impersonate"
+HOMEPAGE="https://github.com/lexiforest/curl_cffi"
+SRC_URI="https://github.com/lexiforest/curl_cffi/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/curl_cffi-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ net-misc/curl-impersonate
+
+ dev-python/cffi[${PYTHON_USEDEP}]
+ dev-python/websockets[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/litestar[${PYTHON_USEDEP}]
+ dev-python/proxy-py[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/uvicorn[${PYTHON_USEDEP}]
+ )
+"
+
+python_prepare_all() {
+ export IMPERSONATE_LINK_TYPE="dynamic"
+ export IMPERSONATE_BUILD_DIR="${EROOT}/usr/lib64"
+
+ sed -e 's#"curl/curl.h"#"curl-impersonate/curl.h"#' \
+ -i ffi/shim.h || die
+
+ sed -e '/^download_libcurl/d' \
+ -e "s#str(libdir / \"include\")#\"${EROOT}/usr/include\"#" \
+ -i scripts/build.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+EPYTEST_DESELECT=(
+ "tests/integration/test_real_world.py::test_post_with_no_body"
+ "tests/integration/test_response_class.py::test_custom_response"
+ "tests/integration/test_response_class.py::test_default_response"
+ "tests/pro/test_fp_verify.py::test_live_fingerprint_data_matches_runtime_output"
+ "tests/pro/test_fp_verify.py::test_live_http3_fingerprint_data_matches_runtime_output"
+ "tests/unittest/test_async.py::test_add_handle"
+ "tests/unittest/test_async.py::test_socket_action"
+ "tests/unittest/test_async_session.py::test_update_params"
+)
+
+EPYTEST_IGNORE=(
+ "tests/integration/test_fingerprints.py"
+ "tests/integration/test_httpbin.py"
+ "tests/threads/test_eventlet.py"
+ "tests/threads/test_gevent.py"
+ "tests/unittest/test_smoke.py"
+ "tests/unittest/test_upload.py"
+)
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ cp "${BUILD_DIR}/install$(python_get_sitedir)/curl_cffi/"*.so curl_cffi || die
+ epytest
+}
diff --git a/dev-python/curl-cffi/metadata.xml b/dev-python/curl-cffi/metadata.xml
new file mode 100644
index 000000000000..3c9d9878973d
--- /dev/null
+++ b/dev-python/curl-cffi/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Pavel Sobolev</name>
+ <email>contact@paveloom.dev</email>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/lexiforest/curl_cffi/issues</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>