jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1316811?usp=email )

Change subject: mypy: Fix mypy errors in sparql and editor modules
......................................................................

mypy: Fix mypy errors in sparql and editor modules

Change-Id: Ic613edc63fabb495dd84bb020e20df27023070ca
---
M .pre-commit-config.yaml
M conftest.py
M pywikibot/data/sparql.py
M pywikibot/editor.py
4 files changed, 23 insertions(+), 8 deletions(-)

Approvals:
  jenkins-bot: Verified
  Xqt: Looks good to me, approved




diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d39bfe0..63cabc1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -124,10 +124,10 @@
         # They should be also used in conftest.py to exclude them from 
non-voting mypy test.
         files: |-
           (?x)^pywikibot/(
-            
(__metadata__|backports|config|cosmetic_changes|daemonize|diff|echo|exceptions|fixes|logging|login|plural|time|titletranslate)|
+            
(__metadata__|backports|config|cosmetic_changes|daemonize|diff|echo|editor|exceptions|fixes|logging|login|plural|time|titletranslate)|
             (comms|data|families|specialbots)/__init__|
             comms/eventstreams|
-            
data/(api/(__init__|_generators|_optionset)|citoid|memento|wikistats)|
+            
data/(api/(__init__|_generators|_optionset)|citoid|memento|sparql|wikistats)|
             families/[a-z][a-z\d]+_family|
             page/(__init__|_decorators|_page|_revision|_user)|
             pagegenerators/(__init__|_filters)|
diff --git a/conftest.py b/conftest.py
index 780fb5a..36791a3 100644
--- a/conftest.py
+++ b/conftest.py
@@ -38,10 +38,11 @@
 EXCLUDE_PATTERN = re.compile(
     r'(?:'
     r'(__metadata__|backports|config|cosmetic_changes|daemonize|diff|echo|'
-    r'exceptions|fixes|logging|login|plural|time|titletranslate)|'
+    r'editor|exceptions|fixes|logging|login|plural|time|titletranslate)|'
     r'(comms|data|families|specialbots)/__init__|'
     r'comms/eventstreams|'
-    r'data/(api/(__init__|_generators|_optionset)|citoid|memento|wikistats)|'
+    r'data/(api/(__init__|_generators|_optionset)|citoid|memento|sparql|'
+    r'wikistats)|'
     r'families/[a-z][a-z\d]+_family|'
     r'page/(__init__|_decorators|_page|_revision|_user)|'
     r'pagegenerators/(__init__|_filters)|'
diff --git a/pywikibot/data/sparql.py b/pywikibot/data/sparql.py
index 1d43f3a..ec5b98d 100644
--- a/pywikibot/data/sparql.py
+++ b/pywikibot/data/sparql.py
@@ -92,7 +92,7 @@
                query: str,
                full_data: bool = False,
                headers: dict[str, str] | None = None
-               ) -> list[dict[str, str]] | None:
+               ) -> list[dict[str, Any]] | None:
         """Run SPARQL query and return the result.

         The response is assumed to be in format defined by:
diff --git a/pywikibot/editor.py b/pywikibot/editor.py
index 9bc694e..6c188d9 100644
--- a/pywikibot/editor.py
+++ b/pywikibot/editor.py
@@ -13,11 +13,13 @@
 import os
 import shlex
 import subprocess
+import sys
 import tempfile
 from collections.abc import Sequence
 from pathlib import Path
 from sys import platform
 from textwrap import fill
+from typing import Protocol, cast, no_type_check

 import pywikibot
 from pywikibot import config
@@ -30,11 +32,22 @@
     GUI_ERROR = e


-OSWIN32 = platform == 'win32'
+OSWIN32 = sys.platform == 'win32'
 if OSWIN32:
     import winreg


+__all__ = ('TextEditor', )
+
+
+class EditableUI(Protocol):  # noqa: D101
+
+    def editText(self, text: str,  # noqa: D102, N802
+                 jumpIndex: int | None = None,
+                 highlight: str | None = None) -> str | None:
+        ...
+
+
 class TextEditor:

     """Text editor.
@@ -144,10 +157,11 @@
                 ' separately on your platform.') + '\n')

         assert pywikibot.ui is not None
-        return pywikibot.ui.editText(text, jumpIndex=jumpIndex,
-                                     highlight=highlight)
+        return cast(EditableUI, pywikibot.ui).editText(
+            text, jumpIndex=jumpIndex, highlight=highlight)

     @staticmethod
+    @no_type_check  # winreg is unavailable on non-Windows platforms
     def _win32_extension_command(extension: str) -> str | None:
         """Get the command from the Win32 registry for an extension."""
         fileexts_key = \

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1316811?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: Ic613edc63fabb495dd84bb020e20df27023070ca
Gerrit-Change-Number: 1316811
Gerrit-PatchSet: 10
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to