From 8fc9c85df50f2ec3baeecd77460b0cb0d17a7ce2 Mon Sep 17 00:00:00 2001 From: Nate Prewitt Date: Wed, 25 Jan 2017 11:30:23 -0700 Subject: [PATCH] handle bad package names more gracefully --- pipenv/cli.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pipenv/cli.py b/pipenv/cli.py index 02352754..09b24cc0 100644 --- a/pipenv/cli.py +++ b/pipenv/cli.py @@ -415,6 +415,8 @@ def proper_case(package_name): # Hit the simple API. r = requests.get('{0}/{1}'.format(project.source['url'], package_name)) + if not r.ok: + raise IOError('Unable to find package {0} in PyPI repository.'.format(crayons.green(package_name))) # Parse the HTML. parser = SimpleHTMLParser() @@ -528,7 +530,11 @@ def install(package_name=False, more_packages=False, dev=False, three=False, sys # Proper-case incoming package name (check against API). old_name = [k for k in convert_deps_from_pip(package_name).keys()][0] - new_name = proper_case(old_name) + try: + new_name = proper_case(old_name) + except IOError as e: + click.echo('{0} {1}'.format(crayons.red('Error: '), e.args[0], crayons.green(package_name))) + continue package_name = package_name.replace(old_name, new_name) click.echo('Installing {0}...'.format(crayons.green(package_name)))