diff options
author | Bert JW Regeer <bertjw@regeer.org> | 2016-11-24 13:28:52 -0700 |
---|---|---|
committer | Bert JW Regeer <bertjw@regeer.org> | 2016-11-24 13:28:52 -0700 |
commit | fe006cb08c3119d5f3fd0f597c6220849e303f1b (patch) | |
tree | de0b3a52e36d6ee71b692edb0626777818ab576c | |
parent | fbeb560f6e53728d57d9505797e43633f3195f1e (diff) | |
download | webob-fe006cb08c3119d5f3fd0f597c6220849e303f1b.tar.gz |
Special case PY2: request.py
-rw-r--r-- | webob/request.py | 58 |
1 files changed, 26 insertions, 32 deletions
diff --git a/webob/request.py b/webob/request.py index 9e85287..150dd37 100644 --- a/webob/request.py +++ b/webob/request.py @@ -26,7 +26,6 @@ from webob.cachecontrol import ( ) from webob.compat import ( - PY3, PY2, bytes_, native_, @@ -172,10 +171,10 @@ class BaseRequest(object): encoding = getattr(self, encattr) else: encoding = 'ascii' - if PY3: # pragma: no cover - self.environ[key] = bytes_(val, encoding).decode('latin-1') - else: + if PY2: # pragma: no cover self.environ[key] = bytes_(val, encoding) + else: + self.environ[key] = bytes_(val, encoding).decode('latin-1') @property def charset(self): @@ -218,16 +217,16 @@ class BaseRequest(object): fs_environ = self.environ.copy() fs_environ.setdefault('CONTENT_LENGTH', '0') fs_environ['QUERY_STRING'] = '' - if PY3: + if PY2: fs = cgi_FieldStorage(fp=self.body_file, environ=fs_environ, - keep_blank_values=True, - encoding=charset, - errors=errors) + keep_blank_values=True) else: fs = cgi_FieldStorage(fp=self.body_file, environ=fs_environ, - keep_blank_values=True) + keep_blank_values=True, + encoding=charset, + errors=errors) fout = t.transcode_fs(fs, r._content_type_raw) @@ -785,20 +784,19 @@ class BaseRequest(object): # default of 0 is better: fs_environ.setdefault('CONTENT_LENGTH', '0') fs_environ['QUERY_STRING'] = '' - if PY3: + if PY2: fs = cgi_FieldStorage( fp=self.body_file, environ=fs_environ, - keep_blank_values=True, - encoding='utf8') - vars = MultiDict.from_fieldstorage(fs) + keep_blank_values=True) else: fs = cgi_FieldStorage( fp=self.body_file, environ=fs_environ, - keep_blank_values=True) - vars = MultiDict.from_fieldstorage(fs) + keep_blank_values=True, + encoding='utf8') + vars = MultiDict.from_fieldstorage(fs) env['webob._parsed_post_vars'] = (vars, self.body_file_raw) return vars @@ -1692,31 +1690,28 @@ class Transcoder(object): self._trans = lambda b: b.decode(charset, errors).encode('utf8') def transcode_query(self, q): - if PY3: - q_orig = q - if '=' not in q: - # this doesn't look like a form submission - return q_orig - q = list(parse_qsl_text(q, self.charset)) - return url_encode(q) - else: - q_orig = q - if '=' not in q: - # this doesn't look like a form submission - return q_orig + q_orig = q + if '=' not in q: + # this doesn't look like a form submission + return q_orig + + if PY2: q = urlparse.parse_qsl(q, self.charset) t = self._trans q = [(t(k), t(v)) for k, v in q] - return url_encode(q) + else: + q = list(parse_qsl_text(q, self.charset)) + + return url_encode(q) def transcode_fs(self, fs, content_type): # transcode FieldStorage - if PY3: + if PY2: def decode(b): - return b + return b.decode(self.charset, self.errors) else: def decode(b): - return b.decode(self.charset, self.errors) + return b data = [] for field in fs.list or (): @@ -1734,4 +1729,3 @@ class Transcoder(object): fout=io.BytesIO() ) return fout - |