Skip to main content

Simple HTTP cache for Python Requests

Project description

HTTP, like all well designed standards, has multiple confusing mechanisms for caching. httpcache is a HTTP cache that knows how to use HTTP headers and status codes to correctly cache your HTTP traffic. It’s built for use with the excellent Requests library, because if you’re not using Requests you’re probably prepared to roll your own caching library too.

It’s gloriously easy to use. If all you want is caching in Requests, all you need to do is plug a transport adapter into your Requests session:

>>> import requests
>>> from httpcache import CachingHTTPAdapter
>>> s = requests.Session()
>>> s.mount('http://', CachingHTTPAdapter())

Away you go!

If you want more control, you can use the cache data-store itself. Store your cache entries like this:

from httpcache import HTTPCache
cache = HTTPCache(capacity=50)
cache.store(response)

And retrieve them like this:

cached_response = cache.retrieve(request)

Simple.

Features

  • Tight integration with Requests data structures.

  • Understands Expires and Cache-Control headers.

  • Knows how to interpret 304 Not Modified responses.

  • Can send If-Modified-Since headers.

  • Aware of HTTP verbs, e.g. POST.

  • RFC 2616-compliant.

Installation

To install httpcache, you want to run:

$ pip install httpcache

If you can’t do that, and you really must have httpcache, and you can’t install pip, then you can try:

$ easy_install httpcache

I strongly recommend you don’t do that though.

Contribute

Contributions are always welcome! Please abide by the following rules when contributing:

  1. Check that no-one has opened an issue already covering your bug. If you open a duplicate issue, the maintainer will give you a stern look.

  2. Fork the Github repository and start writing your tests. If you’re fixing a bug, I recommend writing a failing test first and working until it passes. If you’re adding a feature, you’re free to add tests after you write the functionality, but please test the functionality thoroughly.

  3. Send a Pull Request. If I don’t respond within a couple of days, please shout at me on Twitter or via email until I do something about it.

History

0.1.0 (2013-05-11)

  • Provide a Requests Transport Adapter so that caching ‘Just Works’.

0.0.2 (2013-05-07)

  • Correctly cache using the ‘Expires’ header.

  • Correctly handle some of the functionality exposed by the ‘Cache-Control’ header.

0.0.1 (2013-05-05)

  • Conception

  • If-Modified-Since and 304 handling.

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

httpcache-0.1.0.tar.gz (7.7 kB view details)

Uploaded Source

File details

Details for the file httpcache-0.1.0.tar.gz.

File metadata

  • Download URL: httpcache-0.1.0.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for httpcache-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5d6dcc27cee666e5beb2949c54bef23687b1e70e0480719f1483e811868a5527
MD5 8fda2df4a8bec9b41bf1737776c3e889
BLAKE2b-256 4af9122118e6545a138c365c225ffa4f356001dd641d57414d22b7334768e0ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page