docs: def read(self, count):
          """
          read count bytes from the unpacker and return it. Raises an
          UnpackException if there is not enough data in the underlying
          stream.
          """
  
          if not self.data:
              raise UnpackException(None, count, 0)
  
          buff = self.data.read(count)
          if len(buff) < count:
              raise UnpackException(None, count, len(buff))
  
          return buff