From ec80351b7b10e6cd3cf9e039d5ece85995adf14d Mon Sep 17 00:00:00 2001 From: Gyeongjae Choi Date: Tue, 17 May 2022 06:03:32 +0900 Subject: [PATCH] Improve micropip error message when no package is found (#2562) Show better error message when fetching metadata from PyPI fails. Previously it just showed "Failed to Fetch" --- packages/micropip/src/micropip/_micropip.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/micropip/src/micropip/_micropip.py b/packages/micropip/src/micropip/_micropip.py index 829d270ec..4c89b53a2 100644 --- a/packages/micropip/src/micropip/_micropip.py +++ b/packages/micropip/src/micropip/_micropip.py @@ -85,7 +85,14 @@ else: async def _get_pypi_json(pkgname: str, fetch_extra_kwargs: dict[str, str]): url = f"https://pypi.org/pypi/{pkgname}/json" - return json.loads(await fetch_string(url, fetch_extra_kwargs)) + try: + metadata = await fetch_string(url, fetch_extra_kwargs) + except Exception as e: + raise ValueError( + f"Can't fetch metadata for '{pkgname}' from PyPI. " + "Please make sure you have entered a correct package name." + ) from e + return json.loads(metadata) def _is_pure_python_wheel(filename: str): @@ -327,7 +334,12 @@ class _PackageManager: raise ValueError( f"Requested '{req}', " f"but {req.name}=={ver} is already installed" ) +<<<<<<< micropip/nopackage -- Incoming Change + + metadata = await _get_pypi_json(req.name, fetch_extra_kwargs) +======= metadata = await _get_pypi_json(req.name, transaction.fetch_extra_kwargs) +>>>>>>> main -- Current Change try: wheel = self.find_wheel(metadata, req)