class_docstr: Reader for Mat 5 mat files
  Adds the following attribute to base class
  
  uint16_codec - char codec to use for uint16 char arrays
      (defaults to system default codec)
  
  Uses variable reader that has the following stardard interface (see
  abstract class in ``miobase``::
  
     __init__(self, file_reader)
     read_header(self)
     array_from_header(self)
  
  and added interface::
  
     set_stream(self, stream)
     read_full_tag(self)
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)
      # Here we pass all the parameters in self to the reading objects
      self.initialize_read()
      self.read_file_header()
      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")
          )
          if name == "":
              # can only be a matlab 7 function workspace
              name = "__function_workspace__"
  
          shape = self._matrix_reader.shape_from_header(hdr)
          if hdr.is_logical:
              info = "logical"
          else:
              info = mclass_info.get(hdr.mclass, "unknown")
          vars.append((name, shape, info))
  
          self.mat_stream.seek(next_position)
      return vars
  
imports: import os
  import time
  import sys
  import zlib
  from io import BytesIO
  import warnings
  import numpy
  import scipy.sparse
  from .byteordercodes import native_code, swapped_code
  from .miobase import MatFileReader, docfiller, matdims, read_dtype, arr_to_chars, arr_dtype_number, MatWriteError, MatReadError, MatReadWarning
  from .mio5_utils import VarReader5
  from .mio5_params import MatlabObject, MatlabFunction, MDTYPES, NP_TO_MTYPES, NP_TO_MXTYPES, miCOMPRESSED, miMATRIX, miINT8, miUTF8, miUINT32, mxCELL_CLASS, mxSTRUCT_CLASS, mxOBJECT_CLASS, mxCHAR_CLASS, mxSPARSE_CLASS, mxDOUBLE_CLASS, mclass_info, mat_struct
  from .streams import ZlibInputStream
label_desc: Use image node_id 8 for calling the MatFile5Reader obj's underlying member method code with example usage: obj.list_variables() and returns: vars