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.

Files for simple-requests, version 1.1.1
Filename, size File type Python version Upload date Hashes
Filename, size simple-requests-1.1.1.tar.gz (12.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page