A Requests session that returns awaitable Twisted Deferreds instead of response objects.
Project description
This repo contains a Requests session that returns awaitable Twisted Deferreds instead of Response objects.
It’s awesome, basically — check it out:
Examples
Example Usage (using async/await):
from requests_threads import AsyncSession
session = AsyncSession()
async def _main():
rs = []
for _ in range(100):
rs.append(await session.get('http://httpbin.org/get'))
print(rs)
if __name__ == '__main__':
session.run(_main)
This example works on Python 3 only.
Example Usage (using Twisted):
from twisted.internet.defer import inlineCallbacks
from twisted.internet.task import react
import requests
session = requests.AsyncSession()
@inlineCallbacks
def main(reactor):
responses = []
for i in range(100):
responses.append(session.get('http://httpbin.org/get'))
for response in responses:
r = yield response
print(r)
if __name__ == '__main__':
react(main)
This example works on Python 2 and Python 3.
Each request is sent via a new thread, automatically. This works fine for basic use cases.
This is a an experiment, and a preview of the true asyncronous API we have panned for Requests that is currently in the works, but requires a lot of development time. If you’d like to help (p.s. we need help, send me an email).
This API is likely to change, over time, slightly.
Installation
$ pipenv install requests-threads ✨🍰✨
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
Built Distribution
Hashes for requests_threads-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b62b3226563dfcfab95aed185186d11be5512c9b042e7402ab0262c4646bf821 |
|
MD5 | 6039de61a1b12d348bad76ce60f41cd4 |
|
BLAKE2b-256 | e6060e2f0f17bad77d1e597c38facc7506921447b856738cb996579b7210d2e1 |