diff options
| author | Sergey Schetinin <sergey@maluke.com> | 2011-09-25 16:13:45 +0300 |
|---|---|---|
| committer | Sergey Schetinin <sergey@maluke.com> | 2011-09-25 16:13:45 +0300 |
| commit | a4ef5c4d79278a54800d5b598e75fc9d2c19bbee (patch) | |
| tree | 823fc21894957ac65610ddb0e98e7660be5f1893 /webob | |
| parent | cba0d2a4cfbb46adb6fa582445da0d0298762b5b (diff) | |
| download | webob-a4ef5c4d79278a54800d5b598e75fc9d2c19bbee.tar.gz | |
specialize upath_property by py version
Diffstat (limited to 'webob')
| -rw-r--r-- | webob/descriptors.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/webob/descriptors.py b/webob/descriptors.py index d8fd109..d270b13 100644 --- a/webob/descriptors.py +++ b/webob/descriptors.py @@ -11,9 +11,8 @@ from webob.byterange import ( ) from webob.compat import ( + PY3, binary_type, - native_, - text_, text_to_wsgi, text_type, ) @@ -67,10 +66,18 @@ def environ_getter(key, default=_not_given, rfc_section=None): def upath_property(key): - def fget(req): - return text_(req.environ.get(key, ''), 'utf-8', req.unicode_errors) - def fset(req, val): - req.environ[key] = native_(val, 'utf-8', req.unicode_errors) + if PY3: # pragma: no cover + def fget(req): + return req.environ.get(key, '').encode('latin-1').decode('utf8', req.unicode_errors) + def fset(req, val): + req.environ[key] = val.encode('utf8').decode('latin-1') + else: + def fget(req): + return req.environ.get(key, '').decode('utf8', req.unicode_errors) + def fset(req, val): + if isinstance(val, unicode): + val = val.encode('utf8', req.unicode_errors) + req.environ[key] = val return property(fget, fset, doc='upath_property(%r)' % key) def deprecated_property(attr, name, text, version): # pragma: no cover |
