code: def parse(self, filenames):
          
          filenames = list_strings(filenames)
  
          read_ok = []
          for fname in filenames:
              try:
                  fh = open(fname)
              except IOError:
                  logger.warning("Cannot open file %s" % fname)
                  continue
  
              try:
                  self._read(fh, fname)
                  read_ok.append(fname)
  
              except self.Error as e:
                  logger.warning("exception while parsing file %s:\n%s" % (fname, str(e)))
                  continue
  
              finally:
                  fh.close()
  
          # Add read_ok to the list of files that have been parsed.
          self._filenames.extend(read_ok)
          return read_ok
docs: Read and parse a filename or a list of filenames.
          Files that cannot be opened are ignored. A single filename may also be given.
  
          Return: list of successfully read files.