def get_args_kwargs(foo):
spec = inspect.signature(foo)<EOL>params = spec.parameters<EOL>args,args_with_def=[],[]<EOL>for n,p in params.items():<EOL><INDENT>if p.default is p.empty:<EOL><INDENT>args.append(n)<EOL><DEDENT>else:<EOL><INDENT>args_with_def.append(n)<EOL><DEDENT><DEDENT>return args,args_with_def<EOL>
callable->[],[]
function that determines which argumnents have a default value
:return: tuple of lists of names [args],[args_with_def]