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