Xqt has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1086506?usp=email )

Change subject: [bugfix] import tkinter and there objects within try statement
......................................................................

[bugfix] import tkinter and there objects within try statement

Some Python distributions have tkinter but the underlying _tkinter
implementation is missing. Thus just import tkinter does not raise
the exception.

Bug: T378894
Change-Id: I5d2a37bb93fcb4b45f0dff323f96fd9fa8722d88
---
M pywikibot/userinterfaces/gui.py
1 file changed, 14 insertions(+), 13 deletions(-)

Approvals:
  Xqt: Verified; Looks good to me, approved




diff --git a/pywikibot/userinterfaces/gui.py b/pywikibot/userinterfaces/gui.py
index 7cd4213..64bcbcf 100644
--- a/pywikibot/userinterfaces/gui.py
+++ b/pywikibot/userinterfaces/gui.py
@@ -23,28 +23,29 @@
 from pywikibot.tools import PYTHON_VERSION


+# Some Python distributions have tkinter but the underlying _tkinter
+# implementation is missing. Thus just import tkinter does not raise
+# the exception. Therefore try to import _tkinter.
+# Note: idlelib also needs tkinter.
 try:
-    import idlelib
+    import _tkinter  # noqa: F401
 except ImportError as e:
-    idlelib = e
-    ConfigDialog = ReplaceDialog = SearchDialog = object()
-    idleConf = MultiCallCreator = object()  # noqa:  N816
+    idlelib = tkinter = e
+    Frame = simpledialog = ScrolledText = object
+    ConfigDialog = ReplaceDialog = SearchDialog = object
+    idleConf = MultiCallCreator = object  # noqa:  N816
 else:
+    import tkinter
+    from tkinter import Frame, simpledialog
+    from tkinter.scrolledtext import ScrolledText
+
+    import idlelib
     from idlelib import replace as ReplaceDialog  # noqa: N812
     from idlelib import search as SearchDialog  # noqa: N812
     from idlelib.config import idleConf
     from idlelib.configdialog import ConfigDialog
     from idlelib.multicall import MultiCallCreator

-try:
-    import tkinter
-except ImportError as e:
-    tkinter = e
-    Frame = simpledialog = ScrolledText = object
-else:
-    from tkinter import Frame, simpledialog
-    from tkinter.scrolledtext import ScrolledText
-

 __all__ = ('EditBoxWindow', 'TextEditor', 'Tkdialog')


--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1086506?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I5d2a37bb93fcb4b45f0dff323f96fd9fa8722d88
Gerrit-Change-Number: 1086506
Gerrit-PatchSet: 6
Gerrit-Owner: Xqt <i...@gno.de>
Gerrit-Reviewer: Xqt <i...@gno.de>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org
To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org

Reply via email to