diff --git a/src/robotremoteserver.py b/src/robotremoteserver.py index 62fc5ed..713abd6 100644 --- a/src/robotremoteserver.py +++ b/src/robotremoteserver.py @@ -85,6 +85,7 @@ def _register_functions(self, server): server.register_function(self.run_keyword) server.register_function(self.get_keyword_arguments) server.register_function(self.get_keyword_documentation) + server.register_function(self.get_library_information) server.register_function(self.stop_remote_server) @property @@ -186,6 +187,19 @@ def get_keyword_documentation(self, name): 'Return ``True/False`` depending was server stopped or not.') return self._library.get_keyword_documentation(name) + def get_library_information(self): + info = dict() + for keyword in self.get_keyword_names(): + info[keyword] = dict( + args=self.get_keyword_arguments(keyword), + tags=self.get_keyword_tags(keyword), + doc=self.get_keyword_documentation(keyword), + types=[] + ) + info['__intro__'] = dict(doc=self.get_keyword_documentation('__intro__')) + info['__init__'] = dict(doc=self.get_keyword_documentation('__init__')) + return info + def get_keyword_tags(self, name): if name == 'stop_remote_server': return [] @@ -308,7 +322,7 @@ def get_keyword_arguments(self, name): if __name__ == '__init__': return [] kw = self._get_keyword(name) - args, varargs, kwargs, defaults = inspect.getargspec(kw) + args, varargs, kwargs, defaults, kwonlyargs, kwonlydefaults, annotations = inspect.getfullargspec(kw) if inspect.ismethod(kw): args = args[1:] # drop 'self' if defaults: