Skip to content

Requests wrapper that add's support for HTTP caching. It act's just like requests but with a few extra parameters and features.

License

Notifications You must be signed in to change notification settings

willforde/urlquick

Repository files navigation

Urlquick II: Requests, but with caching

PyPI Documentation Status Build Status Coverage Status Maintainability

Urlquick II

Urlquick 2 is a wrapper for requests that add's support for http caching. It acts just like requests but with a few extra parameters and features. 'Requests' itself is left untouched.

All GET, HEAD and POST requests are cached locally for a period of 4 hours, this can be changed. When the cache expires, conditional headers are added to any new request e.g. "Etag" and "Last-modified". Then if the server returns a 304 Not-Modified response, the cache is used, saving having to re-download the content body.

All of Requests get, head, post and request functions/methods all get 2 extra optional parameters. Both these 2 parameters can also be set on a session object too.

  • max_age: Age the 'cache' can be before it’s considered stale.
  • raise_for_status: Boolean that when set to True will call resp.raise_for_status() for you automatically.

The Requests response objects also gets too new methods.

  • parse(): Parse’s “HTML” document into a element tree using HTMLement.
  • xml(): Parse’s XML document into a element tree.

Usage

>>> import urlquick

# Make a simple request to check ip address.
>>> r = urlquick.get('https://httpbin.org/ip')
>>> r.json()
{'ip': '172.69.48.124'}

# Take note of the elapsed time.
>>> r.elapsed
0:00:00.556889

# Now make the same request but notice the much lower elapsed time.
>>> r = urlquick.get('https://httpbin.org/ip')
>>> r.elapsed
0:00:00.000184

# To change the max age for the cache to 1 hour.
>>> r = urlquick.get('https://httpbin.org/ip', max_age=60*60)
# max_age of -1 will disable the caching system.
# max_age of 0 will send conditional headers to check if content needs to be redownloaded.

Install

Urlquick 2 officially supports Python 2.7 & 3.6+.

$ pip install urlquick

Full Documentation over at Read the Docs

About

Requests wrapper that add's support for HTTP caching. It act's just like requests but with a few extra parameters and features.

Topics

Resources

License

Stars

Watchers

Forks

Languages