aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/__init__.py
diff options
context:
space:
mode:
authorBenoit Pierre <benoit.pierre@gmail.com>2017-09-14 22:07:13 +0200
committerBenoit Pierre <benoit.pierre@gmail.com>2017-10-16 21:09:12 +0200
commit472c79f95cc41a3e85d6b212347d6b006c9c3c26 (patch)
tree65357a7db6125f53b3485d0221aba36a1304f64f /setuptools/__init__.py
parentf2ad62e0543ea6dde2e91f08c0feed09fdd55724 (diff)
downloadexternal_python_setuptools-472c79f95cc41a3e85d6b212347d6b006c9c3c26.tar.gz
external_python_setuptools-472c79f95cc41a3e85d6b212347d6b006c9c3c26.tar.bz2
external_python_setuptools-472c79f95cc41a3e85d6b212347d6b006c9c3c26.zip
support `setup_requires` in setup.cfg
Diffstat (limited to 'setuptools/__init__.py')
-rw-r--r--setuptools/__init__.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/setuptools/__init__.py b/setuptools/__init__.py
index 04f76740..7da47fbe 100644
--- a/setuptools/__init__.py
+++ b/setuptools/__init__.py
@@ -109,7 +109,27 @@ class PEP420PackageFinder(PackageFinder):
find_packages = PackageFinder.find
-setup = distutils.core.setup
+
+def _install_setup_requires(attrs):
+ # Note: do not use `setuptools.Distribution` directly, as
+ # our PEP 517 backend patch `distutils.core.Distribution`.
+ dist = distutils.core.Distribution(dict(
+ (k, v) for k, v in attrs.items()
+ if k in ('dependency_links', 'setup_requires')
+ ))
+ # Honor setup.cfg's options.
+ dist.parse_config_files(ignore_option_errors=True)
+ if dist.setup_requires:
+ dist.fetch_build_eggs(dist.setup_requires)
+
+
+def setup(**attrs):
+ # Make sure we have any requirements needed to interpret 'attrs'.
+ _install_setup_requires(attrs)
+ return distutils.core.setup(**attrs)
+
+setup.__doc__ = distutils.core.setup.__doc__
+
_Command = monkey.get_unpatched(distutils.core.Command)