Build Update for wikimedia/pywikibot-core
-------------------------------------
Build: #3604
Status: Errored
Duration: 28 minutes and 46 seconds
Commit: 2e63e23 (master)
Author: xqt
Message: [bugfix] Bot class arguments for constructor
Bot class arguments for constructor should be called as keyword argument
Bot class handles 'site' and ' always' as keyword arguments. In replace.py
instantiating the bot uses postional argument which breaks this rule and
derived bots may be break if not all (positional) arguments are given.
- instantiate ReplaceRobot with keyword arguments for 'always' and 'site'
handled by bot class to allow other bots to use this special bot.
- catch them with **kwargs
- remove unused and deprecated acceptall variable
- change parameter description for ReplaceRobot constructor, markup for epydoc
- move __init__ doc to class because doc strings of hidden methods aren't
shown in epydoc's documentation.
- this also solves the 2nd warning issue of https://gerrit.wikimedia.org/r/#/c/266321/
Bug: T125046
Bug: T125049
Change-Id: I23570783fda9f497a6f57aaa8f5e17895534af50
View the changeset: https://github.com/wikimedia/pywikibot-core/compare/352d9881bb76...2e63e235…
View the full build log and details: https://travis-ci.org/wikimedia/pywikibot-core/builds/157299307
--
You can configure recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications
jenkins-bot has submitted this change and it was merged.
Change subject: [bugfix] Bot class arguments for constructor
......................................................................
[bugfix] Bot class arguments for constructor
Bot class arguments for constructor should be called as keyword argument
Bot class handles 'site' and ' always' as keyword arguments. In replace.py
instantiating the bot uses postional argument which breaks this rule and
derived bots may be break if not all (positional) arguments are given.
- instantiate ReplaceRobot with keyword arguments for 'always' and 'site'
handled by bot class to allow other bots to use this special bot.
- catch them with **kwargs
- remove unused and deprecated acceptall variable
- change parameter description for ReplaceRobot constructor, markup for epydoc
- move __init__ doc to class because doc strings of hidden methods aren't
shown in epydoc's documentation.
- this also solves the 2nd warning issue of https://gerrit.wikimedia.org/r/#/c/266321/
Bug: T125046
Bug: T125049
Change-Id: I23570783fda9f497a6f57aaa8f5e17895534af50
---
M scripts/replace.py
1 file changed, 51 insertions(+), 47 deletions(-)
Approvals:
Mpaa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/replace.py b/scripts/replace.py
index 48fd15d..e03d935 100755
--- a/scripts/replace.py
+++ b/scripts/replace.py
@@ -128,7 +128,7 @@
"""
#
# (C) Daniel Herding, 2004-2012
-# (C) Pywikibot team, 2004-2015
+# (C) Pywikibot team, 2004-2016
#
# Distributed under the terms of the MIT license.
#
@@ -494,53 +494,58 @@
class ReplaceRobot(Bot):
- """A bot that can do text replacements."""
+ """A bot that can do text replacements.
+
+ @param generator: generator that yields Page objects
+ @type generator: generator
+ @param replacements: a list of Replacement instances or sequences of
+ length 2 with the original text (as a compiled regular expression)
+ and replacement text (as a string).
+ @type replacements: list
+ @param exceptions: a dictionary which defines when not to change an
+ occurrence. This dictionary can have these keys:
+
+ title
+ A list of regular expressions. All pages with titles that
+ are matched by one of these regular expressions are skipped.
+ text-contains
+ A list of regular expressions. All pages with text that
+ contains a part which is matched by one of these regular
+ expressions are skipped.
+ inside
+ A list of regular expressions. All occurrences are skipped which
+ lie within a text region which is matched by one of these
+ regular expressions.
+ inside-tags
+ A list of strings. These strings must be keys from the
+ exceptionRegexes dictionary in textlib.replaceExcept().
+
+ @type exceptions: dict
+ @param allowoverlap: when matches overlap, all of them are replaced.
+ @type allowoverlap: bool
+ @param recursive: Recurse replacement as long as possible.
+ @type recursice: bool
+ @warning: Be careful, this might lead to an infinite loop.
+ @param addedCat: category to be added to every page touched
+ @type addedCat: pywikibot.Category or str or None
+ @param sleep: slow down between processing multiple regexes
+ @type sleep: int
+ @param summary: Set the summary message text bypassing the default
+ @type summary: str
+ @keyword always: the user won't be prompted before changes are made
+ @type keyword: bool
+ @keyword site: Site the bot is working on.
+ @warning: site parameter should be passed to constructor.
+ Otherwise the bot takes the current site and warns the operator
+ about the missing site
+ """
@deprecated_args(acceptall='always')
def __init__(self, generator, replacements, exceptions={},
- always=False, allowoverlap=False, recursive=False,
- addedCat=None, sleep=None, summary='', site=None, **kwargs):
- """
- Constructor.
-
- Arguments:
- * generator - A generator that yields Page objects.
- * replacements - A list of Replacement instances or sequences of
- length 2 with the original text (as a compiled
- regular expression) and replacement text (as a
- string).
- * exceptions - A dictionary which defines when not to change an
- occurrence. See below.
- * always - If True, the user won't be prompted before changes
- are made.
- * allowoverlap - If True, when matches overlap, all of them are
- replaced.
- * addedCat - If set to a value, add this category to every page
- touched.
- It can be a string or a Category object.
-
- Structure of the exceptions dictionary:
- This dictionary can have these keys:
-
- title
- A list of regular expressions. All pages with titles that
- are matched by one of these regular expressions are skipped.
- text-contains
- A list of regular expressions. All pages with text that
- contains a part which is matched by one of these regular
- expressions are skipped.
- inside
- A list of regular expressions. All occurrences are skipped which
- lie within a text region which is matched by one of these
- regular expressions.
- inside-tags
- A list of strings. These strings must be keys from the
- exceptionRegexes dictionary in textlib.replaceExcept().
-
- """
+ allowoverlap=False, recursive=False, addedCat=None,
+ sleep=None, summary='', **kwargs):
+ """Constructor."""
super(ReplaceRobot, self).__init__(generator=generator,
- always=always,
- site=site,
**kwargs)
for i, replacement in enumerate(replacements):
@@ -554,7 +559,6 @@
replacement[1])
self.replacements = replacements
self.exceptions = exceptions
- self.acceptall = always # deprecated
self.allowoverlap = allowoverlap
self.recursive = recursive
@@ -1130,9 +1134,9 @@
return False
preloadingGen = pagegenerators.PreloadingGenerator(gen)
- bot = ReplaceRobot(preloadingGen, replacements, exceptions, acceptall,
+ bot = ReplaceRobot(preloadingGen, replacements, exceptions,
allowoverlap, recursive, add_cat, sleep, edit_summary,
- site)
+ always=acceptall, site=site)
site.login()
bot.run()
--
To view, visit https://gerrit.wikimedia.org/r/266998
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I23570783fda9f497a6f57aaa8f5e17895534af50
Gerrit-PatchSet: 9
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>