home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __all__ = [
- 'ErrorHandler']
- __docformat__ = 'restructuredtext'
- __version__ = '$Id: errorhandler.py 1812 2009-07-29 13:11:49Z cthedot $'
- from helper import Deprecated
- import logging
- import urllib2
- import xml.dom as xml
-
- class _ErrorHandler(object):
-
- def __init__(self, log, defaultloglevel = logging.INFO, raiseExceptions = True):
- self.enabled = True
- if log:
- self._log = log
- else:
- import sys
- self._log = logging.getLogger('CSSUTILS')
- hdlr = logging.StreamHandler(sys.stderr)
- formatter = logging.Formatter('%(levelname)s\t%(message)s')
- hdlr.setFormatter(formatter)
- self._log.addHandler(hdlr)
- self._log.setLevel(defaultloglevel)
- self.raiseExceptions = raiseExceptions
-
-
- def __getattr__(self, name):
- calls = ('debug', 'info', 'warn', 'error', 'critical', 'fatal')
- other = ('setLevel', 'getEffectiveLevel', 'addHandler', 'removeHandler')
- if name in calls:
- self._logcall = getattr(self._log, name)
- return self._ErrorHandler__handle
- if name in other:
- return getattr(self._log, name)
- raise AttributeError('(errorhandler) No Attribute %r found' % name)
-
-
- def _ErrorHandler__handle(self, msg = u'', token = None, error = xml.dom.SyntaxErr, neverraise = False, args = None):
- if self.enabled:
- (line, col) = (None, None)
- if token:
- if isinstance(token, tuple):
- value = token[1]
- line = token[2]
- col = token[3]
- else:
- value = token.value
- line = token.line
- col = token.col
- msg = u'%s [%s:%s: %s]' % (msg, line, col, value)
-
- if error and self.raiseExceptions and not neverraise:
- if isinstance(error, urllib2.HTTPError) or isinstance(error, urllib2.URLError):
- raise
- isinstance(error, urllib2.URLError)
- if issubclass(error, xml.dom.DOMException):
- error.line = line
- error.col = col
-
- raise error(msg)
- not neverraise
- self._logcall(msg)
-
-
-
- def setLog(self, log):
- self._log = log
-
-
- def setlog(self, log):
- self.setLog(log)
-
- setlog = Deprecated('Use setLog() instead.')(setlog)
-
- def setloglevel(self, level):
- self.setLevel(level)
-
- setloglevel = Deprecated('Use setLevel() instead.')(setloglevel)
-
-
- class ErrorHandler(_ErrorHandler):
- instance = None
-
- def __init__(self, log = None, defaultloglevel = logging.INFO, raiseExceptions = True):
- if ErrorHandler.instance is None:
- ErrorHandler.instance = _ErrorHandler(log = log, defaultloglevel = defaultloglevel, raiseExceptions = raiseExceptions)
-
- self.__dict__ = ErrorHandler.instance.__dict__
-
-
-