From: <poo...@us...> - 2010-03-12 02:13:25
|
Revision: 1498 http://pywebsvcs.svn.sourceforge.net/pywebsvcs/?rev=1498&view=rev Author: pooryorick Date: 2010-03-12 02:13:19 +0000 (Fri, 12 Mar 2010) Log Message: ----------- removed "iter" test as a dump_dispatch criteria, and replaced with explicit "tuple" test Modified Paths: -------------- trunk/SOAPpy/SOAPpy/SOAPBuilder.py Modified: trunk/SOAPpy/SOAPpy/SOAPBuilder.py =================================================================== --- trunk/SOAPpy/SOAPpy/SOAPBuilder.py 2010-03-08 06:06:52 UTC (rev 1497) +++ trunk/SOAPpy/SOAPpy/SOAPBuilder.py 2010-03-12 02:13:19 UTC (rev 1498) @@ -497,6 +497,17 @@ dump_tuple = dump_list + def dump_exception(self, obj, tag, typed = 0, ns_map = {}): + if isinstance(obj, faultType): # Fault + cns, cdecl = self.genns(ns_map, NS.ENC) + vns, vdecl = self.genns(ns_map, NS.ENV) + self.out.append('<%sFault %sroot="1"%s%s>' % (vns, cns, vdecl, cdecl)) + self.dump(obj.faultcode, "faultcode", typed, ns_map) + self.dump(obj.faultstring, "faultstring", typed, ns_map) + if hasattr(obj, "detail"): + self.dump(obj.detail, "detail", typed, ns_map) + self.out.append("</%sFault>\n" % vns) + def dump_dictionary(self, obj, tag, typed = 1, ns_map = {}): if Config.debug: print "In dump_dictionary." tag = tag or self.gentag() @@ -521,14 +532,24 @@ dump_dict = dump_dictionary # For Python 2.2+ def dump_dispatch(self, obj, tag, typed = 1, ns_map = {}): + if not tag: + # If it has a name use it. + if isinstance(obj, anyType) and obj._name: + tag = obj._name + else: + tag = self.gentag() + # watch out for order! dumpmap = ( + (Exception, self.dump_exception), + (arrayType, self.dump_list), (basestring, self.dump_string), (NoneType, self.dump_None), (bool, self.dump_bool), (int, self.dump_int), (long, self.dump_int), (list, self.dump_list), + (tuple, self.dump_list), (dict, self.dump_dictionary), (float, self.dump_float), ) @@ -537,36 +558,6 @@ func(obj, tag, typed, ns_map) return - try: - iter(obj) - except TypeError: - pass - else: - self.dump_list(obj, tag, typed, ns_map) - return - - - if not tag: - # If it has a name use it. - if isinstance(obj, anyType) and obj._name: - tag = obj._name - else: - tag = self.gentag() - - if isinstance(obj, arrayType): # Array - self.dump_list(obj, tag, typed, ns_map) - return - elif isinstance(obj, faultType): # Fault - cns, cdecl = self.genns(ns_map, NS.ENC) - vns, vdecl = self.genns(ns_map, NS.ENV) - self.out.append('<%sFault %sroot="1"%s%s>' % (vns, cns, vdecl, cdecl)) - self.dump(obj.faultcode, "faultcode", typed, ns_map) - self.dump(obj.faultstring, "faultstring", typed, ns_map) - if hasattr(obj, "detail"): - self.dump(obj.detail, "detail", typed, ns_map) - self.out.append("</%sFault>\n" % vns) - return - r = self.genroot(ns_map) try: a = obj._marshalAttrs(ns_map, self) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |