def escape(data, entities={}): assert not entities return data.replace("&", "&").replace(">", ">").replace("<", "<") def unescape(data, entities={}): assert not entities return data.replace("<", "<").replace(">", ">").replace("&", "&") def quoteattr(data, entities={}): assert not entities data = escape(data).replace("\n", " ").replace("\r", " ").replace("\t", " ") if '"' in data: if "'" in data: return '"' + data.replace('"', """) + '"' else: return "'" + data + "'" else: return '"' + data + '"'