On Wed, Jul 30, 2008 at 10:33 AM, Bill Janssen <[EMAIL PROTECTED]> wrote: >> It looks like all other APIs in the Py3k version of >> urllib treat URLs as text. > > The URL is text, a string of ASCII characters. We're just talking > about urllib.quote() and urllib.unquote(), which are there to support > the text-ization of binary values, and the de-text-ization. > >> I think that would break too much code, without a good way to >> automatically fix it. > > You'd rather break Python? Somehow I don't think so.
Let's stop the rhetoric, or I'll have to beat you over the head with the Zen of Python. :-) urllib is not meant as a reference implementation of any RFC; it is meant as a practical tool for Python users writing web apps (servers and clients). > Here's the signature I'm proposing: > > quote() -- takes string or bytes, and produces string. > > If input is a string, looks to optional "encoding" parameter to > determine character set encoding to use to transform it to byte before > quoting it. If "encoding" is not specified, defaults to UTF-8. No contest here, since it supports the common string->string use case. E.g. quote('a%b') returns 'a%25b'. > unquote() -- takes string, produces bytes or string > > If optional "encoding" parameter is specified, decodes bytes with > that encoding and returns string. Otherwise, returns bytes. The default of returning bytes will break almost all uses. Most code will uses the unquoted result as a text string, not as bytes -- e.g. a server has to unquote the values it receives from a form (whether POST or GET), but almost always the unquoted values are text, e.g. someone's name or address, or a draft email message. (Aside: I dislike functions that have a different return type based on the value of a parameter.) -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com