diff options
author | Paul Ganssle <paul@ganssle.io> | 2020-07-13 15:36:39 -0400 |
---|---|---|
committer | Paul Ganssle <paul@ganssle.io> | 2020-07-13 15:42:24 -0400 |
commit | 85a0a9026d1b40448d1757ca6cd75e5cc2c50fc6 (patch) | |
tree | fc7a7e94ada370e77a23f99a6d0b6f99eb2c573b | |
parent | 370839b417f6bafe783fa040646d80bdf673fac4 (diff) | |
download | external_python_setuptools-85a0a9026d1b40448d1757ca6cd75e5cc2c50fc6.tar.gz external_python_setuptools-85a0a9026d1b40448d1757ca6cd75e5cc2c50fc6.tar.bz2 external_python_setuptools-85a0a9026d1b40448d1757ca6cd75e5cc2c50fc6.zip |
Revert "Remove warnings"
This reverts commit 30b883f0b8071a3b1472c884574f38ce0128e457.
-rw-r--r-- | setuptools/distutils_patch.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/setuptools/distutils_patch.py b/setuptools/distutils_patch.py index d01a1a1b..33f1e7f9 100644 --- a/setuptools/distutils_patch.py +++ b/setuptools/distutils_patch.py @@ -12,10 +12,26 @@ import importlib import warnings -def clear_distutils(): +is_pypy = '__pypy__' in sys.builtin_module_names + + +def warn_distutils_present(): if 'distutils' not in sys.modules: return + if is_pypy and sys.version_info < (3, 7): + # PyPy for 3.6 unconditionally imports distutils, so bypass the warning + # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250 + return + warnings.warn( + "Distutils was imported before Setuptools. This usage is discouraged " + "and may exhibit undesirable behaviors or errors. Please use " + "Setuptools' objects directly or at least import Setuptools first.") + +def clear_distutils(): + if 'distutils' not in sys.modules: + return + warnings.warn("Setuptools is replacing distutils.") mods = [name for name in sys.modules if re.match(r'distutils\b', name)] for name in mods: del sys.modules[name] @@ -40,5 +56,6 @@ def ensure_local_distutils(): assert '_distutils' in core.__file__, core.__file__ +warn_distutils_present() if enabled(): ensure_local_distutils() |