]> jfr.im git - dlqueue.git/blob - venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/_cmd.py
init: venv aand flask
[dlqueue.git] / venv / lib / python3.11 / site-packages / pip / _vendor / cachecontrol / _cmd.py
1 # SPDX-FileCopyrightText: 2015 Eric Larson
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 import logging
6
7 from pip._vendor import requests
8
9 from pip._vendor.cachecontrol.adapter import CacheControlAdapter
10 from pip._vendor.cachecontrol.cache import DictCache
11 from pip._vendor.cachecontrol.controller import logger
12
13 from argparse import ArgumentParser
14
15
16 def setup_logging():
17 logger.setLevel(logging.DEBUG)
18 handler = logging.StreamHandler()
19 logger.addHandler(handler)
20
21
22 def get_session():
23 adapter = CacheControlAdapter(
24 DictCache(), cache_etags=True, serializer=None, heuristic=None
25 )
26 sess = requests.Session()
27 sess.mount("http://", adapter)
28 sess.mount("https://", adapter)
29
30 sess.cache_controller = adapter.controller
31 return sess
32
33
34 def get_args():
35 parser = ArgumentParser()
36 parser.add_argument("url", help="The URL to try and cache")
37 return parser.parse_args()
38
39
40 def main(args=None):
41 args = get_args()
42 sess = get_session()
43
44 # Make a request to get a response
45 resp = sess.get(args.url)
46
47 # Turn on logging
48 setup_logging()
49
50 # try setting the cache
51 sess.cache_controller.cache_response(resp.request, resp.raw)
52
53 # Now try to get it
54 if sess.cache_controller.cached_request(resp.request):
55 print("Cached!")
56 else:
57 print("Not cached :(")
58
59
60 if __name__ == "__main__":
61 main()