Get setup_requires from pyproject and setup.cfg.
This commit is contained in:
parent
18e258fd17
commit
8336ac6113
2 changed files with 15 additions and 9 deletions
|
@ -235,6 +235,8 @@ class ExplainInstallFixer(BuildFixer):
|
||||||
|
|
||||||
|
|
||||||
def install_missing_reqs(session, resolver, reqs, explain=False):
|
def install_missing_reqs(session, resolver, reqs, explain=False):
|
||||||
|
if not reqs:
|
||||||
|
return
|
||||||
missing = []
|
missing = []
|
||||||
for req in reqs:
|
for req in reqs:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -347,15 +347,9 @@ class SetupPy(BuildSystem):
|
||||||
|
|
||||||
def _run_setup(self, session, resolver, args, fixers):
|
def _run_setup(self, session, resolver, args, fixers):
|
||||||
from .buildlog import install_missing_reqs
|
from .buildlog import install_missing_reqs
|
||||||
distribution = self._extract_setup(session, fixers)
|
# Install the setup_requires beforehand, since otherwise
|
||||||
if distribution is not None:
|
# setuptools might fetch eggs instead of our preferred resolver.
|
||||||
# Install the setup_requires beforehand, since otherwise
|
install_missing_reqs(session, resolver, list(self._setup_requires()))
|
||||||
# setuptools might fetch eggs instead of our preferred resolver.
|
|
||||||
install_missing_reqs(
|
|
||||||
session,
|
|
||||||
resolver,
|
|
||||||
[PythonPackageRequirement.from_requirement_str(require)
|
|
||||||
for require in distribution['setup_requires']])
|
|
||||||
interpreter = shebang_binary(os.path.join(self.path, 'setup.py'))
|
interpreter = shebang_binary(os.path.join(self.path, 'setup.py'))
|
||||||
if interpreter is not None:
|
if interpreter is not None:
|
||||||
run_with_build_fixers(session, ["./setup.py"] + args, fixers)
|
run_with_build_fixers(session, ["./setup.py"] + args, fixers)
|
||||||
|
@ -363,6 +357,16 @@ class SetupPy(BuildSystem):
|
||||||
# Just assume it's Python 3
|
# Just assume it's Python 3
|
||||||
run_with_build_fixers(session, [self.DEFAULT_PYTHON, "./setup.py"] + args, fixers)
|
run_with_build_fixers(session, [self.DEFAULT_PYTHON, "./setup.py"] + args, fixers)
|
||||||
|
|
||||||
|
def _setup_requires(self):
|
||||||
|
if self.pyproject:
|
||||||
|
if "build-system" in self.pyproject:
|
||||||
|
for require in self.pyproject['build-system'].get("requires", []):
|
||||||
|
yield PythonPackageRequirement.from_requirement_str(require)
|
||||||
|
if self.config:
|
||||||
|
options = self.config.get('options', {})
|
||||||
|
for require in options.get('setup_requires', []):
|
||||||
|
yield PythonPackageRequirement.from_requirement_str(require)
|
||||||
|
|
||||||
def get_declared_dependencies(self, session, fixers=None):
|
def get_declared_dependencies(self, session, fixers=None):
|
||||||
distribution = self._extract_setup(session, fixers)
|
distribution = self._extract_setup(session, fixers)
|
||||||
if distribution is not None:
|
if distribution is not None:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue