From bf76ce168cc82aae2158dac7f1c0360eb757936f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 2 Aug 2010 22:08:58 +0000 Subject: Make the Pynche tool work with Python 3. --- Tools/pynche/ChipViewer.py | 2 +- Tools/pynche/DetailsViewer.py | 2 +- Tools/pynche/ListViewer.py | 2 +- Tools/pynche/PyncheWidget.py | 22 +++++++++++++--------- Tools/pynche/StripViewer.py | 18 +++++++++--------- Tools/pynche/Switchboard.py | 10 +++++----- Tools/pynche/TextViewer.py | 2 +- Tools/pynche/TypeinViewer.py | 2 +- 8 files changed, 32 insertions(+), 28 deletions(-) diff --git a/Tools/pynche/ChipViewer.py b/Tools/pynche/ChipViewer.py index f59aa28..78139f8 100644 --- a/Tools/pynche/ChipViewer.py +++ b/Tools/pynche/ChipViewer.py @@ -13,7 +13,7 @@ The ChipViewer class includes the entire lower left quandrant; i.e. both the selected and nearest ChipWidgets. """ -from Tkinter import * +from tkinter import * import ColorDB diff --git a/Tools/pynche/DetailsViewer.py b/Tools/pynche/DetailsViewer.py index 11a99a6..fdc79b7 100644 --- a/Tools/pynche/DetailsViewer.py +++ b/Tools/pynche/DetailsViewer.py @@ -52,7 +52,7 @@ Shift + Left == -25 Shift + Right == +25 """ -from Tkinter import * +from tkinter import * STOP = 'Stop' WRAP = 'Wrap Around' diff --git a/Tools/pynche/ListViewer.py b/Tools/pynche/ListViewer.py index 213cd08..b187844 100644 --- a/Tools/pynche/ListViewer.py +++ b/Tools/pynche/ListViewer.py @@ -15,7 +15,7 @@ You can turn off Update On Click if all you want to see is the alias for a given name, without selecting the color. """ -from Tkinter import * +from tkinter import * import ColorDB ADDTOVIEW = 'Color %List Window...' diff --git a/Tools/pynche/PyncheWidget.py b/Tools/pynche/PyncheWidget.py index fcfe7ce..364f22b 100644 --- a/Tools/pynche/PyncheWidget.py +++ b/Tools/pynche/PyncheWidget.py @@ -6,9 +6,8 @@ It is used to bring up other windows. import sys import os -from Tkinter import * -import tkMessageBox -import tkFileDialog +from tkinter import * +from tkinter import messagebox, filedialog import ColorDB # Milliseconds between interrupt checks @@ -150,7 +149,7 @@ class PyncheWidget: def __popup_about(self, event=None): from Main import __version__ - tkMessageBox.showinfo('About Pynche ' + __version__, + messagebox.showinfo('About Pynche ' + __version__, '''\ Pynche %s The PYthonically Natural @@ -168,7 +167,7 @@ email: bwarsaw@python.org''' % __version__) def __load(self, event=None): while 1: idir, ifile = os.path.split(self.__sb.colordb().filename()) - file = tkFileDialog.askopenfilename( + file = filedialog.askopenfilename( filetypes=[('Text files', '*.txt'), ('All files', '*'), ], @@ -180,12 +179,12 @@ email: bwarsaw@python.org''' % __version__) try: colordb = ColorDB.get_colordb(file) except IOError: - tkMessageBox.showerror('Read error', '''\ + messagebox.showerror('Read error', '''\ Could not open file for reading: %s''' % file) continue if colordb is None: - tkMessageBox.showerror('Unrecognized color file type', '''\ + messagebox.showerror('Unrecognized color file type', '''\ Unrecognized color file type in file: %s''' % file) continue @@ -249,6 +248,8 @@ class Helpwin: +import functools +@functools.total_ordering class PopupViewer: def __init__(self, module, name, switchboard, root): self.__m = module @@ -279,8 +280,11 @@ class PopupViewer: self.__sb.add_view(self.__window) self.__window.deiconify() - def __cmp__(self, other): - return cmp(self.__menutext, other.__menutext) + def __eq__(self, other): + return self.__menutext == other.__menutext + + def __lt__(self, other): + return self.__menutext < other.__menutext def make_view_popups(switchboard, root, extrapath): diff --git a/Tools/pynche/StripViewer.py b/Tools/pynche/StripViewer.py index a7de398..2b0ede3 100644 --- a/Tools/pynche/StripViewer.py +++ b/Tools/pynche/StripViewer.py @@ -24,7 +24,7 @@ select the color under the cursor while you drag it, but be forewarned that this can be slow. """ -from Tkinter import * +from tkinter import * import ColorDB # Load this script into the Tcl interpreter and call it in @@ -62,32 +62,32 @@ def constant(numchips): # red variations, green+blue = cyan constant def constant_red_generator(numchips, red, green, blue): seq = constant(numchips) - return list(map(None, [red] * numchips, seq, seq)) + return list(zip([red] * numchips, seq, seq)) # green variations, red+blue = magenta constant def constant_green_generator(numchips, red, green, blue): seq = constant(numchips) - return list(map(None, seq, [green] * numchips, seq)) + return list(zip(seq, [green] * numchips, seq)) # blue variations, red+green = yellow constant def constant_blue_generator(numchips, red, green, blue): seq = constant(numchips) - return list(map(None, seq, seq, [blue] * numchips)) + return list(zip(seq, seq, [blue] * numchips)) # red variations, green+blue = cyan constant def constant_cyan_generator(numchips, red, green, blue): seq = constant(numchips) - return list(map(None, seq, [green] * numchips, [blue] * numchips)) + return list(zip(seq, [green] * numchips, [blue] * numchips)) # green variations, red+blue = magenta constant def constant_magenta_generator(numchips, red, green, blue): seq = constant(numchips) - return list(map(None, [red] * numchips, seq, [blue] * numchips)) + return list(zip([red] * numchips, seq, [blue] * numchips)) # blue variations, red+green = yellow constant def constant_yellow_generator(numchips, red, green, blue): seq = constant(numchips) - return list(map(None, [red] * numchips, [green] * numchips, seq)) + return list(zip([red] * numchips, [green] * numchips, seq)) @@ -119,7 +119,7 @@ class LeftArrow: return arrow, text def _x(self): - coords = self._canvas.coords(self._TAG) + coords = list(self._canvas.coords(self._TAG)) assert coords return coords[0] @@ -151,7 +151,7 @@ class RightArrow(LeftArrow): return arrow, text def _x(self): - coords = self._canvas.coords(self._TAG) + coords = list(self._canvas.coords(self._TAG)) assert coords return coords[0] + self._ARROWWIDTH diff --git a/Tools/pynche/Switchboard.py b/Tools/pynche/Switchboard.py index 29f99af..013bb01 100644 --- a/Tools/pynche/Switchboard.py +++ b/Tools/pynche/Switchboard.py @@ -42,7 +42,6 @@ master window. """ import sys -from types import DictType import marshal @@ -62,10 +61,11 @@ class Switchboard: if initfile: try: try: - fp = open(initfile) + fp = open(initfile, 'rb') self.__optiondb = marshal.load(fp) - if not isinstance(self.__optiondb, DictType): - print('Problem reading options from file:', initfile, file=sys.stderr) + if not isinstance(self.__optiondb, dict): + print('Problem reading options from file:', initfile, + file=sys.stderr) self.__optiondb = {} except (IOError, EOFError, ValueError): pass @@ -116,7 +116,7 @@ class Switchboard: fp = None try: try: - fp = open(self.__initfile, 'w') + fp = open(self.__initfile, 'wb') except IOError: print('Cannot write options to file:', \ self.__initfile, file=sys.stderr) diff --git a/Tools/pynche/TextViewer.py b/Tools/pynche/TextViewer.py index 456bd96..baa1e62 100644 --- a/Tools/pynche/TextViewer.py +++ b/Tools/pynche/TextViewer.py @@ -15,7 +15,7 @@ button and drag it through some text. The Insertion is the insertion cursor in the text window (which only has a background). """ -from Tkinter import * +from tkinter import * import ColorDB ADDTOVIEW = 'Text Window...' diff --git a/Tools/pynche/TypeinViewer.py b/Tools/pynche/TypeinViewer.py index d56c1b3..2f93e6b 100644 --- a/Tools/pynche/TypeinViewer.py +++ b/Tools/pynche/TypeinViewer.py @@ -12,7 +12,7 @@ color selection will be made on every change to the text field. Otherwise, you must hit Return or Tab to select the color. """ -from Tkinter import * +from tkinter import * -- cgit v0.12