code: def unpack(self, buff, offset=0):
          
          try:
              self._value = struct.unpack_from(self._fmt, buff, offset)[0]
              if self.enum_ref:
                  self._value = self.enum_ref(self._value)
          except (struct.error, TypeError, ValueError) as exception:
              msg = '{}; fmt = {}, buff = {}, offset = {}.'.format(exception,
                                                                   self._fmt,
                                                                   buff, offset)
              raise UnpackException(msg)
docs: Unpack *buff* into this object.
  
          This method will convert a binary data into a readable value according
          to the attribute format.
  
          Args:
              buff (bytes): Binary buffer.
              offset (int): Where to begin unpacking.
  
          Raises:
              :exc:`~.exceptions.UnpackException`: If unpack fails.