It looks like it returns whatever type you pass in, no? I get back unicode for unicode uris and bytes for bytes uris on both Py2 and Py3?