mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 22:50:18 +00:00
got setup.py extras working (apparently)
Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
This commit is contained in:
@@ -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(' ', ''))
|
||||
|
||||
Reference in New Issue
Block a user