From f7f79ac0c8bd741b008278c60f6628119dd27639 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 7 Oct 1995 19:08:37 +0000 Subject: [PATCH] better version sanity checks; get rid of Widget.unbind_class() --- Lib/lib-tk/Tkinter.py | 22 ++++++++++++++++++---- Lib/tkinter/Tkinter.py | 22 ++++++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py index c9cb27b15cc..12a1accc595 100644 --- a/Lib/lib-tk/Tkinter.py +++ b/Lib/lib-tk/Tkinter.py @@ -10,8 +10,6 @@ CallableTypes = (FunctionType, MethodType, TkVersion = eval(tkinter.TK_VERSION) TclVersion = eval(tkinter.TCL_VERSION) -if TkVersion < 4.0: - raise ImportError, "This version of Tkinter.py requires Tk 4.0 or higher" def _flatten(tuple): @@ -578,6 +576,21 @@ class Tk(Misc, Wm): baseName = os.path.basename(sys.argv[0]) if baseName[-3:] == '.py': baseName = baseName[:-3] self.tk = tkinter.create(screenName, baseName, className) + # Version sanity checks + tk_version = self.tk.getvar('tk_version') + if tk_version != tkinter.TK_VERSION: + raise RuntimeError, \ + "tk.h version (%s) doesn't match libtk.a version (%s)" \ + % (tkinter.TK_VERSION, tk_version) + tcl_version = self.tk.getvar('tcl_version') + if tcl_version != tkinter.TCL_VERSION: + raise RuntimeError, \ + "tcl.h version (%s) doesn't match libtcl.a version (%s)" \ + % (tkinter.TCL_VERSION, tcl_version) + if TkVersion < 4.0: + raise RuntimeError, \ + "Tk 4.0 or higher is required; found Tk %s" \ + % str(TkVersion) self.tk.createcommand('tkerror', _tkerror) self.tk.createcommand('exit', _exit) self.readprofile(baseName, className) @@ -744,8 +757,9 @@ class Widget(Misc, Pack, Place): self.tk.call('destroy', self._w) def _do(self, name, args=()): return apply(self.tk.call, (self._w, name) + args) - def unbind_class(self, seq): - Misc.unbind_class(self, self.widgetName, seq) + # XXX The following method seems out of place here +## def unbind_class(self, seq): +## Misc.unbind_class(self, self.widgetName, seq) class Toplevel(Widget, Wm): def __init__(self, master=None, cnf={}, **kw): diff --git a/Lib/tkinter/Tkinter.py b/Lib/tkinter/Tkinter.py index c9cb27b15cc..12a1accc595 100755 --- a/Lib/tkinter/Tkinter.py +++ b/Lib/tkinter/Tkinter.py @@ -10,8 +10,6 @@ CallableTypes = (FunctionType, MethodType, TkVersion = eval(tkinter.TK_VERSION) TclVersion = eval(tkinter.TCL_VERSION) -if TkVersion < 4.0: - raise ImportError, "This version of Tkinter.py requires Tk 4.0 or higher" def _flatten(tuple): @@ -578,6 +576,21 @@ class Tk(Misc, Wm): baseName = os.path.basename(sys.argv[0]) if baseName[-3:] == '.py': baseName = baseName[:-3] self.tk = tkinter.create(screenName, baseName, className) + # Version sanity checks + tk_version = self.tk.getvar('tk_version') + if tk_version != tkinter.TK_VERSION: + raise RuntimeError, \ + "tk.h version (%s) doesn't match libtk.a version (%s)" \ + % (tkinter.TK_VERSION, tk_version) + tcl_version = self.tk.getvar('tcl_version') + if tcl_version != tkinter.TCL_VERSION: + raise RuntimeError, \ + "tcl.h version (%s) doesn't match libtcl.a version (%s)" \ + % (tkinter.TCL_VERSION, tcl_version) + if TkVersion < 4.0: + raise RuntimeError, \ + "Tk 4.0 or higher is required; found Tk %s" \ + % str(TkVersion) self.tk.createcommand('tkerror', _tkerror) self.tk.createcommand('exit', _exit) self.readprofile(baseName, className) @@ -744,8 +757,9 @@ class Widget(Misc, Pack, Place): self.tk.call('destroy', self._w) def _do(self, name, args=()): return apply(self.tk.call, (self._w, name) + args) - def unbind_class(self, seq): - Misc.unbind_class(self, self.widgetName, seq) + # XXX The following method seems out of place here +## def unbind_class(self, seq): +## Misc.unbind_class(self, self.widgetName, seq) class Toplevel(Widget, Wm): def __init__(self, master=None, cnf={}, **kw):