diff options
author | Benoit Pierre <benoit.pierre@gmail.com> | 2019-11-16 23:30:10 +0100 |
---|---|---|
committer | Benoit Pierre <benoit.pierre@gmail.com> | 2019-11-16 23:30:10 +0100 |
commit | a1e956b20f11f2d02f5a9855bda37660080184c9 (patch) | |
tree | 1f83221e605be161feff5bbea1e1c2fefef33011 /setuptools/command/easy_install.py | |
parent | 68dbb703705cdd64e25261a6fcc1c0cc96bcf431 (diff) | |
download | external_python_setuptools-a1e956b20f11f2d02f5a9855bda37660080184c9.tar.gz external_python_setuptools-a1e956b20f11f2d02f5a9855bda37660080184c9.tar.bz2 external_python_setuptools-a1e956b20f11f2d02f5a9855bda37660080184c9.zip |
Revert "drop easy_install script and associated documentation"
This reverts commit 6e1838a9fb5feb000ba9b6a3c37c8b39d7e872b3.
Diffstat (limited to 'setuptools/command/easy_install.py')
-rw-r--r-- | setuptools/command/easy_install.py | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index d273bc10..09066f8c 100644 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -73,7 +73,7 @@ warnings.filterwarnings("default", category=pkg_resources.PEP440Warning) __all__ = [ 'samefile', 'easy_install', 'PthDistributions', 'extract_wininst_cfg', - 'get_exe_prefixes', + 'main', 'get_exe_prefixes', ] @@ -2289,6 +2289,59 @@ def current_umask(): return tmp +def bootstrap(): + # This function is called when setuptools*.egg is run using /bin/sh + import setuptools + + argv0 = os.path.dirname(setuptools.__path__[0]) + sys.argv[0] = argv0 + sys.argv.append(argv0) + main() + + +def main(argv=None, **kw): + from setuptools import setup + from setuptools.dist import Distribution + + class DistributionWithoutHelpCommands(Distribution): + common_usage = "" + + def _show_help(self, *args, **kw): + with _patch_usage(): + Distribution._show_help(self, *args, **kw) + + if argv is None: + argv = sys.argv[1:] + + with _patch_usage(): + setup( + script_args=['-q', 'easy_install', '-v'] + argv, + script_name=sys.argv[0] or 'easy_install', + distclass=DistributionWithoutHelpCommands, + **kw + ) + + +@contextlib.contextmanager +def _patch_usage(): + import distutils.core + USAGE = textwrap.dedent(""" + usage: %(script)s [options] requirement_or_url ... + or: %(script)s --help + """).lstrip() + + def gen_usage(script_name): + return USAGE % dict( + script=os.path.basename(script_name), + ) + + saved = distutils.core.gen_usage + distutils.core.gen_usage = gen_usage + try: + yield + finally: + distutils.core.gen_usage = saved + class EasyInstallDeprecationWarning(SetuptoolsDeprecationWarning): """Class for warning about deprecations in EasyInstall in SetupTools. Not ignored by default, unlike DeprecationWarning.""" |