summaryrefslogtreecommitdiffstats
path: root/g4f/requests/curl_cffi.py
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/requests/curl_cffi.py')
-rw-r--r--g4f/requests/curl_cffi.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/g4f/requests/curl_cffi.py b/g4f/requests/curl_cffi.py
index 91142365..000448fe 100644
--- a/g4f/requests/curl_cffi.py
+++ b/g4f/requests/curl_cffi.py
@@ -1,6 +1,11 @@
from __future__ import annotations
-from curl_cffi.requests import AsyncSession, Response, CurlMime
+from curl_cffi.requests import AsyncSession, Response
+try:
+ from curl_cffi.requests import CurlMime
+ has_curl_mime = True
+except ImportError:
+ has_curl_mime = False
from typing import AsyncGenerator, Any
from functools import partialmethod
import json
@@ -78,6 +83,11 @@ class StreamSession(AsyncSession):
patch = partialmethod(request, "PATCH")
delete = partialmethod(request, "DELETE")
-class FormData(CurlMime):
- def add_field(self, name, data=None, content_type: str = None, filename: str = None) -> None:
- self.addpart(name, content_type=content_type, filename=filename, data=data) \ No newline at end of file
+if has_curl_mime:
+ class FormData(CurlMime):
+ def add_field(self, name, data=None, content_type: str = None, filename: str = None) -> None:
+ self.addpart(name, content_type=content_type, filename=filename, data=data)
+else:
+ class FormData():
+ def __init__(self) -> None:
+ raise RuntimeError("CurlMimi in curl_cffi is missing | pip install -U g4f[curl_cffi]") \ No newline at end of file