This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: urllib methods should demand unicode, instead demand str
Type: behavior Stage:
Components: Library (Lib), Unicode Versions:
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: Tyler.Starke, ezio.melotti, r.david.murray
Priority: normal Keywords:

Created on 2011-11-23 01:34 by Tyler.Starke, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (5)
msg148165 - (view) Author: Tyler Starke (Tyler.Starke) Date: 2011-11-23 01:34
It seems bad practice for urllib methods to demand a str instance and they should demand a unicode instance. By demanding a str instance the default behavior is too demanding, for the web space it is being used, for the English language. We would want Python to extend beyond English when it uses urllib

Currently I am encoding the unicode passed with 'utf-8' and that works.
msg148166 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2011-11-23 01:48
I suspect you want to be using Python3, then.  Although it is nowhere near as simple as that...even with Python3 you still sometimes have to deal with the fact that the wire protocol is bytes.
msg148167 - (view) Author: Tyler Starke (Tyler.Starke) Date: 2011-11-23 02:13
well that was closed fast. I noticed in the docs that Python 3 demands a str type also.
msg148168 - (view) Author: Tyler Starke (Tyler.Starke) Date: 2011-11-23 04:36
Nevermind. I had to download the source to see that it encodes to 'utf-8', or a passed encoding method, in the methods that are causing problems in 2.6.5.
msg148420 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2011-11-26 19:49
Well, most of the point of Python3 is that the string type *is* unicode, which is what I meant by saying that you probably wanted Python3 in order to solve your concern :)

There are still a few bugs to work out in the wire-protocol/unicode interface in Python3, but it is a *lot* cleaner than it was in Python2.
History
Date User Action Args
2022-04-11 14:57:24adminsetgithub: 57669
2011-11-26 19:50:00r.david.murraysetmessages: + msg148420
2011-11-23 04:36:04Tyler.Starkesetmessages: + msg148168
2011-11-23 02:13:44Tyler.Starkesetmessages: + msg148167
2011-11-23 01:48:37r.david.murraysetstatus: open -> closed

nosy: + r.david.murray
messages: + msg148166

resolution: out of date
2011-11-23 01:34:36Tyler.Starkecreate