[Pywikipedia-l] SVN: [6387] branches/rewrite/pywikibot

russblau at svn.wikimedia.org russblau at svn.wikimedia.org
Fri Feb 20 14:25:14 UTC 2009


Revision: 6387
Author:   russblau
Date:     2009-02-20 14:25:13 +0000 (Fri, 20 Feb 2009)

Log Message:
-----------
fix various output-related issues

Modified Paths:
--------------
    branches/rewrite/pywikibot/__init__.py
    branches/rewrite/pywikibot/bot.py
    branches/rewrite/pywikibot/comms/http.py
    branches/rewrite/pywikibot/data/api.py
    branches/rewrite/pywikibot/login.py
    branches/rewrite/pywikibot/scripts/touch.py

Modified: branches/rewrite/pywikibot/__init__.py
===================================================================
--- branches/rewrite/pywikibot/__init__.py	2009-02-20 07:53:28 UTC (rev 6386)
+++ branches/rewrite/pywikibot/__init__.py	2009-02-20 14:25:13 UTC (rev 6387)
@@ -92,8 +92,8 @@
     key = '%s:%s:%s' % (fam, code, user)
     if not key in _sites:
         _sites[key] = __Site(code=code, fam=fam, user=user, sysop=sysop)
-        pywikibot.output("Instantiating Site object '%(site)s'"
-                         % {'site': _sites[key]}, level=DEBUG)
+        logging.debug(u"Instantiating Site object '%(site)s'"
+                       % {'site': _sites[key]})
     return _sites[key]
 
 getSite = Site # alias for backwards-compability
@@ -210,11 +210,11 @@
     logger = logging.getLogger("wiki")
 
     if not stopped:
-        pywikibot.output("stopme() called", level=DEBUG)
+        logging.debug("stopme() called")
         count = sum(1 for thd in threadpool if thd.isAlive())
         if count:
-            pywikibot.output("Waiting for about %(count)s pages to be saved."
-                             % locals())
+            pywikibot.output(u"Waiting for about %(count)s pages to be saved."
+                              % locals())
             for thd in threadpool:
                 if thd.isAlive():
                     thd.join()
@@ -222,7 +222,7 @@
     # only need one drop() call because all throttles use the same global pid
     try:
         _sites[_sites.keys()[0]].throttle.drop()
-        pywikibot.output("Dropped throttle(s).", level=VERBOSE)
+        pywikibot.output(u"Dropped throttle(s).", level=VERBOSE)
     except IndexError:
         pass
 

Modified: branches/rewrite/pywikibot/bot.py
===================================================================
--- branches/rewrite/pywikibot/bot.py	2009-02-20 07:53:28 UTC (rev 6386)
+++ branches/rewrite/pywikibot/bot.py	2009-02-20 14:25:13 UTC (rev 6387)
@@ -22,6 +22,7 @@
 
 
 # logging levels
+logger = logging.getLogger("bot")
 
 from logging import DEBUG, INFO, WARNING, ERROR, CRITICAL
 STDOUT = 16
@@ -244,7 +245,6 @@
         arg = _decodeArg(arg)
         if arg == '-help':
             do_help = True
-            break
         elif arg.startswith('-family:'):
             config.family = arg[len("-family:") : ]
         elif arg.startswith('-lang:'):
@@ -323,7 +323,7 @@
 
     root_logger = logging.getLogger()
     root_logger.handlers = [] # get rid of default handler
-    root_logger.setLevel(VERBOSE) # all records except DEBUG go to logger
+    root_logger.setLevel(DEBUG+1) # all records except DEBUG go to logger
 
     # configure default handler for VERBOSE and INFO levels
     default_handler = TerminalHandler(strm=sys.stderr)
@@ -361,6 +361,7 @@
     output_handler = TerminalHandler(strm=sys.stdout)
     output_handler.setLevel(STDOUT)
     output_handler.addFilter(MaxLevelFilter(STDOUT))
+    output_handler.setFormatter(logging.Formatter(fmt="%(message)s"))
     root_logger.addHandler(output_handler)
 
     # handler for levels WARNING and higher
@@ -380,7 +381,7 @@
     if do_help:
         showHelp()
         sys.exit(0)
-    pywikibot.output("handleArgs() completed.", level=DEBUG)
+    logger.debug(u"handleArgs() completed.")
     return nonGlobalArgs
 
 
@@ -439,9 +440,10 @@
         if hasattr(module, 'docuReplacements'):
             for key, value in module.docuReplacements.iteritems():
                 helpText = helpText.replace(key, value.strip('\n\r'))
-        pywikibot.output(helpText)
+        pywikibot.output(helpText, level=pywikibot.STDOUT) # output to STDOUT
     except Exception:
         if modname:
-            pywikibot.output(u'Sorry, no help available for %s' % modname)
+            pywikibot.output(u'Sorry, no help available for %s' % modname,
+                             level=pywikibot.STDOUT)
         logging.exception('showHelp:')
