jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/817763 )
Change subject: [IMPR] Simplify movepages.py ......................................................................
[IMPR] Simplify movepages.py
Simplify iteration of pairsfile.
Change-Id: Ica39371d864451962e777b29e27b6eff5f634b5f --- M scripts/movepages.py 1 file changed, 11 insertions(+), 13 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/scripts/movepages.py b/scripts/movepages.py index 0a23dba..5f6198c 100755 --- a/scripts/movepages.py +++ b/scripts/movepages.py @@ -38,6 +38,7 @@ # Distributed under the terms of the MIT license. # import re +from itertools import zip_longest
import pywikibot from pywikibot import i18n, pagegenerators @@ -203,16 +204,14 @@ if opt == 'pairsfile': filename = value or pywikibot.input( 'Enter the name of the file containing pairs:') - old_name1 = None - for page in pagegenerators.TextIOPageGenerator(filename): - if old_name1: - from_to_pairs.append([old_name1, page.title()]) - old_name1 = None + page_gen = [pagegenerators.TextIOPageGenerator(filename)] * 2 + for old_page, new_page in zip_longest(*page_gen, fillvalue=None): + if new_page is None: + pywikibot.warning( + 'file {} contains odd number ' + 'of links'.format(filename)) else: - old_name1 = page.title() - if old_name1: - pywikibot.warning( - 'file {} contains odd number of links'.format(filename)) + from_to_pairs.append([old_page.title(), new_page.title()]) elif opt in ('always', 'noredirect', 'skipredirects'): options[opt] = True elif opt in ('notalkpage', 'nosubpages'): @@ -240,10 +239,9 @@ if not site.logged_in(): site.login()
- for pair in from_to_pairs: - page = pywikibot.Page(site, pair[0]) - bot = MovePagesBot(**options) - bot.move_one(page, pair[1]) + bot = MovePagesBot(**options) + for old_title, new_title in from_to_pairs: + bot.move_one(pywikibot.Page(site, old_title), new_title)
gen = gen_factory.getCombinedGenerator(preload=True) if gen:
pywikibot-commits@lists.wikimedia.org