code: def msvc9_query_vcvarsall(ver, arch='x86', *args, **kwargs):
      
      # Try to get environement from vcvarsall.bat (Classical way)
      try:
          orig = get_unpatched(msvc9_query_vcvarsall)
          return orig(ver, arch, *args, **kwargs)
      except distutils.errors.DistutilsPlatformError:
          # Pass error if Vcvarsall.bat is missing
          pass
      except ValueError:
          # Pass error if environment not set after executing vcvarsall.bat
          pass
  
      # If error, try to set environment directly
      try:
          return EnvironmentInfo(arch, ver).return_env()
      except distutils.errors.DistutilsPlatformError as exc:
          _augment_exception(exc, ver, arch)
          raise
docs: Patched "distutils.msvc9compiler.query_vcvarsall" for support extra
      compilers.
  
      Set environment without use of "vcvarsall.bat".
  
      Known supported compilers
      -------------------------
      Microsoft Visual C++ 9.0:
          Microsoft Visual C++ Compiler for Python 2.7 (x86, amd64)
          Microsoft Windows SDK 6.1 (x86, x64, ia64)
          Microsoft Windows SDK 7.0 (x86, x64, ia64)
  
      Microsoft Visual C++ 10.0:
          Microsoft Windows SDK 7.1 (x86, x64, ia64)
  
      Parameters
      ----------
      ver: float
          Required Microsoft Visual C++ version.
      arch: str
          Target architecture.
  
      Return
      ------
      environment: dict