commit | 20ec774349a815f4c91f1d04d3bee01deb640cc3 | [log] [tgz] |
---|---|---|
author | dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | Sat May 07 16:07:16 2022 |
committer | Jordan Cook <jordan.cook@pioneer.com> | Sat May 07 19:40:30 2022 |
tree | c5dce061e7886c174e32cdbc96e970cffeeb38a2 | |
parent | 9915ab9a378bcada15b7912717ff0f6242590742 [diff] |
Bump rich, pre-commit, and linkify-it-py Bump rich from 12.3.0 to 12.4.0 Bumps [rich](https://github.com/willmcgugan/rich) from 12.3.0 to 12.4.0. - [Release notes](https://github.com/willmcgugan/rich/releases) - [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md) - [Commits](https://github.com/willmcgugan/rich/compare/v12.3.0...v12.4.0) --- updated-dependencies: - dependency-name: rich dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Bump pre-commit from 2.18.1 to 2.19.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.18.1 to 2.19.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v2.18.1...v2.19.0) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Bump linkify-it-py from 1.0.3 to 2.0.0 Bumps [linkify-it-py](https://github.com/tsutsu3/linkify-it-py) from 1.0.3 to 2.0.0. - [Release notes](https://github.com/tsutsu3/linkify-it-py/releases) - [Changelog](https://github.com/tsutsu3/linkify-it-py/blob/main/CHANGELOG.md) - [Commits](https://github.com/tsutsu3/linkify-it-py/compare/v1.0.3...v2.0.0) --- updated-dependencies: - dependency-name: linkify-it-py dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
requests-cache is a persistent HTTP cache that provides an easy way to get better performance with the python requests library.
Complete project documentation can be found at requests-cache.readthedocs.io.
requests
library you're already familiar with. Add caching with a drop-in replacement for requests.Session
, or install globally to add transparent caching to all requests
functions.First, install with pip:
pip install requests-cache
Then, use requests_cache.CachedSession to make your requests. It behaves like a normal requests.Session, but with caching behavior.
To illustrate, we'll call an endpoint that adds a delay of 1 second, simulating a slow or rate-limited website.
This takes 1 minute:
import requests session = requests.Session() for i in range(60): session.get('http://httpbin.org/delay/1')
This takes 1 second:
import requests_cache session = requests_cache.CachedSession('demo_cache') for i in range(60): session.get('http://httpbin.org/delay/1')
With caching, the response will be fetched once, saved to demo_cache.sqlite
, and subsequent requests will return the cached response near-instantly.
Patching: If you don't want to manage a session object, or just want to quickly test it out in your application without modifying any code, requests-cache can also be installed globally, and all requests will be transparently cached:
import requests import requests_cache requests_cache.install_cache('demo_cache') requests.get('http://httpbin.org/delay/1')
Settings: The default settings work well for most use cases, but there are plenty of ways to customize caching behavior when needed. Here is a quick example of some of the options available:
from datetime import timedelta from requests_cache import CachedSession session = CachedSession( 'demo_cache', use_cache_dir=True, # Save files in the default user cache dir cache_control=True, # Use Cache-Control response headers for expiration, if available expire_after=timedelta(days=1), # Otherwise expire responses after one day allowable_codes=[200, 400], # Cache 400 responses as a solemn reminder of your failures allowable_methods=['GET', 'POST'], # Cache whatever HTTP methods you want ignored_parameters=['api_key'], # Don't match this request param, and redact if from the cache match_headers=['Accept-Language'], # Cache a different response per language stale_if_error=True, # In case of request errors, use stale cache data if possible )
To find out more about what you can do with requests-cache, see: