class_docstr: Reader for Mat4 files 
class_docstr_tok: ["Reader","for","Mat4","files"]
docstr: list variables from stream 
docstr_tok: ["list","variables","from","stream"]
code: def list_variables(self):
      """list variables from stream"""
      self.mat_stream.seek(0)
      # set up variable reader
      self.initialize_read()
      vars = []
      while not self.end_of_stream():
          hdr, next_position = self.read_var_header()
          name = (
              "None" if hdr.name is None else hdr.name.decode("latin1")
          )
          shape = self._matrix_reader.shape_from_header(hdr)
          info = mclass_info.get(hdr.mclass, "unknown")
          vars.append((name, shape, info))
  
          self.mat_stream.seek(next_position)
      return vars
  
imports: import sys
  import warnings
  import numpy
  import scipy.sparse
  from .miobase import MatFileReader, docfiller, matdims, read_dtype, convert_dtypes, arr_to_chars, arr_dtype_number
  from .mio_utils import squeeze_element, chars_to_strings
  from functools import reduce
label_desc: Use image node_id 7 for calling the MatFile4Reader obj's underlying member method code with example usage: obj.list_variables() and returns: vars