summaryrefslogtreecommitdiff
path: root/paste/request.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2006-07-19 23:57:32 +0000
committerianb <devnull@localhost>2006-07-19 23:57:32 +0000
commit288244f4efa7acd9686b35e6e45410b286977d20 (patch)
treed6083eabb8647dcd50ed37e115e20f816681f82f /paste/request.py
parent64045b248cf57e7607265994a1dcf92986a54f36 (diff)
downloadpaste-288244f4efa7acd9686b35e6e45410b286977d20.tar.gz
Changed usage of MultiDict to util.multidict
Diffstat (limited to 'paste/request.py')
-rw-r--r--paste/request.py33
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