code: def readrows(self):
          
  
          # For each file (may be just one) create a BroLogReader and use it
          for self._filepath in self._files:
  
              # Check if the file is zipped
              tmp = None
              if self._filepath.endswith('.gz'):
                  tmp = tempfile.NamedTemporaryFile(delete=False)
                  with gzip.open(self._filepath, 'rb') as f_in, open(tmp.name, 'wb') as f_out:
                      shutil.copyfileobj(f_in, f_out)
  
                  # Set the file path to the new temp file
                  self._filepath = tmp.name
  
              # Create a BroLogReader
              reader = bro_log_reader.BroLogReader(self._filepath)
              for row in reader.readrows():
                  yield row
  
              # Clean up any temp files
              try:
                  if tmp:
                      os.remove(tmp.name)
                      print('Removed temporary file {:s}...'.format(tmp.name))
              except IOError:
                  pass
docs: The readrows method reads simply 'combines' the rows of
             multiple files OR gunzips the file and then reads the rows