import cgitb cgitb.enable() import cgi import os import sys def bool(s): try: return int(s) except ValueError: pass return s == 'on' def commafy(s): s = str(int(s)) o = '' while len(s) > 3: o = ',' + s[-3:] + o s = s[:-3] return s + o def escape(s): return str(s).replace('&', '&').replace('<', '<').replace('>', '>') def form_get(form, name, default, conv=str): try: item = form[name] except KeyError: return default if item.file: print("Uploads are not allowed!") sys.exit(1) if type(item.value) is not type(''): print("Multiple values are not allowed!") sys.exit(1) try: value = conv(item.value) except: print("'%s' failed to convert" % name) sys.exit(1) return value class EvalDict: def __init__(self, values): self.values = values def __getitem__(self, key): return escape(eval(key, self.values)) def row(a,b,bold=0): pre = post = '' if bold: pre = '' post = '' print('