jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/699721 )
Change subject: [IMPR] remove generator positional argument in several scripts
......................................................................
[IMPR] remove generator positional argument in several scripts
bot.BaseBot handles keyword generator parameter already
Change-Id: If950a2e02d6a4e1359736eda91ee6096ff691bbb
---
M scripts/basic.py
M scripts/claimit.py
M scripts/coordinate_import.py
M scripts/delete.py
M scripts/harvest_template.py
M scripts/illustrate_wikidata.py
M scripts/newitem.py
M scripts/protect.py
M scripts/touch.py
M scripts/weblinkchecker.py
10 files changed, 34 insertions(+), 58 deletions(-)
Approvals:
JJMC89: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/basic.py b/scripts/basic.py
index 461ad1e..096d2e4 100755
--- a/scripts/basic.py
+++ b/scripts/basic.py
@@ -87,12 +87,12 @@
summary_key = 'basic-changing'
- def __init__(self, generator, **kwargs) -> None:
+ def __init__(self, **kwargs) -> None:
"""
Initializer.
- :param generator: the page generator that determines on which pages
- to work
+ :keyword generator: the page generator that determines on which pages
+ to work. BasicBot assigns it to self.generator attribute.
:type generator: generator
"""
# Add your own options to the bot and set their defaults
@@ -105,9 +105,7 @@
})
# call initializer of the super class
- super().__init__(site=True, **kwargs)
- # assign the generator to the bot
- self.generator = generator
+ super().__init__(**kwargs)
def treat_page(self) -> None:
"""Load the given page, do some changes, and save
it."""
@@ -179,7 +177,7 @@
gen = gen_factory.getCombinedGenerator(preload=True)
if gen:
# pass generator and private options to the bot
- bot = BasicBot(gen, **options)
+ bot = BasicBot(generator=gen, **options)
bot.run() # guess what it does
else:
pywikibot.bot.suggest_help(missing_generator=True)
diff --git a/scripts/claimit.py b/scripts/claimit.py
index 40b8e26..299dd1d 100755
--- a/scripts/claimit.py
+++ b/scripts/claimit.py
@@ -65,20 +65,16 @@
use_from_page = None
- def __init__(self, generator, claims, exists_arg='') -> None:
- """
- Initializer.
+ def __init__(self, claims, exists_arg='', **kwargs) -> None:
+ """Initializer.
- :param generator: A generator that yields Page objects.
- :type generator: iterator
:param claims: A list of wikidata claims
:type claims: list
:param exists_arg: String specifying how to handle duplicate claims
:type exists_arg: str
"""
self.available_options['always'] = True
- super().__init__()
- self.generator = generator
+ super().__init__(**kwargs)
self.claims = claims
self.exists_arg = ''.join(x for x in exists_arg.lower() if x in
'pqst')
self.cacheSources()
@@ -159,7 +155,7 @@
pywikibot.bot.suggest_help(missing_generator=True)
return
- bot = ClaimRobot(generator, claims, exists_arg)
+ bot = ClaimRobot(claims, exists_arg, generator=generator)
bot.run()
diff --git a/scripts/coordinate_import.py b/scripts/coordinate_import.py
index d4a9b16..377ce20 100755
--- a/scripts/coordinate_import.py
+++ b/scripts/coordinate_import.py
@@ -57,15 +57,10 @@
use_from_page = None
- def __init__(self, generator, **kwargs) -> None:
- """
- Initializer.
-
- :param generator: A generator that yields Page objects.
- """
+ def __init__(self, **kwargs) -> None:
+ """Initializer."""
self.available_options['create'] = False
super().__init__(**kwargs)
- self.generator = generator
self.cacheSources()
self.prop = 'P625'
self.create_missing_item = self.opt.create
@@ -172,7 +167,7 @@
generator = generator_factory.getCombinedGenerator(preload=True)
if generator:
- coordbot = CoordImportRobot(generator, create=create_new)
+ coordbot = CoordImportRobot(generator=generator, create=create_new)
coordbot.run()
else:
pywikibot.bot.suggest_help(missing_generator=True)
diff --git a/scripts/delete.py b/scripts/delete.py
index dfb0b96..7dacb8b 100755
--- a/scripts/delete.py
+++ b/scripts/delete.py
@@ -127,12 +127,9 @@
"""This robot allows deletion of pages en masse."""
- def __init__(self, generator, summary: str, **kwargs) -> None:
- """
- Initializer.
+ def __init__(self, summary: str, **kwargs) -> None:
+ """Initializer.
- :param generator: the pages to work on
- :type generator: iterable
:param summary: the reason for the (un)deletion
"""
self.available_options.update({
@@ -140,7 +137,7 @@
'isorphan': 0,
'orphansonly': [],
})
- super().__init__(generator=generator, **kwargs)
+ super().__init__(**kwargs)
self.summary = summary
# Upcast pages to PageWithRefs()
@@ -289,7 +286,7 @@
summary = pywikibot.input('Enter a reason for the {}deletion:'
.format(['', 'un'][options
.get('undelete', False)]))
- bot = DeletionRobot(generator, summary, **options)
+ bot = DeletionRobot(summary, generator=generator, **options)
bot.run()
else:
pywikibot.bot.suggest_help(missing_generator=True)
diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index 3e628dd..8dab7a4 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -136,12 +136,9 @@
"""A bot to add Wikidata claims."""
- def __init__(self, generator, template_title, fields, **kwargs) -> None:
- """
- Initializer.
+ def __init__(self, template_title, fields, **kwargs) -> None:
+ """Initializer.
- :param generator: A generator that yields Page objects
- :type generator: iterator
:param template_title: The template to work on
:type template_title: str
:param fields: A dictionary of fields that are of use to us
@@ -165,7 +162,6 @@
'multi': False,
})
super().__init__(**kwargs)
- self.generator = generator
# TODO: Make it a list including the redirects to the template
self.fields = {}
for key, value in fields.items():
@@ -421,7 +417,7 @@
gen.handle_arg('-transcludes:' + template_title)
generator = gen.getCombinedGenerator(preload=True)
- bot = HarvestRobot(generator, template_title, fields, **options)
+ bot = HarvestRobot(template_title, fields, generator=generator, **options)
bot.run()
diff --git a/scripts/illustrate_wikidata.py b/scripts/illustrate_wikidata.py
index ea45b01..71c755f 100755
--- a/scripts/illustrate_wikidata.py
+++ b/scripts/illustrate_wikidata.py
@@ -28,17 +28,13 @@
"""A bot to add Wikidata image claims."""
- def __init__(self, generator, wdproperty='P18') -> None:
- """
- Initializer.
+ def __init__(self, wdproperty='P18', **kwargs) -> None:
+ """Initializer.
- :param generator: A generator that yields Page objects
- :type generator: generator
:param wdproperty: The property to add. Should be of type commonsMedia
:type wdproperty: str
"""
- super().__init__()
- self.generator = generator
+ super().__init__(**kwargs)
self.wdproperty = wdproperty
self.cacheSources()
@@ -109,7 +105,7 @@
pywikibot.bot.suggest_help(missing_generator=True)
return
- bot = IllustrateRobot(generator, wdproperty)
+ bot = IllustrateRobot(wdproperty, generator=generator)
bot.run()
diff --git a/scripts/newitem.py b/scripts/newitem.py
index c1e2876..2621957 100755
--- a/scripts/newitem.py
+++ b/scripts/newitem.py
@@ -48,7 +48,7 @@
treat_missing_item = True
- def __init__(self, generator, **kwargs) -> None:
+ def __init__(self, **kwargs) -> None:
"""Only accepts options defined in
available_options."""
self.available_options.update({
'always': True,
@@ -59,7 +59,6 @@
})
super().__init__(**kwargs)
- self.generator = generator
self._skipping_templates = {}
def setup(self) -> None:
@@ -215,7 +214,7 @@
pywikibot.bot.suggest_help(missing_generator=True)
return
- bot = NewItemRobot(generator, **options)
+ bot = NewItemRobot(generator=generator, **options)
if not bot.site.logged_in():
bot.site.login()
user = pywikibot.User(bot.site, bot.site.username())
diff --git a/scripts/protect.py b/scripts/protect.py
index 19ad1d6..a73bb5f 100755
--- a/scripts/protect.py
+++ b/scripts/protect.py
@@ -71,12 +71,10 @@
"""This bot allows protection of pages en masse."""
- def __init__(self, generator, protections, **kwargs):
+ def __init__(self, protections, **kwargs):
"""
Create a new ProtectionRobot.
- :param generator: the page generator
- :type generator: generator
:param protections: protections as a dict with "type":
"level"
:type protections: dict
:param kwargs: additional arguments directly feed to super().__init__()
@@ -86,7 +84,6 @@
'expiry': None,
})
super().__init__(**kwargs)
- self.generator = generator
self.protections = protections
def treat_page(self):
@@ -234,7 +231,8 @@
if not options.get('summary'):
options['summary'] = pywikibot.input(
'Enter a reason for the protection change:')
- bot = ProtectionRobot(generator, combined_protections, **options)
+ bot = ProtectionRobot(combined_protections, generator=generator,
+ **options)
bot.run()
else:
pywikibot.bot.suggest_help(missing_generator=True)
diff --git a/scripts/touch.py b/scripts/touch.py
index 2d52c26..2e693a6 100755
--- a/scripts/touch.py
+++ b/scripts/touch.py
@@ -45,12 +45,12 @@
"""Page touch bot."""
- def __init__(self, generator, **kwargs) -> None:
+ def __init__(self, **kwargs) -> None:
"""Initialize a TouchBot instance with the options and
generator."""
self.available_options.update({
'botflag': False,
})
- super().__init__(generator=generator, **kwargs)
+ super().__init__(**kwargs)
def treat(self, page) -> None:
"""Touch the given page."""
diff --git a/scripts/weblinkchecker.py b/scripts/weblinkchecker.py
index d7c4e25..9580710 100755
--- a/scripts/weblinkchecker.py
+++ b/scripts/weblinkchecker.py
@@ -563,9 +563,9 @@
It uses several LinkCheckThreads at once to process pages from generator.
"""
- def __init__(self, generator, HTTPignore=None, day=7, site=True):
+ def __init__(self, HTTPignore=None, day=7, **kwargs):
"""Initializer."""
- super().__init__(generator=generator, site=site)
+ super().__init__(**kwargs)
if config.report_dead_links_on_talk:
pywikibot.log('Starting talk page thread')
@@ -683,7 +683,8 @@
pageNumber = max(240, config.max_external_links * 2)
gen = pagegenerators.PreloadingGenerator(gen, groupsize=pageNumber)
gen = pagegenerators.RedirectFilterPageGenerator(gen)
- bot = WeblinkCheckerRobot(gen, HTTPignore, config.weblink_dead_days)
+ bot = WeblinkCheckerRobot(HTTPignore, config.weblink_dead_days,
+ generator=gen)
try:
bot.run()
except ImportError:
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/699721
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: If950a2e02d6a4e1359736eda91ee6096ff691bbb
Gerrit-Change-Number: 699721
Gerrit-PatchSet: 5
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki(a)aol.com>
Gerrit-Reviewer: JJMC89 <JJMC89.Wikimedia(a)gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged