def iterate_sheets(self, *args, **kwargs):
    """Opens self.filename and reads it with a csv reader.

    If self.filename ends with .gz, the file will be decompressed with gzip before being passed
    to csv.reader. If the filename is not a string, it is assumed to be a file-like object which
    will be passed directly to csv.reader.
    """
    if isinstance(self.filename, str):
      if self.filename.endswith(".gz") or self.is_gzipped:
        with gzip.open(self.filename, "rt") as rfile:
          reader = csv.reader(rfile, *args, **kwargs)
          yield list(reader)
      else:
        with open(self.filename, "r") as rfile:
          reader = csv.reader(rfile, *args, **kwargs)
          yield list(reader)
    else:
      reader = csv.reader(self.filename, *args, **kwargs)
      yield list(reader)
Opens self.filename and reads it with a csv reader.

    If self.filename ends with .gz, the file will be decompressed with gzip before being passed
    to csv.reader. If the filename is not a string, it is assumed to be a file-like object which
    will be passed directly to csv.reader.