John Vandenberg has uploaded a new change for review.
https://gerrit.wikimedia.org/r/165452
Change subject: Standardise script main()
......................................................................
Standardise script main()
Allow scripts to be invoked with command line options from within
Python, such as <module>.main('-simulate')
Always process global arguments before local arguments, fixing bugs
regarding order of arguments.
Also several docstring fixes.
Change-Id: I828ba3cf155fb6d3e052564d20768fdf9c3acc95
---
M scripts/add_text.py
M scripts/archivebot.py
M scripts/basic.py
M scripts/blockpageschecker.py
M scripts/blockreview.py
M scripts/capitalize_redirects.py
M scripts/catall.py
M scripts/category.py
M scripts/category_redirect.py
M scripts/cfd.py
M scripts/checkimages.py
M scripts/claimit.py
M scripts/clean_sandbox.py
M scripts/commons_link.py
M scripts/commonscat.py
M scripts/coordinate_import.py
M scripts/cosmetic_changes.py
M scripts/create_categories.py
M scripts/delete.py
M scripts/disambredir.py
M scripts/editarticle.py
M scripts/featured.py
M scripts/fixing_redirects.py
M scripts/flickrripper.py
M scripts/freebasemappingupload.py
M scripts/harvest_template.py
M scripts/illustrate_wikidata.py
M scripts/image.py
M scripts/imagerecat.py
M scripts/imagetransfer.py
M scripts/imageuncat.py
M scripts/interwiki.py
M scripts/isbn.py
M scripts/listpages.py
M scripts/login.py
M scripts/lonelypages.py
M scripts/misspelling.py
M scripts/movepages.py
M scripts/newitem.py
M scripts/noreferences.py
M scripts/nowcommons.py
M scripts/pagefromfile.py
M scripts/protect.py
M scripts/redirect.py
M scripts/reflinks.py
M scripts/replace.py
M scripts/revertbot.py
M scripts/script_wui.py
M scripts/selflink.py
M scripts/solve_disambiguation.py
M scripts/spamremove.py
M scripts/template.py
M scripts/templatecount.py
M scripts/touch.py
M scripts/transferbot.py
M scripts/unlink.py
M scripts/unusedfiles.py
M scripts/upload.py
M scripts/watchlist.py
M scripts/weblinkchecker.py
M scripts/welcome.py
M tox.ini
62 files changed, 613 insertions(+), 128 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/52/165452/1
diff --git a/scripts/add_text.py b/scripts/add_text.py
index 1d104e1..252e6ab 100644
--- a/scripts/add_text.py
+++ b/scripts/add_text.py
@@ -275,7 +275,15 @@
return (text, newtext, always)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# If none, the var is setted only for check purpose.
summary = None
addText = None
@@ -292,7 +300,7 @@
up = False
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
# Loading the arguments
diff --git a/scripts/archivebot.py b/scripts/archivebot.py
index 015f924..90c617e 100644
--- a/scripts/archivebot.py
+++ b/scripts/archivebot.py
@@ -524,7 +524,15 @@
self.page.update(comment)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
filename = None
pagename = None
namespace = None
@@ -537,7 +545,8 @@
if arg.startswith(name):
yield arg[len(name) + 1:]
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
for v in if_arg_value(arg, '-file'):
filename = v
for v in if_arg_value(arg, '-locale'):
diff --git a/scripts/basic.py b/scripts/basic.py
index 99f83f1..245000d 100755
--- a/scripts/basic.py
+++ b/scripts/basic.py
@@ -136,10 +136,17 @@
return False
-def main():
- """ Process command line arguments and invoke BasicBot. """
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Process global arguments to determine desired site
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
# This factory is responsible for processing command line arguments
# that are also used by other scripts and that determine on which pages
diff --git a/scripts/blockpageschecker.py b/scripts/blockpageschecker.py
index 70c5fdf..aa6f6b8 100755
--- a/scripts/blockpageschecker.py
+++ b/scripts/blockpageschecker.py
@@ -205,8 +205,15 @@
editor.edit(page.text)
-def main():
- """Main Function."""
+def main(*args):
+ """
+ Process command line arguments and perform task.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Loading the comments
global categoryToCheck, project_inserted
# always, define a generator to understand if the user sets one,
@@ -223,7 +230,7 @@
errorCount = 0
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
# Process local args
diff --git a/scripts/blockreview.py b/scripts/blockreview.py
index f184f57..46344f9 100644
--- a/scripts/blockreview.py
+++ b/scripts/blockreview.py
@@ -303,11 +303,20 @@
return True
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
show = False
# Parse command line arguments
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ if local_args:
show = True
if not show:
diff --git a/scripts/capitalize_redirects.py b/scripts/capitalize_redirects.py
index 0c4c7a9..c5f5676 100644
--- a/scripts/capitalize_redirects.py
+++ b/scripts/capitalize_redirects.py
@@ -87,10 +87,18 @@
pywikibot.output(u"An error occurred, skipping...")
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/catall.py b/scripts/catall.py
index 9c176a9..dd9b4df 100755
--- a/scripts/catall.py
+++ b/scripts/catall.py
@@ -72,11 +72,19 @@
comment=i18n.twtranslate(site.code, 'catall-changing'))
-def main():
+def main(*args):
+ """
+ Process command line arguments and perform task.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
docorrections = True
start = 'A'
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
for arg in local_args:
if arg == '-onlynew':
diff --git a/scripts/category.py b/scripts/category.py
index 12beae3..452be3b 100755
--- a/scripts/category.py
+++ b/scripts/category.py
@@ -1072,6 +1072,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
fromGiven = False
toGiven = False
batchMode = False
diff --git a/scripts/category_redirect.py b/scripts/category_redirect.py
index b2123b2..1cb5acb 100755
--- a/scripts/category_redirect.py
+++ b/scripts/category_redirect.py
@@ -417,6 +417,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
a = pywikibot.handleArgs(*args)
if len(a) == 1:
raise RuntimeError('Unrecognized argument "%s"' % a[0])
diff --git a/scripts/cfd.py b/scripts/cfd.py
index ab2b0e9..90da9df 100644
--- a/scripts/cfd.py
+++ b/scripts/cfd.py
@@ -54,8 +54,16 @@
return self.result
-def main():
- pywikibot.handleArgs()
+def main(*args):
+ """
+ Process command line arguments and perform task.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
+ pywikibot.handleArgs(*args)
page = pywikibot.Page(pywikibot.Site(), cfdPage)
diff --git a/scripts/checkimages.py b/scripts/checkimages.py
index 980f3ce..b5f616d 100644
--- a/scripts/checkimages.py
+++ b/scripts/checkimages.py
@@ -1761,8 +1761,15 @@
return True
-def main():
- """Main function."""
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Command line configurable parameters
repeat = True # Restart after having check all the images?
limit = 80 # How many images check?
@@ -1781,7 +1788,8 @@
generator = None
# Here below there are the parameters.
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-limit'):
if len(arg) == 7:
limit = int(pywikibot.input(
diff --git a/scripts/claimit.py b/scripts/claimit.py
index d389c93..9e31b70 100755
--- a/scripts/claimit.py
+++ b/scripts/claimit.py
@@ -149,12 +149,20 @@
return True
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
exists_arg = ''
commandline_claims = list()
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
gen = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/clean_sandbox.py b/scripts/clean_sandbox.py
index 052ec14..47a5edb 100755
--- a/scripts/clean_sandbox.py
+++ b/scripts/clean_sandbox.py
@@ -272,9 +272,18 @@
time.sleep(self.getOption('hours') * 60 * 60)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
opts = {}
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-hours:'):
opts['hours'] = float(arg[7:])
opts['no_repeat'] = False
diff --git a/scripts/commons_link.py b/scripts/commons_link.py
index 45887c0..8ba3204 100644
--- a/scripts/commons_link.py
+++ b/scripts/commons_link.py
@@ -107,10 +107,18 @@
pywikibot.output(u'Page %s is locked' % page.title())
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/commonscat.py b/scripts/commonscat.py
index 5029830..96dedfb 100755
--- a/scripts/commonscat.py
+++ b/scripts/commonscat.py
@@ -498,9 +498,14 @@
return u''
-def main():
- """ Parse the command line arguments and get a pagegenerator to work on.
- Iterate through all the pages.
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
"""
summary = None
generator = None
@@ -510,7 +515,7 @@
ns.append(14)
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/coordinate_import.py b/scripts/coordinate_import.py
index 71cef9c..d031c51 100644
--- a/scripts/coordinate_import.py
+++ b/scripts/coordinate_import.py
@@ -101,9 +101,17 @@
pywikibot.output(u'Skipping unsupported globe: %s' % e.args)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
gen = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/cosmetic_changes.py b/scripts/cosmetic_changes.py
index e758452..a79da87 100755
--- a/scripts/cosmetic_changes.py
+++ b/scripts/cosmetic_changes.py
@@ -919,12 +919,20 @@
% page.title(asLink=True))
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
answer = 'y'
options = {}
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
@@ -967,7 +975,4 @@
pywikibot.showHelp()
if __name__ == "__main__":
- try:
- main()
- finally:
- pywikibot.stopme()
+ main()
diff --git a/scripts/create_categories.py b/scripts/create_categories.py
index 7294a57..df750a8 100755
--- a/scripts/create_categories.py
+++ b/scripts/create_categories.py
@@ -72,14 +72,21 @@
self.create_category(page)
-def main():
- """Main loop. Get a generator and options."""
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
parent = None
basename = None
options = {}
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/delete.py b/scripts/delete.py
index 2efe8e0..f686281 100644
--- a/scripts/delete.py
+++ b/scripts/delete.py
@@ -75,14 +75,22 @@
page.delete(self.summary, not self.getOption('always'))
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
pageName = ''
summary = None
generator = None
options = {}
# read command line parameters
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
mysite = pywikibot.Site()
diff --git a/scripts/disambredir.py b/scripts/disambredir.py
index 4cbc419..de464c4 100644
--- a/scripts/disambredir.py
+++ b/scripts/disambredir.py
@@ -149,8 +149,16 @@
page.put(text, comment)
-def main():
- local_args = pywikibot.handleArgs()
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
+ local_args = pywikibot.handleArgs(*args)
generator = None
start = local_args[0] if local_args else '!'
diff --git a/scripts/editarticle.py b/scripts/editarticle.py
index 74af631..fc111c6 100755
--- a/scripts/editarticle.py
+++ b/scripts/editarticle.py
@@ -97,6 +97,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
app = ArticleEditor(*args)
app.run()
diff --git a/scripts/featured.py b/scripts/featured.py
index 98cb0a7..139543c 100644
--- a/scripts/featured.py
+++ b/scripts/featured.py
@@ -599,8 +599,17 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-fromlang:'):
options[arg[1:9]] = arg[10:].split(",")
elif arg.startswith('-after:'):
@@ -618,7 +627,4 @@
if __name__ == "__main__":
- try:
- main()
- finally:
- pywikibot.stopme()
+ main()
diff --git a/scripts/fixing_redirects.py b/scripts/fixing_redirects.py
index 3e13a6e..cede70d 100644
--- a/scripts/fixing_redirects.py
+++ b/scripts/fixing_redirects.py
@@ -187,12 +187,20 @@
pywikibot.error('unable to put %s' % page)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
featured = False
gen = None
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/flickrripper.py b/scripts/flickrripper.py
index 46d3475..c093f1e 100644
--- a/scripts/flickrripper.py
+++ b/scripts/flickrripper.py
@@ -517,7 +517,15 @@
return
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Get the api key
if not config.flickr['api_key']:
pywikibot.output('Flickr api key not found! Get yourself an api key')
@@ -565,9 +573,10 @@
else:
reviewer = u''
+ local_args = pywikibot.handleArgs(*args)
# Should be renamed to overrideLicense or something like that
override = u''
- for arg in pywikibot.handleArgs():
+ for arg in local_args:
if arg.startswith('-group_id'):
if len(arg) == 9:
group_id = pywikibot.input(u'What is the group_id of the
pool?')
diff --git a/scripts/freebasemappingupload.py b/scripts/freebasemappingupload.py
index 59be5ce..1d45947 100644
--- a/scripts/freebasemappingupload.py
+++ b/scripts/freebasemappingupload.py
@@ -96,9 +96,18 @@
pywikibot.output('Claim added!')
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
filename = 'fb2w.nt.gz' # Default filename
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-filename'):
filename = arg[11:]
bot = FreebaseMapperRobot(filename)
diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index cdb1275..10d5efb 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -180,12 +180,20 @@
claim.addSource(source, bot=True)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
commandline_arguments = list()
template_title = u''
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
gen = pg.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/illustrate_wikidata.py b/scripts/illustrate_wikidata.py
index 0a4dc1c..6251836 100644
--- a/scripts/illustrate_wikidata.py
+++ b/scripts/illustrate_wikidata.py
@@ -86,9 +86,17 @@
newclaim.addSource(source, bot=True)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
gen = pg.GeneratorFactory()
wdproperty = u'P18'
diff --git a/scripts/image.py b/scripts/image.py
index 1bcb42b..0fb191d 100644
--- a/scripts/image.py
+++ b/scripts/image.py
@@ -169,12 +169,21 @@
replaceBot.run()
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
old_image = None
new_image = None
options = {}
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg == '-always':
options['always'] = True
elif arg == '-loose':
diff --git a/scripts/imagerecat.py b/scripts/imagerecat.py
index 295bb7f..a08ab73 100644
--- a/scripts/imagerecat.py
+++ b/scripts/imagerecat.py
@@ -440,14 +440,21 @@
return result
-def main():
- """Main loop. Get a generator and options. Work on all images in the
generator."""
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
generator = None
onlyFilter = False
onlyUncat = False
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
global search_wikis
diff --git a/scripts/imagetransfer.py b/scripts/imagetransfer.py
index f26e254..84eea97 100644
--- a/scripts/imagetransfer.py
+++ b/scripts/imagetransfer.py
@@ -298,7 +298,15 @@
pywikibot.output(u'No such image number.')
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
pageTitle = None
gen = None
@@ -307,7 +315,7 @@
targetLang = None
targetFamily = None
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
for arg in local_args:
if arg == '-interwiki':
diff --git a/scripts/imageuncat.py b/scripts/imageuncat.py
index 0bcb3d9..e055f5b 100755
--- a/scripts/imageuncat.py
+++ b/scripts/imageuncat.py
@@ -1315,9 +1315,14 @@
def main(*args):
- '''
- Grab a bunch of images and tag them if they are not categorized.
- '''
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
generator = None
local_args = pywikibot.handleArgs(*args)
diff --git a/scripts/interwiki.py b/scripts/interwiki.py
index ae17496..d15033b 100755
--- a/scripts/interwiki.py
+++ b/scripts/interwiki.py
@@ -2417,7 +2417,15 @@
bot.add(page, hints=hintStrings)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
singlePageTitle = ''
opthintsonly = False
# Which namespaces should be processed?
@@ -2436,7 +2444,7 @@
newPages = None
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/isbn.py b/scripts/isbn.py
index ac67dac..d759003 100755
--- a/scripts/isbn.py
+++ b/scripts/isbn.py
@@ -1417,11 +1417,19 @@
self.treat(page)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/listpages.py b/scripts/listpages.py
index e17c686..1eaac55 100644
--- a/scripts/listpages.py
+++ b/scripts/listpages.py
@@ -142,7 +142,14 @@
def main(*args):
- """Main function."""
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
gen = None
notitle = False
fmt = '1'
diff --git a/scripts/login.py b/scripts/login.py
index c4ad6c3..9dbde04 100755
--- a/scripts/login.py
+++ b/scripts/login.py
@@ -62,11 +62,20 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
password = None
sysop = False
logall = False
logout = False
- for arg in pywikibot.handleArgs(*args):
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith("-pass"):
if len(arg) == 5:
password = pywikibot.input(u'Password for all accounts (no
characters will be shown):',
@@ -112,5 +121,7 @@
except NoSuchSite:
pywikibot.output(u'%s.%s is not a valid site, please remove it'
u' from your config' % (lang, familyName))
+
+
if __name__ == "__main__":
main()
diff --git a/scripts/lonelypages.py b/scripts/lonelypages.py
index f956d2a..a33fbe7 100644
--- a/scripts/lonelypages.py
+++ b/scripts/lonelypages.py
@@ -189,10 +189,18 @@
self.userPut(page, oldtxt, newtxt, comment=self.comment)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
site = pywikibot.Site()
diff --git a/scripts/misspelling.py b/scripts/misspelling.py
index ec9644b..1dbe005 100644
--- a/scripts/misspelling.py
+++ b/scripts/misspelling.py
@@ -127,14 +127,23 @@
{'page': disambPage.title()})
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# the option that's always selected when the bot wonders what to do with
# a link. If it's None, the user is prompted (default behaviour).
always = None
main_only = False
firstPageTitle = None
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-always:'):
always = arg[8:]
elif arg.startswith('-start'):
diff --git a/scripts/movepages.py b/scripts/movepages.py
index 5af0ac3..90ae739 100644
--- a/scripts/movepages.py
+++ b/scripts/movepages.py
@@ -197,14 +197,22 @@
self.treat(page)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
gen = None
oldName = None
options = {}
fromToPairs = []
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/newitem.py b/scripts/newitem.py
index b6ea11f..0b9ce27 100644
--- a/scripts/newitem.py
+++ b/scripts/newitem.py
@@ -118,9 +118,17 @@
page.put(page.text)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
gen = pagegenerators.GeneratorFactory()
options = {}
diff --git a/scripts/noreferences.py b/scripts/noreferences.py
index 8fece93..e923314 100755
--- a/scripts/noreferences.py
+++ b/scripts/noreferences.py
@@ -650,11 +650,19 @@
pywikibot.output(u'Skipping %s (locked page)' %
page.title())
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/nowcommons.py b/scripts/nowcommons.py
index ef6d436..939f481 100644
--- a/scripts/nowcommons.py
+++ b/scripts/nowcommons.py
@@ -429,10 +429,19 @@
continue
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-') and \
arg[1:] in ('always', 'replace', 'replaceloose', 'replaceonly'):
options[arg[1:]] = True
diff --git a/scripts/pagefromfile.py b/scripts/pagefromfile.py
index 98df996..2d268bc 100644
--- a/scripts/pagefromfile.py
+++ b/scripts/pagefromfile.py
@@ -235,7 +235,15 @@
return location.end(), title, contents
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Adapt these to the file you are using. 'pageStartMarker' and
# 'pageEndMarker' are the beginning and end of each entry. Take text that
# should be included and does not occur elsewhere in the text.
@@ -250,7 +258,8 @@
include = False
notitle = False
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith("-start:"):
pageStartMarker = arg[7:]
elif arg.startswith("-end:"):
diff --git a/scripts/protect.py b/scripts/protect.py
index 7a20ed1..717a9da 100644
--- a/scripts/protect.py
+++ b/scripts/protect.py
@@ -138,6 +138,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
message_properties = {}
generator = None
diff --git a/scripts/redirect.py b/scripts/redirect.py
index d6eb487..8790a68 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -711,6 +711,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
# what the bot should do (either resolve double redirs, or delete broken
# redirs)
@@ -731,7 +739,8 @@
until = ''
number = None
step = None
- for arg in pywikibot.handleArgs(*args):
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg == 'double' or arg == 'do':
action = 'double'
elif arg == 'broken' or arg == 'br':
diff --git a/scripts/reflinks.py b/scripts/reflinks.py
index 477b668..8c1cc84 100644
--- a/scripts/reflinks.py
+++ b/scripts/reflinks.py
@@ -781,14 +781,22 @@
return
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
xmlFilename = None
options = {}
namespaces = []
generator = None
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/replace.py b/scripts/replace.py
index 5c9e750..f0ba76e 100755
--- a/scripts/replace.py
+++ b/scripts/replace.py
@@ -438,6 +438,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
add_cat = None
gen = None
# summary message
diff --git a/scripts/revertbot.py b/scripts/revertbot.py
index 1b6d54e..931646b 100644
--- a/scripts/revertbot.py
+++ b/scripts/revertbot.py
@@ -132,10 +132,19 @@
return False
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
user = None
rollback = False
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-username'):
if len(arg) == 9:
user = pywikibot.input(
diff --git a/scripts/script_wui.py b/scripts/script_wui.py
index 9d0aab2..a4e7c7d 100755
--- a/scripts/script_wui.py
+++ b/scripts/script_wui.py
@@ -274,10 +274,18 @@
# comment = pywikibot.translate(self.site.lang,
bot_config['msg']))
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
global __simulate, __sys_argv
- for arg in pywikibot.handleArgs():
+ for arg in pywikibot.handleArgs(*args):
pywikibot.showHelp('script_wui')
return
@@ -295,5 +303,4 @@
raise
if __name__ == "__main__":
- # run bot
main()
diff --git a/scripts/selflink.py b/scripts/selflink.py
index 8ce58e2..bc59411 100644
--- a/scripts/selflink.py
+++ b/scripts/selflink.py
@@ -183,11 +183,19 @@
self.treat(page)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# Page generator
gen = None
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = GeneratorFactory()
botArgs = {}
@@ -207,7 +215,4 @@
bot.run()
if __name__ == "__main__":
- try:
- main()
- finally:
- pywikibot.stopme()
+ main()
diff --git a/scripts/solve_disambiguation.py b/scripts/solve_disambiguation.py
index c6d86a2..e3070d7 100644
--- a/scripts/solve_disambiguation.py
+++ b/scripts/solve_disambiguation.py
@@ -1006,6 +1006,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# the option that's always selected when the bot wonders what to do with
# a link. If it's None, the user is prompted (default behaviour).
always = None
diff --git a/scripts/spamremove.py b/scripts/spamremove.py
index 57c1b53..780f923 100755
--- a/scripts/spamremove.py
+++ b/scripts/spamremove.py
@@ -37,11 +37,19 @@
from pywikibot.editor import TextEditor
-def main():
+def main(*args):
+ """
+ Process command line arguments and perform task.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
always = False
namespaces = []
spamSite = ''
- for arg in pywikibot.handleArgs():
+ for arg in pywikibot.handleArgs(*args):
if arg == "-always":
always = True
elif arg.startswith('-namespace:'):
diff --git a/scripts/template.py b/scripts/template.py
index 48763cc..33728d3 100755
--- a/scripts/template.py
+++ b/scripts/template.py
@@ -292,6 +292,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
templateNames = []
templates = {}
options = {}
diff --git a/scripts/templatecount.py b/scripts/templatecount.py
index cd2aa01..3664fcc 100644
--- a/scripts/templatecount.py
+++ b/scripts/templatecount.py
@@ -107,12 +107,21 @@
yield template, transcludingArray
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
operation = None
argsList = []
namespaces = []
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg in ('-count', '-list'):
operation = arg[1:]
elif arg.startswith('-namespace:'):
diff --git a/scripts/touch.py b/scripts/touch.py
index 4caabe1..e309565 100755
--- a/scripts/touch.py
+++ b/scripts/touch.py
@@ -68,6 +68,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
gen = None
options = {}
diff --git a/scripts/transferbot.py b/scripts/transferbot.py
index 12590c1..ab735c5 100644
--- a/scripts/transferbot.py
+++ b/scripts/transferbot.py
@@ -77,8 +77,16 @@
pass
-def main():
- tohandle = pywikibot.handleArgs()
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
+ local_args = pywikibot.handleArgs(*args)
fromsite = pywikibot.Site()
tolang = fromsite.code
@@ -89,7 +97,7 @@
genFactory = pagegenerators.GeneratorFactory()
- for arg in tohandle:
+ for arg in local_args:
if genFactory.handleArg(arg):
gen_args.append(arg)
continue
diff --git a/scripts/unlink.py b/scripts/unlink.py
index b9525ce..1a8161b 100755
--- a/scripts/unlink.py
+++ b/scripts/unlink.py
@@ -164,13 +164,22 @@
pywikibot.output(u"Page %s is locked?!" % page.title(asLink=True))
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
# This temporary string is used to read the title
# of the page that should be unlinked.
page_title = None
options = {}
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-namespace:'):
if 'namespaces' not in options:
options['namespaces'] = []
diff --git a/scripts/unusedfiles.py b/scripts/unusedfiles.py
index 3125e95..7dcb5a2 100644
--- a/scripts/unusedfiles.py
+++ b/scripts/unusedfiles.py
@@ -103,10 +103,19 @@
self.userPut(page, oldtext, text, comment=self.summary)
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
options = {}
- for arg in pywikibot.handleArgs():
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg == '-always':
options['always'] = True
diff --git a/scripts/upload.py b/scripts/upload.py
index aab2f62..4c45a80 100755
--- a/scripts/upload.py
+++ b/scripts/upload.py
@@ -319,6 +319,14 @@
def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
url = u''
description = []
keepFilename = False
@@ -331,7 +339,9 @@
# process all global bot args
# returns a list of non-global args, i.e. args for upload.py
- for arg in pywikibot.handleArgs(*args):
+ local_args = pywikibot.handleArgs(*args)
+
+ for arg in local_args:
if arg:
if arg.startswith('-keep'):
keepFilename = True
diff --git a/scripts/watchlist.py b/scripts/watchlist.py
index fcb2200..37728fd 100755
--- a/scripts/watchlist.py
+++ b/scripts/watchlist.py
@@ -133,9 +133,16 @@
refresh(pywikibot.Site(lang, family))
-def main():
- """ Script entry point. """
- local_args = pywikibot.handleArgs()
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
+ local_args = pywikibot.handleArgs(*args)
all = False
new = False
sysop = False
@@ -160,7 +167,4 @@
pywikibot.output(pageName, toStdout=True)
if __name__ == "__main__":
- try:
- main()
- finally:
- pywikibot.stopme()
+ main()
diff --git a/scripts/weblinkchecker.py b/scripts/weblinkchecker.py
index 2a4d991..0bc4fde 100644
--- a/scripts/weblinkchecker.py
+++ b/scripts/weblinkchecker.py
@@ -801,7 +801,15 @@
return c.check()
-def main():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
gen = None
xmlFilename = None
# Which namespaces should be processed?
@@ -811,7 +819,7 @@
day = 7
# Process global args and prepare generator args parser
- local_args = pywikibot.handleArgs()
+ local_args = pywikibot.handleArgs(*args)
genFactory = pagegenerators.GeneratorFactory()
for arg in local_args:
diff --git a/scripts/welcome.py b/scripts/welcome.py
index c603eba..e8d2c2a 100644
--- a/scripts/welcome.py
+++ b/scripts/welcome.py
@@ -887,8 +887,17 @@
globalvar = Global()
-def main():
- for arg in pywikibot.handleArgs():
+def main(*args):
+ """
+ Process command line arguments and invoke bot.
+
+ If args is an empty list, sys.argv is used.
+
+ @param args: command line arguments
+ @type args: list of unicode
+ """
+ local_args = pywikibot.handleArgs(*args)
+ for arg in local_args:
if arg.startswith('-edit'):
if len(arg) == 5:
globalvar.attachEditCount = int(pywikibot.input(
diff --git a/tox.ini b/tox.ini
index 2049adb..804c874 100644
--- a/tox.ini
+++ b/tox.ini
@@ -48,6 +48,7 @@
./pywikibot/data/__init__.py \
./pywikibot/userinterfaces/transliteration.py \
./pywikibot/userinterfaces/terminal_interface.py \
+ ./scripts/category.py \
./scripts/claimit.py \
./scripts/coordinate_import.py \
./scripts/harvest_template.py \
--
To view, visit https://gerrit.wikimedia.org/r/165452
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I828ba3cf155fb6d3e052564d20768fdf9c3acc95
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits