summaryrefslogtreecommitdiffstats
path: root/Tools/pynche
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2020-12-19 10:17:08 (GMT)
committerGitHub <noreply@github.com>2020-12-19 10:17:08 (GMT)
commit3d569fd6dccf9f582bafaca04d3535094cae393e (patch)
tree2468e1823c476391b2abecc79d093e0cbeb96b0c /Tools/pynche
parent1e27b57dbc8c1b758e37a531487813aef2d111ca (diff)
downloadcpython-3d569fd6dccf9f582bafaca04d3535094cae393e.zip
cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.tar.gz
cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.tar.bz2
bpo-42630: Improve error reporting in Tkinter for absent default root (GH-23781)
* Tkinter functions and constructors which need a default root window raise now RuntimeError with descriptive message instead of obscure AttributeError or NameError if it is not created yet or cannot be created automatically. * Add tests for all functions which use default root window. * Fix import in the pynche script.
Diffstat (limited to 'Tools/pynche')
-rw-r--r--Tools/pynche/PyncheWidget.py12
1 files changed, 4 insertions, 8 deletions
diff --git a/Tools/pynche/PyncheWidget.py b/Tools/pynche/PyncheWidget.py
index ef12198..ea456e5 100644
--- a/Tools/pynche/PyncheWidget.py
+++ b/Tools/pynche/PyncheWidget.py
@@ -36,15 +36,11 @@ class PyncheWidget:
else:
# Is there already a default root for Tk, say because we're
# running under Guido's IDE? :-) Two conditions say no, either the
- # import fails or _default_root is None.
- tkroot = None
- try:
- from Tkinter import _default_root
- tkroot = self.__tkroot = _default_root
- except ImportError:
- pass
+ # _default_root is None or it is unset.
+ tkroot = getattr(tkinter, '_default_root', None)
if not tkroot:
- tkroot = self.__tkroot = Tk(className='Pynche')
+ tkroot = Tk(className='Pynche')
+ self.__tkroot = tkroot
# but this isn't our top level widget, so make it invisible
tkroot.withdraw()
# create the menubar