diff options
author | ianb <devnull@localhost> | 2006-07-19 23:57:32 +0000 |
---|---|---|
committer | ianb <devnull@localhost> | 2006-07-19 23:57:32 +0000 |
commit | 288244f4efa7acd9686b35e6e45410b286977d20 (patch) | |
tree | d6083eabb8647dcd50ed37e115e20f816681f82f /paste/request.py | |
parent | 64045b248cf57e7607265994a1dcf92986a54f36 (diff) | |
download | paste-288244f4efa7acd9686b35e6e45410b286977d20.tar.gz |
Changed usage of MultiDict to util.multidict
Diffstat (limited to 'paste/request.py')
-rw-r--r-- | paste/request.py | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/paste/request.py b/paste/request.py index 81165e9..52431a2 100644 --- a/paste/request.py +++ b/paste/request.py @@ -22,38 +22,12 @@ import textwrap from Cookie import SimpleCookie import urlparse from util.UserDict24 import DictMixin, IterableUserDict, UserDict +from paste.util.multidict import multidict __all__ = ['get_cookies', 'get_cookie_dict', 'parse_querystring', 'parse_formvars', 'construct_url', 'path_info_split', 'path_info_pop', 'resolve_relative_url', 'EnvironHeaders'] - -class MultiDict(IterableUserDict): - """Acts as a normal dict, but assumes all values are lists, and - retrieving an item retrieves the first value in the list. getlist - retrieves the full list""" - def __getitem__(self, key): - return self.data[key][0] - - def getlist(self, key): - return self.data[key] - - def update(self, dict): - if isinstance(dict, UserDict): - self.data.update(dict.data) - elif isinstance(dict, type(self.data)): - self.data.update(dict) - else: - for k, v in dict.items(): - if self.has_key(k) and isinstance(v, list): - self[k].extend(v) - elif self.has_key(k): - self[k].append(v) - elif not isinstance(v, list): - self[k] = [v] - else: - self[k] = v - def get_cookies(environ): """ Gets a cookie object (which is a dictionary-like object) from the @@ -143,10 +117,9 @@ def parse_dict_querystring(environ): parsed, check_source = environ['paste.parsed_dict_querystring'] if check_source == source: return parsed - parsed = cgi.parse_qs(source, keep_blank_values=True, + parsed = cgi.parse_qsl(source, keep_blank_values=True, strict_parsing=False) - multi = MultiDict() - multi.update(parsed) + multi = multidict(parsed) environ['paste.parsed_dict_querystring'] = (multi, source) return multi |