def set_query_parameter(url, param_name, param_value):
scheme, netloc, path, query_string, fragment = urlsplit(url)<EOL>query_params = parse_qs(query_string)<EOL>query_params[param_name] = [param_value]<EOL>new_query_string = urlencode(query_params, doseq=True)<EOL>return urlunsplit((scheme, netloc, path, new_query_string, fragment))<EOL>
Given a URL, set or replace a query parameter and return the modified URL.

    Args:
        url: a given  URL
        param_name: the parameter name to add
        param_value: the parameter value
    Returns:
        URL with the added parameter