From ff35ee98adf81aab2c90342f0dd0eaedbe00b8a3 Mon Sep 17 00:00:00 2001 From: Nate Prewitt Date: Fri, 27 Jan 2017 08:34:30 -0700 Subject: [PATCH] get name from mapping rather than filename parsing --- pipenv/cli.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/pipenv/cli.py b/pipenv/cli.py index 6fd2b5ce..ce7d72e6 100644 --- a/pipenv/cli.py +++ b/pipenv/cli.py @@ -275,26 +275,23 @@ def parse_download_fname(fname): if not r: r = parse.parse('{name}-{version}-{extra}.{ext}', fname) - name = r['name'] version = r['version'] - # Support for requirements-parser-0.1.0.tar.gz # TODO: Some versions might actually have dashes, will need to figure that out. # Will likely have to check of '-' comes at beginning or end of version. - if '-' in version: - name = '-'.join([name] + version.split('-')[:-1]) - version = version.split('-')[-1] - return name, version + return version -def get_downloads_info(): +def get_downloads_info(names_map): info = [] for fname in os.listdir(project.download_location): + # Get display name from filename mapping + name = names_map[fname] # Get the version info from the filenames. - name, version = parse_download_fname(fname) + version = parse_download_fname(fname) # Get the hash of each file. c = delegator.run('{0} hash {1}'.format(which_pip(), os.sep.join([project.download_location, fname]))) @@ -314,14 +311,14 @@ def do_lock(): click.echo(crayons.yellow('Locking {0} dependencies...'.format(crayons.red('[dev-packages]')))) # Install only development dependencies. - do_download_dependencies(dev=True, only=True, bare=True) + names_map = do_download_dependencies(dev=True, only=True, bare=True) # Load the Pipfile and generate a lockfile. p = pipfile.load(project.pipfile_location) lockfile = json.loads(p.lock()) # Pip freeze development dependencies. - results = get_downloads_info() + results = get_downloads_info(names_map) # Add Development dependencies to lockfile. for dep in results: @@ -334,10 +331,10 @@ def do_lock(): click.echo(crayons.yellow('Locking {0} dependencies...'.format(crayons.red('[packages]')))) # Install only development dependencies. - do_download_dependencies(bare=True) + names_map = do_download_dependencies(bare=True) # Pip freeze default dependencies. - results = get_downloads_info() + results = get_downloads_info(names_map) # Add default dependencies to lockfile. for dep in results: