handle bad package names more gracefully

This commit is contained in:
Nate Prewitt
2017-01-25 11:30:23 -07:00
parent 4f8bc44095
commit 8fc9c85df5
+7 -1
View File
@@ -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)))