def __init__(self, url): parts = parse.urlparse(url) _query = frozenset(parse.parse_qsl(parts.query)) _path = parse.unquote_plus(parts.path) parts = parts._replace(query=_query, path=_path) self.parts = parts