Tiny aiohttp wrapper for http request gathering in sync mode
Project description
Installation
pip install async-fetcher
# or
pip install -e git+https://github.com/night-crawler/async-fetcher.git@#egg=async-fetcher
Sample
af = AsyncFetch({
'first': AsyncFetch.mk_task(build_url('request-info')),
'second': AsyncFetch.mk_task('http://example.com/'),
'fail': AsyncFetch.mk_task(build_url('404'))
})
responses = af.go()
mk_task static method can take this arguments:
:param fail_silently: bool, do not raise exceptions, default is False;
for test purpose, do not use in production
:param num_retries: int, *optional*, default is -1; -1 - no retries; 0 - use AsyncFetch.num_retries
:param autodetect_content_type: if no `content-type` header was specified, set `content-type` as
`application/json` for dict, and `text/html` otherwise; default is True
:param json_encoder: JSONEncoder, *optional*, JSON encoder for data serialization
tries to use DRF's encoder, or default JSONEncoder from json package; default is JSONEncoder
:param url: str, *required*, url address
:param api_key: str, optional API key passed into HEADERS dict
:param data: dict, *optional*, request data. Default is None,
:param method: str, *optional*, HTTP request method. Default is True.
:param headers: dict, *optional*, optional HTTP headers
:param response_type: str, *optional*, HTTP response type
(in fact it's just aiohttp's method name, i.e. text, or json); default is 'json'
:param language_code: str, set `accept-language` header
:param timeout: float, *optional*, time to wait for response in seconds before TimeoutError
:param query: dict, *optional*, url get arguments
:param do_not_wait: bool, *optional*, fail silently with no retries and empty resultset
af0 = AsyncFetch({})
tcp_connector = af0.get_tcp_connector()
af1 = AsyncFetch({
'1': AsyncFetch.mk_task(build_url('request-info')),
'2': AsyncFetch.mk_task(build_url('request-info')),
}, tcp_connector=tcp_connector)
responses = af1.go()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
async-fetcher-0.3.6.tar.gz
(9.1 kB
view details)
Built Distribution
File details
Details for the file async-fetcher-0.3.6.tar.gz
.
File metadata
- Download URL: async-fetcher-0.3.6.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 054717b2158494e121f04f525d26d9d6ce48161a351bc725b6fed2279aa9c591 |
|
MD5 | 74454677b46c9d8848cbb7a34733b55f |
|
BLAKE2b-256 | de13c8fc375618da93acfc66616543f8113a434c4273d5038a0a94a884c3194d |
File details
Details for the file async_fetcher-0.3.6-py3-none-any.whl
.
File metadata
- Download URL: async_fetcher-0.3.6-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1e8ddf28a9215e36f9ae0e4e3c53747ef078fef426985c46fab5d9eb79b398f |
|
MD5 | c4b2c07f8d5e9a1260b353411a63fa88 |
|
BLAKE2b-256 | 882b7d312a0d0385cbbeff7c61bee451be435f8d88b11f865111effa560fb20a |