[POS-commit] r1782 - in kiwi/trunk/kiwi: . ui ui/widgets

Johan Dahlin jdahlin at async.com.br
Mon Dec 5 14:51:50 BRST 2005


Author: jdahlin
Date: Mon Dec  5 14:51:46 2005
New Revision: 1782

Modified:
   kiwi/trunk/kiwi/datatypes.py
   kiwi/trunk/kiwi/log.py
   kiwi/trunk/kiwi/proxies.py
   kiwi/trunk/kiwi/ui/views.py
   kiwi/trunk/kiwi/ui/widgets/proxy.py
   kiwi/trunk/kiwi/utils.py
Log:
epydoc fixes, refactor logger to be closer to the stdlib api

Modified: kiwi/trunk/kiwi/datatypes.py
==============================================================================
--- kiwi/trunk/kiwi/datatypes.py	(original)
+++ kiwi/trunk/kiwi/datatypes.py	Mon Dec  5 14:51:46 2005
@@ -93,7 +93,6 @@
         Convert from a string
         @param converter_type:
         @param value:
-        @param format:
         """
         c = self.get_converter(converter_type)
         if c.from_string is None:

Modified: kiwi/trunk/kiwi/log.py
==============================================================================
--- kiwi/trunk/kiwi/log.py	(original)
+++ kiwi/trunk/kiwi/log.py	Mon Dec  5 14:51:46 2005
@@ -22,22 +22,24 @@
 #            Johan Dahlin     <jdahlin at async.com.br>
 ##
 
-import gettext
 import logging
-from logging import DEBUG, INFO, WARNING, ERROR, CRITICAL
 import os
 import sys
 
 from kiwi.environ import environ
 
-_ = gettext.gettext
+_log_level = None
 
-
-_log_level = INFO
-
-class Log(logging.Logger):
-    def __init__(self, file=sys.stdout, level=INFO,
-                 category='fiscal_printer'):
+class Formatter(logging.Formatter):
+    def format(self, record):
+        frame = sys._getframe(8)
+        filename = os.path.basename(frame.f_code.co_filename)
+        record.msg = '%s:%d %s' % (filename, frame.f_lineno, record.msg)
+        return logging.Formatter.format(self, record)
+    
+class Logger(logging.Logger):
+    log_domain = 'default'
+    def __init__(self, name=None, level=logging.NOTSET):
         """Initializes Log module, creating log handler and defining log
         level. level attribute is not mandatory. It defines from which level
         messages should be logged. Logs with lower level are ignored.
