|  | @@ -76,16 +76,23 @@ def _expect_compile(compiler, source_string, error_message):
 | 
	
		
			
				|  |  |          "Diagnostics found a compilation environment issue:\n{}"
 | 
	
		
			
				|  |  |              .format(error_message))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -def diagnose_build_ext_error(build_ext, error):
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -      errors.CompileError: diagnose_compile_error
 | 
	
		
			
				|  |  | -  }[type(error)](build_ext, error)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  def diagnose_compile_error(build_ext, error):
 | 
	
		
			
				|  |  |    """Attempt to run a few test files through the compiler to see if we can
 | 
	
		
			
				|  |  |       diagnose the reason for the compile failure."""
 | 
	
		
			
				|  |  |    for c_check, message in C_CHECKS.items():
 | 
	
		
			
				|  |  |      _expect_compile(build_ext.compiler, c_check, message)
 | 
	
		
			
				|  |  | -  raise commands.CommandError(
 | 
	
		
			
				|  |  | -      "\n\nWe could not diagnose your build failure. Please file an issue at "
 | 
	
		
			
				|  |  | -      "http://www.github.com/grpc/grpc with `[Python install]` in the title.")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +_ERROR_DIAGNOSES = {
 | 
	
		
			
				|  |  | +    errors.CompileError: diagnose_compile_error
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def diagnose_build_ext_error(build_ext, error, formatted):
 | 
	
		
			
				|  |  | +  diagnostic = _ERROR_DIAGNOSES.get(type(error))
 | 
	
		
			
				|  |  | +  if diagnostic is None:
 | 
	
		
			
				|  |  | +    raise commands.CommandError(
 | 
	
		
			
				|  |  | +        "\n\nWe could not diagnose your build failure. Please file an issue at "
 | 
	
		
			
				|  |  | +        "http://www.github.com/grpc/grpc with `[Python install]` in the title."
 | 
	
		
			
				|  |  | +        "\n\n{}".format(formatted))
 | 
	
		
			
				|  |  | +  else:
 | 
	
		
			
				|  |  | +    diagnostic(build_ext, error)
 | 
	
		
			
				|  |  | +
 |