docs: def _read(self, length):
          """
          Reads C{length} bytes from the stream. If an attempt to read past the
          end of the buffer is made, L{IOError} is raised.
          """
          bytes = self.read(length)
  
          if len(bytes) != length:
              self.seek(0 - len(bytes), 1)
  
              raise IOError("Tried to read %d byte(s) from the stream" % length)
  
          return bytes