1"""distutils.errors
2
3Provides exceptions used by the Distutils modules.  Note that Distutils
4modules may raise standard exceptions; in particular, SystemExit is
5usually raised for errors that are obviously the end-user's fault
6(eg. bad command-line arguments).
7
8This module is safe to use in "from ... import *" mode; it only exports
9symbols whose names start with "Distutils" and end with "Error"."""
10
11__revision__ = "$Id$"
12
13class DistutilsError(Exception):
14    """The root of all Distutils evil."""
15
16class DistutilsModuleError(DistutilsError):
17    """Unable to load an expected module, or to find an expected class
18    within some module (in particular, command modules and classes)."""
19
20class DistutilsClassError(DistutilsError):
21    """Some command class (or possibly distribution class, if anyone
22    feels a need to subclass Distribution) is found not to be holding
23    up its end of the bargain, ie. implementing some part of the
24    "command "interface."""
25
26class DistutilsGetoptError(DistutilsError):
27    """The option table provided to 'fancy_getopt()' is bogus."""
28
29class DistutilsArgError(DistutilsError):
30    """Raised by fancy_getopt in response to getopt.error -- ie. an
31    error in the command line usage."""
32
33class DistutilsFileError(DistutilsError):
34    """Any problems in the filesystem: expected file not found, etc.
35    Typically this is for problems that we detect before IOError or
36    OSError could be raised."""
37
38class DistutilsOptionError(DistutilsError):
39    """Syntactic/semantic errors in command options, such as use of
40    mutually conflicting options, or inconsistent options,
41    badly-spelled values, etc.  No distinction is made between option
42    values originating in the setup script, the command line, config
43    files, or what-have-you -- but if we *know* something originated in
44    the setup script, we'll raise DistutilsSetupError instead."""
45
46class DistutilsSetupError(DistutilsError):
47    """For errors that can be definitely blamed on the setup script,
48    such as invalid keyword arguments to 'setup()'."""
49
50class DistutilsPlatformError(DistutilsError):
51    """We don't know how to do something on the current platform (but
52    we do know how to do it on some platform) -- eg. trying to compile
53    C files on a platform not supported by a CCompiler subclass."""
54
55class DistutilsExecError(DistutilsError):
56    """Any problems executing an external program (such as the C
57    compiler, when compiling C files)."""
58
59class DistutilsInternalError(DistutilsError):
60    """Internal inconsistencies or impossibilities (obviously, this
61    should never be seen if the code is working!)."""
62
63class DistutilsTemplateError(DistutilsError):
64    """Syntax error in a file list template."""
65
66class DistutilsByteCompileError(DistutilsError):
67    """Byte compile error."""
68
69# Exception classes used by the CCompiler implementation classes
70class CCompilerError(Exception):
71    """Some compile/link operation failed."""
72
73class PreprocessError(CCompilerError):
74    """Failure to preprocess one or more C/C++ files."""
75
76class CompileError(CCompilerError):
77    """Failure to compile one or more C/C++ source files."""
78
79class LibError(CCompilerError):
80    """Failure to create a static library from one or more C/C++ object
81    files."""
82
83class LinkError(CCompilerError):
84    """Failure to link one or more C/C++ object files into an executable
85    or shared library file."""
86
87class UnknownFileError(CCompilerError):
88    """Attempt to process an unknown file type."""
89