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 <info(a)gno.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged