got setup.py extras working (apparently)

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
This commit is contained in:
2018-03-12 07:12:14 -04:00
parent 7eec1c00cd
commit 5f48c85d32
@@ -183,6 +183,14 @@ class PyPIRepository(BaseRepository):
if not (ireq.editable or is_pinned_requirement(ireq)):
raise TypeError('Expected pinned or editable InstallRequirement, got {}'.format(ireq))
setup_requires = {}
if ireq.editable:
dist = ireq.get_dist()
if dist.has_metadata('requires.txt'):
setup_requires = self.finder.get_extras_links(
dist.get_metadata_lines('requires.txt')
)
if ireq not in self._dependencies_cache:
if ireq.link and not ireq.link.is_artifact:
# No download_dir for VCS sources. This also works around pip
@@ -204,6 +212,15 @@ class PyPIRepository(BaseRepository):
ignore_compatibility=True
)
result = reqset._prepare_file(self.finder, ireq, ignore_requires_python=True)
if setup_requires:
for section in setup_requires:
python_version = section
for value in setup_requires[section]:
if ':' in value:
python_version = value[1:-1]
else:
result = result + [InstallRequirement.from_line("{0}{1}".format(value, python_version).replace(':', ';'))]
if reqset.requires_python:
marker = 'python_version=="{0}"'.format(reqset.requires_python.replace(' ', ''))