Exemplo n.º 1
0
	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)