* Start fleshing out documentation * Docs work * http3 * Update docs * Include lowercase status codes, for requests compat * Updating docs * Docs tweaks
262 lines
5.7 KiB
Python
262 lines
5.7 KiB
Python
import typing
|
||
|
||
from .client import Client
|
||
from .config import CertTypes, TimeoutTypes, VerifyTypes
|
||
from .models import (
|
||
AuthTypes,
|
||
CookieTypes,
|
||
HeaderTypes,
|
||
QueryParamTypes,
|
||
RequestData,
|
||
Response,
|
||
URLTypes,
|
||
)
|
||
|
||
|
||
def request(
|
||
method: str,
|
||
url: URLTypes,
|
||
*,
|
||
params: QueryParamTypes = None,
|
||
data: RequestData = b"",
|
||
json: typing.Any = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
# files
|
||
auth: AuthTypes = None,
|
||
timeout: TimeoutTypes = None,
|
||
allow_redirects: bool = True,
|
||
# proxies
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
stream: bool = False,
|
||
) -> Response:
|
||
with Client() as client:
|
||
return client.request(
|
||
method=method,
|
||
url=url,
|
||
data=data,
|
||
json=json,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def get(
|
||
url: URLTypes,
|
||
*,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = True,
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"GET",
|
||
url,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def options(
|
||
url: URLTypes,
|
||
*,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = True,
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"OPTIONS",
|
||
url,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def head(
|
||
url: URLTypes,
|
||
*,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = False, # Note: Differs to usual default.
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"HEAD",
|
||
url,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def post(
|
||
url: URLTypes,
|
||
*,
|
||
data: RequestData = b"",
|
||
json: typing.Any = None,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = True,
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"POST",
|
||
url,
|
||
data=data,
|
||
json=json,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def put(
|
||
url: URLTypes,
|
||
*,
|
||
data: RequestData = b"",
|
||
json: typing.Any = None,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = True,
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"PUT",
|
||
url,
|
||
data=data,
|
||
json=json,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def patch(
|
||
url: URLTypes,
|
||
*,
|
||
data: RequestData = b"",
|
||
json: typing.Any = None,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = True,
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"PATCH",
|
||
url,
|
||
data=data,
|
||
json=json,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|
||
|
||
|
||
def delete(
|
||
url: URLTypes,
|
||
*,
|
||
data: RequestData = b"",
|
||
json: typing.Any = None,
|
||
params: QueryParamTypes = None,
|
||
headers: HeaderTypes = None,
|
||
cookies: CookieTypes = None,
|
||
stream: bool = False,
|
||
auth: AuthTypes = None,
|
||
allow_redirects: bool = True,
|
||
cert: CertTypes = None,
|
||
verify: VerifyTypes = True,
|
||
timeout: TimeoutTypes = None,
|
||
) -> Response:
|
||
return request(
|
||
"DELETE",
|
||
url,
|
||
data=data,
|
||
json=json,
|
||
params=params,
|
||
headers=headers,
|
||
cookies=cookies,
|
||
stream=stream,
|
||
auth=auth,
|
||
allow_redirects=allow_redirects,
|
||
cert=cert,
|
||
verify=verify,
|
||
timeout=timeout,
|
||
)
|