class singleton: pass class ExceptionHandler(Object): def writeExceptionReport(self, handler): def write(self, s): def writeln(self, s): def writeTitle(self, s): def writeDict(self, d): def writeTable(self, listOfDicts, keys=None): def writeAttrs(self, obj, attrNames): class ExceptionHandler(_ExceptionHandler): def work(self): def contextInitialize(app, ctxPath): ## Init ## def __init__(self, application, transaction, excInfo): ## @@ 2003-01-10 sd: This requires a transaction which we do not have. ## Making remaining code safe for no transaction. ## Utilities ## def setting(self, name): def servletPathname(self): def basicServletName(self): ## Exception handling ## def work(self): def logExceptionToConsole(self, stderr=None): def publicErrorPage(self): def privateErrorPage(self): def htmlDebugInfo(self): def writeHTML(self): ## Write utility methods ## def write(self, s): def writeln(self, s): def writeTitle(self, s): def writeDict(self, d): def writeTable(self, listOfDicts, keys=None): def writeAttrs(self, obj, attrNames): ## Write specific parts ## def writeTraceback(self): def writeMiscInfo(self): def writeTransaction(self): def writeEnvironment(self): def writeIds(self): def writeFancyTraceback(self): def saveErrorPage(self, html): def errorPageFilename(self): def logExceptionToDisk(self, errorMsgFilename=''): def fixElement(element): def emailException(self, htmlErrMsg): ## Construct the message headers ## Construct the message body ## Filtering Values ## def filterDictValue(self, value, key, dict): def filterTableValue(self, value, key, row, table): def filterValue(self, value, key): ## Self utility ## def repr(self, x): def htTitle(name): def osIdTable():