commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r5152 - trunk/gnue-common/src/datasources/drivers/appserver/appserver


From: jan
Subject: r5152 - trunk/gnue-common/src/datasources/drivers/appserver/appserver
Date: Tue, 24 Feb 2004 06:40:45 -0600 (CST)

Author: jan
Date: 2004-02-24 06:40:37 -0600 (Tue, 24 Feb 2004)
New Revision: 5152

Modified:
   trunk/gnue-common/src/datasources/drivers/appserver/appserver/Connection.py
Log:
rename type to typestr, to allow type checks. Don't raise an error when trying 
to convert a unicode string to unicode. (fixes appserver dbdriver using 
xmlrpc.pw_xmlrpc driver)


Modified: 
trunk/gnue-common/src/datasources/drivers/appserver/appserver/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/appserver/appserver/Connection.py 
2004-02-24 11:30:43 UTC (rev 5151)
+++ trunk/gnue-common/src/datasources/drivers/appserver/appserver/Connection.py 
2004-02-24 12:40:37 UTC (rev 5152)
@@ -155,30 +155,35 @@
     self._fieldtypes = self._fieldtypes [0]
 
   # convert a value retrieved from RPC to the correct native Python type
-  def __rpc_to_native (self, value, type):
+  def __rpc_to_native (self, value, typestr):
 
     # Empty strings indicate None
     if value == '':
       return None
 
     # String: convert to unicode or local encoding
-    elif type [:7] == 'string(':
-      value = unicode (value, 'utf-8')
+    elif typestr [:7] == 'string(':
+      try:
+        value = unicode (value, 'utf-8')
+      except TypeError, msg:
+        # if value is already unicode, don't raise TypeError
+        if type(value)!=types.UnicodeType:
+         raise TypeError, msg
       if self._unicodeMode:
         return value
       else:
         return value.encode (gConfig ('textEncoding'))
 
     # Date: convert to mx.DateTime object
-    elif type == 'date':
+    elif typestr == 'date':
       return mx.DateTime.ISO.ParseDate (value)
 
     # Time: convert to mx.DateTime object
-    elif type == 'time':
+    elif typestr == 'time':
       return mx.DateTime.ISO.ParseTime (value)
 
     # DateTime: convert to mx.DateTime object
-    elif type == 'datetime':
+    elif typestr == 'datetime':
       return mx.DateTime.ISO.ParseDateTime (value)
 
     # All others (id, number, boolean, reference): no need to convert





reply via email to

[Prev in Thread] Current Thread [Next in Thread]