diff options
author | Ian Bicking <ian@ianbicking.org> | 2005-08-22 23:29:31 +0000 |
---|---|---|
committer | Ian Bicking <ian@ianbicking.org> | 2005-08-22 23:29:31 +0000 |
commit | 82d331036f311709b77a1e3a90a9b191c9e49c61 (patch) | |
tree | 2c91bcd0181be8babe4146c3f448429e4840f29f /paste/webkit/wkcommon.py | |
parent | 36d1c63f5e12f1dfd6d5187359093a96a2fd2de4 (diff) | |
download | paste-git-82d331036f311709b77a1e3a90a9b191c9e49c61.tar.gz |
Moved webkit to separate project
Diffstat (limited to 'paste/webkit/wkcommon.py')
-rw-r--r-- | paste/webkit/wkcommon.py | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/paste/webkit/wkcommon.py b/paste/webkit/wkcommon.py deleted file mode 100644 index 7203153..0000000 --- a/paste/webkit/wkcommon.py +++ /dev/null @@ -1,190 +0,0 @@ -import cgi -import urllib -import warnings -import inspect -import Cookie as CookieEngine - -__all__ = ['NoDefault', 'htmlEncode', 'htmlDecode', - 'urlEncode', 'urlDecode', - ] - -try: - from MiscUtils import NoDefault -except ImportError: - class NoDefault: - pass - -def htmlEncode(s): - return cgi.escape(s, 1) - -def htmlDecode(s): - for char, code in [('&', '&'), - ('<', '<'), - ('>', '>'), - ('"', '"')]: - s = s.replace(code, char) - return s - -urlDecode = urllib.unquote -urlEncode = urllib.quote - -def requestURI(dict): - """ - Returns the request URI for a given CGI-style dictionary. Uses - REQUEST_URI if available, otherwise constructs and returns it from - SCRIPT_NAME, PATH_INFO and QUERY_STRING. - """ - uri = dict.get('REQUEST_URI', None) - if uri is None: - uri = dict.get('SCRIPT_NAME', '') + dict.get('PATH_INFO', '') - query = dict.get('QUERY_STRING', '') - if query: - uri = uri + '?' + query - return uri - -def deprecated(msg=None): - # @@: Right now this takes up a surprising amount of CPU time - # (blech! inspect is slow) - return - if not msg: - frame = inspect.stack()[1] - methodName = frame[3] - msg = 'The use of %s is deprecated' % methodName - warnings.warn(msg, DeprecationWarning, stacklevel=3) - - - -class Cookie: - """ - Cookie is used to create cookies that have additional - attributes beyond their value. - - Note that web browsers don't typically send any information - with the cookie other than it's value. Therefore - `HTTPRequest.cookie` simply returns a value such as an - integer or a string. - - When the server sends cookies back to the browser, it can send - a cookie that simply has a value, or the cookie can be - accompanied by various attributes (domain, path, max-age, ...) - as described in `RFC 2109`_. Therefore, in HTTPResponse, - `setCookie` can take either an instance of the Cookie class, - as defined in this module, or a value. - - Note that Cookies values get pickled (see the `pickle` module), - so you can set and get cookies that are integers, lists, - dictionaries, etc. - - .. _`RFC 2109`: ftp://ftp.isi.edu/in-notes/rfc2109.txt - """ - - ## Future - ## - ## * This class should provide error checking in the setFoo() - ## methods. Or maybe our internal Cookie implementation - ## already does that? - ## * This implementation is probably not as efficient as it - ## should be, [a] it works and [b] the interface is stable. - ## We can optimize later. - - def __init__(self, name, value): - """ - Create a cookie -- properties other than `name` and - `value` are set with methods. - """ - - self._cookies = CookieEngine.SimpleCookie() - self._name = name - self._value = value - self._cookies[name] = value - self._cookie = self._cookies[name] - - """ - **Accessors** - """ - - def comment(self): - return self._cookie['comment'] - - def domain(self): - return self._cookie['domain'] - - def maxAge(self): - return self._cookie['max-age'] - - def expires(self): - return self._cookie['expires'] - - def name(self): - return self._name - - def path(self): - return self._cookie['path'] - - def isSecure(self): - return self._cookie['secure'] - - def value(self): - return self._value - - def version(self): - return self._cookie['version'] - - - """ - **Setters** - """ - - def setComment(self, comment): - self._cookie['comment'] = comment - - def setDomain(self, domain): - self._cookie['domain'] = domain - - def setExpires(self, expires): - self._cookie['expires'] = expires - - def setMaxAge(self, maxAge): - self._cookie['max-age'] = maxAge - - def setPath(self, path): - self._cookie['path'] = path - - def setSecure(self, bool): - self._cookie['secure'] = bool - - def setValue(self, value): - self._value = value - self._cookies[self._name] = value - - def setVersion(self, version): - self._cookie['version'] = version - - - """ - **Misc** - """ - - def delete(self): - """ - When sent, this should delete the cookie from the user's - browser, by making it empty, expiring it in the past, - and setting its max-age to 0. One of these will delete - the cookie for any browser (which one actually works - depends on the browser). - """ - - self._value = '' - self._cookie['expires'] = "Mon, 01-Jan-1900 00:00:00 GMT" - self._cookie['max-age'] = 0 - self._cookie['path'] = '/' - - - def headerValue(self): - """ - Returns a string with the value that should be - used in the HTTP headers. """ - - items = self._cookies.items() - assert(len(items)==1) - return items[0][1].OutputString() |