Use string.ascii_letters instead of string.letters (SF bug #226706).
Move computation of sets of characters out of the body of the function that
uses them.
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py
index bd34d18..03b4684 100644
--- a/Tools/idle/PyShell.py
+++ b/Tools/idle/PyShell.py
@@ -36,6 +36,9 @@
linecache.checkcache = linecache_checkcache
+IDENTCHARS = string.ascii_letters + string.digits + "_"
+
+
# Note: <<newline-and-indent>> event is defined in AutoIndent.py
#$ event <<plain-newline-and-indent>>
@@ -217,7 +220,7 @@
text.tag_add("ERROR", pos)
text.see(pos)
char = text.get(pos)
- if char and char in string.letters + string.digits + "_":
+ if char and char in IDENTCHARS:
text.tag_add("ERROR", pos + " wordstart", pos)
self.tkconsole.resetoutput()
self.write("SyntaxError: %s\n" % str(msg))