From 08f61e7684eb9fe3cfe192f367bbfd8c69179af3 Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Fri, 4 May 2018 15:53:56 -0400 Subject: [PATCH] Switch to checks for Mapping type and proper bool Signed-off-by: Dan Ryan --- pipenv/utils.py | 8 ++++++-- tests/unit/test_utils.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pipenv/utils.py b/pipenv/utils.py index 54403c60..70149ff1 100644 --- a/pipenv/utils.py +++ b/pipenv/utils.py @@ -564,6 +564,10 @@ def multi_split(s, split): def convert_deps_from_pip(dep): """"Converts a pip-formatted dependency to a Pipfile-formatted one.""" + try: + from collections.abc import Mapping + except ImportError: + from collections import Mapping dependency = {} req = get_requirement(dep) extras = {'extras': req.extras} @@ -713,8 +717,8 @@ def convert_deps_to_pip(deps, project=None, r=True, include_index=False): vcs = maybe_vcs[0] if maybe_vcs else None if not any(key in deps[dep] for key in ['path', 'vcs', 'file']): extra += extras - if not isinstance(deps[dep], six.string_types): - editable = str(deps[dep].get('editable', '')).lower() == 'true' + if not isinstance(deps[dep], Mapping): + editable = bool(deps[dep].get('editable', False)) # Support for files. if 'file' in deps[dep]: dep_file = deps[dep]['file'] diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 919e5359..855a78cb 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -56,7 +56,7 @@ DEP_PIP_PAIRS = [ {'requests': { 'git': 'https://github.com/requests/requests.git', 'ref': 'master', 'extras': ['security'], - 'editable': 'false' + 'editable': False }}, 'git+https://github.com/requests/requests.git@master#egg=requests[security]', ),