File indexing completed on 2024-12-01 23:40:44
0001
0002
0003 import os, sys, string
0004
0005 from xml.parsers import expat
0006
0007
0008
0009 class SimpleAsciiFormatter :
0010
0011 def __init__(self, title="CMS SDT pages", style=None, outFile=sys.stdout) :
0012 self.format = ""
0013 self.title = title
0014 return
0015
0016 def showLine(self) :
0017 print("\n================================================================================\n")
0018 return
0019
0020 def write(self, arg="") :
0021 print(arg)
0022 return
0023
0024 def writeB(self, arg="") :
0025 print(arg)
0026 return
0027
0028 def writeBr(self) :
0029 print()
0030 return
0031
0032 def writeH1(self, arg="") :
0033 print(arg)
0034 return
0035
0036 def writeH2(self, arg="") :
0037 print(arg)
0038 return
0039
0040 def writeH3(self, arg="") :
0041 print(arg)
0042 return
0043
0044 def startTable(self, colSizes, colLabels) :
0045 self.cols = colSizes
0046 self.format = ""
0047 for fmt in self.cols :
0048 self.format += "%"+str(fmt)+"s "
0049 print(self.format % tuple(colLabels))
0050
0051 return
0052
0053 def writeRow(self, args) :
0054 print(self.format % tuple(args))
0055
0056 return
0057
0058 def endTable(self) :
0059 self.format = None
0060 self.cols = None
0061
0062
0063
0064
0065 class SimpleHTMLFormatter :
0066
0067 def __init__(self, title="CMS SDT pages ", style=None, outFile=sys.stdout, scriptCode='') :
0068 import time
0069
0070 self.headersDone = False
0071 self.title=title
0072 self.style = style
0073 self.scriptCode = scriptCode
0074 self.outFile = outFile
0075 self.format = ""
0076
0077 return
0078
0079 def addScriptCode(self, scriptCode):
0080 self.scriptCode += scriptCode
0081
0082 def __del__(self) :
0083 if self.headersDone :
0084 self.trailers()
0085 else:
0086 self.outFile.write( "Content-Type: text/html" + '\n')
0087 self.outFile.write( '\n')
0088 self.outFile.write( "<html> " + '\n')
0089 self.outFile.write( "</html> " + '\n')
0090
0091 return
0092
0093 def showLine(self) :
0094 self.headers()
0095 self.outFile.write( "<hr />" + '\n')
0096 return
0097
0098 def write(self, arg="", bold=False) :
0099 self.headers()
0100 if bold:
0101 self.writeB(arg)
0102 else:
0103 self.outFile.write( arg + '\n')
0104 return
0105
0106 def writeBr(self) :
0107 self.headers()
0108 self.outFile.write( "<br /> <br /> " + '\n')
0109 return
0110
0111 def writeB(self, arg="") :
0112 self.headers()
0113 self.outFile.write( "<b> " + arg + " </b>" + '\n')
0114 return
0115
0116 def writeH1(self, arg="") :
0117 self.headers()
0118 self.outFile.write( "<h1> " + arg + " </h1>" + '\n')
0119 return
0120
0121 def writeH2(self, arg="") :
0122 self.headers()
0123 self.outFile.write( "<h2> " + arg + " </h2>" + '\n')
0124 return
0125
0126 def writeH3(self, arg="") :
0127 self.headers()
0128 self.outFile.write( "<h3> " + arg + " </h3>" + '\n')
0129 return
0130
0131 def writeAnchor(self, ref="") :
0132 self.headers()
0133 self.outFile.write( '<a name="' + ref + '"> </a>')
0134 return
0135
0136 def startTable(self, colSizes, colLabels, id=None, cls=None, tableAttr=None) :
0137
0138 tableString = '<table '
0139 if tableAttr:
0140 tableString += tableAttr
0141 if id:
0142 tableString += ' id="'+id+'" '
0143 if cls:
0144 tableString += ' class="'+cls+'" '
0145 tableString += '>'
0146 self.outFile.write( tableString + '\n')
0147
0148 self.outFile.write( " <thead>\n <tr>" + '\n')
0149 for col in colLabels :
0150 self.outFile.write( " <th> <b>" + col + "</b> </th>" + '\n')
0151 self.outFile.write( " </tr>\n</thead>" + '\n')
0152 self.outFile.write( " <tbody>" + '\n')
0153 return
0154
0155 def writeRow(self, args, bold=False, cls=None) :
0156
0157
0158 if cls:
0159 self.outFile.write( ' <tr class="'+cls+'"> \n')
0160 else:
0161 self.outFile.write( " <tr>" + '\n')
0162 for arg in args:
0163 if str(arg).strip() == "" : arg = " "
0164 if bold: self.outFile.write( '<td class=cellbold> ' )
0165 else: self.outFile.write( " <td> " )
0166 self.outFile.write( arg )
0167
0168 self.outFile.write( " </td>" + '\n')
0169 self.outFile.write( " </tr> " + '\n')
0170
0171 return
0172
0173 def writeStyledRow(self, args, styles) :
0174
0175 self.outFile.write( " <tr>" + '\n')
0176 for arg, cellStyle in zip(args, styles):
0177 if str(arg).strip() == "" : arg = " "
0178 cellStyle = cellStyle.strip()
0179 if cellStyle != '' : self.outFile.write( '<td class='+cellStyle+'> ' )
0180 else: self.outFile.write( " <td> " )
0181 self.outFile.write( arg )
0182 self.outFile.write( " </td>" + '\n')
0183 self.outFile.write( " </tr> " + '\n')
0184
0185 return
0186
0187 def endTable(self) :
0188
0189 self.outFile.write( "</tbody>" + '\n')
0190 self.outFile.write( "</table>" + '\n')
0191
0192
0193 def headers(self) :
0194
0195 if not self.headersDone :
0196
0197 self.outFile.write( "<html> " + '\n')
0198
0199 self.outFile.write( "<head> " + '\n')
0200
0201 if self.style:
0202 self.outFile.write( self.style + '\n')
0203
0204 self.outFile.write( "<TITLE>" + self.title + "</TITLE>" + '\n')
0205 if self.scriptCode:
0206 self.outFile.write( self.scriptCode + '\n' )
0207 self.outFile.write( "</head> " + '\n')
0208 self.outFile.write( "<body>" + '\n')
0209 self.headersDone = True
0210
0211 return
0212
0213
0214 def trailers(self) :
0215
0216 if self.headersDone :
0217 self.outFile.write( "</body>" + '\n')
0218 self.outFile.write( "</html> " + '\n')
0219 pass
0220 return
0221
0222