docs: def create_connection(self):
          """See: https://github.com/python/cpython/blob/40ee9a3640d702bce127e9877c82a99ce817f0d1/Lib/socket.py#L691"""
          err = None
          try:
              for res in socket.getaddrinfo(self._server, self._port, 0, self._sock_type):
                  af, socktype, proto, canonname, sa = res
                  sock = None
                  try:
                      sock = socket.socket(af, socktype, proto)
                      sock.settimeout(self._timeout)
                      sock.connect(sa)
                      # Break explicitly a reference cycle
                      err = None
                      return sock
  
                  except socket.error as _:
                      err = _
                      if sock is not None:
                          sock.close()
  
              if err is not None:
                  raise err
              else:
                  raise socket.error('No valid addresses found, try checking your IPv6 connectivity')
          except socket.gaierror as e:
              err_code, message = e.args
              if err_code == socket.EAI_NODATA or err_code == socket.EAI_NONAME:
                  raise socket.error('Unable to resolve host, check your DNS: {}'.format(message))
  
              raise