code: def compile_file(self, filename, ns):
          
          if self.parser.verbose:
              self.parser.log(
                  _format("Compiling file {0!A}", filename))
  
          if not os.path.exists(filename):
              # try to find in search path
              rfilename = self.find_mof(os.path.basename(filename[:-4]).lower())
              if rfilename is None:
                  raise IOError(
                      _format("No such file: {0!A}", filename))
              filename = rfilename
          with open(filename, "r") as f:
              mof = f.read()
  
          return self.compile_string(mof, ns, filename=filename)
docs: Compile a MOF file into a namespace of the associated CIM repository.
  
          Parameters:
  
            filename (:term:`string`):
              The path name of the MOF file containing the MOF statements to be
              compiled.
  
            ns (:term:`string`):
              The name of the CIM namespace in the associated CIM repository
              that is used for lookup of any dependent CIM elements, and that
              is also the target of the compilation.
  
          Raises:
  
            IOError: MOF file not found.
  
            MOFParseError: Syntax error in the MOF.
  
            : Any exceptions that are raised by the repository connection class.