Hi

I wrote some code that seemed to me to be just fine and I got an exception from 
soaplib.  Just in case you're worried about the code, think about a situation 
where the input signature is quite complicated and is stored in another file, 
and all you want to do is write a stub function that returns a fixed value, or 
a range of fixed values.  In this situation you might want to try different 
input schemes but for the stub return a fixed value.

The background to this is that I want to decouple the various aspects of the 
information that goes into soaplib so that I have more flexibility.  I've had a 
look at the source that raises this error.
    https://github.com/soaplib/soaplib/blob/1_0/src/soaplib/service.py#L64


Here's the example.

$ cat examples/woozle.py
from soaplib.service import rpc, DefinitionBase
from soaplib.serializers.primitive import String
from soaplib.wsgi import Application


class Tiny(DefinitionBase):

    @rpc(String, _returns=String)
    def doit(self, *argv):
        return 'this is a string'


application = Application([Tiny],  'namespace')


$ python examples/woozle.py
Traceback (most recent call last):
  File "examples/woozle.py", line 13, in <module>
    application = Application([Tiny],  'namespace')
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/wsgi.py",
 line 89, in __init__
    self.build_schema()
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/wsgi.py",
 line 165, in build_schema
    inst = self.get_service(s)
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/wsgi.py",
 line 205, in get_service
    return service(http_req_env)
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/service.py",
 line 260, in __init__
    _public_methods_cache[cls] = self.build_public_methods()
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/service.py",
 line 337, in build_public_methods
    descriptor = func(_method_descriptor=True, clazz=self.__class__)
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/service.py",
 line 124, in explain_method
    in_message = get_input_message(ns)
  File 
"/usr/local/lib/python2.6/dist-packages/soaplib-1.0.0_beta8-py2.6.egg/soaplib/service.py",
 line 66, in get_input_message
    f.func_name)
Exception: doit has parameter numbers mismatching


--
Jonathan



-- 
The Open University is incorporated by Royal Charter (RC 000391), an exempt 
charity in England & Wales and a charity registered in Scotland (SC 038302).

_______________________________________________
Soap mailing list
[email protected]
http://mail.python.org/mailman/listinfo/soap

Reply via email to