-    pywikibot.output(globalHelp)
+    pywikibot.output(globalHelp, level=pywikibot.STDOUT)

Modified: branches/rewrite/pywikibot/comms/http.py
===================================================================
--- branches/rewrite/pywikibot/comms/http.py	2009-02-20 07:53:28 UTC (rev 6386)
+++ branches/rewrite/pywikibot/comms/http.py	2009-02-20 14:25:13 UTC (rev 6387)
@@ -104,8 +104,8 @@
         raise request.data
 
     if request.data[0].status != 200:
-        pywikibot.output("Http response status %(status)s"
-                         % {'status': request.data[0].status},
+        pywikibot.output(u"Http response status %(status)s"
+                          % {'status': request.data[0].status},
                          level=pywikibot.WARNING)
 
     return request.data[1]    

Modified: branches/rewrite/pywikibot/data/api.py
===================================================================
--- branches/rewrite/pywikibot/data/api.py	2009-02-20 07:53:28 UTC (rev 6386)
+++ branches/rewrite/pywikibot/data/api.py	2009-02-20 14:25:13 UTC (rev 6387)
@@ -196,7 +196,7 @@
             except Exception, e: #TODO: what exceptions can occur here?
                 pywikibot.output(traceback.format_exc(),
                                  level=pywikibot.ERROR)
-                pywikibot.output("%s, %s" % (uri, params),
+                pywikibot.output(u"%s, %s" % (uri, params),
                                  level=pywikibot.VERBOSE)
                 self.wait()
                 continue
@@ -248,7 +248,8 @@
                 lag = lagpattern.search(info)
                 if lag:
                     pywikibot.output(
-                        "Pausing due to database lag: " + info)
+                        u"Pausing due to database lag: " + info,
+                        level=pywikibot.VERBOSE)
                     self.site.throttle.lag(int(lag.group("lag")))
                     continue
             if code in (u'internal_api_error_DBConnectionError', ):
@@ -633,7 +634,7 @@
     from pywikibot import Site
     logger.setLevel(pywikibot.logging.DEBUG)
     mysite = Site("en", "wikipedia")
-    pywikibot.output("starting test....")
+    pywikibot.output(u"starting test....")
     def _test():
         import doctest
         doctest.testmod()

Modified: branches/rewrite/pywikibot/login.py
===================================================================
--- branches/rewrite/pywikibot/login.py	2009-02-20 07:53:28 UTC (rev 6386)
+++ branches/rewrite/pywikibot/login.py	2009-02-20 14:25:13 UTC (rev 6387)
@@ -109,7 +109,7 @@
         the policy on the respective wiki.
         
         """
-        return True # DEBUG
+#        return True # DEBUG
         if self.site.family.name in botList \
                 and self.site.code in botList[self.site.family.name]:
             botListPageTitle = botList[self.site.family.name][self.site.code]
@@ -194,7 +194,7 @@
         try:
             cookiedata = self.getCookie()
         except pywikibot.data.api.APIError, e:
-            pywikibot.output("Login failed (%s)." % e.code,
+            pywikibot.output(u"Login failed (%s)." % e.code,
                              level=pywikibot.ERROR)
             if retry:
                 self.password = None
@@ -219,12 +219,12 @@
     def showCaptchaWindow(self, url):
         pass
 
-def main():
+def main(*args):
     username = password = None
     sysop = False
     logall = False
     forceLogin = False
-    for arg in pywikibot.handleArgs(): 
+    for arg in pywikibot.handleArgs(*args): 
         if arg.startswith("-pass"):
             if len(arg) == 5:
                 password = pywikibot.input(u'Password for all accounts:',

Modified: branches/rewrite/pywikibot/scripts/touch.py
===================================================================
--- branches/rewrite/pywikibot/scripts/touch.py	2009-02-20 07:53:28 UTC (rev 6386)
+++ branches/rewrite/pywikibot/scripts/touch.py	2009-02-20 14:25:13 UTC (rev 6387)
@@ -39,12 +39,15 @@
                 text = page.get(get_redirect = self.touch_redirects)
                 page.save("Pywikibot touch script")
             except pywikibot.NoPage:
-                pywikibot.output("Page %s does not exist?!" % page.aslink())
+                pywikibot.output(u"Page %s does not exist?!" % page.aslink(),
+                                 level=pywikibot.ERROR)
             except pywikibot.IsRedirectPage:
-                pywikibot.output("Page %s is a redirect; skipping."
-                                 % page.aslink())
+                pywikibot.output(u"Page %s is a redirect; skipping."
+                                  % page.aslink(),
+                                 level=pywikibot.WARNING)
             except pywikibot.LockedPage:
-                pywikibot.output("Page %s is locked?!" % page.aslink())
+                pywikibot.output(u"Page %s is locked?!" % page.aslink(),
+                                 level=pywikibot.ERROR)
 
 
 def main(*args):





More information about the Pywikipedia-l mailing list