| 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()
 
 |