"""Exceptions used throughout the package. Submodules of distutils2 may raise exceptions defined in this module as well as standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (e.g. bad command-line arguments). """ class PackagingError(Exception): """The root of all Packaging evil.""" class PackagingModuleError(PackagingError): """Unable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).""" class PackagingClassError(PackagingError): """Some command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.""" class PackagingGetoptError(PackagingError): """The option table provided to 'fancy_getopt()' is bogus.""" class PackagingArgError(PackagingError): """Raised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.""" class PackagingFileError(PackagingError): """Any problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before IOError or OSError could be raised.""" class PackagingOptionError(PackagingError): """Syntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise PackagingSetupError instead.""" class PackagingSetupError(PackagingError): """For errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.""" class PackagingPlatformError(PackagingError): """We don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.""" class PackagingExecError(PackagingError): """Any problems executing an external program (such as the C compiler, when compiling C files).""" class PackagingInternalError(PackagingError): """Internal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).""" class PackagingTemplateError(PackagingError): """Syntax error in a file list template.""" class PackagingPyPIError(PackagingError): """Any problem occuring during using the indexes.""" # Exception classes used by the CCompiler implementation classes class CCompilerError(Exception): """Some compile/link operation failed.""" class PreprocessError(CCompilerError): """Failure to preprocess one or more C/C++ files.""" class CompileError(CCompilerError): """Failure to compile one or more C/C++ source files.""" class LibError(CCompilerError): """Failure to create a static library from one or more C/C++ object files.""" class LinkError(CCompilerError): """Failure to link one or more C/C++ object files into an executable or shared library file.""" class UnknownFileError(CCompilerError): """Attempt to process an unknown file type.""" class MetadataMissingError(PackagingError): """A required metadata is missing""" class MetadataConflictError(PackagingError): """Attempt to read or write metadata fields that are conflictual.""" class MetadataUnrecognizedVersionError(PackagingError): """Unknown metadata version number.""" class IrrationalVersionError(Exception): """This is an irrational version.""" pass class HugeMajorVersionNumError(IrrationalVersionError): """An irrational version because the major version number is huge (often because a year or date was used). See `error_on_huge_major_num` option in `NormalizedVersion` for details. This guard can be disabled by setting that option False. """ pass class InstallationException(Exception): """Base exception for installation scripts""" class InstallationConflict(InstallationException): """Raised when a conflict is detected"""