Repository URL to install this package:
Version:
1.10.2 ▾
|
import os
from pip_api._vendor.packaging.version import Version # type: ignore
import pip_api
from pip_api._call import call
from pip_api.exceptions import Incompatible, InvalidArguments
incompatible = pip_api.PIP_VERSION < Version("8.0.0")
def hash(filename: os.PathLike, algorithm: str = "sha256") -> str:
"""
Hash the given filename. Unavailable in `pip<8.0.0`
"""
if incompatible:
raise Incompatible
if algorithm not in ["sha256", "sha384", "sha512"]:
raise InvalidArguments("Algorithm {} not supported".format(algorithm))
result = call("hash", "--algorithm", algorithm, filename)
# result is of the form:
# <filename>:\n--hash=<algorithm>:<hash>\n
return result.strip().split(":")[-1]