jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/496796 )
Change subject: [IMPR] Start the script if its name is similar to the given script name.
......................................................................
[IMPR] Start the script if its name is similar to the given script name.
With I0fb163eef misspelled scripts are
offered to the operator to choose the right one.
If only one script is found, start this without asking the bot owner
but give him a notice and wait a bit to let it be cancelled.
Note: I0fb163eef must be merged first
Bug: T217195
Change-Id: I4b4873e7172d98f1c7d91ef76eea8d6f775809ee
---
M pwb.py
1 file changed, 18 insertions(+), 5 deletions(-)
Approvals:
Szynal: Looks good to me, but someone else must approve
Dvorapa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index 0fefb5a..d21d2d4 100755
--- a/pwb.py
+++ b/pwb.py
@@ -20,6 +20,7 @@
from importlib import import_module
import os
import sys
+from time import sleep
import types
from warnings import warn
@@ -170,8 +171,9 @@
def find_alternates(filename, script_paths):
"""Search for similar filenames in the given script paths."""
- from pywikibot import input_choice
+ from pywikibot import input_choice, output
from pywikibot.bot import ShowingListOption, QuitKeyboardInterrupt
+ from pywikibot.tools.formatter import color_format
print('ERROR: {} not found! Misspelling?'.format(filename),
file=sys.stderr)
@@ -190,16 +192,27 @@
if not similar_scripts:
return None
- msg = '\nThe most similar script{}:'.format(
- ' is' if len(similar_scripts) == 1 else 's are')
- alternatives = ShowingListOption(similar_scripts, pre=msg, post='')
+ if len(similar_scripts) == 1:
+ script = similar_scripts[0]
+ wait_time = 5
+ output(color_format(
+ 'NOTE: Starting the most similar script '
+ '{lightyellow}{}.py{default}\n'
+ ' in {} seconds; type CTRL-C to stop.',
+ script, wait_time))
+ try:
+ sleep(wait_time) # Wait a bit to let it be cancelled
+ except KeyboardInterrupt:
+ return None
+ return scripts[script]
+ msg = '\nThe most similar scripts are:'
+ alternatives = ShowingListOption(similar_scripts, pre=msg, post='')
try:
prefix, script = input_choice('Which script to be run:',
alternatives, default='1')
except QuitKeyboardInterrupt:
return None
-
print()
return scripts[script[0]]
--
To view, visit https://gerrit.wikimedia.org/r/496796
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: I4b4873e7172d98f1c7d91ef76eea8d6f775809ee
Gerrit-Change-Number: 496796
Gerrit-PatchSet: 11
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Szynal <szynallo(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/496056 )
Change subject: [IMPR] Let the operator choose misspelled script
......................................................................
[IMPR] Let the operator choose misspelled script
- Move code part of finding alternatives of misspelled script
to new functions find_alternates
- Create a dictionary of all scripts found in all script paths
with script name as a key and the path as its value
- use ShowingListOption class to show the list of matching
scripts and let the operator have the choice to choose one of them
or to quit the script
Note: Idf0af67ae must be merged first
Bug: T217195
Change-Id: I0fb163eef3ea3b0ab18782470d4cba4fb0cb6f6e
---
M pwb.py
1 file changed, 37 insertions(+), 21 deletions(-)
Approvals:
Dvorapa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index 36d2b7b..0fefb5a 100755
--- a/pwb.py
+++ b/pwb.py
@@ -168,6 +168,42 @@
sys.exit(1)
+def find_alternates(filename, script_paths):
+ """Search for similar filenames in the given script paths."""
+ from pywikibot import input_choice
+ from pywikibot.bot import ShowingListOption, QuitKeyboardInterrupt
+
+ print('ERROR: {} not found! Misspelling?'.format(filename),
+ file=sys.stderr)
+
+ scripts = {}
+ for file_package in script_paths:
+ path = file_package.split('.')
+ for script_name in os.listdir(os.path.join(*path)):
+ # remove .py for better matching
+ name, _, suffix = script_name.rpartition('.')
+ if suffix == 'py' and not name.startswith('__'):
+ scripts[name] = os.path.join(*(path + [script_name]))
+
+ filename = filename[:-3]
+ similar_scripts = get_close_matches(filename, scripts, n=10, cutoff=0.7)
+ if not similar_scripts:
+ return None
+
+ msg = '\nThe most similar script{}:'.format(
+ ' is' if len(similar_scripts) == 1 else 's are')
+ alternatives = ShowingListOption(similar_scripts, pre=msg, post='')
+
+ try:
+ prefix, script = input_choice('Which script to be run:',
+ alternatives, default='1')
+ except QuitKeyboardInterrupt:
+ return None
+
+ print()
+ return scripts[script[0]]
+
+
def find_filename(filename):
"""Search for the filename in the given script paths."""
from pywikibot import config
@@ -191,27 +227,7 @@
filename = testpath
break
else:
- print('ERROR: {} not found! Misspelling?'.format(filename),
- file=sys.stderr)
-
- scripts = {}
- for file_package in script_paths:
- path = file_package.split('.')
- for script_name in os.listdir(os.path.join(*path)):
- if (script_name.endswith('.py')
- and not script_name.startswith('__')):
- # remove .py for better matching
- scripts[script_name[:-3]] = os.path.join(
- *(path + [script_name]))
-
- similar_scripts = get_close_matches(filename[:-3], scripts,
- n=10, cutoff=0.7)
- if similar_scripts:
- print('\nThe most similar script{}:'
- .format(' is' if len(similar_scripts) == 1
- else 's are'))
- print('\t' + '.py\n\t'.join(similar_scripts) + '.py')
- return None
+ filename = find_alternates(filename, script_paths)
return filename
--
To view, visit https://gerrit.wikimedia.org/r/496056
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: I0fb163eef3ea3b0ab18782470d4cba4fb0cb6f6e
Gerrit-Change-Number: 496056
Gerrit-PatchSet: 11
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki(a)aol.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/510077 )
Change subject: [IMPR] Reduce code complexity of pwb.main for further improvements
......................................................................
[IMPR] Reduce code complexity of pwb.main for further improvements
Introduce a new function find_filename to look for the given filename
and return its path. The code was moved from main().
This change will be used for further improvements.
Change-Id: Idf0af67ae2ca0513cdba1acfb60ef956dcc85b4e
---
M pwb.py
1 file changed, 50 insertions(+), 38 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index a07690a..36d2b7b 100755
--- a/pwb.py
+++ b/pwb.py
@@ -168,6 +168,53 @@
sys.exit(1)
+def find_filename(filename):
+ """Search for the filename in the given script paths."""
+ from pywikibot import config
+
+ script_paths = ['scripts',
+ 'scripts.maintenance',
+ 'scripts.userscripts']
+
+ if config.user_script_paths:
+ if isinstance(config.user_script_paths, (tuple, list)):
+ script_paths = config.user_script_paths + script_paths
+ else:
+ warn("'user_script_paths' must be a list or tuple,\n"
+ 'found: {0}. Ignoring this setting.'
+ .format(type(config.user_script_paths)))
+
+ for file_package in script_paths:
+ paths = file_package.split('.') + [filename]
+ testpath = os.path.join(_pwb_dir, *paths)
+ if os.path.exists(testpath):
+ filename = testpath
+ break
+ else:
+ print('ERROR: {} not found! Misspelling?'.format(filename),
+ file=sys.stderr)
+
+ scripts = {}
+ for file_package in script_paths:
+ path = file_package.split('.')
+ for script_name in os.listdir(os.path.join(*path)):
+ if (script_name.endswith('.py')
+ and not script_name.startswith('__')):
+ # remove .py for better matching
+ scripts[script_name[:-3]] = os.path.join(
+ *(path + [script_name]))
+
+ similar_scripts = get_close_matches(filename[:-3], scripts,
+ n=10, cutoff=0.7)
+ if similar_scripts:
+ print('\nThe most similar script{}:'
+ .format(' is' if len(similar_scripts) == 1
+ else 's are'))
+ print('\t' + '.py\n\t'.join(similar_scripts) + '.py')
+ return None
+ return filename
+
+
def main():
"""Command line entry point."""
global filename
@@ -176,45 +223,10 @@
file_package = None
argvu = pwb.argvu[1:]
+
if not os.path.exists(filename):
- script_paths = ['scripts',
- 'scripts.maintenance',
- 'scripts.userscripts']
- from pywikibot import config
- if config.user_script_paths:
- if isinstance(config.user_script_paths, (tuple, list)):
- script_paths = config.user_script_paths + script_paths
- else:
- warn("'user_script_paths' must be a list or tuple,\n"
- 'found: {0}. Ignoring this setting.'
- ''.format(type(config.user_script_paths)))
- for file_package in script_paths:
- paths = file_package.split('.') + [filename]
- testpath = os.path.join(_pwb_dir, *paths)
- if os.path.exists(testpath):
- filename = testpath
- break
- else:
- print('ERROR: {} not found! Misspelling?'.format(filename),
- file=sys.stderr)
-
- scripts = {}
- for file_package in script_paths:
- path = file_package.split('.')
- for script_name in os.listdir(os.path.join(*path)):
- if (script_name.endswith('.py')
- and not script_name.startswith('__')):
- # remove .py for better matching
- scripts[script_name[:-3]] = os.path.join(
- *(path + [script_name]))
-
- similar_scripts = get_close_matches(filename[:-3], scripts,
- n=10, cutoff=0.7)
- if similar_scripts:
- print('\nThe most similar script{}:'
- .format(' is' if len(similar_scripts) == 1
- else 's are'))
- print('\t' + '.py\n\t'.join(similar_scripts) + '.py')
+ filename = find_filename(filename)
+ if filename is None:
return True
# When both pwb.py and the filename to run are within the current
--
To view, visit https://gerrit.wikimedia.org/r/510077
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: Idf0af67ae2ca0513cdba1acfb60ef956dcc85b4e
Gerrit-Change-Number: 510077
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)
Gerrit-CC: Dvorapa <dvorapa(a)seznam.cz>
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/508893 )
Change subject: [bugfix] clear tokens on logout()
......................................................................
[bugfix] clear tokens on logout()
- Re-instantiate empty TokenWallet and _paraminfo api cache object
when logout
- Skip TestLoginLogout tests on AppVeyor that fails with NoUsername
error
Bug: T222508
Change-Id: Iec6532bdd745b9c9830e0a048ec79912a4ded23c
---
M pywikibot/site.py
M tests/site_tests.py
2 files changed, 6 insertions(+), 0 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 1d94e7e..a37dadb 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -2136,7 +2136,11 @@
token=self.tokens['csrf'])
uirequest.submit()
self._loginstatus = LoginStatus.NOT_LOGGED_IN
+
+ # Reset tokens and user properties
del self._userinfo
+ self.tokens = TokenWallet(self)
+ self._paraminfo = api.ParamInfo(self)
def getuserinfo(self, force=False):
"""Retrieve userinfo from site and store in _userinfo attribute.
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 0e012c4..2db780d 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -3707,6 +3707,8 @@
"""Test for login and logout methods."""
+ @unittest.skipIf(os.environ.get('APPVEYOR', 'false') == 'true',
+ 'No user defined for APPVEYOR tests')
def test_login_logout(self):
"""Validate login and logout methods by toggling the state."""
site = self.get_site()
--
To view, visit https://gerrit.wikimedia.org/r/508893
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: Iec6532bdd745b9c9830e0a048ec79912a4ded23c
Gerrit-Change-Number: 508893
Gerrit-PatchSet: 5
Gerrit-Owner: Framawiki <framawiki(a)tools.wmflabs.org>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: Framawiki <framawiki(a)tools.wmflabs.org>
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/508093 )
Change subject: Show deprecation warning for Python 2
......................................................................
Show deprecation warning for Python 2
Recommend using 3.5+ because 3.4 EOL has reached this march
https://devguide.python.org/#status-of-python-branches
Bug: T203471
Bug: T213287
Change-Id: I72e499f15f66c3c60a9644105a16c62978ccadeb
---
M HISTORY.rst
M pywikibot/__init__.py
M tests/utils.py
3 files changed, 13 insertions(+), 1 deletion(-)
Approvals:
Dvorapa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/HISTORY.rst b/HISTORY.rst
index ea9ebb1..e93bfac 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -4,6 +4,7 @@
Current release
---------------
+* Deprecation warning: support for Python 2 will be dropped (T213287)
* botirc.IRCBot has been dropped
* Avoid using outdated browseragents (T222959)
* textlib: avoid infinite execution of regex (T222671)
diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index a4cbfdc..f032eb1 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -65,7 +65,7 @@
MediaWikiVersion as _MediaWikiVersion,
redirect_func,
ModuleDeprecationWrapper as _ModuleDeprecationWrapper,
- PY2,
+ PY2, PYTHON_VERSION,
UnicodeMixin,
UnicodeType
)
@@ -122,6 +122,15 @@
# T111615: Python 2 requires __all__ is bytes
globals()['__all__'] = tuple(bytes(item) for item in __all__)
+ import sys
+ warn("""
+Python {version} will be dropped {when}.
+It is recommended to use Python 3.5 or above.
+See T213287 for further information.
+""".format(version=sys.version.split(None, 1)[0],
+ when='soon' if PYTHON_VERSION < (2, 7, 9) else 'in 2020'),
+ FutureWarning)
+
for _name in textlib_methods:
target = getattr(textlib, _name)
wrapped_func = redirect_func(target, since='20140820')
diff --git a/tests/utils.py b/tests/utils.py
index 3b69183..101b63b 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -643,6 +643,8 @@
@param command: executable to run and arguments to use
@type command: list of unicode
"""
+ if PY2:
+ command.insert(1, '-W ignore::FutureWarning:pywikibot:132')
if cryptography_version and cryptography_version < [1, 3, 4]:
command.insert(1, '-W ignore:Old version of cryptography:Warning')
# Any environment variables added on Windows must be of type
--
To view, visit https://gerrit.wikimedia.org/r/508093
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: I72e499f15f66c3c60a9644105a16c62978ccadeb
Gerrit-Change-Number: 508093
Gerrit-PatchSet: 4
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki(a)aol.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: Framawiki <framawiki(a)tools.wmflabs.org>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/508857 )
Change subject: [cleanup] pwb.py: Flat is better than nested
......................................................................
[cleanup] pwb.py: Flat is better than nested
Remove nested filename condition and make the code more flat
in that way:
if foo:
doing_a_long_statement_list()
return True
else:
return False
is changed to
if not foo:
return False
doing_a_long_statement_list()
return True
The code inside "if" kept unchanged
Change-Id: Iad4f58adf8dfc2b8111b3c86c5af2a2e92e8b350
---
M pwb.py
1 file changed, 72 insertions(+), 72 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index 164d44c..a07690a 100755
--- a/pwb.py
+++ b/pwb.py
@@ -171,80 +171,80 @@
def main():
"""Command line entry point."""
global filename
- if filename:
- file_package = None
- argvu = pwb.argvu[1:]
- if not os.path.exists(filename):
- script_paths = ['scripts',
- 'scripts.maintenance',
- 'scripts.userscripts']
- from pywikibot import config
- if config.user_script_paths:
- if isinstance(config.user_script_paths, (tuple, list)):
- script_paths = config.user_script_paths + script_paths
- else:
- warn("'user_script_paths' must be a list or tuple,\n"
- 'found: {0}. Ignoring this setting.'
- ''.format(type(config.user_script_paths)))
- for file_package in script_paths:
- paths = file_package.split('.') + [filename]
- testpath = os.path.join(_pwb_dir, *paths)
- if os.path.exists(testpath):
- filename = testpath
- break
- else:
- print('ERROR: {} not found! Misspelling?'.format(filename),
- file=sys.stderr)
-
- scripts = {}
- for file_package in script_paths:
- path = file_package.split('.')
- for script_name in os.listdir(os.path.join(*path)):
- if (script_name.endswith('.py')
- and not script_name.startswith('__')):
- # remove .py for better matching
- scripts[script_name[:-3]] = os.path.join(
- *(path + [script_name]))
-
- similar_scripts = get_close_matches(filename[:-3], scripts,
- n=10, cutoff=0.7)
- if similar_scripts:
- print('\nThe most similar script{}:'
- .format(' is' if len(similar_scripts) == 1
- else 's are'))
- print('\t' + '.py\n\t'.join(similar_scripts) + '.py')
- return True
-
- # When both pwb.py and the filename to run are within the current
- # working directory:
- # a) set __package__ as if called using python -m scripts.blah.foo
- # b) set __file__ to be relative, so it can be relative in backtraces,
- # and __file__ *appears* to be an unstable path to load data from.
- # This is a rough (and quick!) emulation of 'package name' detection.
- # a much more detailed implementation is in coverage's find_module.
- # https://bitbucket.org/ned/coveragepy/src/default/coverage/execfile.py
- cwd = abspath(os.getcwd())
- if absolute_path == cwd:
- absolute_filename = abspath(filename)[:len(cwd)]
- if absolute_filename == cwd:
- relative_filename = os.path.relpath(filename)
- # remove the filename, and use '.' instead of path separator.
- file_package = os.path.dirname(
- relative_filename).replace(os.sep, '.')
- filename = os.path.join(os.curdir, relative_filename)
-
- if file_package and file_package not in sys.modules:
- try:
- import_module(file_package)
- except ImportError as e:
- warn('Parent module %s not found: %s'
- % (file_package, e), ImportWarning)
-
- run_python_file(filename, [filename] + args, argvu, file_package)
- return True
- else:
+ if not filename:
return False
+ file_package = None
+ argvu = pwb.argvu[1:]
+ if not os.path.exists(filename):
+ script_paths = ['scripts',
+ 'scripts.maintenance',
+ 'scripts.userscripts']
+ from pywikibot import config
+ if config.user_script_paths:
+ if isinstance(config.user_script_paths, (tuple, list)):
+ script_paths = config.user_script_paths + script_paths
+ else:
+ warn("'user_script_paths' must be a list or tuple,\n"
+ 'found: {0}. Ignoring this setting.'
+ ''.format(type(config.user_script_paths)))
+ for file_package in script_paths:
+ paths = file_package.split('.') + [filename]
+ testpath = os.path.join(_pwb_dir, *paths)
+ if os.path.exists(testpath):
+ filename = testpath
+ break
+ else:
+ print('ERROR: {} not found! Misspelling?'.format(filename),
+ file=sys.stderr)
+
+ scripts = {}
+ for file_package in script_paths:
+ path = file_package.split('.')
+ for script_name in os.listdir(os.path.join(*path)):
+ if (script_name.endswith('.py')
+ and not script_name.startswith('__')):
+ # remove .py for better matching
+ scripts[script_name[:-3]] = os.path.join(
+ *(path + [script_name]))
+
+ similar_scripts = get_close_matches(filename[:-3], scripts,
+ n=10, cutoff=0.7)
+ if similar_scripts:
+ print('\nThe most similar script{}:'
+ .format(' is' if len(similar_scripts) == 1
+ else 's are'))
+ print('\t' + '.py\n\t'.join(similar_scripts) + '.py')
+ return True
+
+ # When both pwb.py and the filename to run are within the current
+ # working directory:
+ # a) set __package__ as if called using python -m scripts.blah.foo
+ # b) set __file__ to be relative, so it can be relative in backtraces,
+ # and __file__ *appears* to be an unstable path to load data from.
+ # This is a rough (and quick!) emulation of 'package name' detection.
+ # a much more detailed implementation is in coverage's find_module.
+ # https://bitbucket.org/ned/coveragepy/src/default/coverage/execfile.py
+ cwd = abspath(os.getcwd())
+ if absolute_path == cwd:
+ absolute_filename = abspath(filename)[:len(cwd)]
+ if absolute_filename == cwd:
+ relative_filename = os.path.relpath(filename)
+ # remove the filename, and use '.' instead of path separator.
+ file_package = os.path.dirname(
+ relative_filename).replace(os.sep, '.')
+ filename = os.path.join(os.curdir, relative_filename)
+
+ if file_package and file_package not in sys.modules:
+ try:
+ import_module(file_package)
+ except ImportError as e:
+ warn('Parent module %s not found: %s'
+ % (file_package, e), ImportWarning)
+
+ run_python_file(filename, [filename] + args, argvu, file_package)
+ return True
+
if __name__ == '__main__':
if not main():
--
To view, visit https://gerrit.wikimedia.org/r/508857
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: Iad4f58adf8dfc2b8111b3c86c5af2a2e92e8b350
Gerrit-Change-Number: 508857
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <info(a)gno.de>
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)