Spaces:
Sleeping
Sleeping
# SPDX-FileCopyrightText: 2015 Eric Larson | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
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() | |