aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2020-12-19 12:17:08 +0200
committerGitHub <noreply@github.com>2020-12-19 12:17:08 +0200
commit3d569fd6dccf9f582bafaca04d3535094cae393e (patch)
tree2468e1823c476391b2abecc79d093e0cbeb96b0c /Tools
parentbpo-42470: Do not warn on sequences which are also sets in random.sample() (G... (diff)
downloadcpython-3d569fd6dccf9f582bafaca04d3535094cae393e.tar.gz
cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.tar.bz2
cpython-3d569fd6dccf9f582bafaca04d3535094cae393e.zip
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')
-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 ef12198a21..ea456e577e 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