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

Change subject: cleanup: remove NoneType and pairwise from backports
......................................................................

cleanup: remove NoneType and pairwise from backports

Bug: T423572
Change-Id: I43cd9e496e5b7d564f2d50a20007226597fd3342
---
M pywikibot/backports.py
M pywikibot/comms/eventstreams.py
M pywikibot/page/_basepage.py
M pywikibot/proofreadpage.py
M pywikibot/textlib.py
M pywikibot/tools/_deprecate.py
M pywikibot/tools/itertools.py
M scripts/archivebot.py
M tests/basesite_tests.py
M tests/wikistats_tests.py
10 files changed, 12 insertions(+), 46 deletions(-)

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




diff --git a/pywikibot/backports.py b/pywikibot/backports.py
index d226155..91a708d 100644
--- a/pywikibot/backports.py
+++ b/pywikibot/backports.py
@@ -24,31 +24,6 @@
 if TYPE_CHECKING:
     from collections.abc import Callable, Generator, Iterable

-
-if PYTHON_VERSION < (3, 10) or SPHINX_RUNNING:
-    from itertools import tee
-
-    NoneType = type(None)
-
-    # bpo-38200
-    def pairwise(iterable):
-        """Return successive overlapping pairs taken from the input iterable.
-
-        .. seealso:: :python:`itertools.pairwise
-           <library/itertools.html#itertools.pairwise>`,
-           backported from Python 3.10.
-        .. version-added:: 7.6
-        .. version-removed:: 12.0
-        """
-        a, b = tee(iterable)
-        next(b, None)
-        return zip(a, b)
-
-elif not TYPE_CHECKING:
-    from itertools import pairwise  # noqa: F401
-    from types import NoneType  # noqa: F401
-
-
 # gh-98363
 if PYTHON_VERSION < (3, 13) or SPHINX_RUNNING:
     def batched(iterable, n: int, *,
diff --git a/pywikibot/comms/eventstreams.py b/pywikibot/comms/eventstreams.py
index 26533c2..93af5ad 100644
--- a/pywikibot/comms/eventstreams.py
+++ b/pywikibot/comms/eventstreams.py
@@ -20,13 +20,13 @@
 import json
 from datetime import timedelta
 from functools import partial
+from types import NoneType
 from typing import Any

 from requests.packages.urllib3.exceptions import ProtocolError
 from requests.packages.urllib3.util.response import httplib

 from pywikibot import Site, Timestamp, config, debug, warning
-from pywikibot.backports import NoneType
 from pywikibot.comms.http import user_agent
 from pywikibot.site import BaseSite
 from pywikibot.tools import cached, deprecated_args
diff --git a/pywikibot/page/_basepage.py b/pywikibot/page/_basepage.py
index 27c7ec5..ada80c6 100644
--- a/pywikibot/page/_basepage.py
+++ b/pywikibot/page/_basepage.py
@@ -13,13 +13,13 @@
 from contextlib import suppress
 from itertools import islice
 from textwrap import shorten, wrap
+from types import NoneType
 from typing import TYPE_CHECKING
 from urllib.parse import quote_from_bytes
 from warnings import warn

 import pywikibot
 from pywikibot import Timestamp, config, date, i18n, textlib, tools
-from pywikibot.backports import NoneType
 from pywikibot.cosmetic_changes import CANCEL, CosmeticChangesToolkit
 from pywikibot.exceptions import (
     Error,
diff --git a/pywikibot/proofreadpage.py b/pywikibot/proofreadpage.py
index 6ade64d..51c0850 100644
--- a/pywikibot/proofreadpage.py
+++ b/pywikibot/proofreadpage.py
@@ -23,6 +23,7 @@
 from collections.abc import Callable, Iterable, Sequence
 from functools import partial
 from http import HTTPStatus
+from itertools import pairwise
 from typing import Any
 from urllib.parse import unquote
 from weakref import WeakKeyDictionary
@@ -31,7 +32,6 @@

 import pywikibot
 from pywikibot import textlib
-from pywikibot.backports import pairwise
 from pywikibot.comms import http
 from pywikibot.data.api import ListGenerator, Request
 from pywikibot.exceptions import Error, InvalidTitleError, OtherPageSaveError
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 0e33c13..f63f2fb 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -15,11 +15,11 @@
 from dataclasses import dataclass
 from functools import lru_cache
 from html.parser import HTMLParser
+from itertools import pairwise
 from typing import NamedTuple
 from urllib.parse import quote

 import pywikibot
-from pywikibot.backports import pairwise
 from pywikibot.exceptions import InvalidTitleError, SiteDefinitionError
 from pywikibot.family import Family
 from pywikibot.time import TZoneFixedOffset
diff --git a/pywikibot/tools/_deprecate.py b/pywikibot/tools/_deprecate.py
index 751ba37..f281480 100644
--- a/pywikibot/tools/_deprecate.py
+++ b/pywikibot/tools/_deprecate.py
@@ -33,20 +33,15 @@
 from functools import wraps
 from importlib import import_module
 from inspect import getfullargspec
-from typing import TYPE_CHECKING, Any
+from types import NoneType
+from typing import Any
 from warnings import warn


-# Unable to import SPHINX_RUNNING from tools and NoneType from backports
-# because of circular imports; adding them here.
-PYTHON_VERSION: tuple[int, int, int] = sys.version_info[:3]
+# Unable to import SPHINX_RUNNING from tools
+# because of circular imports; adding it here.
 SPHINX_RUNNING: bool = 'sphinx' in sys.modules

-if PYTHON_VERSION < (3, 10):
-    NoneType = type(None)
-elif not TYPE_CHECKING:
-    from types import NoneType
-

 class _NotImplementedWarning(RuntimeWarning):

diff --git a/pywikibot/tools/itertools.py b/pywikibot/tools/itertools.py
index 2051278..1270bff 100644
--- a/pywikibot/tools/itertools.py
+++ b/pywikibot/tools/itertools.py
@@ -3,11 +3,7 @@
 #
 # Distributed under the terms of the MIT license.
 #
-"""Iterator functions.
-
-.. note:: ``pairwise()`` function introduced in Python 3.10 is backported
-   in :mod:`backports`
-"""
+"""Iterator functions."""
 from __future__ import annotations

 import collections
diff --git a/scripts/archivebot.py b/scripts/archivebot.py
index ac1915e..6e05dc8 100755
--- a/scripts/archivebot.py
+++ b/scripts/archivebot.py
@@ -206,6 +206,7 @@
 from collections import defaultdict
 from contextlib import nullcontext
 from hashlib import md5
+from itertools import pairwise
 from math import ceil
 from textwrap import fill
 from typing import Any
@@ -213,7 +214,6 @@

 import pywikibot
 from pywikibot import i18n
-from pywikibot.backports import pairwise
 from pywikibot.exceptions import Error, NoPageError
 from pywikibot.textlib import (
     TimeStripper,
diff --git a/tests/basesite_tests.py b/tests/basesite_tests.py
index 2a4b717..577d9a5 100755
--- a/tests/basesite_tests.py
+++ b/tests/basesite_tests.py
@@ -9,9 +9,9 @@

 import unittest
 from contextlib import suppress
+from types import NoneType

 import pywikibot
-from pywikibot.backports import NoneType
 from pywikibot.exceptions import Error
 from tests.aspects import DefaultSiteTestCase, TestCase

diff --git a/tests/wikistats_tests.py b/tests/wikistats_tests.py
index 2ee718e..557b41f 100755
--- a/tests/wikistats_tests.py
+++ b/tests/wikistats_tests.py
@@ -10,8 +10,8 @@
 import sys
 import unittest
 from contextlib import suppress
+from types import NoneType

-from pywikibot.backports import NoneType
 from pywikibot.data.wikistats import WikiStats
 from tests.aspects import TestCase


--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1361159?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: I43cd9e496e5b7d564f2d50a20007226597fd3342
Gerrit-Change-Number: 1361159
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Mahveotm <[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