def preProcess(self,oldval): miscData = None if type(oldval) in (list,tuple): miscData = oldval[1] newval = oldval = oldval[0] else: newval = oldval #assert(type(newval) == str) if self.flagSum: try: self.sum += oldval except: pass if self.htype == self.BYTES: newval = BytesToText(newval) elif self.htype == self.DATE: try: newval = newval.strftime('%Y-%m-%d') except: newval = 'Never' elif self.htype == self.DATETIME: try: newval = newval.strftime('%Y-%m-%d %H:%M:%S') except: newval = 'Never' elif self.htype == self.FLOAT: try: newval = '%3.2f' % newval except: newval = 'NaN' elif self.htype == self.HTML: return (newval,oldval) elif self.htype == self.NUMBER: try: newval = '%d' % newval except: newval = 'NaN' elif self.htype == self.TEXT: if newval == None: newval = '' elif self.htype == self.TIME: if isinstance(newval,datetime.timedelta): days = newval.days newval += datetime.datetime(1900,1,1) newval = '%03d:%s' % (days,newval.strftime('%H:%M:%S')) else: try: newval = newval.strftime('%H:%M:%S') except: newval = 'Never' if type(newval) == str: newval = unicode(newval,'latin1') elif type(newval) != unicode: newval = str(newval) newval = newval.encode('utf8') newval = escape(newval) if self.postProcess: if miscData: newval = self.postProcess(newval,miscData) else: newval = self.postProcess(newval) if self.spanContent: newval = '<span>%s</span>' % newval return (newval,oldval)