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.
diff --git a/Lib/lib-tk/turtle.py b/Lib/lib-tk/turtle.py
index f8188e1..8d7cdc0 100644
--- a/Lib/lib-tk/turtle.py
+++ b/Lib/lib-tk/turtle.py
@@ -835,7 +835,7 @@
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 @@
"""
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 @@
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 @@
"""
#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 @@
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 @@
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 @@
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 @@
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()