summaryrefslogtreecommitdiff
path: root/webob
diff options
context:
space:
mode:
authorSergey Schetinin <sergey@maluke.com>2011-09-25 16:13:45 +0300
committerSergey Schetinin <sergey@maluke.com>2011-09-25 16:13:45 +0300
commita4ef5c4d79278a54800d5b598e75fc9d2c19bbee (patch)
tree823fc21894957ac65610ddb0e98e7660be5f1893 /webob
parentcba0d2a4cfbb46adb6fa582445da0d0298762b5b (diff)
downloadwebob-a4ef5c4d79278a54800d5b598e75fc9d2c19bbee.tar.gz
specialize upath_property by py version
Diffstat (limited to 'webob')
-rw-r--r--webob/descriptors.py19
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