From e4842562816bce2501434e14f7c2f5e05a748893 Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Mon, 3 Sep 2018 23:43:56 -0400 Subject: [PATCH] Allow for adding requirements objects directly to pipfile Signed-off-by: Dan Ryan --- pipenv/core.py | 2 +- pipenv/project.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pipenv/core.py b/pipenv/core.py index 1f11ff7739..52c127b10a 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -1908,7 +1908,7 @@ def do_install( ) # Add the package to the Pipfile. try: - project.add_package_to_pipfile(pkg_requirement.as_line(), dev) + project.add_package_to_pipfile(pkg_requirement, dev) except ValueError as e: click.echo( "{0} {1}".format(crayons.red("ERROR (PACKAGE NOT INSTALLED):"), e) diff --git a/pipenv/project.py b/pipenv/project.py index ff1f5364a5..f9decbf641 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -770,13 +770,14 @@ def remove_package_from_pipfile(self, package_name, dev=False): del p[key][name] self.write_toml(p) - def add_package_to_pipfile(self, package_name, dev=False): + def add_package_to_pipfile(self, package, dev=False): from .vendor.requirementslib import Requirement # Read and append Pipfile. p = self.parsed_pipfile # Don't re-capitalize file URLs or VCSs. - package = Requirement.from_line(package_name.strip()) + if not isinstance(package, Requirement): + package = Requirement.from_line(package.strip()) _, converted = package.pipfile_entry key = "dev-packages" if dev else "packages" # Set empty group if it doesn't exist yet.