mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	distutils was removed in November. However, the c-analyzer relies on it. To solve that here, we vendor the parts the tool needs so it can be run against 3.12+. (Also see gh-92584.) Note that we may end up removing this code later in favor of a solution in common with the peg_generator tool (which also relies on distutils). At the least, the copy here makes sure the c-analyzer tool works on 3.12+ in the meantime.
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""distutils.errors
 | 
						|
 | 
						|
Provides exceptions used by the Distutils modules.  Note that Distutils
 | 
						|
modules may raise standard exceptions; in particular, SystemExit is
 | 
						|
usually raised for errors that are obviously the end-user's fault
 | 
						|
(eg. bad command-line arguments).
 | 
						|
 | 
						|
This module is safe to use in "from ... import *" mode; it only exports
 | 
						|
symbols whose names start with "Distutils" and end with "Error"."""
 | 
						|
 | 
						|
class DistutilsError (Exception):
 | 
						|
    """The root of all Distutils evil."""
 | 
						|
    pass
 | 
						|
 | 
						|
class DistutilsModuleError (DistutilsError):
 | 
						|
    """Unable to load an expected module, or to find an expected class
 | 
						|
    within some module (in particular, command modules and classes)."""
 | 
						|
    pass
 | 
						|
 | 
						|
class DistutilsFileError (DistutilsError):
 | 
						|
    """Any problems in the filesystem: expected file not found, etc.
 | 
						|
    Typically this is for problems that we detect before OSError
 | 
						|
    could be raised."""
 | 
						|
    pass
 | 
						|
 | 
						|
class DistutilsPlatformError (DistutilsError):
 | 
						|
    """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."""
 | 
						|
    pass
 | 
						|
 | 
						|
class DistutilsExecError (DistutilsError):
 | 
						|
    """Any problems executing an external program (such as the C
 | 
						|
    compiler, when compiling C files)."""
 | 
						|
    pass
 | 
						|
 | 
						|
# 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 UnknownFileError (CCompilerError):
 | 
						|
    """Attempt to process an unknown file type."""
 |