From 68bc35109e4ee6119531381d2f020ccdd9ea5dca Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Fri, 23 Dec 2022 03:13:00 -0500 Subject: [PATCH] Catch StopIteration error and alert user and exit failure. --- pipenv/core.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/pipenv/core.py b/pipenv/core.py index 00ed14e5..adabfa24 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -750,20 +750,25 @@ def batch_install( deps_by_index[project.sources_default["name"]].append(dependency) # Treat each index as its own pip install phase for index_name, dependencies in deps_by_index.items(): - install_source = next(filter(lambda s: s["name"] == index_name, sources)) - batch_install_iteration( - project, - dependencies, - [install_source], - procs, - failed_deps_queue, - requirements_dir, - no_deps=no_deps, - ignore_hashes=ignore_hashes, - allow_global=allow_global, - retry=retry, - extra_pip_args=extra_pip_args, - ) + try: + install_source = next(filter(lambda s: s["name"] == index_name, sources)) + batch_install_iteration( + project, + dependencies, + [install_source], + procs, + failed_deps_queue, + requirements_dir, + no_deps=no_deps, + ignore_hashes=ignore_hashes, + allow_global=allow_global, + retry=retry, + extra_pip_args=extra_pip_args, + ) + except StopIteration: + click.secho(f"Unable to find {index_name} in sources, please check dependencies: {dependencies}", + fg="red", bold=True) + sys.exit(1) def batch_install_iteration(