Spaces:
Running
Running
from __future__ import annotations | |
import typing | |
from .util.connection import _TYPE_SOCKET_OPTIONS | |
from .util.timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT | |
from .util.url import Url | |
_TYPE_BODY = typing.Union[bytes, typing.IO[typing.Any], typing.Iterable[bytes], str] | |
class ProxyConfig(typing.NamedTuple): | |
ssl_context: ssl.SSLContext | None | |
use_forwarding_for_https: bool | |
assert_hostname: None | str | typing.Literal[False] | |
assert_fingerprint: str | None | |
class _ResponseOptions(typing.NamedTuple): | |
# TODO: Remove this in favor of a better | |
# HTTP request/response lifecycle tracking. | |
request_method: str | |
request_url: str | |
preload_content: bool | |
decode_content: bool | |
enforce_content_length: bool | |
if typing.TYPE_CHECKING: | |
import ssl | |
from typing import Protocol | |
from .response import BaseHTTPResponse | |
class BaseHTTPConnection(Protocol): | |
default_port: typing.ClassVar[int] | |
default_socket_options: typing.ClassVar[_TYPE_SOCKET_OPTIONS] | |
host: str | |
port: int | |
timeout: None | ( | |
float | |
) # Instance doesn't store _DEFAULT_TIMEOUT, must be resolved. | |
blocksize: int | |
source_address: tuple[str, int] | None | |
socket_options: _TYPE_SOCKET_OPTIONS | None | |
proxy: Url | None | |
proxy_config: ProxyConfig | None | |
is_verified: bool | |
proxy_is_verified: bool | None | |
def __init__( | |
self, | |
host: str, | |
port: int | None = None, | |
*, | |
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, | |
source_address: tuple[str, int] | None = None, | |
blocksize: int = 8192, | |
socket_options: _TYPE_SOCKET_OPTIONS | None = ..., | |
proxy: Url | None = None, | |
proxy_config: ProxyConfig | None = None, | |
) -> None: ... | |
def set_tunnel( | |
self, | |
host: str, | |
port: int | None = None, | |
headers: typing.Mapping[str, str] | None = None, | |
scheme: str = "http", | |
) -> None: ... | |
def connect(self) -> None: ... | |
def request( | |
self, | |
method: str, | |
url: str, | |
body: _TYPE_BODY | None = None, | |
headers: typing.Mapping[str, str] | None = None, | |
# We know *at least* botocore is depending on the order of the | |
# first 3 parameters so to be safe we only mark the later ones | |
# as keyword-only to ensure we have space to extend. | |
*, | |
chunked: bool = False, | |
preload_content: bool = True, | |
decode_content: bool = True, | |
enforce_content_length: bool = True, | |
) -> None: ... | |
def getresponse(self) -> BaseHTTPResponse: ... | |
def close(self) -> None: ... | |
def is_closed(self) -> bool: | |
"""Whether the connection either is brand new or has been previously closed. | |
If this property is True then both ``is_connected`` and ``has_connected_to_proxy`` | |
properties must be False. | |
""" | |
def is_connected(self) -> bool: | |
"""Whether the connection is actively connected to any origin (proxy or target)""" | |
def has_connected_to_proxy(self) -> bool: | |
"""Whether the connection has successfully connected to its proxy. | |
This returns False if no proxy is in use. Used to determine whether | |
errors are coming from the proxy layer or from tunnelling to the target origin. | |
""" | |
class BaseHTTPSConnection(BaseHTTPConnection, Protocol): | |
default_port: typing.ClassVar[int] | |
default_socket_options: typing.ClassVar[_TYPE_SOCKET_OPTIONS] | |
# Certificate verification methods | |
cert_reqs: int | str | None | |
assert_hostname: None | str | typing.Literal[False] | |
assert_fingerprint: str | None | |
ssl_context: ssl.SSLContext | None | |
# Trusted CAs | |
ca_certs: str | None | |
ca_cert_dir: str | None | |
ca_cert_data: None | str | bytes | |
# TLS version | |
ssl_minimum_version: int | None | |
ssl_maximum_version: int | None | |
ssl_version: int | str | None # Deprecated | |
# Client certificates | |
cert_file: str | None | |
key_file: str | None | |
key_password: str | None | |
def __init__( | |
self, | |
host: str, | |
port: int | None = None, | |
*, | |
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, | |
source_address: tuple[str, int] | None = None, | |
blocksize: int = 16384, | |
socket_options: _TYPE_SOCKET_OPTIONS | None = ..., | |
proxy: Url | None = None, | |
proxy_config: ProxyConfig | None = None, | |
cert_reqs: int | str | None = None, | |
assert_hostname: None | str | typing.Literal[False] = None, | |
assert_fingerprint: str | None = None, | |
server_hostname: str | None = None, | |
ssl_context: ssl.SSLContext | None = None, | |
ca_certs: str | None = None, | |
ca_cert_dir: str | None = None, | |
ca_cert_data: None | str | bytes = None, | |
ssl_minimum_version: int | None = None, | |
ssl_maximum_version: int | None = None, | |
ssl_version: int | str | None = None, # Deprecated | |
cert_file: str | None = None, | |
key_file: str | None = None, | |
key_password: str | None = None, | |
) -> None: ... | |