code: def unpack(self, buff, offset=0):
          
          begin = offset
          for name, value in self.get_class_attributes():
              if type(value).__name__ != "Header":
                  size = self._unpack_attribute(name, value, buff, begin)
                  begin += size
docs: Unpack a binary message into this object's attributes.
  
          Unpack the binary value *buff* and update this object attributes based
          on the results. It is an inplace method and it receives the binary data
          of the message **without the header**.
  
          Args:
              buff (bytes): Binary data package to be unpacked, without the
                  header.
              offset (int): Where to begin unpacking.