On Wednesday 07 February 2007 20:53, Jean-Paul Calderone wrote:
Nope, it's probably just a bug. It looks like it may be a bug in the xmlrpclib module, though. Consider this interaction:
Thanks for your reply, JP. You're right that it looks like a bug in xmlrpclib itself; however, it only looks like it's a bug in Python 2.4's version of xmlrpclib; version Python 2.5 has a slightly different xmlrpclib.py that does not exhibit this behaviour; using your example: $ python2.5 Python 2.5 (r25:51908, Oct 6 2006, 15:22:41) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import xmlrpclib d1 = xmlrpclib.DateTime() d1 <DateTime '20070209T13:02:31' at b7d4896c> s = xmlrpclib.dumps((d1,)) s '<params>\n<param>\n<value><dateTime.iso8601>20070209T13:02:31</dateTime.iso8601></value>\n</param>\n</params>\n' d2 = xmlrpclib.loads(s)[0][0] d2 <DateTime '20070209T13:02:31' at b7d48e2c> xmlrpclib.dumps((d2,)) '<params>\n<param>\n<value><dateTime.iso8601>20070209T13:02:31</dateTime.iso8601></value>\n</param>\n</params>\n'
So obviously someone noticed that 2.4's was buggy from a round-trip point-of-view and corrected it for 2.5. Not sure if that means that they will be unreceptive to patching 2.4. It also looks like one can just drop 2.5's xmlrpclib.py into a 2.4 tree and run compileall.py and the odd behaviour disappears. Having Twisted work around this problem would be a Good Thing, however. I'll file a bug report. Cheers Ricky