@@ -53,31 +55,9 @@
           - logging.CRITICAL 
         """
         global _log_level
-        logging.Logger.__init__(self, category, _log_level)
-        self._category = category
-        
-        # Tries to open the given file. If IOerror occour, send log to stdout
-        file_obj = None
+        logging.Logger.__init__(self, name or Logger.log_name, _log_level)
         
-        if type(file) == type(sys.stdout):
-            # If file is already a file object, just set it to file_obj var
-            if 'w' in file.mode or 'a' in file.mode or '+' in file.mode:
-                file_obj = file
-            else:
-                # Without write permission to the given file object,
-                # write to stdout
-                print _(">>> Given file object in read-only mode! Using "
-                        "standard output to write logs!")
-                file_obj = sys.stdout
-        else:
-            try:
-                file_obj = open(file, 'a')
-            except:
-                print _(">>> Couldn't access specified file! Using standard "
-                        "output to write logs!")
-                file_obj = sys.stdout
-                
-        stream_handler = logging.StreamHandler(file_obj)
+        stream_handler = logging.StreamHandler(sys.stdout)
             
         # Formater class define a format for the log messages been
         # logged with this handler
@@ -86,51 +66,12 @@
         # in a log message like this:
         #   2005-09-07 18:15:12,636 (WARNING) - (message!)
         format_string = ("%(asctime)s %(message)s")
-        stream_handler.setFormatter(logging.Formatter(format_string,
-                                                      datefmt='%T'))
+        stream_handler.setFormatter(Formatter(format_string,
+                                              datefmt='%T'))
         self.addHandler(stream_handler)
 
-    def log(self, message, level=INFO):
-        """This method logs messages with default log_level.
-        
-        If it's desired another level, user is able to define it using
-        the level argument.        
-        """        
-        logging.Logger.log(self, level, message)
-
-class Logger(object):
-    log_domain = 'default'
-    def __init__(self, category=None):
-        category = (category or self.log_domain)
-        self._log = Log(category=category)
-        self._category = category
-
-    def __call__(self, message):
-        self.info(message)
-        
-    def log(self, level, message):
-        global _log_level
-        if _log_level <= level:
-            frame = sys._getframe(2)
-            filename = os.path.basename(frame.f_code.co_filename)
-            message = '%s %s:%d %s' % (self._category, filename,
-                                       frame.f_lineno, message)
-            self._log.log(level=level, message=message)
-        
-    def debug(self, message):
-        self.log(DEBUG, message)
-
-    def info(self, message):
-        self.log(INFO, message)
-
-    def warning(self, message):
-        self.log(WARNING, message)
-
-    def error(self, message):
-        self.log(ERROR, message)
-
-    def critical(self, message):
-        self.log(CRITICAL, message)
+    def __call__(self, message, *args, **kwargs):
+        self.info(message, *args, **kwargs)
 
 def set_log_level(level):
     global _log_level
@@ -139,7 +80,7 @@
 log_level = environ.get_log_level()
 if log_level is None:
     # Default is to show only warnings and higher
-    log_level = WARNING
+    log_level = logging.WARNING
 else:
     log_level = int(log_level)
 set_log_level(log_level)

Modified: kiwi/trunk/kiwi/proxies.py
==============================================================================
--- kiwi/trunk/kiwi/proxies.py	(original)
+++ kiwi/trunk/kiwi/proxies.py	Mon Dec  5 14:51:46 2005
@@ -36,7 +36,7 @@
 class ProxyError(Exception):
     pass
 
-log = Logger(category='proxy')
+log = Logger('proxy')
 
 def block_widget(widget):
     """Blocks the signal handler of the 'content-changed' signal on widget"""

Modified: kiwi/trunk/kiwi/ui/views.py
==============================================================================
--- kiwi/trunk/kiwi/ui/views.py	(original)
+++ kiwi/trunk/kiwi/ui/views.py	Mon Dec  5 14:51:46 2005
@@ -61,7 +61,7 @@
 else:
     from kiwi.ui.gazpacholoader import GazpachoWidgetTree as WidgetTree
 
-log = Logger(category='view')
+log = Logger('view')
 
 _non_interactive = (
     gtk.Label, 

Modified: kiwi/trunk/kiwi/ui/widgets/proxy.py
==============================================================================
--- kiwi/trunk/kiwi/ui/widgets/proxy.py	(original)
+++ kiwi/trunk/kiwi/ui/widgets/proxy.py	Mon Dec  5 14:51:46 2005
@@ -34,12 +34,12 @@
 from kiwi import ValueUnset
 from kiwi.datatypes import ValidationError, converter
 from kiwi.interfaces import Mixin, MixinSupportValidation
+from kiwi.log import Logger
 from kiwi.ui.gadgets import FadeOut
 from kiwi.ui.tooltip import Tooltip
 from kiwi.utils import gsignal, gproperty
-from kiwi.log import Log
 
-log = Log(category='widget proxy')
+log = Logger('widget proxy')
 
 _ = gettext.gettext
 

Modified: kiwi/trunk/kiwi/utils.py
==============================================================================
--- kiwi/trunk/kiwi/utils.py	(original)
+++ kiwi/trunk/kiwi/utils.py	Mon Dec  5 14:51:46 2005
@@ -212,7 +212,7 @@
     """
     Add a GObject signal to the current object.
     It current supports the following types:
-      str, int, float, long, object, enum
+      - str, int, float, long, object, enum
     @param name:     name of the signal
     @type name:      string
     @param args:     types for signal parameters,
@@ -274,10 +274,10 @@
     @type name:    string
     @param ptype:   type of property
     @type ptype:    type
-    @keyword default:  default value
-    @keyword nick:     short description
-    @keyword blurb:    long description
-    @keyword flags:    parameter flags, one of:
+    @param default:  default value
+    @param nick:     short description
+    @param blurb:    long description
+    @param flags:    parameter flags, one of:
       - PARAM_READABLE
       - PARAM_READWRITE
       - PARAM_WRITABLE


More information about the POS-commit mailing list