tormen <tor...@gmx.net> added the comment:

Okey ...

Consider you have a function:
def fn( str:str ): pass

That you register to your DocXMLRPCServer:
register_function of SimpleXMLRPCDispatcher stores the function object  in the 
dictionary self.funcs under the name of the function (as key).

Then you start your server and access (with a browser) the ip and port of the 
machine running your xmlrpc server which calls
> DocXMLRPCRequestHandler.do_GET which
> generate_html_documenation() which copies the funcs dictionary into methods 
> and hands it to
> ServerHTMLDoc.docserver which calls for each function name + function object:
> ServerHTMLDoc.docroutine which calls (for inspect.ismethod and 
> inspect.isfunction):

inspect.getargspec on the function object

which will fail if you register an annotated function (like the above "fn") in 
the first place:
=========================================
  File "/usr/lib/python3.1/inspect.py", line 789, in getargspec
    raise ValueError("Function has keyword-only arguments or annotations"
ValueError: Function has keyword-only arguments or annotations, use 
getfullargspec() API which can support them
=========================================

Which most probably leads to the conclusion that you should just use the 
getfullargspec instead of getargspec just to avoid that the XMLRPC server 
crashes if someone registers a annotated function.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8112>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to