Author: bbangert
Date: 2006-05-29 20:21:35 -0600 (Mon, 29 May 2006)
New Revision: 1795
Modified:
FormEncode/trunk/formencode/validators.py
Log:
Adding Unicode updates from TurboGears UnicodeString class.
Modified: FormEncode/trunk/formencode/validators.py
===================================================================
--- FormEncode/trunk/formencode/validators.py 2006-05-26 16:02:37 UTC (rev 1794)
+++ FormEncode/trunk/formencode/validators.py 2006-05-30 02:21:35 UTC (rev 1795)
@@ -1013,15 +1013,21 @@
def _from_python(self, value, state):
if value:
- # If it is already an unicode string...
if isinstance(value, unicode):
- # ... we return it as-is.
return value
- # Otherwise we convert it.
+ if hasattr(value, '__unicode__'):
+ return unicode(value)
return unicode(value, self.encoding)
if value == 0:
return unicode(value, self.encoding)
return unicode("", self.encoding)
+
+ def _from_python(self, value, state):
+ if hasattr(value, '__unicode__'):
+ value = unicode(value)
+ if isinstance(value, unicode):
+ return value.encode(self.encoding)
+ return str(value)
def empty_value(self, value):
return unicode("", self.encoding)
|