Burak, i tried that AnyDict but got an exception:
Traceback (most recent call last):
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/server/wsgi.py",
line 200, in __call__
return self._verb_handlers[verb](req_env, start_response)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/server/wsgi.py",
line 292, in handle_rpc
self.get_out_string(ctx)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/server/_base.py",
line 112, in get_out_string
message=self.app.out_protocol.RESPONSE)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/soap/soap11.py",
line 316, in serialize
self.app.interface.get_tns(), out_body_doc)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/_base.py",
line 134, in to_parent_element
handler(self, cls, value, tns, parent_elt, * args, ** kwargs)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/model/_base.py",
line 38, in wrapper
func(prot, cls, value, tns, parent_elt, *args, **kwargs)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/model/complex.py",
line 64, in complex_to_parent_element
get_members_etree(prot, cls, inst, element)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/model/complex.py",
line 53, in get_members_etree
prot.to_parent_element(v, subvalue, cls.get_namespace(), parent, k)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/_base.py",
line 134, in to_parent_element
handler(self, cls, value, tns, parent_elt, * args, ** kwargs)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/model/_base.py",
line 38, in wrapper
func(prot, cls, value, tns, parent_elt, *args, **kwargs)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/protocol/xml/model/primitive.py",
line 48, in dict_to_parent_element
dict_to_etree(value, e)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/util/etreeconv.py",
line 60, in dict_to_etree
dict_to_etree(v, child)
File
"/usr/local/lib/python2.6/dist-packages/rpclib-2.7.0_beta-py2.6.egg/rpclib/util/etreeconv.py",
line 55, in dict_to_etree
if len(v) == 0:
TypeError: object of type 'NoneType' has no len()
______________________________________________________________
> Od: "Burak Arslan" <[email protected]>
> Komu: azurIt <[email protected]>
> Dátum: 05.04.2012 23:35
> Predmet: Re: [Soap-Python] rpclib - dynamic key names
>
> CC: [email protected]
>On 04/05/12 22:01, azurIt wrote:
>> I'm not having problems with creating such an object but i don't know how to
>> return it via SOAP. What should i set as a return value to @srpc?
>
>why not just use the AnyDict or AnyXml types?
>
>>
>>
>> ______________________________________________________________
>>> Od: "Chris Austin"<[email protected]>
>>> Komu: azurIt<[email protected]>
>>> Dátum: 05.04.2012 20:45
>>> Predmet: Re: [Soap-Python] rpclib - dynamic key names
>>>
>>> CC: [email protected]
>>> Would something like the following work for you?
>>>
>>>>>> from rpclib.model.complex import ComplexModel
>>>>>> class A(ComplexModel):
>>> ... def foo(self):
>>> ... return "bar"
>>> ...
>>> ...
>>> ...
>>>>>> from rpclib.model.primitive import Unicode
>>>>>> for x in xrange(5):
>>> ... setattr(A, "u%s" % x, Unicode)
>>> ...
>>> ...
>>>>>> dir(A)
>>> ['Annotations', 'Attributes', 'Empty', '__class__', '__delattr__',
>>> '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__',
>>> '__hash__', '__init__', '__len__', '__metaclass__', '__module__',
>>> '__namespace__', '__new__', '__reduce__', '__reduce_ex__', '__rep
>>> r__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
>>> '__type_name__', '__weakref__', '_force_own_namespace', '_s_customize',
>>> '_type_info', 'alias', 'customize', 'foo', 'from_string',
>>> 'get_deserialization_instance', 'get_flat_type_info', 'get_members_pairs',
>>> 'get_namespace', 'get_namespace_prefix', 'get_serialization_instance',
>>> 'get_simple_type_info', 'get_type_name', 'get_type_name_ns', 'is_default',
>>> 'produce', 'resolve_namespace', 'to_dict', 'to_string',
>>> 'to_string_iterable', 'u0', 'u1', 'u2', 'u3', 'u4', 'validate_nativ
>>> e', 'validate_string']
>>>>>> A.u0
>>> <class 'rpclib.model.primitive.Unicode'>
>>>
>>> On Apr 5, 2012, at 11:11 AM, azurIt wrote:
>>>
>>>> Hi,
>>>>
>>>> any hints how can i return data structure with dynamic key names (so they
>>>> cannot be specified in type definition)? For example, something like this:
>>>>
>>>> data = {}
>>>> for i in xrange(1000):
>>>> data["a%s" % i] = u"something"
>>>> return data
>>>>
>>>>
>>>> without creating type:
>>>>
>>>> class test(ComplexModel):
>>>> a0 = Unicode
>>>> a1 = Unicode
>>>> ...
>>>> a999 = Unicode
>>>>
>>>>
>>>> Thnx!
>>>>
>>>> azur
>>>> _______________________________________________
>>>> Soap mailing list
>>>> [email protected]
>>>> http://mail.python.org/mailman/listinfo/soap
>>> Chris Austin
>>> [email protected]
>>>
>>>
>>>
>>>
>> _______________________________________________
>> Soap mailing list
>> [email protected]
>> http://mail.python.org/mailman/listinfo/soap
>
>
_______________________________________________
Soap mailing list
[email protected]
http://mail.python.org/mailman/listinfo/soap