def _analyze_func_string(func_string):
func = ast.parse(func_string)<EOL>try:<EOL><INDENT>func_call = func.body[<NUM_LIT:0>].value<EOL>func_name = func_call.func.id<EOL><DEDENT>except AttributeError:<EOL><INDENT>raise SphinxError("<STR_LIT>".format(func_string))<EOL><DEDENT>func_args = []<EOL>for arg in func_call.args:<EOL><INDENT>if isinstance(arg, ast.Num):<EOL><INDENT>func_args.append(arg.n)<EOL><DEDENT>elif isinstance(arg, ast.Str):<EOL><INDENT>func_args.append(arg.s)<EOL><DEDENT>elif isinstance(arg, ast.BoolOp):<EOL><INDENT>func_args.append(arg.s)<EOL><DEDENT>elif isinstance(arg, ast.List):<EOL><INDENT>arg_list = []<EOL>for element in arg.elts:<EOL><INDENT>if isinstance(element, ast.Num):<EOL><INDENT>arg_list.append(element.n)<EOL><DEDENT>elif isinstance(element, ast.Str):<EOL><INDENT>arg_list.append(element.s)<EOL><DEDENT><DEDENT>func_args.append(arg_list)<EOL><DEDENT>else:<EOL><INDENT>raise FunctionParsingException()<EOL><DEDENT><DEDENT>func_kargs = {}<EOL>for keyword in func_call.keywords:<EOL><INDENT>kvalue = keyword.value<EOL>kkey = keyword.arg<EOL>if isinstance(kvalue, ast.Num):<EOL><INDENT>func_kargs[kkey] = kvalue.n<EOL><DEDENT>elif isinstance(kvalue, ast.Str):<EOL><INDENT>func_kargs[kkey] = kvalue.s<EOL><DEDENT>elif isinstance(kvalue, ast_boolean):  <EOL><INDENT>if is_python3:<EOL><INDENT>func_kargs[kkey] = kvalue.value<EOL><DEDENT>else:<EOL><INDENT>func_kargs[kkey] = kvalue.id<EOL><DEDENT><DEDENT>elif isinstance(kvalue, ast.List):<EOL><INDENT>arg_list = []<EOL>for element in kvalue.elts:<EOL><INDENT>if isinstance(element, ast.Num):<EOL><INDENT>arg_list.append(element.n)<EOL><DEDENT>elif isinstance(element, ast.Str):<EOL><INDENT>arg_list.append(element.s)<EOL><DEDENT><DEDENT>func_kargs[kkey] = arg_list<EOL><DEDENT>else:<EOL><INDENT>raise FunctionParsingException()<EOL><DEDENT><DEDENT>return func_name, func_args, func_kargs<EOL>
Analyze given functiion string an extract:

* function name
* function arguments
* function keyword arguments

All given arguments must by of type string, int/float or list.

:param func_string: string of the function
:return: function name, arguments, keyword arguments