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.
|