Update requirementslib

Signed-off-by: Dan Ryan <dan@danryan.co>
This commit is contained in:
Dan Ryan
2018-11-21 21:07:45 -05:00
parent 9dc435789b
commit 031afba5be
+19 -7
View File
@@ -7,6 +7,7 @@ import attr
import packaging.version
import packaging.specifiers
import packaging.utils
import six
try:
from setuptools.dist import distutils
@@ -67,6 +68,18 @@ def _get_src_dir():
return os.path.join(os.getcwd(), "src") # Match pip's behavior.
def ensure_reqs(reqs):
import pkg_resources
new_reqs = []
for req in reqs:
if not req:
continue
if isinstance(req, six.string_types):
req = pkg_resources.Requirement.parse("{0}".format(str(req)))
new_reqs.append(req)
return new_reqs
def _prepare_wheel_building_kwargs(ireq):
download_dir = os.path.join(CACHE_DIR, "pkgs")
mkdir_p(download_dir)
@@ -153,10 +166,8 @@ def get_metadata(path, pkg_name=None):
else:
marker = ""
extra = "{0}".format(k)
_deps = [
pkg_resources.Requirement.parse("{0}{1}".format(str(req), marker))
for req in _deps
]
_deps = ["{0}{1}".format(str(req), marker) for req in _deps]
_deps = ensure_reqs(_deps)
if extra:
extras[extra] = _deps
else:
@@ -310,10 +321,11 @@ class SetupInfo(object):
)
if getattr(self.ireq, "extras", None):
for extra in self.ireq.extras:
extra = metadata.get("extras", {}).get(extra)
self.extras[extra] = set([req for req in extra if req is not None])
extras = metadata.get("extras", {}).get(extra)
extras = ensure_reqs(extras)
self.extras[extra] = set(extras)
self.requires.update(
{req.key: req for req in extra if req is not None}
{req.key: req for req in extras if req is not None}
)
def run_pyproject(self):