| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # SPDX-FileCopyrightText: 2015 Eric Larson
- #
- # SPDX-License-Identifier: Apache-2.0
- from __future__ import annotations
- from typing import TYPE_CHECKING, Collection
- from pip._vendor.cachecontrol.adapter import CacheControlAdapter
- from pip._vendor.cachecontrol.cache import DictCache
- if TYPE_CHECKING:
- from pip._vendor import requests
- from pip._vendor.cachecontrol.cache import BaseCache
- from pip._vendor.cachecontrol.controller import CacheController
- from pip._vendor.cachecontrol.heuristics import BaseHeuristic
- from pip._vendor.cachecontrol.serialize import Serializer
- def CacheControl(
- sess: requests.Session,
- cache: BaseCache | None = None,
- cache_etags: bool = True,
- serializer: Serializer | None = None,
- heuristic: BaseHeuristic | None = None,
- controller_class: type[CacheController] | None = None,
- adapter_class: type[CacheControlAdapter] | None = None,
- cacheable_methods: Collection[str] | None = None,
- ) -> requests.Session:
- cache = DictCache() if cache is None else cache
- adapter_class = adapter_class or CacheControlAdapter
- adapter = adapter_class(
- cache,
- cache_etags=cache_etags,
- serializer=serializer,
- heuristic=heuristic,
- controller_class=controller_class,
- cacheable_methods=cacheable_methods,
- )
- sess.mount("http://", adapter)
- sess.mount("https://", adapter)
- return sess
|