diff --git a/pipenv/utils.py b/pipenv/utils.py index 2c815b6f..2b1d3b39 100644 --- a/pipenv/utils.py +++ b/pipenv/utils.py @@ -47,6 +47,12 @@ from contextlib import contextmanager from .pep508checker import lookup from .environments import PIPENV_MAX_ROUNDS, PIPENV_CACHE_DIR +from prettytoml.elements.abstracttable import AbstractTable +try: + from collections.abc import Mapping +except ImportError: + from collections import Mapping + if six.PY2: class ResourceWarning(Warning): @@ -639,6 +645,8 @@ def is_star(val): def is_pinned(val): + if isinstance(val, Mapping) or isinstance(val, AbstractTable): + val = val.get('version') return isinstance(val, six.string_types) and val.startswith('==')