Skip to main content

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(n=100)

@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 automatically uses Twisted’s asyncioreactor, if you do not provide your own reactor (progress to be made there, help requested!).

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests-threads-0.1.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

requests_threads-0.1.1-py2.py3-none-any.whl (4.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file requests-threads-0.1.1.tar.gz.

File metadata

File hashes

Hashes for requests-threads-0.1.1.tar.gz
Algorithm Hash digest
SHA256 923ffece26c18a1d20e34c4f037c58c311f1e15b342a1485a84dd968f377efb0
MD5 53b1ba51496952bcc7d0e5d2f0426fff
BLAKE2b-256 63ef871c1681ae1094bf805a39675ad58f884bef4769fbfff82399dd02a8b4a4

See more details on using hashes here.

File details

Details for the file requests_threads-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for requests_threads-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7740be27cc7b425019e2655f06b6c17ee459c3e7f63cb8c4400fea3a61e0b2f1
MD5 d85e3c7d1d0d17215e6cef1e12650bcd
BLAKE2b-256 94990c5f619d56d11e9786b6f97af08c75d323a9a92af5393f6c45dd2b1a5e19

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