From 6a299175b82ad0851a2ff378fc6cb8abdb126bab Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Tue, 26 Jun 2018 18:19:24 -0400 Subject: [PATCH] Update requirementslib to fix #2421 Signed-off-by: Dan Ryan --- news/2433.bugfix | 1 + news/2433.vendor | 1 + pipenv/vendor/requirementslib/__init__.py | 2 +- pipenv/vendor/requirementslib/models/requirements.py | 6 +++++- pipenv/vendor/vendor.txt | 4 ++-- 5 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 news/2433.bugfix create mode 100644 news/2433.vendor diff --git a/news/2433.bugfix b/news/2433.bugfix new file mode 100644 index 0000000000..6b3187cea5 --- /dev/null +++ b/news/2433.bugfix @@ -0,0 +1 @@ +Fixed an issue reading package names from ``setup.py`` files in projects which imported utilities such as ``versioneer``. diff --git a/news/2433.vendor b/news/2433.vendor new file mode 100644 index 0000000000..6b3187cea5 --- /dev/null +++ b/news/2433.vendor @@ -0,0 +1 @@ +Fixed an issue reading package names from ``setup.py`` files in projects which imported utilities such as ``versioneer``. diff --git a/pipenv/vendor/requirementslib/__init__.py b/pipenv/vendor/requirementslib/__init__.py index 7e4acf404f..ae39b709f3 100644 --- a/pipenv/vendor/requirementslib/__init__.py +++ b/pipenv/vendor/requirementslib/__init__.py @@ -1,5 +1,5 @@ # -*- coding=utf-8 -*- -__version__ = "1.0.6" +__version__ = "1.0.7" from .exceptions import RequirementError diff --git a/pipenv/vendor/requirementslib/models/requirements.py b/pipenv/vendor/requirementslib/models/requirements.py index 6dc76e0d00..bd70001242 100644 --- a/pipenv/vendor/requirementslib/models/requirements.py +++ b/pipenv/vendor/requirementslib/models/requirements.py @@ -236,12 +236,14 @@ def get_name(self): ): from distutils.core import run_setup + old_curdir = os.path.abspath(os.getcwd()) try: + os.chdir(str(self.setup_path.parent)) dist = run_setup(self.setup_path.as_posix(), stop_after="init") name = dist.get_name() except (FileNotFoundError, IOError) as e: dist = None - except (NameError, RuntimeError) as e: + except Exception as e: from .._compat import InstallRequirement, make_abstract_dist try: @@ -257,6 +259,8 @@ def get_name(self): name = dist.project_name except (TypeError, ValueError, AttributeError) as e: dist = None + finally: + os.chdir(old_curdir) hashed_loc = hashlib.sha256(loc.encode("utf-8")).hexdigest() hashed_name = hashed_loc[-7:] if not name or name == "UNKNOWN": diff --git a/pipenv/vendor/vendor.txt b/pipenv/vendor/vendor.txt index a19294b770..e95b517840 100644 --- a/pipenv/vendor/vendor.txt +++ b/pipenv/vendor/vendor.txt @@ -27,14 +27,14 @@ requests==2.19.1 idna==2.7 urllib3==1.23 certifi==2018.4.16 -requirementslib==1.0.6 +requirementslib==1.0.7 attrs==18.1.0 distlib==0.2.7 packaging==17.1 pyparsing==2.2.0 pytoml==0.1.16 requirements-parser==0.2.0 -shellingham==1.0.0dev1 +shellingham==1.1.0dev0 six==1.11.0 semver==2.8.0 shutilwhich==1.1.0