__init__.pyi 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031
  1. """
  2. Type stubs for primp - HTTP client that can impersonate web browsers.
  3. This module provides both synchronous and asynchronous HTTP clients with
  4. browser impersonation capabilities.
  5. """
  6. from typing import (
  7. Any,
  8. Dict,
  9. Iterator,
  10. Mapping,
  11. Optional,
  12. Tuple,
  13. Union,
  14. AsyncIterator,
  15. )
  16. # =============================================================================
  17. # Type Aliases
  18. # =============================================================================
  19. HeadersType = Optional[Mapping[str, str]]
  20. ParamsType = Optional[Mapping[str, str]]
  21. CookiesType = Optional[Mapping[str, str]]
  22. FilesType = Optional[Mapping[str, str]]
  23. AuthType = Optional[Tuple[str, Optional[str]]]
  24. # =============================================================================
  25. # Exception Classes
  26. # =============================================================================
  27. class PrimpError(Exception):
  28. """Base exception for all primp errors."""
  29. ...
  30. class BuilderError(PrimpError):
  31. """Error during client builder configuration."""
  32. ...
  33. class RequestError(PrimpError):
  34. """Error during request execution."""
  35. ...
  36. class ConnectError(RequestError):
  37. """Error connecting to the server."""
  38. ...
  39. class TimeoutError(RequestError):
  40. """Request timed out."""
  41. ...
  42. class StatusError(PrimpError):
  43. """HTTP status error (4xx/5xx)."""
  44. ...
  45. class RedirectError(PrimpError):
  46. """Error during redirect handling."""
  47. ...
  48. class BodyError(PrimpError):
  49. """Error with request/response body."""
  50. ...
  51. class DecodeError(PrimpError):
  52. """Error decoding response content."""
  53. ...
  54. class UpgradeError(PrimpError):
  55. """Error during protocol upgrade."""
  56. ...
  57. # =============================================================================
  58. # Response Classes (Synchronous)
  59. # =============================================================================
  60. class Response:
  61. """
  62. HTTP response object.
  63. Provides access to response status, headers, cookies, and body content.
  64. """
  65. # Properties (read-only)
  66. url: str
  67. status_code: int
  68. @property
  69. def content(self) -> bytes: ...
  70. @property
  71. def encoding(self) -> str: ...
  72. @encoding.setter
  73. def encoding(self, value: Optional[str]) -> None: ...
  74. @property
  75. def headers(self) -> Dict[str, str]: ...
  76. @property
  77. def cookies(self) -> Dict[str, str]: ...
  78. @property
  79. def text(self) -> str: ...
  80. @property
  81. def text_markdown(self) -> str: ...
  82. @property
  83. def text_plain(self) -> str: ...
  84. @property
  85. def text_rich(self) -> str: ...
  86. # Methods
  87. def json(self) -> Any: ...
  88. def raise_for_status(self) -> None: ...
  89. class StreamResponse:
  90. """
  91. Streaming HTTP response object.
  92. Supports iteration over response chunks and context manager protocol.
  93. """
  94. # Properties (read-only)
  95. url: str
  96. status_code: int
  97. @property
  98. def headers(self) -> Dict[str, str]: ...
  99. @property
  100. def cookies(self) -> Dict[str, str]: ...
  101. @property
  102. def encoding(self) -> str: ...
  103. @encoding.setter
  104. def encoding(self, value: str) -> None: ...
  105. @property
  106. def content(self) -> bytes: ...
  107. @property
  108. def text(self) -> str: ...
  109. # Methods
  110. def read(self) -> bytes: ...
  111. def iter_bytes(self, chunk_size: Optional[int] = None) -> BytesIterator: ...
  112. def iter_text(self, chunk_size: Optional[int] = None) -> TextIterator: ...
  113. def iter_lines(self) -> LinesIterator: ...
  114. def next(self) -> Optional[bytes]: ...
  115. def close(self) -> None: ...
  116. def raise_for_status(self) -> None: ...
  117. # Context manager
  118. def __enter__(self) -> StreamResponse: ...
  119. def __exit__(
  120. self,
  121. exc_type: Optional[Any],
  122. exc_value: Optional[Any],
  123. traceback: Optional[Any],
  124. ) -> bool: ...
  125. class BytesIterator:
  126. """Iterator over byte chunks from a streaming response."""
  127. def __iter__(self) -> BytesIterator: ...
  128. def __next__(self) -> bytes: ...
  129. class TextIterator:
  130. """Iterator over text chunks from a streaming response."""
  131. def __iter__(self) -> TextIterator: ...
  132. def __next__(self) -> str: ...
  133. class LinesIterator:
  134. """Iterator over lines from a streaming response."""
  135. def __iter__(self) -> LinesIterator: ...
  136. def __next__(self) -> str: ...
  137. # =============================================================================
  138. # Response Classes (Asynchronous)
  139. # =============================================================================
  140. class AsyncResponse:
  141. """
  142. Asynchronous HTTP response object.
  143. Provides access to response status, headers, cookies, and body content.
  144. All property access is synchronous but may block.
  145. """
  146. # Properties (read-only)
  147. url: str
  148. status_code: int
  149. @property
  150. def content(self) -> bytes: ...
  151. @property
  152. def encoding(self) -> str: ...
  153. @encoding.setter
  154. def encoding(self, value: Optional[str]) -> None: ...
  155. @property
  156. def headers(self) -> Dict[str, str]: ...
  157. @property
  158. def cookies(self) -> Dict[str, str]: ...
  159. @property
  160. def text(self) -> str: ...
  161. @property
  162. def text_markdown(self) -> str: ...
  163. @property
  164. def text_plain(self) -> str: ...
  165. @property
  166. def text_rich(self) -> str: ...
  167. # Methods
  168. def json(self) -> Any: ...
  169. def raise_for_status(self) -> None: ...
  170. class AsyncStreamResponse:
  171. """
  172. Asynchronous streaming HTTP response object.
  173. Supports async iteration over response chunks and async context manager protocol.
  174. """
  175. # Properties (read-only)
  176. url: str
  177. status_code: int
  178. @property
  179. def headers(self) -> Dict[str, str]: ...
  180. @property
  181. def cookies(self) -> Dict[str, str]: ...
  182. @property
  183. def encoding(self) -> str: ...
  184. @encoding.setter
  185. def encoding(self, value: str) -> None: ...
  186. @property
  187. def content(self) -> bytes: ...
  188. @property
  189. def text(self) -> str: ...
  190. # Async methods
  191. async def aread(self) -> bytes: ...
  192. def aiter_bytes(self, chunk_size: Optional[int] = None) -> AsyncBytesIterator: ...
  193. def aiter_text(self, chunk_size: Optional[int] = None) -> AsyncTextIterator: ...
  194. def aiter_lines(self) -> AsyncLinesIterator: ...
  195. async def anext(self) -> Optional[bytes]: ...
  196. async def aclose(self) -> None: ...
  197. def raise_for_status(self) -> None: ...
  198. # Async context manager
  199. async def __aenter__(self) -> AsyncStreamResponse: ...
  200. async def __aexit__(
  201. self,
  202. exc_type: Optional[Any],
  203. exc_value: Optional[Any],
  204. traceback: Optional[Any],
  205. ) -> bool: ...
  206. class AsyncBytesIterator:
  207. """Async iterator over byte chunks from a streaming response."""
  208. def __aiter__(self) -> AsyncBytesIterator: ...
  209. async def __anext__(self) -> bytes: ...
  210. class AsyncTextIterator:
  211. """Async iterator over text chunks from a streaming response."""
  212. def __aiter__(self) -> AsyncTextIterator: ...
  213. async def __anext__(self) -> str: ...
  214. class AsyncLinesIterator:
  215. """Async iterator over lines from a streaming response."""
  216. def __aiter__(self) -> AsyncLinesIterator: ...
  217. async def __anext__(self) -> str: ...
  218. # =============================================================================
  219. # Client Classes
  220. # =============================================================================
  221. class Client:
  222. """
  223. Synchronous HTTP client that can impersonate web browsers.
  224. This client supports browser impersonation, proxy configuration,
  225. cookie management, and various authentication methods.
  226. Example:
  227. >>> client = Client(impersonate="chrome_144")
  228. >>> response = client.get("https://example.com")
  229. >>> print(response.text)
  230. """
  231. # Instance properties
  232. auth: Optional[Tuple[str, Optional[str]]]
  233. auth_bearer: Optional[str]
  234. params: Optional[Mapping[str, str]]
  235. proxy: Optional[str]
  236. timeout: Optional[float]
  237. @property
  238. def headers(self) -> Dict[str, str]: ...
  239. @headers.setter
  240. def headers(self, value: Optional[Mapping[str, str]]) -> None: ...
  241. @property
  242. def impersonate(self) -> Optional[str]: ...
  243. @property
  244. def impersonate_os(self) -> Optional[str]: ...
  245. def __init__(
  246. self,
  247. auth: Optional[Tuple[str, Optional[str]]] = None,
  248. auth_bearer: Optional[str] = None,
  249. params: Optional[Mapping[str, str]] = None,
  250. headers: Optional[Mapping[str, str]] = None,
  251. cookie_store: bool = True,
  252. referer: bool = True,
  253. proxy: Optional[str] = None,
  254. timeout: Optional[float] = None,
  255. impersonate: Optional[str] = None,
  256. impersonate_os: Optional[str] = None,
  257. follow_redirects: bool = True,
  258. max_redirects: int = 20,
  259. verify: bool = True,
  260. ca_cert_file: Optional[str] = None,
  261. https_only: bool = False,
  262. http2_only: bool = False,
  263. ) -> None: ...
  264. def headers_update(self, new_headers: Optional[Mapping[str, str]]) -> None: ...
  265. def get_cookies(self, url: str) -> Dict[str, str]: ...
  266. def set_cookies(self, url: str, cookies: Optional[Mapping[str, str]]) -> None: ...
  267. def request(
  268. self,
  269. method: str,
  270. url: str,
  271. params: Optional[Mapping[str, str]] = None,
  272. headers: Optional[Mapping[str, str]] = None,
  273. cookies: Optional[Mapping[str, str]] = None,
  274. content: Optional[bytes] = None,
  275. data: Optional[Any] = None,
  276. json: Optional[Any] = None,
  277. files: Optional[Mapping[str, str]] = None,
  278. auth: Optional[Tuple[str, Optional[str]]] = None,
  279. auth_bearer: Optional[str] = None,
  280. timeout: Optional[float] = None,
  281. stream: bool = False,
  282. ) -> Union[Response, StreamResponse]: ...
  283. def get(
  284. self,
  285. url: str,
  286. params: Optional[Mapping[str, str]] = None,
  287. headers: Optional[Mapping[str, str]] = None,
  288. cookies: Optional[Mapping[str, str]] = None,
  289. content: Optional[bytes] = None,
  290. data: Optional[Any] = None,
  291. json: Optional[Any] = None,
  292. files: Optional[Mapping[str, str]] = None,
  293. auth: Optional[Tuple[str, Optional[str]]] = None,
  294. auth_bearer: Optional[str] = None,
  295. timeout: Optional[float] = None,
  296. stream: bool = False,
  297. ) -> Union[Response, StreamResponse]: ...
  298. def head(
  299. self,
  300. url: str,
  301. params: Optional[Mapping[str, str]] = None,
  302. headers: Optional[Mapping[str, str]] = None,
  303. cookies: Optional[Mapping[str, str]] = None,
  304. content: Optional[bytes] = None,
  305. data: Optional[Any] = None,
  306. json: Optional[Any] = None,
  307. files: Optional[Mapping[str, str]] = None,
  308. auth: Optional[Tuple[str, Optional[str]]] = None,
  309. auth_bearer: Optional[str] = None,
  310. timeout: Optional[float] = None,
  311. stream: bool = False,
  312. ) -> Union[Response, StreamResponse]: ...
  313. def options(
  314. self,
  315. url: str,
  316. params: Optional[Mapping[str, str]] = None,
  317. headers: Optional[Mapping[str, str]] = None,
  318. cookies: Optional[Mapping[str, str]] = None,
  319. content: Optional[bytes] = None,
  320. data: Optional[Any] = None,
  321. json: Optional[Any] = None,
  322. files: Optional[Mapping[str, str]] = None,
  323. auth: Optional[Tuple[str, Optional[str]]] = None,
  324. auth_bearer: Optional[str] = None,
  325. timeout: Optional[float] = None,
  326. stream: bool = False,
  327. ) -> Union[Response, StreamResponse]: ...
  328. def delete(
  329. self,
  330. url: str,
  331. params: Optional[Mapping[str, str]] = None,
  332. headers: Optional[Mapping[str, str]] = None,
  333. cookies: Optional[Mapping[str, str]] = None,
  334. content: Optional[bytes] = None,
  335. data: Optional[Any] = None,
  336. json: Optional[Any] = None,
  337. files: Optional[Mapping[str, str]] = None,
  338. auth: Optional[Tuple[str, Optional[str]]] = None,
  339. auth_bearer: Optional[str] = None,
  340. timeout: Optional[float] = None,
  341. stream: bool = False,
  342. ) -> Union[Response, StreamResponse]: ...
  343. def post(
  344. self,
  345. url: str,
  346. params: Optional[Mapping[str, str]] = None,
  347. headers: Optional[Mapping[str, str]] = None,
  348. cookies: Optional[Mapping[str, str]] = None,
  349. content: Optional[bytes] = None,
  350. data: Optional[Any] = None,
  351. json: Optional[Any] = None,
  352. files: Optional[Mapping[str, str]] = None,
  353. auth: Optional[Tuple[str, Optional[str]]] = None,
  354. auth_bearer: Optional[str] = None,
  355. timeout: Optional[float] = None,
  356. stream: bool = False,
  357. ) -> Union[Response, StreamResponse]: ...
  358. def put(
  359. self,
  360. url: str,
  361. params: Optional[Mapping[str, str]] = None,
  362. headers: Optional[Mapping[str, str]] = None,
  363. cookies: Optional[Mapping[str, str]] = None,
  364. content: Optional[bytes] = None,
  365. data: Optional[Any] = None,
  366. json: Optional[Any] = None,
  367. files: Optional[Mapping[str, str]] = None,
  368. auth: Optional[Tuple[str, Optional[str]]] = None,
  369. auth_bearer: Optional[str] = None,
  370. timeout: Optional[float] = None,
  371. stream: bool = False,
  372. ) -> Union[Response, StreamResponse]: ...
  373. def patch(
  374. self,
  375. url: str,
  376. params: Optional[Mapping[str, str]] = None,
  377. headers: Optional[Mapping[str, str]] = None,
  378. cookies: Optional[Mapping[str, str]] = None,
  379. content: Optional[bytes] = None,
  380. data: Optional[Any] = None,
  381. json: Optional[Any] = None,
  382. files: Optional[Mapping[str, str]] = None,
  383. auth: Optional[Tuple[str, Optional[str]]] = None,
  384. auth_bearer: Optional[str] = None,
  385. timeout: Optional[float] = None,
  386. stream: bool = False,
  387. ) -> Union[Response, StreamResponse]: ...
  388. # Context manager
  389. def __enter__(self) -> Client: ...
  390. def __exit__(
  391. self,
  392. exc_type: Optional[Any],
  393. exc_value: Optional[Any],
  394. traceback: Optional[Any],
  395. ) -> None: ...
  396. class AsyncClient:
  397. """
  398. Asynchronous HTTP client that can impersonate web browsers.
  399. This client supports browser impersonation, proxy configuration,
  400. cookie management, and various authentication methods.
  401. Example:
  402. >>> async with AsyncClient(impersonate="chrome_144") as client:
  403. ... response = await client.get("https://example.com")
  404. ... print(response.text)
  405. """
  406. # Instance properties
  407. auth: Optional[Tuple[str, Optional[str]]]
  408. auth_bearer: Optional[str]
  409. params: Optional[Mapping[str, str]]
  410. proxy: Optional[str]
  411. timeout: Optional[float]
  412. @property
  413. def headers(self) -> Dict[str, str]: ...
  414. @headers.setter
  415. def headers(self, value: Optional[Mapping[str, str]]) -> None: ...
  416. @property
  417. def impersonate(self) -> Optional[str]: ...
  418. @property
  419. def impersonate_os(self) -> Optional[str]: ...
  420. def __init__(
  421. self,
  422. auth: Optional[Tuple[str, Optional[str]]] = None,
  423. auth_bearer: Optional[str] = None,
  424. params: Optional[Mapping[str, str]] = None,
  425. headers: Optional[Mapping[str, str]] = None,
  426. cookie_store: bool = True,
  427. referer: bool = True,
  428. proxy: Optional[str] = None,
  429. timeout: Optional[float] = None,
  430. impersonate: Optional[str] = None,
  431. impersonate_os: Optional[str] = None,
  432. follow_redirects: bool = True,
  433. max_redirects: int = 20,
  434. verify: bool = True,
  435. ca_cert_file: Optional[str] = None,
  436. https_only: bool = False,
  437. http2_only: bool = False,
  438. ) -> None: ...
  439. def headers_update(self, new_headers: Optional[Mapping[str, str]]) -> None: ...
  440. def get_cookies(self, url: str) -> Dict[str, str]: ...
  441. def set_cookies(self, url: str, cookies: Optional[Mapping[str, str]]) -> None: ...
  442. async def request(
  443. self,
  444. method: str,
  445. url: str,
  446. params: Optional[Mapping[str, str]] = None,
  447. headers: Optional[Mapping[str, str]] = None,
  448. cookies: Optional[Mapping[str, str]] = None,
  449. content: Optional[bytes] = None,
  450. data: Optional[Any] = None,
  451. json: Optional[Any] = None,
  452. files: Optional[Mapping[str, str]] = None,
  453. auth: Optional[Tuple[str, Optional[str]]] = None,
  454. auth_bearer: Optional[str] = None,
  455. timeout: Optional[float] = None,
  456. stream: bool = False,
  457. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  458. async def get(
  459. self,
  460. url: str,
  461. params: Optional[Mapping[str, str]] = None,
  462. headers: Optional[Mapping[str, str]] = None,
  463. cookies: Optional[Mapping[str, str]] = None,
  464. content: Optional[bytes] = None,
  465. data: Optional[Any] = None,
  466. json: Optional[Any] = None,
  467. files: Optional[Mapping[str, str]] = None,
  468. auth: Optional[Tuple[str, Optional[str]]] = None,
  469. auth_bearer: Optional[str] = None,
  470. timeout: Optional[float] = None,
  471. stream: bool = False,
  472. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  473. async def head(
  474. self,
  475. url: str,
  476. params: Optional[Mapping[str, str]] = None,
  477. headers: Optional[Mapping[str, str]] = None,
  478. cookies: Optional[Mapping[str, str]] = None,
  479. content: Optional[bytes] = None,
  480. data: Optional[Any] = None,
  481. json: Optional[Any] = None,
  482. files: Optional[Mapping[str, str]] = None,
  483. auth: Optional[Tuple[str, Optional[str]]] = None,
  484. auth_bearer: Optional[str] = None,
  485. timeout: Optional[float] = None,
  486. stream: bool = False,
  487. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  488. async def options(
  489. self,
  490. url: str,
  491. params: Optional[Mapping[str, str]] = None,
  492. headers: Optional[Mapping[str, str]] = None,
  493. cookies: Optional[Mapping[str, str]] = None,
  494. content: Optional[bytes] = None,
  495. data: Optional[Any] = None,
  496. json: Optional[Any] = None,
  497. files: Optional[Mapping[str, str]] = None,
  498. auth: Optional[Tuple[str, Optional[str]]] = None,
  499. auth_bearer: Optional[str] = None,
  500. timeout: Optional[float] = None,
  501. stream: bool = False,
  502. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  503. async def delete(
  504. self,
  505. url: str,
  506. params: Optional[Mapping[str, str]] = None,
  507. headers: Optional[Mapping[str, str]] = None,
  508. cookies: Optional[Mapping[str, str]] = None,
  509. content: Optional[bytes] = None,
  510. data: Optional[Any] = None,
  511. json: Optional[Any] = None,
  512. files: Optional[Mapping[str, str]] = None,
  513. auth: Optional[Tuple[str, Optional[str]]] = None,
  514. auth_bearer: Optional[str] = None,
  515. timeout: Optional[float] = None,
  516. stream: bool = False,
  517. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  518. async def post(
  519. self,
  520. url: str,
  521. params: Optional[Mapping[str, str]] = None,
  522. headers: Optional[Mapping[str, str]] = None,
  523. cookies: Optional[Mapping[str, str]] = None,
  524. content: Optional[bytes] = None,
  525. data: Optional[Any] = None,
  526. json: Optional[Any] = None,
  527. files: Optional[Mapping[str, str]] = None,
  528. auth: Optional[Tuple[str, Optional[str]]] = None,
  529. auth_bearer: Optional[str] = None,
  530. timeout: Optional[float] = None,
  531. stream: bool = False,
  532. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  533. async def put(
  534. self,
  535. url: str,
  536. params: Optional[Mapping[str, str]] = None,
  537. headers: Optional[Mapping[str, str]] = None,
  538. cookies: Optional[Mapping[str, str]] = None,
  539. content: Optional[bytes] = None,
  540. data: Optional[Any] = None,
  541. json: Optional[Any] = None,
  542. files: Optional[Mapping[str, str]] = None,
  543. auth: Optional[Tuple[str, Optional[str]]] = None,
  544. auth_bearer: Optional[str] = None,
  545. timeout: Optional[float] = None,
  546. stream: bool = False,
  547. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  548. async def patch(
  549. self,
  550. url: str,
  551. params: Optional[Mapping[str, str]] = None,
  552. headers: Optional[Mapping[str, str]] = None,
  553. cookies: Optional[Mapping[str, str]] = None,
  554. content: Optional[bytes] = None,
  555. data: Optional[Any] = None,
  556. json: Optional[Any] = None,
  557. files: Optional[Mapping[str, str]] = None,
  558. auth: Optional[Tuple[str, Optional[str]]] = None,
  559. auth_bearer: Optional[str] = None,
  560. timeout: Optional[float] = None,
  561. stream: bool = False,
  562. ) -> Union[AsyncResponse, AsyncStreamResponse]: ...
  563. # Async context manager
  564. async def __aenter__(self) -> AsyncClient: ...
  565. async def __aexit__(
  566. self,
  567. exc_type: Optional[Any],
  568. exc_value: Optional[Any],
  569. traceback: Optional[Any],
  570. ) -> None: ...
  571. # =============================================================================
  572. # Module-level Functions
  573. # =============================================================================
  574. def get(
  575. url: str,
  576. params: Optional[Mapping[str, str]] = None,
  577. headers: Optional[Mapping[str, str]] = None,
  578. cookies: Optional[Mapping[str, str]] = None,
  579. content: Optional[bytes] = None,
  580. data: Optional[Any] = None,
  581. json: Optional[Any] = None,
  582. files: Optional[Mapping[str, str]] = None,
  583. auth: Optional[Tuple[str, Optional[str]]] = None,
  584. auth_bearer: Optional[str] = None,
  585. timeout: Optional[float] = None,
  586. impersonate: Optional[str] = None,
  587. impersonate_os: Optional[str] = None,
  588. verify: bool = True,
  589. ca_cert_file: Optional[str] = None,
  590. stream: bool = False,
  591. ) -> Union[Response, StreamResponse]:
  592. """
  593. Send a GET request with a temporary client.
  594. Args:
  595. url: The URL to request.
  596. params: Query parameters to append to the URL.
  597. headers: HTTP headers to send with the request.
  598. cookies: Cookies to send with the request.
  599. content: Raw bytes to send in the request body.
  600. data: Form data to send in the request body.
  601. json: JSON-serializable object to send in the request body.
  602. files: Mapping of field names to file paths for multipart upload.
  603. auth: Tuple of (username, password) for basic authentication.
  604. auth_bearer: Bearer token for authentication.
  605. timeout: Request timeout in seconds.
  606. impersonate: Browser to impersonate (e.g., "chrome_144").
  607. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  608. verify: Whether to verify SSL certificates.
  609. ca_cert_file: Path to CA certificate file.
  610. stream: If True, returns a StreamResponse for streaming.
  611. Returns:
  612. Response or StreamResponse object.
  613. """
  614. ...
  615. def head(
  616. url: str,
  617. params: Optional[Mapping[str, str]] = None,
  618. headers: Optional[Mapping[str, str]] = None,
  619. cookies: Optional[Mapping[str, str]] = None,
  620. content: Optional[bytes] = None,
  621. data: Optional[Any] = None,
  622. json: Optional[Any] = None,
  623. files: Optional[Mapping[str, str]] = None,
  624. auth: Optional[Tuple[str, Optional[str]]] = None,
  625. auth_bearer: Optional[str] = None,
  626. timeout: Optional[float] = None,
  627. impersonate: Optional[str] = None,
  628. impersonate_os: Optional[str] = None,
  629. verify: bool = True,
  630. ca_cert_file: Optional[str] = None,
  631. stream: bool = False,
  632. ) -> Union[Response, StreamResponse]:
  633. """
  634. Send a HEAD request with a temporary client.
  635. Args:
  636. url: The URL to request.
  637. params: Query parameters to append to the URL.
  638. headers: HTTP headers to send with the request.
  639. cookies: Cookies to send with the request.
  640. content: Raw bytes to send in the request body.
  641. data: Form data to send in the request body.
  642. json: JSON-serializable object to send in the request body.
  643. files: Mapping of field names to file paths for multipart upload.
  644. auth: Tuple of (username, password) for basic authentication.
  645. auth_bearer: Bearer token for authentication.
  646. timeout: Request timeout in seconds.
  647. impersonate: Browser to impersonate (e.g., "chrome_144").
  648. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  649. verify: Whether to verify SSL certificates.
  650. ca_cert_file: Path to CA certificate file.
  651. stream: If True, returns a StreamResponse for streaming.
  652. Returns:
  653. Response or StreamResponse object.
  654. """
  655. ...
  656. def options(
  657. url: str,
  658. params: Optional[Mapping[str, str]] = None,
  659. headers: Optional[Mapping[str, str]] = None,
  660. cookies: Optional[Mapping[str, str]] = None,
  661. content: Optional[bytes] = None,
  662. data: Optional[Any] = None,
  663. json: Optional[Any] = None,
  664. files: Optional[Mapping[str, str]] = None,
  665. auth: Optional[Tuple[str, Optional[str]]] = None,
  666. auth_bearer: Optional[str] = None,
  667. timeout: Optional[float] = None,
  668. impersonate: Optional[str] = None,
  669. impersonate_os: Optional[str] = None,
  670. verify: bool = True,
  671. ca_cert_file: Optional[str] = None,
  672. stream: bool = False,
  673. ) -> Union[Response, StreamResponse]:
  674. """
  675. Send an OPTIONS request with a temporary client.
  676. Args:
  677. url: The URL to request.
  678. params: Query parameters to append to the URL.
  679. headers: HTTP headers to send with the request.
  680. cookies: Cookies to send with the request.
  681. content: Raw bytes to send in the request body.
  682. data: Form data to send in the request body.
  683. json: JSON-serializable object to send in the request body.
  684. files: Mapping of field names to file paths for multipart upload.
  685. auth: Tuple of (username, password) for basic authentication.
  686. auth_bearer: Bearer token for authentication.
  687. timeout: Request timeout in seconds.
  688. impersonate: Browser to impersonate (e.g., "chrome_144").
  689. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  690. verify: Whether to verify SSL certificates.
  691. ca_cert_file: Path to CA certificate file.
  692. stream: If True, returns a StreamResponse for streaming.
  693. Returns:
  694. Response or StreamResponse object.
  695. """
  696. ...
  697. def delete(
  698. url: str,
  699. params: Optional[Mapping[str, str]] = None,
  700. headers: Optional[Mapping[str, str]] = None,
  701. cookies: Optional[Mapping[str, str]] = None,
  702. content: Optional[bytes] = None,
  703. data: Optional[Any] = None,
  704. json: Optional[Any] = None,
  705. files: Optional[Mapping[str, str]] = None,
  706. auth: Optional[Tuple[str, Optional[str]]] = None,
  707. auth_bearer: Optional[str] = None,
  708. timeout: Optional[float] = None,
  709. impersonate: Optional[str] = None,
  710. impersonate_os: Optional[str] = None,
  711. verify: bool = True,
  712. ca_cert_file: Optional[str] = None,
  713. stream: bool = False,
  714. ) -> Union[Response, StreamResponse]:
  715. """
  716. Send a DELETE request with a temporary client.
  717. Args:
  718. url: The URL to request.
  719. params: Query parameters to append to the URL.
  720. headers: HTTP headers to send with the request.
  721. cookies: Cookies to send with the request.
  722. content: Raw bytes to send in the request body.
  723. data: Form data to send in the request body.
  724. json: JSON-serializable object to send in the request body.
  725. files: Mapping of field names to file paths for multipart upload.
  726. auth: Tuple of (username, password) for basic authentication.
  727. auth_bearer: Bearer token for authentication.
  728. timeout: Request timeout in seconds.
  729. impersonate: Browser to impersonate (e.g., "chrome_144").
  730. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  731. verify: Whether to verify SSL certificates.
  732. ca_cert_file: Path to CA certificate file.
  733. stream: If True, returns a StreamResponse for streaming.
  734. Returns:
  735. Response or StreamResponse object.
  736. """
  737. ...
  738. def post(
  739. url: str,
  740. params: Optional[Mapping[str, str]] = None,
  741. headers: Optional[Mapping[str, str]] = None,
  742. cookies: Optional[Mapping[str, str]] = None,
  743. content: Optional[bytes] = None,
  744. data: Optional[Any] = None,
  745. json: Optional[Any] = None,
  746. files: Optional[Mapping[str, str]] = None,
  747. auth: Optional[Tuple[str, Optional[str]]] = None,
  748. auth_bearer: Optional[str] = None,
  749. timeout: Optional[float] = None,
  750. impersonate: Optional[str] = None,
  751. impersonate_os: Optional[str] = None,
  752. verify: bool = True,
  753. ca_cert_file: Optional[str] = None,
  754. stream: bool = False,
  755. ) -> Union[Response, StreamResponse]:
  756. """
  757. Send a POST request with a temporary client.
  758. Args:
  759. url: The URL to request.
  760. params: Query parameters to append to the URL.
  761. headers: HTTP headers to send with the request.
  762. cookies: Cookies to send with the request.
  763. content: Raw bytes to send in the request body.
  764. data: Form data to send in the request body.
  765. json: JSON-serializable object to send in the request body.
  766. files: Mapping of field names to file paths for multipart upload.
  767. auth: Tuple of (username, password) for basic authentication.
  768. auth_bearer: Bearer token for authentication.
  769. timeout: Request timeout in seconds.
  770. impersonate: Browser to impersonate (e.g., "chrome_144").
  771. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  772. verify: Whether to verify SSL certificates.
  773. ca_cert_file: Path to CA certificate file.
  774. stream: If True, returns a StreamResponse for streaming.
  775. Returns:
  776. Response or StreamResponse object.
  777. """
  778. ...
  779. def put(
  780. url: str,
  781. params: Optional[Mapping[str, str]] = None,
  782. headers: Optional[Mapping[str, str]] = None,
  783. cookies: Optional[Mapping[str, str]] = None,
  784. content: Optional[bytes] = None,
  785. data: Optional[Any] = None,
  786. json: Optional[Any] = None,
  787. files: Optional[Mapping[str, str]] = None,
  788. auth: Optional[Tuple[str, Optional[str]]] = None,
  789. auth_bearer: Optional[str] = None,
  790. timeout: Optional[float] = None,
  791. impersonate: Optional[str] = None,
  792. impersonate_os: Optional[str] = None,
  793. verify: bool = True,
  794. ca_cert_file: Optional[str] = None,
  795. stream: bool = False,
  796. ) -> Union[Response, StreamResponse]:
  797. """
  798. Send a PUT request with a temporary client.
  799. Args:
  800. url: The URL to request.
  801. params: Query parameters to append to the URL.
  802. headers: HTTP headers to send with the request.
  803. cookies: Cookies to send with the request.
  804. content: Raw bytes to send in the request body.
  805. data: Form data to send in the request body.
  806. json: JSON-serializable object to send in the request body.
  807. files: Mapping of field names to file paths for multipart upload.
  808. auth: Tuple of (username, password) for basic authentication.
  809. auth_bearer: Bearer token for authentication.
  810. timeout: Request timeout in seconds.
  811. impersonate: Browser to impersonate (e.g., "chrome_144").
  812. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  813. verify: Whether to verify SSL certificates.
  814. ca_cert_file: Path to CA certificate file.
  815. stream: If True, returns a StreamResponse for streaming.
  816. Returns:
  817. Response or StreamResponse object.
  818. """
  819. ...
  820. def patch(
  821. url: str,
  822. params: Optional[Mapping[str, str]] = None,
  823. headers: Optional[Mapping[str, str]] = None,
  824. cookies: Optional[Mapping[str, str]] = None,
  825. content: Optional[bytes] = None,
  826. data: Optional[Any] = None,
  827. json: Optional[Any] = None,
  828. files: Optional[Mapping[str, str]] = None,
  829. auth: Optional[Tuple[str, Optional[str]]] = None,
  830. auth_bearer: Optional[str] = None,
  831. timeout: Optional[float] = None,
  832. impersonate: Optional[str] = None,
  833. impersonate_os: Optional[str] = None,
  834. verify: bool = True,
  835. ca_cert_file: Optional[str] = None,
  836. stream: bool = False,
  837. ) -> Union[Response, StreamResponse]:
  838. """
  839. Send a PATCH request with a temporary client.
  840. Args:
  841. url: The URL to request.
  842. params: Query parameters to append to the URL.
  843. headers: HTTP headers to send with the request.
  844. cookies: Cookies to send with the request.
  845. content: Raw bytes to send in the request body.
  846. data: Form data to send in the request body.
  847. json: JSON-serializable object to send in the request body.
  848. files: Mapping of field names to file paths for multipart upload.
  849. auth: Tuple of (username, password) for basic authentication.
  850. auth_bearer: Bearer token for authentication.
  851. timeout: Request timeout in seconds.
  852. impersonate: Browser to impersonate (e.g., "chrome_144").
  853. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  854. verify: Whether to verify SSL certificates.
  855. ca_cert_file: Path to CA certificate file.
  856. stream: If True, returns a StreamResponse for streaming.
  857. Returns:
  858. Response or StreamResponse object.
  859. """
  860. ...
  861. def request(
  862. method: str,
  863. url: str,
  864. params: Optional[Mapping[str, str]] = None,
  865. headers: Optional[Mapping[str, str]] = None,
  866. cookies: Optional[Mapping[str, str]] = None,
  867. content: Optional[bytes] = None,
  868. data: Optional[Any] = None,
  869. json: Optional[Any] = None,
  870. files: Optional[Mapping[str, str]] = None,
  871. auth: Optional[Tuple[str, Optional[str]]] = None,
  872. auth_bearer: Optional[str] = None,
  873. timeout: Optional[float] = None,
  874. impersonate: Optional[str] = None,
  875. impersonate_os: Optional[str] = None,
  876. verify: bool = True,
  877. ca_cert_file: Optional[str] = None,
  878. stream: bool = False,
  879. ) -> Union[Response, StreamResponse]:
  880. """
  881. Send a request with a custom HTTP method using a temporary client.
  882. Args:
  883. method: The HTTP method to use (e.g., "GET", "POST", "CUSTOM").
  884. url: The URL to request.
  885. params: Query parameters to append to the URL.
  886. headers: HTTP headers to send with the request.
  887. cookies: Cookies to send with the request.
  888. content: Raw bytes to send in the request body.
  889. data: Form data to send in the request body.
  890. json: JSON-serializable object to send in the request body.
  891. files: Mapping of field names to file paths for multipart upload.
  892. auth: Tuple of (username, password) for basic authentication.
  893. auth_bearer: Bearer token for authentication.
  894. timeout: Request timeout in seconds.
  895. impersonate: Browser to impersonate (e.g., "chrome_144").
  896. impersonate_os: OS to impersonate (e.g., "windows", "macos", "linux").
  897. verify: Whether to verify SSL certificates.
  898. ca_cert_file: Path to CA certificate file.
  899. stream: If True, returns a StreamResponse for streaming.
  900. Returns:
  901. Response or StreamResponse object.
  902. """
  903. ...