jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/492332 )
Change subject: Fix the regression occured after 08ad608
......................................................................
Fix the regression occured after 08ad608
`pywikibot` is only available if RuntimeError does not occure.
Bug: T216829
Change-Id: Iaf554db40e851f8e379ff42a0b28a4b5955873db
---
M pwb.py
1 file changed, 2 insertions(+), 1 deletion(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index a542908..369e789 100755
--- a/pwb.py
+++ b/pwb.py
@@ -188,7 +188,8 @@
# we need to re-start the entire process. Ask the user to do so.
print('Now, you have to re-execute the command to start your script.')
sys.exit(1)
-pwb = pywikibot
+else:
+ pwb = pywikibot
def main():
--
To view, visit https://gerrit.wikimedia.org/r/492332
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Iaf554db40e851f8e379ff42a0b28a4b5955873db
Gerrit-Change-Number: 492332
Gerrit-PatchSet: 3
Gerrit-Owner: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/492303 )
Change subject: pwb.py: Limit the try clause to the minimum amount of code necessary
......................................................................
pwb.py: Limit the try clause to the minimum amount of code necessary
This avoids masking bugs and makes the code easier to understand.
Change-Id: Ia16fe15018b0d5adcc8459854b80f54cb6bfe55e
---
M pwb.py
1 file changed, 9 insertions(+), 9 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index d6211ef..a542908 100755
--- a/pwb.py
+++ b/pwb.py
@@ -95,7 +95,7 @@
main_mod = types.ModuleType(str('__main__'))
sys.modules['__main__'] = main_mod
main_mod.__file__ = filename
- if sys.version_info[0] > 2:
+ if not PY2:
main_mod.__builtins__ = sys.modules['builtins']
else:
main_mod.__builtins__ = sys.modules['__builtin__']
@@ -166,16 +166,15 @@
args = sys.argv[(2 if filename else 1):]
# Search for user-config.py before creating one.
+# If successful, user-config.py already exists in one of the candidate
+# directories. See config2.py for details on search order.
+# Use env var to communicate to config2.py pwb.py location (bug T74918).
+_pwb_dir = os.path.split(__file__)[0]
+if sys.platform == 'win32' and PY2:
+ _pwb_dir = str(_pwb_dir)
+os.environ['PYWIKIBOT_DIR_PWB'] = _pwb_dir
try:
- # If successful, user-config.py already exists in one of the candidate
- # directories. See config2.py for details on search order.
- # Use env var to communicate to config2.py pwb.py location (bug T74918).
- _pwb_dir = os.path.split(__file__)[0]
- if sys.platform == 'win32' and sys.version_info[0] < 3:
- _pwb_dir = str(_pwb_dir)
- os.environ['PYWIKIBOT_DIR_PWB'] = _pwb_dir
import pywikibot
- pwb = pywikibot
except RuntimeError:
# user-config.py to be created
if filename is not None and not (filename.startswith('generate_')
@@ -189,6 +188,7 @@
# we need to re-start the entire process. Ask the user to do so.
print('Now, you have to re-execute the command to start your script.')
sys.exit(1)
+pwb = pywikibot
def main():
--
To view, visit https://gerrit.wikimedia.org/r/492303
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia16fe15018b0d5adcc8459854b80f54cb6bfe55e
Gerrit-Change-Number: 492303
Gerrit-PatchSet: 3
Gerrit-Owner: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/491739 )
Change subject: [IMPR] Find better and more clear variable names for replace_links
......................................................................
[IMPR] Find better and more clear variable names for replace_links
- extracted from
https://gerrit.wikimedia.org/r/#/c/pywikibot/core/+/491673/
Change-Id: Id5dabe38f6b761573e5e0761fcdba7aed847c98b
---
M pywikibot/textlib.py
1 file changed, 61 insertions(+), 61 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 83d06df..1c71ed1 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -657,13 +657,13 @@
else:
return source
- def sequence_replace(link, text, groups, rng):
- if replace_items[0] == link:
- return replace_items[1]
+ def replace_callable(link, text, groups, rng):
+ if replace_list[0] == link:
+ return replace_list[1]
else:
return None
- def check_replacement_class(replacement):
+ def check_classes(replacement):
"""Normalize the replacement into a list."""
if not isinstance(replacement, (pywikibot.Page, pywikibot.Link)):
raise ValueError('The replacement must be None, False, '
@@ -680,20 +680,20 @@
if len(replace) != 2:
raise ValueError('When used as a sequence, the "replace" '
'argument must contain exactly 2 items.')
- replace_items = [to_link(replace[0]), replace[1]]
- if not isinstance(replace_items[0], pywikibot.Link):
+ replace_list = [to_link(replace[0]), replace[1]]
+ if not isinstance(replace_list[0], pywikibot.Link):
raise ValueError(
'The original value must be either basestring, Link or Page '
- 'but is "{0}"'.format(type(replace_items[0])))
- if replace_items[1] is not False and replace_items[1] is not None:
- if isinstance(replace_items[1], basestring):
- replace_items[1] = pywikibot.Page(site, replace_items[1])
- check_replacement_class(replace_items[0])
- if replace_items[0].site != replace_items[1].site:
+ 'but is "{0}"'.format(type(replace_list[0])))
+ if replace_list[1] is not False and replace_list[1] is not None:
+ if isinstance(replace_list[1], basestring):
+ replace_list[1] = pywikibot.Page(site, replace_list[1])
+ check_classes(replace_list[0])
+ if replace_list[0].site != replace_list[1].site:
raise ValueError('Both pages in the "replace" argument '
'must belong to the same site.')
- site = replace_items[0].site
- replace = sequence_replace
+ site = replace_list[0].site
+ replace = replace_callable
elif site is None:
raise ValueError('If "replace" is not a tuple or list of pages, '
'the "site" argument must be provided.')
@@ -728,7 +728,7 @@
end = extended_match.end()
else:
end = m.end()
- rng = (m.start(), end)
+ start = m.start()
# Since this point the m variable shouldn't be used as it may not
# contain all contents
del m
@@ -738,101 +738,101 @@
label=groups['label'])
except pywikibot.SiteDefinitionError:
# unrecognized iw prefix
- curpos = rng[1]
+ curpos = end
continue
# ignore interwiki links
if link.site != site:
- curpos = rng[1]
+ curpos = end
continue
# Check whether the link found should be replaced.
# Either None, False or tuple(Link, bool)
- replacement = replace(link, text, groups.copy(), rng)
- if replacement is None:
- curpos = rng[1]
+ new_link = replace(link, text, groups.copy(), (start, end))
+ if new_link is None:
+ curpos = end
continue
# The link looks like this:
- # [[page_title|link_text]]trailing_chars
+ # [[page_title|new_label]]new_linktrail
page_title = groups['title']
- link_text = groups['label']
+ new_label = groups['label']
- if not link_text:
- # or like this: [[page_title]]trailing_chars
- link_text = page_title
+ if not new_label:
+ # or like this: [[page_title]]new_linktrail
+ new_label = page_title
# remove preleading ":" from the link text
- if link_text[0] == ':':
- link_text = link_text[1:]
- trailing_chars = groups['linktrail']
- if trailing_chars:
- link_text += trailing_chars
+ if new_label[0] == ':':
+ new_label = new_label[1:]
+ new_linktrail = groups['linktrail']
+ if new_linktrail:
+ new_label += new_linktrail
- if replacement is False:
+ if new_link is False:
# unlink - we remove the section if there's any
- assert isinstance(link_text, unicode), 'link text must be unicode.'
- replacement = link_text
- if isinstance(replacement, unicode):
+ assert isinstance(new_label, unicode), 'link text must be unicode.'
+ new_link = new_label
+ if isinstance(new_link, unicode):
# Nothing good can come out of the fact that bytes is returned so
# force unicode
- text = text[:rng[0]] + replacement + text[rng[1]:]
+ text = text[:start] + new_link + text[end:]
# Make sure that next time around we will not find this same hit.
- curpos = rng[0] + len(replacement)
+ curpos = start + len(new_link)
continue
- elif isinstance(replacement, bytes):
+ elif isinstance(new_link, bytes):
raise ValueError('The result must be unicode (str in Python 3) '
'and not bytes (str in Python 2).')
# Verify that it's either Link, Page or basestring
- check_replacement_class(replacement)
+ check_classes(new_link)
# Use section and label if it's a Link and not otherwise
- if isinstance(replacement, pywikibot.Link):
+ if isinstance(new_link, pywikibot.Link):
is_link = True
else:
- replacement = replacement._link
+ new_link = new_link._link
is_link = False
- new_page_title = replacement.canonical_title()
+ new_title = new_link.canonical_title()
if is_link:
# Use link's label
- link_text = replacement.anchor
- must_piped = link_text is not None
- section = replacement.section
+ new_label = new_link.anchor
+ must_piped = new_label is not None
+ new_section = new_link.section
else:
must_piped = True
- section = groups['section']
+ new_section = groups['section']
- if section:
- new_page_title += '#' + section
- if link_text is None:
- link_text = new_page_title
+ if new_section:
+ new_title += '#' + new_section
+ if new_label is None:
+ new_label = new_title
# Parse the link text and check if it points to the same page
- parsed_link_text = pywikibot.Link(link_text, replacement.site)
+ parsed_new_label = pywikibot.Link(new_label, new_link.site)
try:
- parsed_link_text.parse()
+ parsed_new_label.parse()
except InvalidTitle:
pass
else:
- parsed_link_title = title_section(parsed_link_text)
- replacement_title = title_section(replacement)
+ parsed_link_title = title_section(parsed_new_label)
+ new_link_title = title_section(new_link)
# compare title, but only with parts if linktrail works
if not linktrail.sub('',
- parsed_link_title[len(replacement_title):]):
+ parsed_link_title[len(new_link_title):]):
# TODO: This must also compare everything that was used as a
# prefix (in case insensitive)
must_piped = (
- not parsed_link_title.startswith(replacement_title)
- or parsed_link_text.namespace != replacement.namespace)
+ not parsed_link_title.startswith(new_link_title)
+ or parsed_new_label.namespace != new_link.namespace)
if must_piped:
- newlink = '[[{0}|{1}]]'.format(new_page_title, link_text)
+ new_text = '[[{0}|{1}]]'.format(new_title, new_label)
else:
- newlink = '[[{0}]]{1}'.format(link_text[:len(new_page_title)],
- link_text[len(new_page_title):])
- text = text[:rng[0]] + newlink + text[rng[1]:]
+ new_text = '[[{0}]]{1}'.format(new_label[:len(new_title)],
+ new_label[len(new_title):])
+ text = text[:start] + new_text + text[end:]
# Make sure that next time around we will not find this same hit.
- curpos = rng[0] + len(newlink)
+ curpos = start + len(new_text)
return text
--
To view, visit https://gerrit.wikimedia.org/r/491739
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Id5dabe38f6b761573e5e0761fcdba7aed847c98b
Gerrit-Change-Number: 491739
Gerrit-PatchSet: 5
Gerrit-Owner: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: D3r1ck01 <alangiderick(a)gmail.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Framawiki <framawiki(a)tools.wmflabs.org>
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: Zhuyifei1999 <zhuyifei1999(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/477213 )
Change subject: [doc] Update doc to use site.mw_version instead of MediaWikiVersion
......................................................................
[doc] Update doc to use site.mw_version instead of MediaWikiVersion
Also use bare version/test_version string in site_tests
because self._version is a site.mw_version
Change-Id: Ia8c8864150967890e531c88a1892656aaf23462f
---
M pywikibot/family.py
M pywikibot/site.py
M tests/site_tests.py
3 files changed, 5 insertions(+), 6 deletions(-)
Approvals:
Dvorapa: Looks good to me, but someone else must approve
Dalba: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/family.py b/pywikibot/family.py
index bd769bb..331a0f2 100644
--- a/pywikibot/family.py
+++ b/pywikibot/family.py
@@ -1322,7 +1322,7 @@
def version(self, code):
"""Return MediaWiki version number as a string.
- Use L{pywikibot.tools.MediaWikiVersion} to compare version strings.
+ Use L{pywikibot.site.mw_version} to compare version strings.
"""
# Here we return the latest mw release for downloading
if not hasattr(self, '_version'):
@@ -1356,7 +1356,7 @@
def versionnumber(self, code):
"""DEPRECATED, use version() instead.
- Use L{pywikibot.tools.MediaWikiVersion} to compare version strings.
+ Use L{pywikibot.site.mw_version} to compare version strings.
Return an int identifying MediaWiki version.
Currently this is implemented as returning the minor version
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 0a2c5c6..051c458 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -2742,7 +2742,7 @@
Return live project version number as a string.
This overwrites the corresponding family method for APISite class. Use
- L{pywikibot.tools.MediaWikiVersion} to compare MediaWiki versions.
+ L{pywikibot.site.mw_version} to compare MediaWiki versions.
"""
version = self.force_version()
if not version:
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 211f0e8..3b94764 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -25,7 +25,6 @@
from pywikibot.data import api
from pywikibot.exceptions import HiddenKeyError
from pywikibot.tools import (
- MediaWikiVersion,
PY2,
StringTypes as basestring,
suppress_warnings,
@@ -2227,12 +2226,12 @@
def _test_tokens(self, version, test_version, additional_token):
"""Test tokens."""
- if version and self._version < MediaWikiVersion(version):
+ if version and self._version < version:
raise unittest.SkipTest(
'Site {} version {} is too low for this tests.'
.format(self.mysite, self._version))
- if version and self._version < MediaWikiVersion(test_version):
+ if version and self._version < test_version:
raise unittest.SkipTest(
'Site {} version {} is too low for this tests.'
.format(self.mysite, self._version))
--
To view, visit https://gerrit.wikimedia.org/r/477213
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia8c8864150967890e531c88a1892656aaf23462f
Gerrit-Change-Number: 477213
Gerrit-PatchSet: 5
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/491543 )
Change subject: aspects.RequireUserMixin: Skip tests if the database is locked
......................................................................
aspects.RequireUserMixin: Skip tests if the database is locked
Since the error occures during login, any test that requires user login
should be skipped.
Move the skip routine of TestPageUserAction.setUpClass into RequireUserMixin.
Bug: T216529
Change-Id: I35c3f345d67eea3c760af01dae29a3f850c96434
---
M tests/aspects.py
M tests/page_tests.py
2 files changed, 13 insertions(+), 19 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/aspects.py b/tests/aspects.py
index 662c44f..f0045e6 100644
--- a/tests/aspects.py
+++ b/tests/aspects.py
@@ -627,23 +627,29 @@
sysop = hasattr(cls, 'sysop') and cls.sysop
- for site in cls.sites.values():
- cls.require_site_user(site['family'], site['code'], sysop)
+ for site_dict in cls.sites.values():
+ cls.require_site_user(
+ site_dict['family'], site_dict['code'], sysop)
if hasattr(cls, 'oauth') and cls.oauth:
continue
+ site = site_dict['site']
+
+ if site.siteinfo['readonly']:
+ raise unittest.SkipTest(
+ 'Site {} has readonly state: {}'.format(
+ site, site.siteinfo.get('readonlyreason', '')))
+
try:
- site['site'].login(sysop)
+ site.login(sysop)
except NoUsername:
pass
- if not site['site'].user():
+ if not site.user():
raise unittest.SkipTest(
'{}: Not able to login to {} as {}'
- .format(cls.__name__,
- 'sysop' if sysop else 'bot',
- site['site']))
+ .format(cls.__name__, 'sysop' if sysop else 'bot', site))
def setUp(self):
"""
diff --git a/tests/page_tests.py b/tests/page_tests.py
index ab7fd24..0dbd553 100644
--- a/tests/page_tests.py
+++ b/tests/page_tests.py
@@ -972,18 +972,6 @@
user = True
- @classmethod
- def setUpClass(cls):
- """Set up the test class.
-
- Check whether the site is write protected and skip the tests then.
- """
- super(TestPageUserAction, cls).setUpClass()
- site = cls.get_site()
- if site.siteinfo['readonly']:
- raise unittest.SkipTest('Site {} has readonly state: {}'.format(
- site, site.siteinfo.get('readonlyreason', '')))
-
def test_purge(self):
"""Test purging the mainpage."""
mainpage = self.get_mainpage()
--
To view, visit https://gerrit.wikimedia.org/r/491543
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I35c3f345d67eea3c760af01dae29a3f850c96434
Gerrit-Change-Number: 491543
Gerrit-PatchSet: 3
Gerrit-Owner: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/491395 )
Change subject: [IMPR] Minor improvements of noreferences.py script
......................................................................
[IMPR] Minor improvements of noreferences.py script
* Removed namespace param as it is already included
by pagegenerators
* Added default comment for non-default params
* Changed copyright for Pywikibot team
Change-Id: I0e4499d5c55e8c430340a5b64d9c478f9a35666d
---
M scripts/noreferences.py
1 file changed, 7 insertions(+), 11 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/noreferences.py b/scripts/noreferences.py
index 1287795..e096749 100755
--- a/scripts/noreferences.py
+++ b/scripts/noreferences.py
@@ -11,19 +11,15 @@
¶ms;
- -xml Retrieve information from a local XML dump (pages-articles
- or pages-meta-current, see https://dumps.wikimedia.org).
- Argument can also be given as "-xml:filename".
+Furthermore, the following command line parameters are supported:
- -namespace:n Number or name of namespace to process. The parameter can be
- used multiple times. It works in combination with all other
- parameters, except for the -start parameter. If you e.g.
- want to iterate over all categories starting at M, use
- -start:Category:M.
+-xml Retrieve information from a local XML dump (pages-articles
+ or pages-meta-current, see https://dumps.wikimedia.org).
+ Argument can also be given as "-xml:filename".
- -always Don't prompt you for each replacement.
+-always Don't prompt you for each replacement.
- -quiet Use this option to get less output
+-quiet Use this option to get less output
If neither a page title nor a page generator is given, it takes all pages from
the default maintenance category.
@@ -34,7 +30,7 @@
a list of affected articles
"""
#
-# (C) Pywikibot team, 2007-2018
+# (C) Pywikibot team, 2007-2019
#
# Distributed under the terms of the MIT license.
#
--
To view, visit https://gerrit.wikimedia.org/r/491395
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I0e4499d5c55e8c430340a5b64d9c478f9a35666d
Gerrit-Change-Number: 491395
Gerrit-PatchSet: 4
Gerrit-Owner: Zoranzoki21 <zorandori4444(a)gmail.com>
Gerrit-Reviewer: D3r1ck01 <alangiderick(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: Zoranzoki21 <zorandori4444(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/491390 )
Change subject: [IMPR] watchlist.py: Minor improvisation of documentation
......................................................................
[IMPR] watchlist.py: Minor improvisation of documentation
* Fixed inline comments
* Updated copyright year
Change-Id: Id618b2d89db8a9a85c887c5bdf88b7260d0a7973
---
M scripts/watchlist.py
1 file changed, 3 insertions(+), 3 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/watchlist.py b/scripts/watchlist.py
index e9aa687..145b016 100755
--- a/scripts/watchlist.py
+++ b/scripts/watchlist.py
@@ -11,14 +11,14 @@
Command line options:
- -all - Reloads watchlists for all wikis where a watchlist is already
+-all Reloads watchlists for all wikis where a watchlist is already
present
- -new - Load watchlists for all wikis where accounts is setting in
+-new Load watchlists for all wikis where accounts is setting in
user-config.py
"""
#
# (C) Daniel Herding, 2005
-# (C) Pywikibot team, 2005-2018
+# (C) Pywikibot team, 2005-2019
#
# Distributed under the terms of the MIT license.
#
--
To view, visit https://gerrit.wikimedia.org/r/491390
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Id618b2d89db8a9a85c887c5bdf88b7260d0a7973
Gerrit-Change-Number: 491390
Gerrit-PatchSet: 2
Gerrit-Owner: Zoranzoki21 <zorandori4444(a)gmail.com>
Gerrit-Reviewer: D3r1ck01 <alangiderick(a)gmail.com>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: Zoranzoki21 <zorandori4444(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)