Commit 0b80f934 authored by Jason R. Coombs's avatar Jason R. Coombs

Extract a method to capture the intention of caller detection.

parent 58eb4b2b
......@@ -52,19 +52,8 @@ class install(_install):
if self.old_and_unmanageable or self.single_version_externally_managed:
return _install.run(self)
# Attempt to detect whether we were called from setup() or by another
# command. If we were called by setup(), our caller will be the
# 'run_command' method in 'distutils.dist', and *its* caller will be
# the 'run_commands' method. If we were called any other way, our
# immediate caller *might* be 'run_command', but it won't have been
# called by 'run_commands'. This is slightly kludgy, but seems to
# work.
#
caller = sys._getframe(2)
caller_module = caller.f_globals.get('__name__','')
caller_name = caller.f_code.co_name
if caller_module != 'distutils.dist' or caller_name!='run_commands':
called_from_setup = self._called_from_setup(sys._getframe(2))
if not called_from_setup:
# We weren't called from the command line or setup(), so we
# should run in backward-compatibility mode to support bdist_*
# commands.
......@@ -72,6 +61,25 @@ class install(_install):
else:
self.do_egg_install()
@staticmethod
def _called_from_setup(run_parent_parent):
"""
Attempt to detect whether we were called from setup() or by another
command. If we were called by setup(), our caller will be the
'run_command' method in 'distutils.dist', and *its* caller will be
the 'run_commands' method. If we were called any other way, our
immediate caller *might* be 'run_command', but it won't have been
called by 'run_commands'. This is slightly kludgy, but seems to
work.
"""
caller = run_parent_parent
caller_module = caller.f_globals.get('__name__','')
caller_name = caller.f_code.co_name
return (
caller_module == 'distutils.dist'
and caller_name == 'run_commands'
)
def do_egg_install(self):
easy_install = self.distribution.get_command_class('easy_install')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment