in aws_jupyter_proxy/awsproxy.py [0:0]
def _get_canonical_querystring(self) -> str:
canonical_query_string = ""
corrected_request_query = self.upstream_request.query.replace("+", "%20")
if corrected_request_query != "":
query_string_list = []
for item in corrected_request_query.split("&"):
query_string_part = item.split("=", maxsplit=1)
if len(query_string_part) == 2:
query_string_list.append(query_string_part)
elif len(query_string_part) == 1:
query_string_part.append("")
query_string_list.append(query_string_part)
else:
raise ValueError(f"Invalid query string split for {item}")
query_string_dict = dict(query_string_list)
sorted_q_string_list = [
f"{k}={query_string_dict[k]}" for k in sorted(query_string_dict)
]
canonical_query_string = "&".join(sorted_q_string_list)
return canonical_query_string