docs: def Read(self, length):
      """Read a block of data from the file."""
      result = b""
  
      # The total available size in the file
      length = int(length)
      length = min(length, self.size - self.offset)
  
      while length > 0:
        data = self._ReadPartial(length)
        if not data:
          break
  
        length -= len(data)
        result += data
      return result