original) (raw)
(It looks to me like a defect in the library (\*), and you are making a reasonable argument that we should fix it in 2.7 to help people be more prepared for the transition to Python 3.
(\*) As Antoine points out, pretty much the only time where it's not a good idea to switch from str to basestring is when the data is meant to be binary -- but in this case it's clearly text (we can also tell from what the same code looks like in Python 3 :-).On Sun, Mar 2, 2014 at 12:01 PM, Terry Reedy <tjreedy@udel.edu> wrote:
Suppose a 2.7 standard library function is documented as taking a 'string' argument, such as these examples from the turtle module.
pencolor(colorstring)
Set pencolor to colorstring, which is a Tk color specification string, such as "red", "yellow", or "#33cc8c".
turtle.shape(name=None)
Parameters: name – a string which is a valid shapename
class turtle.Shape(type\_, data)
Parameters: type\_ – one of the strings “polygon”, “image”, “compound”
Suppose adding
from \_\_future\_\_ import unicode\_literals
to a working program causes an exception, such as with turtle
http://bugs.python.org/issue15618
(Note: unicode\_literals is not indexed.)
Is this a programmer error for passing unicode instead of string, or a library error for not accepting unicode?
Is changing 'isinstance(x, str)' in the library (with whatever other changes are needed) a bugfix to be pushed or a prohibited API expansion?
\--
Terry Jan Reedy
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org
--
--Guido van Rossum (python.org/\~guido)