docs: def execute(query, auth=None, client=urllib_request.build_opener()):
      """Execute a query, returning its result
  
      Parameters
      ----------
      query: Query[T]
          The query to resolve
      auth: ~typing.Tuple[str, str] \
          or ~typing.Callable[[Request], Request] or None
          This may be:
  
          * A (username, password)-tuple for basic authentication
          * A callable to authenticate requests.
          * ``None`` (no authentication)
      client
          The HTTP client to use.
          Its type must have been registered
          with :func:`~snug.clients.send`.
          If not given, the built-in :mod:`urllib` module is used.
  
      Returns
      -------
      T
          the query result
      """
      exec_fn = getattr(type(query), '__execute__', _default_execute_method)
      return exec_fn(query, client, _make_auth(auth))