Reference¶
TODO: get better this page
Connector and Client Client¶
-
class
aiosonic.connectors.
TCPConnector
(pool_size: int = 25, timeouts: aiosonic.timeout.Timeouts = None, connection_cls=None, pool_cls=None)¶ TCPConnector.
Holds the main logic for making connections to destination hosts.
- Params:
pool_size: size for pool of connections
timeouts: global timeouts to use for connections with this connector. default:
aiosonic.timeout.Timeouts
instance with default args.connection_cls: connection class to be used. default:
aiosonic.connection.Connection
pool_cls: pool class to be used. default:
aiosonic.pools.SmartPool
-
class
aiosonic.
HTTPClient
(connector: aiosonic.connectors.TCPConnector = None, handle_cookies=False, verify_ssl=True)¶ aiosonic.HTTPClient class.
This class holds the client creation that will be used for requests.
- Params:
connector: TCPConnector to be used if provided
- handle_cookies: Flag to indicate if keep response cookies in
client and send them in next requests.
verify_ssl: Flag to indicate if verify ssl certificates.
-
async
aiosonic.HTTPClient.
request
(self, url: str, method: str = 'GET', headers: Union[Dict[str, str], List[Tuple[str, str]], aiosonic.HttpHeaders] = None, params: Union[Dict[str, str], Sequence[Tuple[str, str]]] = None, data: Union[str, bytes, dict, tuple, AsyncIterator[bytes], Iterator[bytes]] = None, multipart: bool = False, verify: bool = True, ssl: ssl.SSLContext = None, timeouts: aiosonic.timeout.Timeouts = None, follow: bool = False, http2: bool = False) → aiosonic.HttpResponse¶ Do http request.
- Params:
url: url of request
method: Http method of request
headers: headers to add in request
params: query params to add in request if not manually added
data: Data to be sent, this param is ignored for get requests.
multipart: Tell aiosonic if request is multipart
verify: parameter to indicate whether to verify ssl
ssl: this parameter allows to specify a custom ssl context
timeouts: parameter to indicate timeouts for request
follow: parameter to indicate whether to follow redirects
http2: flag to indicate whether to use http2 (experimental)
-
async
aiosonic.HTTPClient.
get
(self, url: str, headers: Union[Dict[str, str], List[Tuple[str, str]], aiosonic.HttpHeaders] = None, params: Union[Dict[str, str], Sequence[Tuple[str, str]]] = None, verify: bool = True, ssl: ssl.SSLContext = None, timeouts: aiosonic.timeout.Timeouts = None, follow: bool = False, http2: bool = False) → aiosonic.HttpResponse¶ Do get http request.
-
async
aiosonic.HTTPClient.
post
(self, url: str, data: Union[str, bytes, dict, tuple, AsyncIterator[bytes], Iterator[bytes]] = None, headers: Union[Dict[str, str], List[Tuple[str, str]], aiosonic.HttpHeaders] = None, json: dict = None, params: Union[Dict[str, str], Sequence[Tuple[str, str]]] = None, json_serializer=<function dumps>, multipart: bool = False, verify: bool = True, ssl: ssl.SSLContext = None, timeouts: aiosonic.timeout.Timeouts = None, follow: bool = False, http2: bool = False) → aiosonic.HttpResponse¶ Do post http request.
-
async
aiosonic.HTTPClient.
put
(self, url: str, data: Union[str, bytes, dict, tuple, AsyncIterator[bytes], Iterator[bytes]] = None, headers: Union[Dict[str, str], List[Tuple[str, str]], aiosonic.HttpHeaders] = None, json: dict = None, params: Union[Dict[str, str], Sequence[Tuple[str, str]]] = None, json_serializer=<function dumps>, multipart: bool = False, verify: bool = True, ssl: ssl.SSLContext = None, timeouts: aiosonic.timeout.Timeouts = None, follow: bool = False, http2: bool = False) → aiosonic.HttpResponse¶ Do put http request.
-
async
aiosonic.HTTPClient.
patch
(self, url: str, data: Union[str, bytes, dict, tuple, AsyncIterator[bytes], Iterator[bytes]] = None, headers: Union[Dict[str, str], List[Tuple[str, str]], aiosonic.HttpHeaders] = None, json: dict = None, params: Union[Dict[str, str], Sequence[Tuple[str, str]]] = None, json_serializer=<function dumps>, multipart: bool = False, verify: bool = True, ssl: ssl.SSLContext = None, timeouts: aiosonic.timeout.Timeouts = None, follow: bool = False, http2: bool = False) → aiosonic.HttpResponse¶ Do patch http request.
-
async
aiosonic.HTTPClient.
delete
(self, url: str, data: Union[str, bytes, dict, tuple, AsyncIterator[bytes], Iterator[bytes]] = b'', headers: Union[Dict[str, str], List[Tuple[str, str]], aiosonic.HttpHeaders] = None, json: dict = None, params: Union[Dict[str, str], Sequence[Tuple[str, str]]] = None, json_serializer=<function dumps>, multipart: bool = False, verify: bool = True, ssl: ssl.SSLContext = None, timeouts: aiosonic.timeout.Timeouts = None, follow: bool = False, http2: bool = False) → aiosonic.HttpResponse¶ Do delete http request.
-
async
aiosonic.HTTPClient.
wait_requests
(self, timeout: int = 30)¶ Wait until all pending requests are done.
If timeout, returns false.
This is useful when doing safe shutdown of a process.
Classes¶
-
class
aiosonic.
HttpHeaders
(data=None, **kwargs)¶ Http headers dict.
-
class
aiosonic.
HttpResponse
¶ Custom HttpResponse class for handling responses.
- Properties:
status_code (int): response status code
headers (
aiosonic.HttpHeaders
): headers in case insensitive dictcookies (
http.cookies.SimpleCookie
): instance of SimpleCookies if cookies present in respone.raw_headers (List[Tuple[bytes, bytes]]): headers as raw format
-
async
content
() → bytes¶ Read response body.
-
async
json
(json_decoder=<function loads>) → dict¶ Read response body.
-
read_chunks
() → AsyncIterator[bytes]¶ Read chunks from chunked response.
-
property
status_code
¶ Get status code.
-
async
text
() → str¶ Read response body.
Tiemout Class¶
-
class
aiosonic.timeout.
Timeouts
(sock_connect: Optional[float] = 5, sock_read: Optional[float] = 30, pool_acquire: Optional[float] = None, request_timeout: Optional[float] = 60)¶ Timeouts class wrapper.
- Arguments:
sock_connect(float): time for establish connection to server
sock_read(float): time until get first read
pool_acquire(float): time until get connection from connection’s pool
request_timeout(float): time until complete request.
Pool Classes¶
-
class
aiosonic.pools.
SmartPool
(connector, pool_size, connection_cls)¶ Pool which utilizes alive connections.
-
async
acquire
(urlparsed: urllib.parse.ParseResult = None)¶ Acquire connection.
-
async
cleanup
() → None¶ Get all conn and close them, this method let this pool unusable.
-
is_all_free
()¶ Indicates if all pool is free.
-
release
(conn) → None¶ Release connection.
-
async
-
class
aiosonic.pools.
CyclicQueuePool
(connector, pool_size, connection_cls)¶ Cyclic queue pool of connections.
-
async
acquire
(_urlparsed: urllib.parse.ParseResult = None)¶ Acquire connection.
-
async
cleanup
()¶ Get all conn and close them, this method let this pool unusable.
-
is_all_free
()¶ Indicates if all pool is free.
-
async
release
(conn)¶ Release connection.
-
async