| Viewing file:  install.py (3 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
import sysif 'setuptools' in sys.modules:
 import setuptools.command.install as old_install_mod
 have_setuptools = True
 else:
 import distutils.command.install as old_install_mod
 have_setuptools = False
 from distutils.file_util import write_file
 
 old_install = old_install_mod.install
 
 class install(old_install):
 
 # Always run install_clib - the command is cheap, so no need to bypass it;
 # but it's not run by setuptools -- so it's run again in install_data
 sub_commands = old_install.sub_commands + [
 ('install_clib', lambda x: True)
 ]
 
 def finalize_options (self):
 old_install.finalize_options(self)
 self.install_lib = self.install_libbase
 
 def setuptools_run(self):
 """ The setuptools version of the .run() method.
 
 We must pull in the entire code so we can override the level used in the
 _getframe() call since we wrap this call by one more level.
 """
 from distutils.command.install import install as distutils_install
 
 # Explicit request for old-style install?  Just do it
 if self.old_and_unmanageable or self.single_version_externally_managed:
 return distutils_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(3)
 caller_module = caller.f_globals.get('__name__', '')
 caller_name = caller.f_code.co_name
 
 if caller_module != 'distutils.dist' or caller_name!='run_commands':
 # We weren't called from the command line or setup(), so we
 # should run in backward-compatibility mode to support bdist_*
 # commands.
 distutils_install.run(self)
 else:
 self.do_egg_install()
 
 def run(self):
 if not have_setuptools:
 r = old_install.run(self)
 else:
 r = self.setuptools_run()
 if self.record:
 # bdist_rpm fails when INSTALLED_FILES contains
 # paths with spaces. Such paths must be enclosed
 # with double-quotes.
 with open(self.record) as f:
 lines = []
 need_rewrite = False
 for l in f:
 l = l.rstrip()
 if ' ' in l:
 need_rewrite = True
 l = '"%s"' % (l)
 lines.append(l)
 if need_rewrite:
 self.execute(write_file,
 (self.record, lines),
 "re-writing list of installed files to '%s'" %
 self.record)
 return r
 
 |