[issue8112] xmlrpc.server: ServerHTMLDoc.docroutine uses (since 3.0) deprecated function "inspect.getargspec()"
tormen
report at bugs.python.org
Thu Mar 11 17:47:08 CET 2010
tormen <tormen at 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 <report at bugs.python.org>
<http://bugs.python.org/issue8112>
_______________________________________
More information about the Python-bugs-list
mailing list