[Python-checkins] python/dist/src/Lib xmlrpclib.py,1.38,1.39

fdrake at users.sourceforge.net fdrake at users.sourceforge.net
Thu Feb 10 19:33:32 CET 2005


Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18795/Lib
Modified Files:
	xmlrpclib.py 
Log Message:
accept datetime.datetime instances when marshalling;
dateTime.iso8601 elements still unmarshal into xmlrpclib.DateTime objects
Index: xmlrpclib.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/xmlrpclib.py,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- xmlrpclib.py	7 Feb 2005 15:28:45 -0000	1.38
+++ xmlrpclib.py	10 Feb 2005 18:33:29 -0000	1.39
@@ -149,6 +149,11 @@
 unicode = None # unicode support not available
 
 try:
+ import datetime
+except ImportError:
+ datetime = None
+
+try:
 _bool_is_builtin = False.__class__.__name__ == "bool"
 except NameError:
 _bool_is_builtin = 0
@@ -349,7 +354,10 @@
 
 def __init__(self, value=0):
 if not isinstance(value, StringType):
- if not isinstance(value, (TupleType, time.struct_time)):
+ if datetime and isinstance(value, datetime.datetime):
+ self.value = value.strftime("%Y%m%dT%H:%M:%S")
+ return
+ elif not isinstance(value, (TupleType, time.struct_time)):
 if value == 0:
 value = time.time()
 value = time.localtime(value)
@@ -699,6 +707,13 @@
 del self.memo[i]
 dispatch[DictType] = dump_struct
 
+ if datetime:
+ def dump_datetime(self, value, write):
+ write("<value><dateTime.iso8601>")
+ write(value.strftime("%Y%m%dT%H:%M:%S"))
+ write("</dateTime.iso8601></value>\n")
+ dispatch[datetime.datetime] = dump_datetime
+
 def dump_instance(self, value, write):
 # check for special wrappers
 if value.__class__ in WRAPPERS:


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /