code: def detect_data_file(input, file_name=""):
      
      _, ext = os.path.splitext(file_name)
  
      if ext == ".m":
          line = input.readline() # first line
          if line.startswith("function"):
              type = "matpower"
              logger.info("Recognised MATPOWER data file.")
          elif line.startswith("Bus.con" or line.startswith("%")):
              type = "psat"
              logger.info("Recognised PSAT data file.")
          else:
              type = "unrecognised"
          input.seek(0) # reset buffer for parsing
  
      elif (ext == ".raw") or (ext == ".psse"):
          type = "psse"
          logger.info("Recognised PSS/E data file.")
  
      elif (ext == ".pkl") or (ext == ".pickle"):
          type = "pickle"
          logger.info("Recognised pickled case.")
  
      else:
          type = None
  
      return type
docs: Detects the format of a network data file according to the
          file extension and the header.