docs: def makefile(self, mode='r', bufsize=-1):
          """create a file-like object that wraps the socket
  
          :param mode:
              like the ``mode`` argument for other files, indicates read ``'r'``,
              write ``'w'``, or both ``'r+'`` (default ``'r'``)
          :type mode: str
          :param bufsize:
              the length of the read buffer to use. 0 means unbuffered, < 0 means
              use the system default (default -1)
          :type bufsize: int
  
          :returns:
              a file-like object for which reading and writing sends and receives
              data over the socket connection
          """
          f = SocketFile(self._sock, mode)
          f._sock.settimeout(self.gettimeout())
          return f