jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/631826 )
Change subject: [bugfix] print log header
......................................................................
[bugfix] print log header
pywikibot.comms.http does not have threads attribute anymore
- rewrite bot.writelogheader(). There is no reason for early return
- add init_routine to _inited_routines before init_routine is called
to prevent an infinite loop
Bug: T264235
Change-Id: Ia781ba848462889848309c77b90e6096b8fa8b41
---
M pywikibot/bot.py
M pywikibot/logging.py
2 files changed, 15 insertions(+), 20 deletions(-)
Approvals:
Mpaa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index 34eead8..8b5eb15 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -350,35 +350,29 @@
This may help the user to track errors or report bugs.
"""
- # If a http thread is not available, it's too early to print a header
- # that includes version information, which may need to query a server.
- # The http module can't be imported due to circular dependencies.
- http = sys.modules.get('pywikibot.comms.http', None)
- if not http or not hasattr(http, 'threads') or not len(http.threads):
- return
-
+ log('')
log('=== Pywikibot framework v{} -- Logging header ==='
.format(pywikibot.__version__))
# script call
- log('COMMAND: {0}'.format(sys.argv))
+ log('COMMAND: {}'.format(sys.argv))
# script call time stamp
- log('DATE: %s UTC' % str(datetime.datetime.utcnow()))
+ log('DATE: {} UTC'.format(datetime.datetime.utcnow()))
# new framework release/revision? (handle_args needs to be called first)
try:
- log('VERSION: %s' %
- version.getversion(online=config.log_pywiki_repo_version).strip())
+ log('VERSION: {}'.format(
+ version.getversion(online=config.log_pywiki_repo_version).strip()))
except version.ParseError:
exception()
# system
if hasattr(os, 'uname'):
- log('SYSTEM: {0}'.format(os.uname()))
+ log('SYSTEM: {}'.format(os.uname()))
# config file dir
- log('CONFIG FILE DIR: %s' % pywikibot.config2.base_dir)
+ log('CONFIG FILE DIR: {}'.format(pywikibot.config2.base_dir))
all_modules = sys.modules.keys()
@@ -401,9 +395,9 @@
'[{}]'.format(info.get('type', 'path
unknown')))
info.setdefault('ver', '??')
if 'err' in info:
- log(' %(name)s: %(err)s' % info)
+ log(' {name}: {err}'.format_map(info))
else:
- log(' %(name)s (%(path)s) = %(ver)s' % info)
+ log(' {name} ({path}) = {ver}'.format_map(info))
# imported modules
log('MODULES:')
@@ -412,13 +406,13 @@
ver = version.get_module_version(module)
mtime = version.get_module_mtime(module)
if filename and ver and mtime:
- log(' {0} {1} {2}'
+ log(' {} {} {}'
.format(filename, ver[:7], mtime.isoformat(' ')))
if config.log_pywiki_repo_version:
- log('PYWIKI REPO VERSION: %s' % version.getversion_onlinerepo())
+ log('PYWIKI REPO VERSION: {}'.format(version.getversion_onlinerepo()))
- log('=== ' * 14)
+ log('=' * 57)
add_init_routine(init_handlers)
diff --git a/pywikibot/logging.py b/pywikibot/logging.py
index 83abad9..6951f62 100644
--- a/pywikibot/logging.py
+++ b/pywikibot/logging.py
@@ -28,9 +28,10 @@
def _init():
"""Init any routines which have not already been
called."""
for init_routine in _init_routines:
- if init_routine not in _inited_routines:
- init_routine()
+ found = init_routine in _inited_routines # prevent infinite loop
_inited_routines.add(init_routine)
+ if not found:
+ init_routine()
# Clear the list of routines to be inited
_init_routines[:] = [] # the global variable is used with slice operator
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/631826
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: Ia781ba848462889848309c77b90e6096b8fa8b41
Gerrit-Change-Number: 631826
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged