Author hfuru
Recipients eric.araujo, eric.smith, hfuru, ncoghlan, orsenthil, pitrou, r.david.murray, sjt, vstinner
Date 2010-11-09.10:37:26
SpamBayes Score 0.00212252
Marked as misclassified No
Message-id <>
urlunparse(url or params = bytes object) produces a result
with the repr of the bytes object if params is set.

urllib.parse.urlunparse(['http', 'host', '/dir', b'params', '', ''])
--> "http://host/dir;b'params'"

That's confusing since urllib/ goes to a lot of trouble to
support both bytes and str.  Simplest fix is to only accept str:

Index: Lib/urllib/
@@ -219,5 +219,5 @@ def urlunparse(components):
     scheme, netloc, url, params, query, fragment = components
     if params:
-        url = "%s;%s" % (url, params)
+        url = ';'.join((url, params))
     return urlunsplit((scheme, netloc, url, query, fragment))
Some people at comp.lang.python tell me code shouldn't anyway do str()
just in case it is needed like urllib does, not that I can make much
sense of that discussion.  (Subject: harmful str(bytes)).

BTW, the str vs bytes code doesn't have to be quite as painful as in
urllib.parse.  Here is a patch which just rearranges and factors out
some code.
Date User Action Args
2010-11-09 10:37:30hfurusetrecipients: + hfuru, ncoghlan, orsenthil, pitrou, vstinner, eric.smith, eric.araujo, r.david.murray, sjt
2010-11-09 10:37:29hfurusetmessageid: <>
2010-11-09 10:37:27hfurulinkissue9873 messages
2010-11-09 10:37:26hfurucreate