courtney ludwin
courtneyludwin at yahoo.com
Sat Jan 7 22:56:32 EST 2006
Yo Sean, I just wrote the encode/decode functions recently and posted them on by blog: http://2centspoorer.blogspot.com/2006/01/urlencoderdecoder-for-python.html regards, Courtney anyway here it is... _keys = [ "$", "&", "+", ",", "/", ":", ";", "=", "?", "@", " ", '"', "<", ">", "#", "%", "{", "}", "|", "\\", "^", "~", "[", "]", "`"] _vals = [ '%24', '%26', '%2B', '%2C', '%2F', '%3A', '%3B', '%3D', '%3F', '%40', '%20', '%22', '%3C', '%3E', '%23', '%25', '%7B', '%7D', '%7C', '%5C', '%5E', '%7E', '%5B', '%5D', '%60'] def encode(str=""): """ URL Encodes a string with out side effects """ return "".join([_swap(x) for x in str]) def decode(str=""): """ Takes a URL encoded string and decodes it with out side effects """ if not str: return None for v in _vals: if v in str: str = str.replace(v, _keys[_vals.index(v)]) return str def _swap(x): """ Helper function for encode. """ if x in _keys: return _vals[_keys.index(x)] return x ### units ### if __name__ == "__main__": assert("".join(_keys) == decode(encode("".join(_keys)))) assert("".join(_vals) == encode(decode("".join(_vals)))) print "passed all unit tests." --- Sean Jamieson <sean at barriescene.com> wrote: > Hi, I don't know if what I'm about to ask has > already been requested, or > if this is the right list, but here I go: > > I have been using mod_python for about 3 weeks now, > and have come up > with a few things that I'd like to see added into > the util module (I'm > assuming this might be the right place for them). > > 1. a refresh() sibling to the redirect() function; I > use the Refresh > header quite often in my applications. > > 2. html(encode|decode) for translating all defined > entity characters; > currently pythons default cgi.escape only translates > "&", "<" and ">", > and xml.sax.saxutils.escape is both silly if you're > not using sax for > anything else, and not convenient as you have to > give it the translation > table. Also a simple method to unescape these is > quite useful aswell. > > I've thought of other things aswell, but I can't > remember what they were > right now :-) > > This is a great project, keep up the good work. > > Thanks, > Sean > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python > __________________________________________ Yahoo! DSL Something to write home about. Just $16.99/mo. or less. dsl.yahoo.com
|