General cleanup, raise normalization in Lib/distutils.

This commit is contained in:
Collin Winter 2007-08-30 03:52:21 +00:00
parent a73bfee73d
commit 5b7e9d76f3
47 changed files with 963 additions and 1640 deletions

View file

@ -1,9 +1,6 @@
# This module should be kept compatible with Python 2.1.
__revision__ = "$Id$"
import sys, os
from types import IntType
from distutils.core import Command
from distutils.errors import DistutilsOptionError
@ -11,7 +8,7 @@
# Extension for Python source files.
PYTHON_SOURCE_EXTENSION = ".py"
class install_lib (Command):
class install_lib(Command):
description = "install all Python modules (extensions and pure Python)"
@ -45,8 +42,7 @@ class install_lib (Command):
boolean_options = ['force', 'compile', 'skip-build']
negative_opt = {'no-compile' : 'compile'}
def initialize_options (self):
def initialize_options(self):
# let the 'install' command dictate our installation directory
self.install_dir = None
self.build_dir = None
@ -55,7 +51,7 @@ def initialize_options (self):
self.optimize = None
self.skip_build = None
def finalize_options (self):
def finalize_options(self):
# Get all the information we need to install pure Python modules
# from the umbrella 'install' command -- build (source) directory,
@ -70,19 +66,18 @@ def finalize_options (self):
)
if self.compile is None:
self.compile = 1
self.compile = True
if self.optimize is None:
self.optimize = 0
self.optimize = False
if type(self.optimize) is not IntType:
if not isinstance(self.optimize, int):
try:
self.optimize = int(self.optimize)
assert 0 <= self.optimize <= 2
except (ValueError, AssertionError):
raise DistutilsOptionError, "optimize must be 0, 1, or 2"
def run (self):
raise DistutilsOptionError("optimize must be 0, 1, or 2")
def run(self):
# Make sure we have built everything we need first
self.build()
@ -95,20 +90,18 @@ def run (self):
if outfiles is not None and self.distribution.has_pure_modules():
self.byte_compile(outfiles)
# run ()
# -- Top-level worker functions ------------------------------------
# (called from 'run()')
def build (self):
def build(self):
if not self.skip_build:
if self.distribution.has_pure_modules():
self.run_command('build_py')
if self.distribution.has_ext_modules():
self.run_command('build_ext')
def install (self):
def install(self):
if os.path.isdir(self.build_dir):
outfiles = self.copy_tree(self.build_dir, self.install_dir)
else:
@ -117,7 +110,7 @@ def install (self):
return
return outfiles
def byte_compile (self, files):
def byte_compile(self, files):
from distutils.util import byte_compile
# Get the "--root" directory supplied to the "install" command,
@ -138,8 +131,7 @@ def byte_compile (self, files):
# -- Utility methods -----------------------------------------------
def _mutate_outputs (self, has_any, build_cmd, cmd_option, output_dir):
def _mutate_outputs(self, has_any, build_cmd, cmd_option, output_dir):
if not has_any:
return []
@ -154,9 +146,7 @@ def _mutate_outputs (self, has_any, build_cmd, cmd_option, output_dir):
return outputs
# _mutate_outputs ()
def _bytecode_filenames (self, py_filenames):
def _bytecode_filenames(self, py_filenames):
bytecode_files = []
for py_file in py_filenames:
# Since build_py handles package data installation, the
@ -176,7 +166,7 @@ def _bytecode_filenames (self, py_filenames):
# -- External interface --------------------------------------------
# (called by outsiders)
def get_outputs (self):
def get_outputs(self):
"""Return the list of files that would be installed if this command
were actually run. Not affected by the "dry-run" flag or whether
modules have actually been built yet.
@ -197,9 +187,7 @@ def get_outputs (self):
return pure_outputs + bytecode_outputs + ext_outputs
# get_outputs ()
def get_inputs (self):
def get_inputs(self):
"""Get the list of files that are input to this command, ie. the
files that get installed as they are named in the build tree.
The files in this list correspond one-to-one to the output
@ -216,5 +204,3 @@ def get_inputs (self):
inputs.extend(build_ext.get_outputs())
return inputs
# class install_lib