jenkins-bot has submitted this change and it was merged.
Change subject: Make argvu py3 compatible
......................................................................
Make argvu py3 compatible
Change-Id: Iff213b92ba7978da4d68daf42bf56d87023e771b
---
M pywikibot/userinterfaces/terminal_interface_base.py
1 file changed, 4 insertions(+), 1 deletion(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/userinterfaces/terminal_interface_base.py b/pywikibot/userinterfaces/terminal_interface_base.py
index a5d6ecb..8f7ceb7 100755
--- a/pywikibot/userinterfaces/terminal_interface_base.py
+++ b/pywikibot/userinterfaces/terminal_interface_base.py
@@ -264,7 +264,10 @@
u'What is the solution of the CAPTCHA at this url ?')
def argvu(self):
- return [s.decode(self.encoding) for s in self.argv]
+ try:
+ return [s.decode(self.encoding) for s in self.argv]
+ except AttributeError: # in python 3, self.argv is unicode and thus cannot be decoded
+ return [s for s in self.argv]
class TerminalHandler(logging.Handler):
--
To view, visit https://gerrit.wikimedia.org/r/98288
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iff213b92ba7978da4d68daf42bf56d87023e771b
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Change all xrange -> range
......................................................................
Change all xrange -> range
Change-Id: Ia890abf36debc950180a1da753c6795c885a7e1d
---
M pywikibot/date.py
M pywikibot/page.py
M pywikibot/pagegenerators.py
M pywikibot/userinterfaces/terminal_interface_base.py
M pywikibot/userinterfaces/win32_unicode.py
M pywikibot/version.py
M scripts/claimit.py
M scripts/cosmetic_changes.py
M scripts/harvest_template.py
M scripts/interwiki.py
M scripts/replace.py
M tests/site_tests.py
12 files changed, 40 insertions(+), 40 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/date.py b/pywikibot/date.py
index 6b2e59e..1982449 100644
--- a/pywikibot/date.py
+++ b/pywikibot/date.py
@@ -229,28 +229,28 @@
# Helper for KN: digits representation
_knDigits = u'೦೧೨೩೪೫೬೭೮೯'
-_knDigitsToLocal = dict([(ord(unicode(i)), _knDigits[i]) for i in xrange(10)])
-_knLocalToDigits = dict([(ord(_knDigits[i]), unicode(i)) for i in xrange(10)])
+_knDigitsToLocal = dict([(ord(unicode(i)), _knDigits[i]) for i in range(10)])
+_knLocalToDigits = dict([(ord(_knDigits[i]), unicode(i)) for i in range(10)])
# Helper for Urdu/Persian languages
_faDigits = u'۰۱۲۳۴۵۶۷۸۹'
-_faDigitsToLocal = dict([(ord(unicode(i)), _faDigits[i]) for i in xrange(10)])
-_faLocalToDigits = dict([(ord(_faDigits[i]), unicode(i)) for i in xrange(10)])
+_faDigitsToLocal = dict([(ord(unicode(i)), _faDigits[i]) for i in range(10)])
+_faLocalToDigits = dict([(ord(_faDigits[i]), unicode(i)) for i in range(10)])
# Helper for HI:, MR:
_hiDigits = u'०१२३४५६७८९'
-_hiDigitsToLocal = dict([(ord(unicode(i)), _hiDigits[i]) for i in xrange(10)])
-_hiLocalToDigits = dict([(ord(_hiDigits[i]), unicode(i)) for i in xrange(10)])
+_hiDigitsToLocal = dict([(ord(unicode(i)), _hiDigits[i]) for i in range(10)])
+_hiLocalToDigits = dict([(ord(_hiDigits[i]), unicode(i)) for i in range(10)])
# Helper for BN:
_bnDigits = u'০১২৩৪৫৬৭৮৯'
-_bnDigitsToLocal = dict([(ord(unicode(i)), _bnDigits[i]) for i in xrange(10)])
-_bnLocalToDigits = dict([(ord(_bnDigits[i]), unicode(i)) for i in xrange(10)])
+_bnDigitsToLocal = dict([(ord(unicode(i)), _bnDigits[i]) for i in range(10)])
+_bnLocalToDigits = dict([(ord(_bnDigits[i]), unicode(i)) for i in range(10)])
# Helper for GU:
_guDigits = u'૦૧૨૩૪૫૬૭૮૯'
-_guDigitsToLocal = dict([(ord(unicode(i)), _guDigits[i]) for i in xrange(10)])
-_guLocalToDigits = dict([(ord(_guDigits[i]), unicode(i)) for i in xrange(10)])
+_guDigitsToLocal = dict([(ord(unicode(i)), _guDigits[i]) for i in range(10)])
+_guLocalToDigits = dict([(ord(_guDigits[i]), unicode(i)) for i in range(10)])
def intToLocalDigitsStr(value, digitsToLocalDict):
@@ -410,7 +410,7 @@
if m:
# decode each found value using provided decoder
values = [decoders[i][2](m.group(i + 1))
- for i in xrange(len(decoders))]
+ for i in range(len(decoders))]
decValue = decf(values)
if isinstance(decValue, basestring):
@@ -438,7 +438,7 @@
% (len(params), len(decoders)))
# convert integer parameters into their textual representation
params = [MakeParameter(decoders[i], params[i])
- for i in xrange(len(params))]
+ for i in range(len(params))]
return strPattern % tuple(params)
else:
if 1 != len(decoders):
@@ -1928,7 +1928,7 @@
if len(patterns) != 12:
raise AssertionError(u'pattern %s does not have 12 elements' % lang)
- for i in xrange(12):
+ for i in range(12):
if patterns[i] is not None:
if isMnthOfYear:
formats[yrMnthFmts[i]][lang] = eval(
@@ -1943,7 +1943,7 @@
def makeMonthList(pattern):
- return [pattern % m for m in xrange(1, 13)]
+ return [pattern % m for m in range(1, 13)]
def makeMonthNamedList(lang, pattern, makeUpperCase=None):
@@ -1960,7 +1960,7 @@
f = lambda s: s[0].upper() + s[1:]
else:
f = lambda s: s[0].lower() + s[1:]
- return [pattern % f(monthName(lang, m)) for m in xrange(1, 13)]
+ return [pattern % f(monthName(lang, m)) for m in range(1, 13)]
#
# Add day of the month formats to the formatting table: "en:May 15"
@@ -2165,7 +2165,7 @@
# Brazil uses "1añ" for the 1st of every month, and number without suffix for
# all other days
brMonthNames = makeMonthNamedList('br', u"%s", True)
-for i in xrange(0, 12):
+for i in range(0, 12):
formats[dayMnthFmts[i]]['br'] = eval(
(u'lambda m: multi(m, [' +
u'(lambda v: dh_dayOfMnth(v, u"%%dañ %s"), lambda p: p == 1),' +
@@ -2195,7 +2195,7 @@
u"Décembre %d"])
addFmt2('he', True, u"%s %%d", True)
addFmt2('it', True, u"Attualità/Anno %%d - %s", True)
-addFmt ('ja', True, [u"「最近の出来事」%%d年%d月" % mm for mm in xrange(1, 13)])
+addFmt ('ja', True, [u"「最近の出来事」%%d年%d月" % mm for mm in range(1, 13)])
addFmt2('ka', True, u"%s, %%d")
addFmt ('ko', True, [u"%d년 1월", u"%d년 2월", u"%d년 3월", u"%d년 4월",
u"%d년 5월", u"%d년 6월", u"%d년 7월", u"%d년 8월",
@@ -2260,7 +2260,7 @@
_formatLimit_DayOfMonth31 = (lambda v: 1 <= v and v < 32, 1, 32)
_formatLimit_DayOfMonth30 = (lambda v: 1 <= v and v < 31, 1, 31)
_formatLimit_DayOfMonth29 = (lambda v: 1 <= v and v < 30, 1, 30)
-for monthId in xrange(12):
+for monthId in range(12):
if (monthId + 1) in (1, 3, 5, 7, 8, 10, 12):
# 31 days a month
formatLimits[dayMnthFmts[monthId]] = _formatLimit_DayOfMonth31
@@ -2355,7 +2355,7 @@
for code, convFunc in formats[formatName].items():
## import time
## startClock = time.clock()
- for value in xrange(start, stop, step):
+ for value in range(start, stop, step):
try:
if not predicate(value):
raise AssertionError(
diff --git a/pywikibot/page.py b/pywikibot/page.py
index c5636bf..0de6559 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -1090,7 +1090,7 @@
intkeys[int(key)] = args[key]
except ValueError:
named[key] = args[key]
- for i in xrange(1, len(intkeys) + 1):
+ for i in range(1, len(intkeys) + 1):
# only those args with consecutive integer keys can be
# treated as positional; an integer could also be used
# (out of order) as the key for a named argument
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index baccca5..9580ec3 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -206,7 +206,7 @@
Only call this after all arguments have been parsed.
"""
namespaces = [int(n) for n in self.namespaces]
- for i in xrange(len(self.gens)):
+ for i in range(len(self.gens)):
if isinstance(self.gens[i], pywikibot.data.api.QueryGenerator):
if self.namespaces:
self.gens[i].set_namespace(namespaces)
@@ -768,7 +768,7 @@
if site is None:
site = pywikibot.Site()
# convert namespace names to namespace numbers
- for i in xrange(len(namespaces)):
+ for i in range(len(namespaces)):
ns = namespaces[i]
if isinstance(ns, basestring):
try:
@@ -1275,7 +1275,7 @@
if site is None:
site = pywikibot.Site()
pywikibot.output(u"Starting with year %i" % start)
- for i in xrange(start, end + 1):
+ for i in range(start, end + 1):
if i % 100 == 0:
pywikibot.output(u'Preparing %i...' % i)
# There is no year 0
@@ -1290,8 +1290,8 @@
fd = date.FormatDate(site)
firstPage = pywikibot.Page(site, fd(startMonth, 1))
pywikibot.output(u"Starting with %s" % firstPage.title(asLink=True))
- for month in xrange(startMonth, endMonth + 1):
- for day in xrange(1, date.getNumberOfDaysInMonth(month) + 1):
+ for month in range(startMonth, endMonth + 1):
+ for day in range(1, date.getNumberOfDaysInMonth(month) + 1):
yield pywikibot.Page(pywikibot.Link(fd(month, day), site))
if __name__ == "__main__":
diff --git a/pywikibot/userinterfaces/terminal_interface_base.py b/pywikibot/userinterfaces/terminal_interface_base.py
index a5d6ecb..28f3221 100755
--- a/pywikibot/userinterfaces/terminal_interface_base.py
+++ b/pywikibot/userinterfaces/terminal_interface_base.py
@@ -135,7 +135,7 @@
# Note: A transliteration replacement might be longer than the
# original character, e.g. ч is transliterated to ch.
prev = "-"
- for i in xrange(len(codecedText)):
+ for i in range(len(codecedText)):
# work on characters that couldn't be encoded, but not on
# original question marks.
if codecedText[i] == '?' and text[i] != u'?':
diff --git a/pywikibot/userinterfaces/win32_unicode.py b/pywikibot/userinterfaces/win32_unicode.py
index 97a611a..c34a6b1 100755
--- a/pywikibot/userinterfaces/win32_unicode.py
+++ b/pywikibot/userinterfaces/win32_unicode.py
@@ -235,7 +235,7 @@
argc = c_int(0)
argv_unicode = CommandLineToArgvW(GetCommandLineW(), byref(argc))
- argv = [argv_unicode[i].encode('utf-8') for i in xrange(0, argc.value)]
+ argv = [argv_unicode[i].encode('utf-8') for i in range(0, argc.value)]
if not hasattr(sys, 'frozen'):
# If this is an executable produced by py2exe or bbfreeze, then it will
diff --git a/pywikibot/version.py b/pywikibot/version.py
index 5e3fc9d..6dd9514 100644
--- a/pywikibot/version.py
+++ b/pywikibot/version.py
@@ -94,13 +94,13 @@
tag = tag[:-len(name)]
date = time.gmtime(date / 1000000)
else:
- for i in xrange(3):
+ for i in range(3):
entries.readline()
tag = entries.readline().strip()
t = tag.split('://')
t[1] = t[1].replace('svn.wikimedia.org/svnroot/pywikipedia/', '')
tag = '[%s] %s' % (t[0], t[1])
- for i in xrange(4):
+ for i in range(4):
entries.readline()
date = time.strptime(entries.readline()[:19], '%Y-%m-%dT%H:%M:%S')
rev = entries.readline()[:-1]
diff --git a/scripts/claimit.py b/scripts/claimit.py
index 9d42a7f..db8ff17 100755
--- a/scripts/claimit.py
+++ b/scripts/claimit.py
@@ -187,7 +187,7 @@
claims = list()
repo = pywikibot.Site().data_repository()
- for i in xrange(0, len(commandline_claims), 2):
+ for i in range(0, len(commandline_claims), 2):
claim = pywikibot.Claim(repo, commandline_claims[i])
if claim.getType() == 'wikibase-item':
target = pywikibot.ItemPage(repo, commandline_claims[i + 1])
diff --git a/scripts/cosmetic_changes.py b/scripts/cosmetic_changes.py
index d419752..9377964 100755
--- a/scripts/cosmetic_changes.py
+++ b/scripts/cosmetic_changes.py
@@ -350,7 +350,7 @@
# bug #3346901 should be implemented
continue
# lowerspaced and underscored namespaces
- for i in xrange(len(namespaces)):
+ for i in range(len(namespaces)):
item = namespaces[i].replace(' ', '[ _]')
item = u'[%s%s]' % (item[0], item[0].lower()) + item[1:]
namespaces[i] = item
@@ -765,7 +765,7 @@
return text
# replace persian/arabic digits
## deactivated due to bug #3539407
- for i in xrange(0, 10):
+ for i in range(0, 10):
text = pywikibot.replaceExcept(text, old[i], new[i], exceptions)
# do not change digits in class, style and table params
pattern = re.compile(u'\w+=(".+?"|\d+)', re.UNICODE)
@@ -775,7 +775,7 @@
exceptions.append(pattern)
exceptions.append('table') # exclude tables for now
# replace digits
- for i in xrange(0, 10):
+ for i in range(0, 10):
text = pywikibot.replaceExcept(text, str(i), new[i], exceptions)
return text
diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index a0a947f..2507544 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -177,7 +177,7 @@
raise ValueError # or something.
fields = dict()
- for i in xrange(0, len(commandline_arguments), 2):
+ for i in range(0, len(commandline_arguments), 2):
fields[commandline_arguments[i]] = commandline_arguments[i + 1]
generator = gen.getCombinedGenerator()
diff --git a/scripts/interwiki.py b/scripts/interwiki.py
index d8764bb..7d5f8a5 100755
--- a/scripts/interwiki.py
+++ b/scripts/interwiki.py
@@ -2147,7 +2147,7 @@
% fs.originPage)
pywikibot.output(u"NOTE: Number of pages queued is %d, trying to add %d more."
% (len(self.subjects), number))
- for i in xrange(number):
+ for i in range(number):
try:
while True:
try:
@@ -2306,7 +2306,7 @@
def queryStep(self):
self.oneQuery()
# Delete the ones that are done now.
- for i in xrange(len(self.subjects) - 1, -1, -1):
+ for i in range(len(self.subjects) - 1, -1, -1):
subj = self.subjects[i]
if subj.isDone():
subj.finish()
diff --git a/scripts/replace.py b/scripts/replace.py
index 94a93d6..0be0be8 100755
--- a/scripts/replace.py
+++ b/scripts/replace.py
@@ -556,7 +556,7 @@
)
elif (len(commandline_replacements) > 1):
if (fix is None):
- for i in xrange(0, len(commandline_replacements), 2):
+ for i in range(0, len(commandline_replacements), 2):
replacements.append((commandline_replacements[i],
commandline_replacements[i + 1]))
if not summary_commandline:
diff --git a/tests/site_tests.py b/tests/site_tests.py
index a3f6d81..b17b274 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -105,7 +105,7 @@
for b in builtins))
ns = mysite.namespaces()
self.assertType(ns, dict)
- self.assertTrue(all(x in ns for x in xrange(0, 16)))
+ self.assertTrue(all(x in ns for x in range(0, 16)))
# built-in namespaces always present
self.assertType(mysite.ns_normalize("project"), basestring)
self.assertTrue(all(isinstance(key, int)
@@ -471,7 +471,7 @@
self.assertTrue(prop in block)
# timestamps should be in descending order
timestamps = [block['timestamp'] for block in bl]
- for t in xrange(1, len(timestamps)):
+ for t in range(1, len(timestamps)):
self.assertTrue(timestamps[t] <= timestamps[t - 1])
b2 = list(mysite.blocks(total=10, reverse=True))
@@ -482,7 +482,7 @@
self.assertTrue(prop in block)
# timestamps should be in ascending order
timestamps = [block['timestamp'] for block in b2]
- for t in xrange(1, len(timestamps)):
+ for t in range(1, len(timestamps)):
self.assertTrue(timestamps[t] >= timestamps[t - 1])
for block in mysite.blocks(starttime="2008-07-01T00:00:01Z", total=5):
--
To view, visit https://gerrit.wikimedia.org/r/98285
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia890abf36debc950180a1da753c6795c885a7e1d
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Remove print statement
......................................................................
Remove print statement
Change-Id: Ib9b14364539e320adc2cff37081952954ea8f03e
---
M pywikibot/pagegenerators.py
1 file changed, 2 insertions(+), 3 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index baccca5..6e831e2 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -1053,10 +1053,9 @@
link = '%s&%s&max=%d&order=img_timestamp' % (URL, wiki, limit)
results = re.findall(REGEXP, http.request(site=None, uri=link))
if not results:
- print link
raise pywikibot.Error(
- 'Nothing found! Try to use the tool by yourself to be sure that it '
- 'works!')
+ 'Nothing found at %s! Try to use the tool by yourself to be sure that it '
+ 'works!' % link)
else:
for result in results:
yield pywikibot.Page(pywikibot.getSite(), result)
--
To view, visit https://gerrit.wikimedia.org/r/98287
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib9b14364539e320adc2cff37081952954ea8f03e
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Fixed dictionary-related items
......................................................................
Fixed dictionary-related items
Change-Id: Ia3e5160409afe3e18e6f27d76f77daf7f57cbfd8
---
M pywikibot/__init__.py
M pywikibot/bot.py
M pywikibot/botirc.py
M pywikibot/config2.py
M pywikibot/data/api.py
M pywikibot/date.py
M pywikibot/families/anarchopedia_family.py
M pywikibot/families/omegawiki_family.py
M pywikibot/families/wikisource_family.py
M pywikibot/families/wiktionary_family.py
M pywikibot/family.py
M pywikibot/i18n.py
M pywikibot/interwiki_graph.py
M pywikibot/page.py
M pywikibot/site.py
M pywikibot/textlib.py
M pywikibot/titletranslate.py
M pywikibot/userinterfaces/terminal_interface_unix.py
M pywikibot/userinterfaces/terminal_interface_win32.py
19 files changed, 53 insertions(+), 53 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index 92e9d63..a91fed6 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -521,7 +521,7 @@
# only need one drop() call because all throttles use the same global pid
try:
- _sites.values()[0].throttle.drop()
+ list(_sites.values())[0].throttle.drop()
pywikibot.log(u"Dropped throttle(s).")
except IndexError:
pass
diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index 2db129f..b571fe7 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -264,7 +264,7 @@
# imported modules
log(u'MODULES:')
- for item in sys.modules.keys():
+ for item in list(sys.modules.keys()):
ver = version.getfileversion('%s.py' % item.replace('.', '/'))
if ver:
log(u' %s' % ver)
@@ -719,7 +719,7 @@
module = __import__('%s' % modname)
helpText = module.__doc__.decode('utf-8')
if hasattr(module, 'docuReplacements'):
- for key, value in module.docuReplacements.iteritems():
+ for key, value in module.docuReplacements.items():
helpText = helpText.replace(key, value.strip('\n\r'))
pywikibot.stdout(helpText) # output to STDOUT
except Exception:
diff --git a/pywikibot/botirc.py b/pywikibot/botirc.py
index 8a847a9..d374a93 100644
--- a/pywikibot/botirc.py
+++ b/pywikibot/botirc.py
@@ -59,7 +59,7 @@
self.site = site
self.other_ns = re.compile(
u'14\[\[07(' + u'|'.join([item[0] for item in
- site.namespaces().values() if item[0]]) + u')')
+ list(site.namespaces().values()) if item[0]]) + u')')
self.api_url = self.site.family.apipath(self.site.lang)
self.api_url += '?action=query&meta=siteinfo&siprop=statistics&format=xml'
self.api_found = re.compile(r'articles="(.*?)"')
diff --git a/pywikibot/config2.py b/pywikibot/config2.py
index 003c6e4..9457c9b 100644
--- a/pywikibot/config2.py
+++ b/pywikibot/config2.py
@@ -655,7 +655,7 @@
# Store current variables and their types.
_glv = {}
_glv.update(globals())
-_gl = _glv.keys()
+_gl = list(_glv.keys())
_tp = {}
for _key in _gl:
if _key[0] != '_':
@@ -681,7 +681,7 @@
% {'fn': _filename})
# Test for obsoleted and/or unknown variables.
-for _key, _val in globals().items():
+for _key, _val in list(globals().items()):
if _key.startswith('_'):
pass
elif _key in _gl:
@@ -740,7 +740,7 @@
_all = 0
else:
print("Unknown arg %(_arg)s ignored" % locals())
- _k = globals().keys()
+ _k = list(globals().keys())
_k.sort()
for _name in _k:
if _name[0] != '_':
@@ -750,7 +750,7 @@
print(_name, "=", repr(globals()[_name]))
# cleanup all locally-defined variables
-for __var in globals().keys():
+for __var in list(globals().keys()):
if __var.startswith("_") and not __var.startswith("__"):
del __sys.modules[__name__].__dict__[__var]
diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py
index 313f2e2..2d8c4d9 100644
--- a/pywikibot/data/api.py
+++ b/pywikibot/data/api.py
@@ -155,7 +155,7 @@
del self.params[key]
def keys(self):
- return self.params.keys()
+ return list(self.params.keys())
def __contains__(self, key):
return self.params.__contains__(key)
@@ -167,7 +167,7 @@
return len(self.params)
def iteritems(self):
- return self.params.iteritems()
+ return iter(self.params.items())
def http_params(self):
"""Return the parameters formatted for inclusion in an HTTP request."""
@@ -278,7 +278,7 @@
eoh = body.find(marker)
body = body[eoh + len(marker):]
# retrieve the headers from the MIME object
- mimehead = dict(container.items())
+ mimehead = dict(list(container.items()))
rawdata = http.request(self.site, uri, ssl, method="POST",
headers=mimehead, body=body)
else:
@@ -680,7 +680,7 @@
if isinstance(resultdata, dict):
pywikibot.debug(u"%s received %s; limit=%s"
% (self.__class__.__name__,
- resultdata.keys(),
+ list(resultdata.keys()),
self.limit),
_logger)
if "results" in resultdata:
@@ -722,7 +722,7 @@
% self.continuekey)
return
update = self.data["query-continue"][self.continuekey]
- for key, value in update.iteritems():
+ for key, value in update.items():
# query-continue can return ints
if isinstance(value, int):
value = str(value)
diff --git a/pywikibot/date.py b/pywikibot/date.py
index 46ccb54..6b2e59e 100644
--- a/pywikibot/date.py
+++ b/pywikibot/date.py
@@ -2282,7 +2282,7 @@
dictName is 'YearBC', 'December', etc.
"""
- for dictName, dict in formats.iteritems():
+ for dictName, dict in formats.items():
try:
year = dict[lang](title)
return dictName, year
@@ -2352,7 +2352,7 @@
pywikibot.output((u"Processing %s with limits from %d to %d and step %d"
% (formatName, start, stop - 1, step)))
- for code, convFunc in formats[formatName].iteritems():
+ for code, convFunc in formats[formatName].items():
## import time
## startClock = time.clock()
for value in xrange(start, stop, step):
diff --git a/pywikibot/families/anarchopedia_family.py b/pywikibot/families/anarchopedia_family.py
index 037d015..5929098 100644
--- a/pywikibot/families/anarchopedia_family.py
+++ b/pywikibot/families/anarchopedia_family.py
@@ -19,7 +19,7 @@
for l in self.languages_by_size:
self.langs[l] = '%s.anarchopedia.org' % l
- self.nocapitalize = self.langs.keys()
+ self.nocapitalize = list(self.langs.keys())
self.obsolete = {
'ara': 'ar',
diff --git a/pywikibot/families/omegawiki_family.py b/pywikibot/families/omegawiki_family.py
index 4722987..f2ae535 100644
--- a/pywikibot/families/omegawiki_family.py
+++ b/pywikibot/families/omegawiki_family.py
@@ -16,7 +16,7 @@
# On most Wikipedias page names must start with a capital letter, but some
# languages don't use this.
- self.nocapitalize = self.langs.keys()
+ self.nocapitalize = list(self.langs.keys())
def hostname(self, code):
return 'www.omegawiki.org'
diff --git a/pywikibot/families/wikisource_family.py b/pywikibot/families/wikisource_family.py
index 8cde673..0e79f2f 100644
--- a/pywikibot/families/wikisource_family.py
+++ b/pywikibot/families/wikisource_family.py
@@ -87,6 +87,6 @@
'zh': [102],
}
- for key, values in self.authornamespaces.iteritems():
+ for key, values in self.authornamespaces.items():
for item in values:
self.crossnamespace[item].update({key: self.authornamespaces})
diff --git a/pywikibot/families/wiktionary_family.py b/pywikibot/families/wiktionary_family.py
index c769951..116be5f 100644
--- a/pywikibot/families/wiktionary_family.py
+++ b/pywikibot/families/wiktionary_family.py
@@ -45,7 +45,7 @@
# Other than most Wikipedias, page names must not start with a capital
# letter on ALL Wiktionaries.
- self.nocapitalize = self.langs.keys()
+ self.nocapitalize = list(self.langs.keys())
# Which languages have a special order for putting interlanguage links,
# and what order is it? If a language is not in interwiki_putfirst,
diff --git a/pywikibot/family.py b/pywikibot/family.py
index 8b2dd72..667309a 100644
--- a/pywikibot/family.py
+++ b/pywikibot/family.py
@@ -831,8 +831,8 @@
@property
def iwkeys(self):
if self.interwiki_forward:
- return pywikibot.Family(self.interwiki_forward).langs.keys()
- return self.langs.keys()
+ return list(pywikibot.Family(self.interwiki_forward).langs.keys())
+ return list(self.langs.keys())
def _addlang(self, code, location, namespaces={}):
"""Add a new language to the langs and namespaces of the family.
diff --git a/pywikibot/i18n.py b/pywikibot/i18n.py
index df64ef5..f032e2e 100644
--- a/pywikibot/i18n.py
+++ b/pywikibot/i18n.py
@@ -283,8 +283,8 @@
code = alt
break
else:
- trans = xdict.values()[0]
- code = xdict.keys()[0]
+ trans = list(xdict.values())[0]
+ code = list(xdict.keys())[0]
if not trans:
return # return None if we have no translation found
if parameters is None:
diff --git a/pywikibot/interwiki_graph.py b/pywikibot/interwiki_graph.py
index ee043ae..7e27d01 100644
--- a/pywikibot/interwiki_graph.py
+++ b/pywikibot/interwiki_graph.py
@@ -78,7 +78,7 @@
# if we found more than one valid page for this language:
if len(filter(lambda p: p.site == page.site and p.exists()
and not p.isRedirectPage(), # noqa
- self.subject.foundIn.keys())) > 1:
+ list(self.subject.foundIn.keys()))) > 1:
# mark conflict by octagonal node
node.set_shape('octagon')
self.graph.add_node(node)
@@ -134,14 +134,14 @@
# create empty graph
self.graph = pydot.Dot()
# self.graph.set('concentrate', 'true')
- for page in self.subject.foundIn.iterkeys():
+ for page in self.subject.foundIn.keys():
# a node for each found page
self.addNode(page)
# mark start node by pointing there from a black dot.
firstLabel = self.getLabel(self.subject.originPage)
self.graph.add_node(pydot.Node('start', shape='point'))
self.graph.add_edge(pydot.Edge('start', firstLabel))
- for page, referrers in self.subject.foundIn.iteritems():
+ for page, referrers in self.subject.foundIn.items():
for refPage in referrers:
self.addDirectedEdge(page, refPage)
self.saveGraphFile()
diff --git a/pywikibot/page.py b/pywikibot/page.py
index 049aab0..c5636bf 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -854,12 +854,12 @@
if config.cosmetic_changes_mylang_only:
cc = ((family == config.family and
self.site.lang == config.mylang) or
- family in config.cosmetic_changes_enable.keys() and
+ family in list(config.cosmetic_changes_enable.keys()) and
self.site.lang in config.cosmetic_changes_enable[family])
else:
cc = True
cc = (cc and not
- (family in config.cosmetic_changes_disable.keys() and
+ (family in list(config.cosmetic_changes_disable.keys()) and
self.site.lang in config.cosmetic_changes_disable[family]))
if not cc:
return
@@ -2389,7 +2389,7 @@
"""
if force or not hasattr(self, '_content'):
data = self.repo.loadcontent(self._defined_by(), *args)
- self.id = data.keys()[0]
+ self.id = list(data.keys())[0]
self._content = data[self.id]
if 'lastrevid' in self._content:
self.lastrevid = self._content['lastrevid']
@@ -2514,7 +2514,7 @@
value should be a list of strings.
"""
aliases = self.__normalizeLanguages(aliases)
- for (key, strings) in aliases.items():
+ for (key, strings) in list(aliases.items()):
aliases[key] = [{'language': key, 'value': i} for i in strings]
data = {'aliases': aliases}
self.editEntity(data, **kwargs)
@@ -2832,7 +2832,7 @@
more handling.
"""
source = collections.defaultdict(list)
- for prop in data['snaks'].values():
+ for prop in list(data['snaks'].values()):
for claimsnak in prop:
claim = Claim.fromJSON(site, {'mainsnak': claimsnak,
'hash': data['hash']})
@@ -3186,7 +3186,7 @@
t = t[t.index(u":"):].lstrip(u":").lstrip(u" ")
self._namespace = ns
break
- if prefix in fam.langs.keys()\
+ if prefix in list(fam.langs.keys())\
or prefix in fam.get_known_families(site=self._site):
# looks like an interwiki link
if not firstPass:
@@ -3195,7 +3195,7 @@
"Improperly formatted interwiki link '%s'"
% self._text)
t = t[t.index(u":"):].lstrip(u":").lstrip(u" ")
- if prefix in fam.langs.keys():
+ if prefix in list(fam.langs.keys()):
newsite = pywikibot.Site(prefix, fam)
else:
otherlang = self._site.code
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 9399afa..9f36234 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -61,7 +61,7 @@
@classmethod
def name(cls, search_value):
- for key, value in cls.__dict__.iteritems():
+ for key, value in cls.__dict__.items():
if key == key.upper() and value == search_value:
return key
raise KeyError("Value %r could not be found in this enum"
@@ -135,7 +135,7 @@
raise NoSuchSite("Language %s in family %s is obsolete"
% (self.__code, self.__family.name))
if self.__code not in self.languages():
- if self.__family.name in self.__family.langs.keys() and \
+ if self.__family.name in list(self.__family.langs.keys()) and \
len(self.__family.langs) == 1:
oldcode = self.__code
self.__code = self.__family.name
@@ -258,12 +258,12 @@
def languages(self):
"""Return list of all valid language codes for this site's Family."""
- return self.family.langs.keys()
+ return list(self.family.langs.keys())
def validLanguageLinks(self):
"""Return list of language codes that can be used in interwiki links."""
- nsnames = [name for name in self.namespaces().itervalues()]
+ nsnames = [name for name in self.namespaces().values()]
return [lang for lang in self.languages()
if lang[:1].upper() + lang[1:] not in nsnames]
@@ -1407,7 +1407,7 @@
if target_title == title or "pages" not in result['query']:
# no "pages" element indicates a circular redirect
raise pywikibot.CircularRedirect(redirmap[title])
- pagedata = result['query']['pages'].values()[0]
+ pagedata = list(result['query']['pages'].values())[0]
# there should be only one value in 'pages', and it is the target
if self.sametitle(pagedata['title'], target_title):
target = pywikibot.Page(self, pagedata['title'], pagedata['ns'])
@@ -1450,7 +1450,7 @@
# only use pageids if all pages have them
rvgen.request["pageids"] = "|".join(pageids)
else:
- rvgen.request["titles"] = "|".join(cache.keys())
+ rvgen.request["titles"] = "|".join(list(cache.keys()))
rvgen.request[u"rvprop"] = u"ids|flags|timestamp|user|comment|content"
pywikibot.output(u"Retrieving %s pages from %s."
% (len(cache), self))
@@ -1477,7 +1477,7 @@
except KeyError:
pywikibot.debug(u"No 'title' in %s" % pagedata, _logger)
pywikibot.debug(u"pageids=%s" % pageids, _logger)
- pywikibot.debug(u"titles=%s" % cache.keys(), _logger)
+ pywikibot.debug(u"titles=%s" % list(cache.keys()), _logger)
continue
page = cache[pagedata['title']]
api.update_page(page, pagedata)
@@ -1559,7 +1559,7 @@
namespaces=namespaces,
content=content
)
- return itertools.chain(*genlist.values())
+ return itertools.chain(*list(genlist.values()))
return blgen
def page_embeddedin(self, page, filterRedirects=None, namespaces=None,
@@ -2429,7 +2429,7 @@
if where not in ("text", "titles"):
raise Error("search: unrecognized 'where' value: %s" % where)
if namespaces == []:
- namespaces = [ns for ns in self.namespaces().keys() if ns >= 0]
+ namespaces = [ns for ns in list(self.namespaces().keys()) if ns >= 0]
if not namespaces:
pywikibot.warning(u"search: namespaces cannot be empty; using [0].")
namespaces = [0]
@@ -2960,7 +2960,7 @@
% page.title(asLink=True))
last_rev = page._revisions[page.latestRevision()]
last_user = last_rev.user
- for rev in sorted(page._revisions.keys(), reverse=True):
+ for rev in sorted(list(page._revisions.keys()), reverse=True):
# start with most recent revision first
if rev.user != last_user:
prev_user = rev.user
@@ -3263,7 +3263,7 @@
result = result["upload"]
pywikibot.debug(result, _logger)
if "warnings" in result:
- warning = result["warnings"].keys()[0]
+ warning = list(result["warnings"].keys())[0]
message = result["warnings"][warning]
raise pywikibot.UploadWarning(upload_warnings[warning]
% {'msg': message})
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 4459b1c..0cdd3ba 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -90,7 +90,7 @@
# also finds links to foreign sites with preleading ":"
'interwiki': re.compile(r'(?i)\[\[:?(%s)\s?:[^\]]*\]\][\s]*'
% '|'.join(site.validLanguageLinks() +
- site.family.obsolete.keys())),
+ list(site.family.obsolete.keys()))),
# Wikidata property inclusions
'property': re.compile(r'(?i)\{\{\s*#property:\s*p\d+\s*\}\}'),
# Module invocations (currently only Lua)
@@ -275,7 +275,7 @@
'syntaxhighlight': r'<syntaxhighlight .*?</syntaxhighlight>',
}
if '*' in tags:
- tags = regexes.keys()
+ tags = list(regexes.keys())
# add alias
tags = set(tags)
if 'source' in tags:
@@ -430,7 +430,7 @@
# language, or if it's e.g. a category tag or an internal link
if lang in fam.obsolete:
lang = fam.obsolete[lang]
- if lang in fam.langs.keys():
+ if lang in list(fam.langs.keys()):
if '|' in pagetitle:
# ignore text after the pipe
pagetitle = pagetitle[:pagetitle.index('|')]
@@ -462,7 +462,7 @@
# This regular expression will find every interwiki link, plus trailing
# whitespace.
languages = '|'.join(site.validLanguageLinks() +
- site.family.obsolete.keys())
+ list(site.family.obsolete.keys()))
interwikiR = re.compile(r'\[\[(%s)\s?:[^\[\]\n]*\]\][\s]*'
% languages, re.IGNORECASE)
text = replaceExcept(text, interwikiR, '',
@@ -595,7 +595,7 @@
if not links:
return ''
- ar = interwikiSort(links.keys(), insite)
+ ar = interwikiSort(list(links.keys()), insite)
s = []
for site in ar:
try:
diff --git a/pywikibot/titletranslate.py b/pywikibot/titletranslate.py
index 9e1d15d..6ef5f0d 100644
--- a/pywikibot/titletranslate.py
+++ b/pywikibot/titletranslate.py
@@ -94,7 +94,7 @@
pywikibot.output(
u'TitleTranslate: %s was recognized as %s with value %d'
% (page.title(), dictName, value))
- for entryLang, entry in date.formats[dictName].iteritems():
+ for entryLang, entry in date.formats[dictName].items():
if entryLang != page.site.code:
if (dictName == 'yearsBC' and
entryLang in date.maxyearBC and
@@ -118,7 +118,7 @@
def appendFormatedDates(result, dictName, value):
- for code, func in date.formats[dictName].iteritems():
+ for code, func in date.formats[dictName].items():
result.append(u'[[%s:%s]]' % (code, func(value)))
diff --git a/pywikibot/userinterfaces/terminal_interface_unix.py b/pywikibot/userinterfaces/terminal_interface_unix.py
index 0ba718c..e8e7246 100755
--- a/pywikibot/userinterfaces/terminal_interface_unix.py
+++ b/pywikibot/userinterfaces/terminal_interface_unix.py
@@ -41,7 +41,7 @@
def printColorized(self, text, targetStream):
lastColor = None
totalcount = 0
- for key, value in unixColors.iteritems():
+ for key, value in unixColors.items():
ckey = '\03{%s}' % key
totalcount += text.count(ckey)
text = text.replace(ckey, value)
diff --git a/pywikibot/userinterfaces/terminal_interface_win32.py b/pywikibot/userinterfaces/terminal_interface_win32.py
index 3b8cea1..d315fa7 100755
--- a/pywikibot/userinterfaces/terminal_interface_win32.py
+++ b/pywikibot/userinterfaces/terminal_interface_win32.py
@@ -35,7 +35,7 @@
'white': 15,
}
-colorTagR = re.compile('\03{(?P<name>%s)}' % '|'.join(windowsColors.keys()))
+colorTagR = re.compile('\03{(?P<name>%s)}' % '|'.join(list(windowsColors.keys())))
# Compat for python <= 2.5
--
To view, visit https://gerrit.wikimedia.org/r/97877
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia3e5160409afe3e18e6f27d76f77daf7f57cbfd8
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Aaron1011 <aa1ronham(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Import Queue: fix for python 3
......................................................................
Import Queue: fix for python 3
Original patch (using six) by Aaron Hill
Change-Id: I58970010bccbc675eeb494b3ff7b40fe0d314dd3
---
M pywikibot/__init__.py
1 file changed, 5 insertions(+), 1 deletion(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index 34f7958..92e9d63 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -17,7 +17,11 @@
import re
import sys
import threading
-from Queue import Queue
+
+try:
+ from queue import Queue
+except ImportError:
+ from Queue import Queue
# Use pywikibot. prefix for all in-package imports; this is to prevent
# confusion with similarly-named modules in version 1 framework, for users
--
To view, visit https://gerrit.wikimedia.org/r/97878
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I58970010bccbc675eeb494b3ff7b40fe0d314dd3
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Aaron1011 <aa1ronham(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot