Using Python Spyne (RPC) is there a way to return a native python list instead of the fancy Array or Iterable? -
both iterable , array types seem have native list hidden away in them, find myself doing things like:
mylist = service.fetchremotelist()[0][1]
where fetchremotelist() _returns=iterable(string)
i don't want have put [0][1] @ end of list function calls.
spyne uses wrapped arrays default, because that's else in xml world does.
wrapped array:
<users> <user> <id>1</id> <name>batman</name> </user> <user> <id>2</id> <name>robin</name> </user> </users>
bare array:
<users> <id>1</id> <name>batman</name> </users> <users> <id>2</id> <name>robin</name> </users>
you can see why likes wrapped arrays better now. it's matter of convention, surely helpful one. plus, it's not possible polymorphism non-wrapped arrays.
spyne uses wrapped functions default, because it's not possible have multiple arguments / return values in bare mode.
now answers:
here's wrapped array:
array(unicode)
here's equivalent bare array:
unicode(max_occurs='unbounded')
in 2.12, can pass
wrapped=false
array bare arrays. eg.:array(unicode, wrapped=false)
as discovered, can bare functions passing
_body_style='bare'
@rpc
.
some soap clients discover kind of function/array via simple heuristics , save trouble of using magic indexes. apparently suds isn't 1 of them.
Comments
Post a Comment