Python implementation of RFC 3986
https://github.com/python-hyper/rfc3986
(01a708f49880d1237ae932a01abf5d1a1513fc9d)