Skip to main content

Asynchronous requests in Python without thinking about it.

Project description

Simple-requests allows you to get the performance benefit of asynchronous requests, without needing to use any asynchronous coding paradigms.

Usage

from simple_requests import Requests

# Creates a session and thread pool
requests = Requests()

# Sends one simple request; the response is returned synchronously.
login_response = requests.one('http://cat-videos.net/login?user=fanatic&password=c4tl0v3r')

# Cookies are maintained in this instance of Requests, so subsequent requests
# will still be logged-in.
profile_urls = [
    'http://cat-videos.net/profile/mookie',
    'http://cat-videos.net/profile/kenneth',
    'http://cat-videos.net/profile/itchy' ]

# Asynchronously send all the requests for profile pages
for profile_response in requests.swarm(profile_urls):

    # Asynchronously send requests for each link found on the profile pages
    # These requests take precedence over those in the outer loop to minimize overall waiting
    # Order doesn't matter this time either, so turn that off for a performance gain
    for friends_response in requests.swarm(profile_response.links, maintainOrder = False):

        # Do something intelligent with the responses, like using
        # regex to parse the HTML (see http://stackoverflow.com/a/1732454)
        friends_response.html

Release History

1.1.1 (June 27, 2014)

API Changes
  • bundleParam parameter added to Requests.one, Requests.swarm, Requests.each

1.1.0 (May 01, 2014)

API Changes
  • defaultTimeout parameter added to Requests.__init__

Bug Fixes
  • No more errors / warnings on exit

  • Fixes due to API changes in gevent 1.0

  • Fixed a couple documentation errors

Features
  • Added a patch class, with monkey patches of urllib3 (to reduce the likelihood of too many open connections/files at once) and httplib (to disregard servers that incorrectly report the content-length)

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

simple-requests-1.1.1.tar.gz (12.9 kB view details)

Uploaded Source

File details

Details for the file simple-requests-1.1.1.tar.gz.

File metadata

File hashes

Hashes for simple-requests-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5b6e9596cf1fd9f6dacd377101d6790f2ac911eb1e80f13acd0d81418068d2ec
MD5 aa1b13ece344ce21dbfffcec5928ede8
BLAKE2b-256 e627f20343729052db1db8a478cdb348e6f66b2768797aaa00f33c24d94a5e7b

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