code: def _parse_file(self, file):
          
          case = Case()
          file.seek(0)
  
          line = file.readline().split()
          if line[0] != "function":
              logger.error("Invalid data file header.")
              return case
          if line[1] != "mpc":
              self._is_struct = False
              base = ""
          else:
              base = "mpc."
          case.name = line[-1]
  
          for line in file:
              if line.startswith("%sbaseMVA" % base):
                  case_data = line.rstrip(";\n").split()
                  case.base_mva = float(case_data[-1])
              elif line.startswith("%sbus" % base):
                  self._parse_buses(case, file)
              elif line.startswith("%sgencost" % base):
                  self._parse_gencost(case, file)
              elif line.startswith("%sgen" % base):
                  self._parse_generators(case, file)
              elif line.startswith("%sbranch" % base):
                  self._parse_branches(case, file)
  
          return case
docs: Parses the given file-like object.