#!/usr/bin/env python # flake8: noqa: F841 """ The same as `basic_sessions.py`, but using {ref}`patching` """ import time import requests import requests_cache # After installation, all requests functions and Session methods will be cached requests_cache.install_cache('example_cache', backend='sqlite') def main(): # The real request will only be made once; afterward, the cached response is used for i in range(5): response = requests.get('https://httpbin.org/get') # This is more obvious when calling a slow endpoint for i in range(5): response = requests.get('https://httpbin.org/delay/2') # Caching can be disabled if we want to get a fresh page and not cache it with requests_cache.disabled(): print(requests.get('https://httpbin.org/ip').text) # Get some debugging info about the cache print(requests_cache.get_cache()) print('Cached URLS:') print('\n'.join(requests_cache.get_cache().urls())) # Uninstall to remove caching from all requests functions requests_cache.uninstall_cache() if __name__ == "__main__": t = time.time() main() print('Elapsed: %.3f seconds' % (time.time() - t))