Мне нужно знать, как генерируется файл RECORD в файле пакета .whl.Особенно, как он генерирует свой sha256 для каждого файла ...
Например, мы можем видеть строку:
$ cat RECORD | grep WHEEL
pkv-X.Y.Z.dist-info/WHEEL,sha256=X8kVdBCq85ICewwfaE6btv5qKsFQfVq8NYJIXUK0i1A,104
, которая выглядит как:
$ sha256sum <WHEEL | awk '{print $1}' | xxd -r -p | base64 | tr +/ -_ | cut -c -43
X8kVdBCq85ICewwfaE6btv5qKsFQfVq8NYJIXUK0i1A
$ wc -c <WHEEL
104
НоЯ хотел бы знать, как это встроено в python, так как я немного доверяю преобразованию tr
и cut -c -43
.
примечание: в других файлах "кажется", что tr
правильно, то есть /
-> _
и +
-> -
но я бы хотел, чтобы за это отвечал исходный код python ...
В python 3.7 у меня пока что
python3 -c "import hashlib; import base64; print(base64.b64encode(hashlib.sha256(open('WHEEL', 'rb').read()).digest()))"
b'X8kVdBCq85ICewwfaE6btv5qKsFQfVq8NYJIXUK0i1A='
примечание: пока я заглянул внутрь https://github.com/pypa/setuptools без всякой удачи ...