code: def get_matfile_version(fileobj):
      """
      Return major, minor tuple depending on apparent mat file type
  
      Where:
  
       #. 0,x -> version 4 format mat files
       #. 1,x -> version 5 format mat files
       #. 2,x -> version 7.3 format mat files (HDF format)
  
      Parameters
      ----------
      fileobj : file_like
          object implementing seek() and read()
  
      Returns
      -------
      major_version : {0, 1, 2}
          major MATLAB File format version
      minor_version : int
          minor MATLAB file format version
  
      Raises
      ------
      MatReadError
          If the file is empty.
      ValueError
          The matfile version is unknown.
  
      Notes
      -----
      Has the side effect of setting the file read pointer to 0
      """
      # Mat4 files have a zero somewhere in first 4 bytes
      fileobj.seek(0)
      mopt_bytes = fileobj.read(4)
      if len(mopt_bytes) == 0:
          raise MatReadError("Mat file appears to be empty")
      mopt_ints = np.ndarray(
          shape=(4,), dtype=np.uint8, buffer=mopt_bytes
      )
      if 0 in mopt_ints:
          fileobj.seek(0)
          return (0, 0)
      # For 5 format or 7.3 format we need to read an integer in the
      # header. Bytes 124 through 128 contain a version integer and an
      # endian test string
      fileobj.seek(124)
      tst_str = fileobj.read(4)
      fileobj.seek(0)
      maj_ind = int(tst_str[2] == b"I"[0])
      maj_val = int(tst_str[maj_ind])
      min_val = int(tst_str[1 - maj_ind])
      ret = (maj_val, min_val)
      if maj_val in (1, 2):
          return ret
      raise ValueError("Unknown mat file type, version %s, %s" % ret)
  
imports: import operator
  import functools
  import numpy
  from scipy._lib import doccer
  from .None import byteordercodes
label_desc: Use image node_id 3 for calling a global function with example usage: get_matfile_version(fileobj) and returns: int,  int, ret