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