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 <[email protected]>
Gerrit-Reviewer: Mpaa <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to