docs: def pread(self, position, length):
          r"""
          Read ``length`` bytes of data from the file, starting from
          ``position``\ .
  
          :type position: int
          :param position: position from which to read
          :type length: int
          :param length: the number of bytes to read
          :rtype: string
          :return: the chunk of data read from the file
          """
          _complain_ifclosed(self.closed)
          if position > self.size:
              raise IOError("position cannot be past EOF")
          if length < 0:
              length = self.size - position
          data = self.f.raw.pread(position, length)
          if self.__encoding:
              return data.decode(self.__encoding, self.__errors)
          else:
              return data