Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/utils.py
Show All 19 Lines | |||||
DOWNLOAD_HASHES = set(["sha1", "sha256", "length"]) | DOWNLOAD_HASHES = set(["sha1", "sha256", "length"]) | ||||
EMPTY_AUTHOR = Person(fullname=b"", name=None, email=None,) | EMPTY_AUTHOR = Person(fullname=b"", name=None, email=None,) | ||||
def api_info(url: str) -> Dict: | def api_info(url: str, **extra_params) -> bytes: | ||||
"""Basic api client to retrieve information on project. This deals with | """Basic api client to retrieve information on project. This deals with | ||||
fetching json metadata about pypi projects. | fetching json metadata about pypi projects. | ||||
Args: | Args: | ||||
url (str): The api url (e.g PyPI, npm, etc...) | url (str): The api url (e.g PyPI, npm, etc...) | ||||
Raises: | Raises: | ||||
ValueError in case of query failures (for some reasons: 404, ...) | ValueError in case of query failures (for some reasons: 404, ...) | ||||
Returns: | Returns: | ||||
The associated response's information dict | The associated response's information | ||||
""" | """ | ||||
response = requests.get(url, **DEFAULT_PARAMS) | response = requests.get(url, **{**DEFAULT_PARAMS, **extra_params}) | ||||
if response.status_code != 200: | if response.status_code != 200: | ||||
raise ValueError("Fail to query '%s'. Reason: %s" % (url, response.status_code)) | raise ValueError("Fail to query '%s'. Reason: %s" % (url, response.status_code)) | ||||
return response.json() | return response.content | ||||
def download( | def download( | ||||
url: str, | url: str, | ||||
dest: str, | dest: str, | ||||
hashes: Dict = {}, | hashes: Dict = {}, | ||||
filename: Optional[str] = None, | filename: Optional[str] = None, | ||||
auth: Optional[Tuple[str, str]] = None, | auth: Optional[Tuple[str, str]] = None, | ||||
▲ Show 20 Lines • Show All 70 Lines • Show Last 20 Lines |