Dead easy interface for executing many HTTP requests asynchronously. Also provides helper functions for executing embarrassingly parallel async coroutines.
Project description
many_requests
Dead easy interface for executing many HTTP requests asynchronously. It has been tested in the wild with over 10 million requests. Automatically handles errors and executes retries.
Built on-top of Trio and asks.
Also provides helper functions for executing embarrassingly parallel async coroutines.
Example Usage
Execute 10 GET requests for example.org:
from many_requests import ManyRequests
responses = ManyRequests(n_workers=5, n_connections=5)(
method='GET', url=['https://example.org' for i in range(10)])
Query HackNews API for 10 items and parse JSON output:
responses = ManyRequests(n_workers=5, n_connections=5, json=True)(
method='GET',
url=[f'https://hacker-news.firebaseio.com/v0/item/{i}.json?print=pretty' for i in range(10)])
To execute embarrassingly parallel async coroutines:
from many_requests import EasyAsync, delayed
import trio
EasyAsync(n_workers = 4)(delayed(trio.sleep)(i) for i in range(10))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
many_requests-0.1.0.tar.gz
(8.5 kB
view hashes)
Built Distribution
Close
Hashes for many_requests-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5aaaf1810755378e25608e853bd4f7a989b048c0ff0789ac4f9bf422604f89f2 |
|
MD5 | 62f37d301268b5123952510d627cd7e4 |
|
BLAKE2b-256 | d7063a28bcdffa668aeedde5377857ce1f1c8e445097a59e4ac08f1d9b29a650 |