diff options
author | Benoit Pierre <benoit.pierre@gmail.com> | 2017-09-14 22:07:13 +0200 |
---|---|---|
committer | Benoit Pierre <benoit.pierre@gmail.com> | 2017-10-16 21:09:12 +0200 |
commit | 472c79f95cc41a3e85d6b212347d6b006c9c3c26 (patch) | |
tree | 65357a7db6125f53b3485d0221aba36a1304f64f /setuptools/__init__.py | |
parent | f2ad62e0543ea6dde2e91f08c0feed09fdd55724 (diff) | |
download | external_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__.py | 22 |
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) |