Spaces:
Running
Running
import json | |
from typing import Callable | |
from curl_cffi import requests | |
origin_request = requests.Session.request | |
class MockCurlCffiResponse(requests.Response): | |
check_funcs: dict[tuple[str, str], Callable[[dict], str]] = {} | |
rsp_cache: dict[str, str] = {} | |
name = "curl-cffi" | |
def __init__(self, session, method, url, **kwargs) -> None: | |
super().__init__() | |
fn = self.check_funcs.get((method, url)) | |
self.key = f"{self.name}-{method}-{url}-{fn(kwargs) if fn else json.dumps(kwargs, sort_keys=True)}" | |
self.response = None | |
if self.key not in self.rsp_cache: | |
response = origin_request(session, method, url, **kwargs) | |
self.rsp_cache[self.key] = response.content.decode() | |
self.content = self.rsp_cache[self.key].encode() | |