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