code: def guess(system):
      
      files = system.files
      maybe = []
      if files.input_format:
          maybe.append(files.input_format)
      # first, guess by extension
      for key, val in input_formats.items():
          if type(val) == list:
              for item in val:
                  if files.ext.strip('.').lower() == item:
                      maybe.append(key)
          else:
              if files.ext.strip('.').lower() == val:
                  maybe.append(key)
  
      # second, guess by lines
      true_format = ''
      fid = open(files.case, 'r')
      for item in maybe:
          try:
              parser = importlib.import_module('.' + item, __name__)
              testlines = getattr(parser, 'testlines')
              if testlines(fid):
                  true_format = item
                  break
          except ImportError:
              logger.debug(
                  'Parser for {:s} format is not found. '
                  'Format guess will continue.'.
                  format(item))
      fid.close()
  
      if true_format:
          logger.debug('Input format guessed as {:s}.'.format(true_format))
      else:
          logger.error('Unable to determine case format.')
  
      files.input_format = true_format
  
      # guess addfile format
      if files.addfile:
          _, add_ext = os.path.splitext(files.addfile)
          for key, val in input_formats.items():
              if type(val) == list:
                  if add_ext[1:] in val:
                      files.add_format = key
              else:
                  if add_ext[1:] == val:
                      files.add_format = key
  
      return true_format
docs: input format guess function. First guess by extension, then test by lines