Skip to main content

Tiny aiohttp wrapper for http request gathering in sync mode

Project description

https://codecov.io/gh/night-crawler/async-fetcher/branch/master/graph/badge.svg https://travis-ci.org/night-crawler/async-fetcher.svg?branch=master https://img.shields.io/pypi/v/async-fetcher.svg PyPI Wheel Requirements Status Supported versions Supported implementations

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)

Uploaded Source

Built Distribution

async_fetcher-0.3.6-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

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

Hashes for async-fetcher-0.3.6.tar.gz
Algorithm Hash digest
SHA256 054717b2158494e121f04f525d26d9d6ce48161a351bc725b6fed2279aa9c591
MD5 74454677b46c9d8848cbb7a34733b55f
BLAKE2b-256 de13c8fc375618da93acfc66616543f8113a434c4273d5038a0a94a884c3194d

See more details on using hashes here.

File details

Details for the file async_fetcher-0.3.6-py3-none-any.whl.

File metadata

File hashes

Hashes for async_fetcher-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a1e8ddf28a9215e36f9ae0e4e3c53747ef078fef426985c46fab5d9eb79b398f
MD5 c4b2c07f8d5e9a1260b353411a63fa88
BLAKE2b-256 882b7d312a0d0385cbbeff7c61bee451be435f8d88b11f865111effa560fb20a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page