Viewing file: _cmd.py (1.26 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()
|