Каков формат файлов в `pip-cache / pip / html`? - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь восстановить некоторые трудно получаемые зависимости из кеша pip. Все файлы, хранящиеся в указанном каталоге, начинаются с байтов cc=2. Я ожидал там что-то вроде .tar.gz файлов, но нет.

Я кратко попытался выполнить поиск в исходном коде pip, но в основном нашел код, имеющий отношение к архивам Wheel (которые по сути представляют собой файлы .zip). Мне не удалось найти код, обрабатывающий подпапку /http/. Не уверен, смотрел ли я не на ту часть дерева исходных текстов, или на неправильную версию пакета.

1 Ответ

0 голосов
/ 18 июня 2020

pip использует cachecontrol для загрузки / хранения файлов кэша. Имя файла - sha224 запрашиваемого URL .

Код для загрузки файлов можно увидеть в Gihub .

Для конкретного в случае cc=2 данные после cc=2, (обратите внимание на запятую) могут быть декодированы как

cached = json.loads(zlib.decompress(data).decode("utf8"))

# We need to decode the items that we've base64 encoded
cached["response"]["body"] = _b64_decode_bytes(cached["response"]["body"])
cached["response"]["headers"] = dict(
    (_b64_decode_str(k), _b64_decode_str(v))
    for k, v in cached["response"]["headers"].items()
)
cached["response"]["reason"] = _b64_decode_str(cached["response"]["reason"])
cached["vary"] = dict(
    (_b64_decode_str(k), _b64_decode_str(v) if v is not None else v)
    for k, v in cached["vary"].items()
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...