jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/525225 )

Change subject: [PY3] Make Python 2 more Python 3 compatible
......................................................................

[PY3] Make Python 2 more Python 3 compatible

Use filter, map, zip from future_builtins to get Python 3 behaviour.
Also remove old xrange in casechecker.

Bug: T228833
Change-Id: I775215a2f82e37425f5324b525d10b6569fbab0b
---
M generate_user_files.py
M pywikibot/site.py
M pywikibot/textlib.py
M scripts/casechecker.py
M scripts/maintenance/download_dump.py
M scripts/protect.py
M tests/pagegenerators_tests.py
7 files changed, 28 insertions(+), 17 deletions(-)

Approvals:
  D3r1ck01: Looks good to me, but someone else must approve
  Zhuyifei1999: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/generate_user_files.py b/generate_user_files.py
index 69df7df..8abb94e 100755
--- a/generate_user_files.py
+++ b/generate_user_files.py
@@ -18,6 +18,9 @@

 from generate_family_file import _import_with_no_user_config

+if sys.version_info[0] == 2:
+    from future_builtins import filter
+
 # DISABLED_SECTIONS cannot be copied; variables must be set manually
 DISABLED_SECTIONS = {'USER INTERFACE SETTINGS',  # uses sys
                      'EXTERNAL EDITOR SETTINGS',  # uses os
diff --git a/pywikibot/site.py b/pywikibot/site.py
index bef3935..fd52460 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -86,6 +86,7 @@
     from itertools import zip_longest
     from urllib.parse import urlencode, urlparse
 else:
+    from future_builtins import zip
     from itertools import izip_longest as zip_longest
     from urllib import urlencode
     from urlparse import urlparse
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 4c037ee..990d40c 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -38,8 +38,8 @@
 if not PY2:
     from html.parser import HTMLParser
 else:
+    from future_builtins import zip
     from HTMLParser import HTMLParser
-    from itertools import izip as zip

 try:
     import mwparserfromhell
diff --git a/scripts/casechecker.py b/scripts/casechecker.py
index 08bd2f4..9ab09b1 100755
--- a/scripts/casechecker.py
+++ b/scripts/casechecker.py
@@ -24,8 +24,8 @@

 from scripts.category import CategoryMoveRobot as CategoryMoveBot

-if not PY2:
-    xrange = range
+if PY2:
+    from future_builtins import zip


 class CaseChecker(object):
@@ -172,18 +172,18 @@
                 self.titleList = [self.Page(t) for t in f]
             self.failedTitles += '.failed'

-        ziplist = zip(self.localSuspects, self.latinSuspects)
+        iterzip = zip(self.localSuspects, self.latinSuspects)
         self.lclToLatDict = {
-            ord(local): latin for local, latin in ziplist}
+            ord(local): latin for local, latin in iterzip}
         self.latToLclDict = {
-            ord(latin): local for local, latin in ziplist}
+            ord(latin): local for local, latin in iterzip}

         if self.localKeyboard is not None:
-            ziplist = zip(self.localKeyboard, self.latinKeyboard)
+            iterzip = zip(self.localKeyboard, self.latinKeyboard)
             self.lclToLatKeybDict = {
-                ord(local): latin for local, latin in ziplist}
+                ord(local): latin for local, latin in iterzip}
             self.latToLclKeybDict = {
-                ord(latin): local for local, latin in ziplist}
+                ord(latin): local for local, latin in iterzip}
         else:
             self.lclToLatKeybDict = {}
             self.latToLclKeybDict = {}
@@ -513,7 +513,7 @@
                 # try to match one of the knownWords
                 bwLen = len(badWord)
                 kw = [w for w in self.knownWords if len(w) == bwLen]
-                for p in xrange(bwLen):
+                for p in range(bwLen):
                     if len(kw) == 0:
                         break
                     c = badWord[p]
@@ -559,7 +559,7 @@
                 # combinations from the bad words list, and convert just the
                 # picked words to cyrilic, whereas making all other words as
                 # latin character.
-                for itemCntToPick in xrange(len(ambigBadWords) + 1):
+                for itemCntToPick in range(len(ambigBadWords) + 1):
                     title2 = title
                     for uc in itertools.combinations(list(ambigBadWords),
                                                      itemCntToPick):
diff --git a/scripts/maintenance/download_dump.py 
b/scripts/maintenance/download_dump.py
index ea0276f..d0c72b3 100644
--- a/scripts/maintenance/download_dump.py
+++ b/scripts/maintenance/download_dump.py
@@ -14,7 +14,7 @@

 """
 #
-# (C) Pywikibot team, 2017-2018
+# (C) Pywikibot team, 2017-2019
 # (C) Yifei He, 2017
 #
 # Distributed under the terms of the MIT license.
@@ -22,10 +22,8 @@
 from __future__ import absolute_import, division, unicode_literals

 import binascii
-
 import os.path
 import sys
-
 from os import remove, symlink, urandom

 try:
@@ -45,10 +43,12 @@
         from os import rename as replace

 import pywikibot
-
 from pywikibot import Bot
-
 from pywikibot.comms.http import fetch
+from pywikibot.tools import PY2
+
+if PY2:
+    from future_builtins import map


 class DownloadDumpBot(Bot):
diff --git a/scripts/protect.py b/scripts/protect.py
index 4cd088a..986e35d 100755
--- a/scripts/protect.py
+++ b/scripts/protect.py
@@ -64,6 +64,10 @@
 import pywikibot
 from pywikibot import i18n, pagegenerators
 from pywikibot.bot import SingleSiteBot
+from pywikibot.tools import PY2
+
+if PY2:
+    from future_builtins import zip

 # This is required for the text that is shown when you run this script
 # with the parameter -help.
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py
index f5d1e6d..ba2868d 100755
--- a/tests/pagegenerators_tests.py
+++ b/tests/pagegenerators_tests.py
@@ -23,7 +23,7 @@
     CategorizedPageGenerator
 )

-from pywikibot.tools import has_module, suppress_warnings
+from pywikibot.tools import has_module, PY2, suppress_warnings

 from tests import join_data_path, mock
 from tests.aspects import (
@@ -36,6 +36,9 @@
 )
 from tests.thread_tests import GeneratorIntersectTestCase

+if PY2:
+    from future_builtins import zip
+
 en_wp_page_titles = (
     # just a bunch of randomly selected titles for English Wikipedia tests
     'Eastern Sayan',

--
To view, visit https://gerrit.wikimedia.org/r/525225
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I775215a2f82e37425f5324b525d10b6569fbab0b
Gerrit-Change-Number: 525225
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: D3r1ck01 <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Zhuyifei1999 <[email protected]>
Gerrit-Reviewer: jenkins-bot (75)
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to