Xqt has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/905151 )

Change subject: [doc] Enable gui module to be documented
......................................................................

[doc] Enable gui module to be documented

Lazy load idlelib that sphinx does not fail to include the module.

Bug: T333798
Change-Id: I9f8f206874c8ef547da1ebb087335429fb2ca400
---
M pywikibot/userinterfaces/gui.py
1 file changed, 34 insertions(+), 12 deletions(-)

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




diff --git a/pywikibot/userinterfaces/gui.py b/pywikibot/userinterfaces/gui.py
index 4aab52a..297ee7b 100644
--- a/pywikibot/userinterfaces/gui.py
+++ b/pywikibot/userinterfaces/gui.py
@@ -2,24 +2,31 @@

 Useful for editing the contents of an article.

-.. note:: tkinter module is required
+.. note:: idlelib and tkinter modules are required
 """
 #
 # (C) Pywikibot team, 2003-2023
 #
 # Distributed under the terms of the MIT license.
 #
-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
 from typing import Optional

 import pywikibot
 from pywikibot.backports import Tuple
 from pywikibot.tools import PYTHON_VERSION

+try:
+    import idlelib
+except ImportError as e:
+    idlelib = e
+    ConfigDialog = ReplaceDialog = SearchDialog = object()
+    idleConf = MultiCallCreator = object()  # noqa:  N816
+else:
+    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
@@ -49,8 +56,9 @@

         Get default settings from user's IDLE configuration.
         """
-        if isinstance(tkinter, ImportError):
-            raise tkinter
+        for module in (idlelib, tkinter):
+            if isinstance(module, ImportError):
+                raise module

         textcf = self._initialize_config(idleConf.CurrentTheme())

@@ -282,8 +290,9 @@

     def __init__(self, parent=None, **kwargs) -> None:
         """Initializer."""
-        if isinstance(tkinter, ImportError):
-            raise tkinter
+        for module in (idlelib, tkinter):
+            if isinstance(module, ImportError):
+                raise module

         if parent is None:
             # create a new window
@@ -447,8 +456,9 @@

     def __init__(self, photo_description, photo, filename) -> None:
         """Initializer."""
-        if isinstance(tkinter, ImportError):
-            raise tkinter
+        for module in (idlelib, tkinter):
+            if isinstance(module, ImportError):
+                raise module

         self.root = tkinter.Tk()
         # "%dx%d%+d%+d" % (width, height, xoffset, yoffset)

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

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I9f8f206874c8ef547da1ebb087335429fb2ca400
Gerrit-Change-Number: 905151
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to