Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
_api.py439 linesDownload Raw Back to httpx
1from __future__ import annotations2 3import typing4from contextlib import contextmanager5 6from ._client import Client7from ._config import DEFAULT_TIMEOUT_CONFIG8from ._models import Response9from ._types import (10    AuthTypes,11    CookieTypes,12    HeaderTypes,13    ProxyTypes,14    QueryParamTypes,15    RequestContent,16    RequestData,17    RequestFiles,18    TimeoutTypes,19)20from ._urls import URL21 22if typing.TYPE_CHECKING:23    import ssl  # pragma: no cover24 25 26__all__ = [27    "delete",28    "get",29    "head",30    "options",31    "patch",32    "post",33    "put",34    "request",35    "stream",36]37 38 39def request(40    method: str,41    url: URL | str,42    *,43    params: QueryParamTypes | None = None,44    content: RequestContent | None = None,45    data: RequestData | None = None,46    files: RequestFiles | None = None,47    json: typing.Any | None = None,48    headers: HeaderTypes | None = None,49    cookies: CookieTypes | None = None,50    auth: AuthTypes | None = None,51    proxy: ProxyTypes | None = None,52    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,53    follow_redirects: bool = False,54    verify: ssl.SSLContext | str | bool = True,55    trust_env: bool = True,56) -> Response:57    """58    Sends an HTTP request.59 60    **Parameters:**61 62    * **method** - HTTP method for the new `Request` object: `GET`, `OPTIONS`,63    `HEAD`, `POST`, `PUT`, `PATCH`, or `DELETE`.64    * **url** - URL for the new `Request` object.65    * **params** - *(optional)* Query parameters to include in the URL, as a66    string, dictionary, or sequence of two-tuples.67    * **content** - *(optional)* Binary content to include in the body of the68    request, as bytes or a byte iterator.69    * **data** - *(optional)* Form data to include in the body of the request,70    as a dictionary.71    * **files** - *(optional)* A dictionary of upload files to include in the72    body of the request.73    * **json** - *(optional)* A JSON serializable object to include in the body74    of the request.75    * **headers** - *(optional)* Dictionary of HTTP headers to include in the76    request.77    * **cookies** - *(optional)* Dictionary of Cookie items to include in the78    request.79    * **auth** - *(optional)* An authentication class to use when sending the80    request.81    * **proxy** - *(optional)* A proxy URL where all the traffic should be routed.82    * **timeout** - *(optional)* The timeout configuration to use when sending83    the request.84    * **follow_redirects** - *(optional)* Enables or disables HTTP redirects.85    * **verify** - *(optional)* Either `True` to use an SSL context with the86    default CA bundle, `False` to disable verification, or an instance of87    `ssl.SSLContext` to use a custom context.88    * **trust_env** - *(optional)* Enables or disables usage of environment89    variables for configuration.90 91    **Returns:** `Response`92 93    Usage:94 95    ```96    >>> import httpx97    >>> response = httpx.request('GET', 'https://httpbin.org/get')98    >>> response99    <Response [200 OK]>100    ```101    """102    with Client(103        cookies=cookies,104        proxy=proxy,105        verify=verify,106        timeout=timeout,107        trust_env=trust_env,108    ) as client:109        return client.request(110            method=method,111            url=url,112            content=content,113            data=data,114            files=files,115            json=json,116            params=params,117            headers=headers,118            auth=auth,119            follow_redirects=follow_redirects,120        )121 122 123@contextmanager124def stream(125    method: str,126    url: URL | str,127    *,128    params: QueryParamTypes | None = None,129    content: RequestContent | None = None,130    data: RequestData | None = None,131    files: RequestFiles | None = None,132    json: typing.Any | None = None,133    headers: HeaderTypes | None = None,134    cookies: CookieTypes | None = None,135    auth: AuthTypes | None = None,136    proxy: ProxyTypes | None = None,137    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,138    follow_redirects: bool = False,139    verify: ssl.SSLContext | str | bool = True,140    trust_env: bool = True,141) -> typing.Iterator[Response]:142    """143    Alternative to `httpx.request()` that streams the response body144    instead of loading it into memory at once.145 146    **Parameters**: See `httpx.request`.147 148    See also: [Streaming Responses][0]149 150    [0]: /quickstart#streaming-responses151    """152    with Client(153        cookies=cookies,154        proxy=proxy,155        verify=verify,156        timeout=timeout,157        trust_env=trust_env,158    ) as client:159        with client.stream(160            method=method,161            url=url,162            content=content,163            data=data,164            files=files,165            json=json,166            params=params,167            headers=headers,168            auth=auth,169            follow_redirects=follow_redirects,170        ) as response:171            yield response172 173 174def get(175    url: URL | str,176    *,177    params: QueryParamTypes | None = None,178    headers: HeaderTypes | None = None,179    cookies: CookieTypes | None = None,180    auth: AuthTypes | None = None,181    proxy: ProxyTypes | None = None,182    follow_redirects: bool = False,183    verify: ssl.SSLContext | str | bool = True,184    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,185    trust_env: bool = True,186) -> Response:187    """188    Sends a `GET` request.189 190    **Parameters**: See `httpx.request`.191 192    Note that the `data`, `files`, `json` and `content` parameters are not available193    on this function, as `GET` requests should not include a request body.194    """195    return request(196        "GET",197        url,198        params=params,199        headers=headers,200        cookies=cookies,201        auth=auth,202        proxy=proxy,203        follow_redirects=follow_redirects,204        verify=verify,205        timeout=timeout,206        trust_env=trust_env,207    )208 209 210def options(211    url: URL | str,212    *,213    params: QueryParamTypes | None = None,214    headers: HeaderTypes | None = None,215    cookies: CookieTypes | None = None,216    auth: AuthTypes | None = None,217    proxy: ProxyTypes | None = None,218    follow_redirects: bool = False,219    verify: ssl.SSLContext | str | bool = True,220    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,221    trust_env: bool = True,222) -> Response:223    """224    Sends an `OPTIONS` request.225 226    **Parameters**: See `httpx.request`.227 228    Note that the `data`, `files`, `json` and `content` parameters are not available229    on this function, as `OPTIONS` requests should not include a request body.230    """231    return request(232        "OPTIONS",233        url,234        params=params,235        headers=headers,236        cookies=cookies,237        auth=auth,238        proxy=proxy,239        follow_redirects=follow_redirects,240        verify=verify,241        timeout=timeout,242        trust_env=trust_env,243    )244 245 246def head(247    url: URL | str,248    *,249    params: QueryParamTypes | None = None,250    headers: HeaderTypes | None = None,251    cookies: CookieTypes | None = None,252    auth: AuthTypes | None = None,253    proxy: ProxyTypes | None = None,254    follow_redirects: bool = False,255    verify: ssl.SSLContext | str | bool = True,256    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,257    trust_env: bool = True,258) -> Response:259    """260    Sends a `HEAD` request.261 262    **Parameters**: See `httpx.request`.263 264    Note that the `data`, `files`, `json` and `content` parameters are not available265    on this function, as `HEAD` requests should not include a request body.266    """267    return request(268        "HEAD",269        url,270        params=params,271        headers=headers,272        cookies=cookies,273        auth=auth,274        proxy=proxy,275        follow_redirects=follow_redirects,276        verify=verify,277        timeout=timeout,278        trust_env=trust_env,279    )280 281 282def post(283    url: URL | str,284    *,285    content: RequestContent | None = None,286    data: RequestData | None = None,287    files: RequestFiles | None = None,288    json: typing.Any | None = None,289    params: QueryParamTypes | None = None,290    headers: HeaderTypes | None = None,291    cookies: CookieTypes | None = None,292    auth: AuthTypes | None = None,293    proxy: ProxyTypes | None = None,294    follow_redirects: bool = False,295    verify: ssl.SSLContext | str | bool = True,296    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,297    trust_env: bool = True,298) -> Response:299    """300    Sends a `POST` request.301 302    **Parameters**: See `httpx.request`.303    """304    return request(305        "POST",306        url,307        content=content,308        data=data,309        files=files,310        json=json,311        params=params,312        headers=headers,313        cookies=cookies,314        auth=auth,315        proxy=proxy,316        follow_redirects=follow_redirects,317        verify=verify,318        timeout=timeout,319        trust_env=trust_env,320    )321 322 323def put(324    url: URL | str,325    *,326    content: RequestContent | None = None,327    data: RequestData | None = None,328    files: RequestFiles | None = None,329    json: typing.Any | None = None,330    params: QueryParamTypes | None = None,331    headers: HeaderTypes | None = None,332    cookies: CookieTypes | None = None,333    auth: AuthTypes | None = None,334    proxy: ProxyTypes | None = None,335    follow_redirects: bool = False,336    verify: ssl.SSLContext | str | bool = True,337    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,338    trust_env: bool = True,339) -> Response:340    """341    Sends a `PUT` request.342 343    **Parameters**: See `httpx.request`.344    """345    return request(346        "PUT",347        url,348        content=content,349        data=data,350        files=files,351        json=json,352        params=params,353        headers=headers,354        cookies=cookies,355        auth=auth,356        proxy=proxy,357        follow_redirects=follow_redirects,358        verify=verify,359        timeout=timeout,360        trust_env=trust_env,361    )362 363 364def patch(365    url: URL | str,366    *,367    content: RequestContent | None = None,368    data: RequestData | None = None,369    files: RequestFiles | None = None,370    json: typing.Any | None = None,371    params: QueryParamTypes | None = None,372    headers: HeaderTypes | None = None,373    cookies: CookieTypes | None = None,374    auth: AuthTypes | None = None,375    proxy: ProxyTypes | None = None,376    follow_redirects: bool = False,377    verify: ssl.SSLContext | str | bool = True,378    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,379    trust_env: bool = True,380) -> Response:381    """382    Sends a `PATCH` request.383 384    **Parameters**: See `httpx.request`.385    """386    return request(387        "PATCH",388        url,389        content=content,390        data=data,391        files=files,392        json=json,393        params=params,394        headers=headers,395        cookies=cookies,396        auth=auth,397        proxy=proxy,398        follow_redirects=follow_redirects,399        verify=verify,400        timeout=timeout,401        trust_env=trust_env,402    )403 404 405def delete(406    url: URL | str,407    *,408    params: QueryParamTypes | None = None,409    headers: HeaderTypes | None = None,410    cookies: CookieTypes | None = None,411    auth: AuthTypes | None = None,412    proxy: ProxyTypes | None = None,413    follow_redirects: bool = False,414    timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,415    verify: ssl.SSLContext | str | bool = True,416    trust_env: bool = True,417) -> Response:418    """419    Sends a `DELETE` request.420 421    **Parameters**: See `httpx.request`.422 423    Note that the `data`, `files`, `json` and `content` parameters are not available424    on this function, as `DELETE` requests should not include a request body.425    """426    return request(427        "DELETE",428        url,429        params=params,430        headers=headers,431        cookies=cookies,432        auth=auth,433        proxy=proxy,434        follow_redirects=follow_redirects,435        verify=verify,436        timeout=timeout,437        trust_env=trust_env,438    )439 
codekingpro/portable-devtools · Team Ai