Viewing file: _cmd.py (1.29 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import logging
from pip._vendor import requests
from pip._vendor.cachecontrol.adapter import CacheControlAdapter from pip._vendor.cachecontrol.cache import DictCache from pip._vendor.cachecontrol.controller import logger
from argparse import ArgumentParser
def setup_logging(): logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() logger.addHandler(handler)
def get_session(): adapter = CacheControlAdapter( DictCache(), cache_etags=True, serializer=None, heuristic=None, ) sess = requests.Session() sess.mount('http://', adapter) sess.mount('https://', adapter)
sess.cache_controller = adapter.controller return sess
def get_args(): parser = ArgumentParser() parser.add_argument('url', help='The URL to try and cache') return parser.parse_args()
def main(args=None): args = get_args() sess = get_session()
# Make a request to get a response resp = sess.get(args.url)
# Turn on logging setup_logging()
# try setting the cache sess.cache_controller.cache_response(resp.request, resp.raw)
# Now try to get it if sess.cache_controller.cached_request(resp.request): print('Cached!') else: print('Not cached :(')
if __name__ == '__main__': main()
|