From 58822861c13135100b957b879b27a832747d81dd Mon Sep 17 00:00:00 2001 From: frostming Date: Wed, 13 May 2020 17:49:55 +0800 Subject: [PATCH] Keep the original deps set during loop --- news/4229.bugfix.rst | 1 + pipenv/core.py | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 news/4229.bugfix.rst diff --git a/news/4229.bugfix.rst b/news/4229.bugfix.rst new file mode 100644 index 0000000000..ad465f197b --- /dev/null +++ b/news/4229.bugfix.rst @@ -0,0 +1 @@ +Fix a bug of ``pipenv update --outdated`` that can't print output correctly. diff --git a/pipenv/core.py b/pipenv/core.py index 3b549c3537..096fd37e64 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -1812,7 +1812,10 @@ def do_outdated(pypi_mirror=None, pre=False, clear=False): (pkg.project_name, pkg.parsed_version, pkg.latest_version) for pkg in project.environment.get_outdated_packages() } - reverse_deps = project.environment.reverse_dependencies() + reverse_deps = { + canonicalize_name(name): deps + for name, deps in project.environment.reverse_dependencies().items() + } for result in installed_packages: dep = Requirement.from_line(str(result.as_requirement())) packages.update(dep.as_pipfile()) @@ -1842,9 +1845,9 @@ def do_outdated(pypi_mirror=None, pre=False, clear=False): version = None if name_in_pipfile: version = get_version(project.packages[name_in_pipfile]) - reverse_deps = reverse_deps.get(name_in_pipfile) - if isinstance(reverse_deps, Mapping) and "required" in reverse_deps: - required = " {0} required".format(reverse_deps["required"]) + rdeps = reverse_deps.get(canonicalize_name(package)) + if isinstance(rdeps, Mapping) and "required" in rdeps: + required = " {0} required".format(rdeps["required"]) if version: pipfile_version_text = " ({0} set in Pipfile)".format(version) else: