summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1995-10-07 19:08:37 (GMT)
committerGuido van Rossum <guido@python.org>1995-10-07 19:08:37 (GMT)
commitf7f79ac0c8bd741b008278c60f6628119dd27639 (patch)
treeeeb3741be1bb75f78aeec94d4a577967d650649f /Lib
parent909507dd0be2a0a2371461744e828b1f71518051 (diff)
downloadcpython-f7f79ac0c8bd741b008278c60f6628119dd27639.zip
cpython-f7f79ac0c8bd741b008278c60f6628119dd27639.tar.gz
cpython-f7f79ac0c8bd741b008278c60f6628119dd27639.tar.bz2
better version sanity checks; get rid of Widget.unbind_class()
Diffstat (limited to 'Lib')
-rw-r--r--Lib/lib-tk/Tkinter.py22
-rwxr-xr-xLib/tkinter/Tkinter.py22
2 files changed, 36 insertions, 8 deletions
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index c9cb27b..12a1acc 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 c9cb27b..12a1acc 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):