On Thursday, Mar 6, 2003, at 11:50 US/Eastern, Skip Montanaro wrote: > Bill> Is there active work on the xmlrpclib module these days? The > Bill> HTTPTransport patch/addition should likely go out with 2.3 > as it > Bill> adds easy authentication and proxy support to xmlrpclib. > > Can you provide a SF id? I can't seem to find it. It had been closed or moved out of the SF bug queue by Fred about the same time he left python-dev, I believe. I had sent the HTTPTransport source to Fred, but that sounds like a dead end these days. Found it: 648658 > Bill> Also, the unicode support in xmlrpclib is broken in that it > can't > Bill> handle subclasses of <type 'unicode'>. > > Does it handle subclasses of str? I haven't tested, but looking at the implementation, I don't think it will. In my case, I'm using xmlrpclib in the context of a Cocoa/Python based application that frequently uses Objective-C sourced strings as a part of the RPC request. The PyObjC bridge now bridges NSStrings as a subclass of unicode. Currently, the Marshaller class in xmlrpclib builds a simple dictionary of types used to encode raw objects to XML. class Marshaller: ... dispatch = {} ... def dump_string(self, value, escape=escape): self.write("<value><string>%s</string></value>\n" % escape(value)) dispatch[StringType] = dump_string if unicode: def dump_unicode(self, value, escape=escape): value = value.encode(self.encoding) self.write("<value><string>%s</string></value>\n" % escape(value)) dispatch[UnicodeType] = dump_unicode ... Where the dump method is: def __dump(self, value): try: f = self.dispatch[type(value)] except KeyError: raise TypeError, "cannot marshal %s objects" % type(value) else: f(self, value) So, no, it doesn't do subclasses properly. The workaround [for me] was easy... and bogus: import xmlrpclib Marshaller.dispatch[type(NSString.stringWithString_(''))] = Marshaller.dispatch[type(u'')] b.bum
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4