code: def read(self, n_bytes=-1):
      """Return byte string of length `n_bytes` at current position
  
      Returns sub-string from ``self.buf`` and updates ``self.ptr`` to the
      position after the read data.
  
      Parameters
      ----------
      n_bytes : int, optional
         number of bytes to read.  Can be -1 (the default) in which
         case we return all the remaining bytes in ``self.buf``
  
      Returns
      -------
      s : byte string
      """
      start = self.ptr
      if n_bytes == -1:
          end = len(self.buf)
      else:
          end = start + n_bytes
      self.ptr = end
      return self.buf[start:end]
  
imports: from struct import Struct
label_desc: Use image node_id 3 for calling the Unpacker obj's underlying member method code with example usage: obj.read(n_bytes) and returns: self