Commit 09f4f253 authored by Terry Jan Reedy's avatar Terry Jan Reedy

Issue #15618: Make turtle.py itself work when run from a module with

from __future__ import unicode_literals.  Initial patch by Juancarlo Añez.

The demos at the end of turtle.py appear to be the only test, so I changed
some of the strings to unicode with a u prefix.  If os.path.isfile or the Tk
image function have problems with Unicode input, that would be different issue.
parent fd48a56b
......@@ -835,7 +835,7 @@ class Shape(object):
if isinstance(data, list):
data = tuple(data)
elif type_ == "image":
if isinstance(data, str):
if isinstance(data, basestring):
if data.lower().endswith(".gif") and isfile(data):
data = TurtleScreen._image(data)
# else data assumed to be Photoimage
......@@ -1098,7 +1098,7 @@ class TurtleScreen(TurtleScreenBase):
"""
if len(color) == 1:
color = color[0]
if isinstance(color, str):
if isinstance(color, basestring):
if self._iscolorstring(color) or color == "":
return color
else:
......@@ -2602,7 +2602,7 @@ class RawTurtle(TPen, TNavigator):
def _cc(self, args):
"""Convert colortriples to hexstrings.
"""
if isinstance(args, str):
if isinstance(args, basestring):
return args
try:
r, g, b = args
......@@ -3228,7 +3228,7 @@ class RawTurtle(TPen, TNavigator):
"""
#print "dot-1:", size, color
if not color:
if isinstance(size, (str, tuple)):
if isinstance(size, (basestring, tuple)):
color = self._colorstr(size)
size = self._pensize + max(self._pensize, 4)
else:
......@@ -3913,7 +3913,7 @@ if __name__ == "__main__":
down()
# some text
write("startstart", 1)
write("start", 1)
write(u"start", 1)
color("red")
# staircase
for i in range(5):
......@@ -3988,7 +3988,7 @@ if __name__ == "__main__":
tri = getturtle()
tri.resizemode("auto")
turtle = Turtle()
turtle.resizemode("auto")
turtle.resizemode(u"auto")
turtle.shape("turtle")
turtle.reset()
turtle.left(90)
......@@ -3998,7 +3998,7 @@ if __name__ == "__main__":
turtle.lt(30)
turtle.down()
turtle.speed(6)
turtle.color("blue","orange")
turtle.color("blue",u"orange")
turtle.pensize(2)
tri.speed(6)
setheading(towards(turtle))
......@@ -4013,9 +4013,9 @@ if __name__ == "__main__":
tri.stamp()
switchpen()
count += 1
tri.write("CAUGHT! ", font=("Arial", 16, "bold"), align="right")
tri.write("CAUGHT! ", font=("Arial", 16, "bold"), align=u"right")
tri.pencolor("black")
tri.pencolor("red")
tri.pencolor(u"red")
def baba(xdummy, ydummy):
clearscreen()
......
......@@ -33,6 +33,7 @@ Pehr Anderson
Erik Andersén
Oliver Andrich
Ross Andrus
Juancarlo Añez
Chris Angelico
Ankur Ankan
Heidi Annexstad
......
......@@ -40,6 +40,9 @@ Core and Builtins
Library
-------
- Issue #15618: Make turtle.py compatible with 'from __future__ import
unicode_literals'. Initial patch by Juancarlo Añez.
- Issue #20501: fileinput module no longer reads whole file into memory when using
fileinput.hook_encoded.
......@@ -53,7 +56,7 @@ Library
Based on patch by Stephen Tu.
- Issue #8478: Untokenizer.compat processes first token from iterator input.
Patch based on lines from Georg Brandl, Eric Snow, and Gareth Rees.
Patch based on lines from Georg Brandl, Eric Snow, and Gareth Rees.
- Issue #20594: Avoid name clash with the libc function posix_close.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment