For various reasons, urllib.parse and its Python 2 predecessor urlparse
are not compliant with current Internet standards. As stated in
Lib/urllib/parse.py:

 RFC 3986 is considered the current standard and any future changes to
 urlparse module should conform with it. The urlparse module is
 currently not entirely compliant with this RFC due to defacto
 scenarios for parsing, and for backward compatibility purposes, some
 parsing quirks from older RFCs are retained.

This module aims to provide fully RFC 3986 compliant replacements for
the most commonly used functions found in urllib.parse. It also
includes functions for distinguishing between the different forms of
URIs and URI references, and for conveniently creating URIs from their
individual components.
