MCPcopy Create free account
hub / github.com/Paper2Poster/Paper2Poster / evaluate_arg

Function evaluate_arg

camel/benchmarks/nexus.py:435–455  ·  view source on GitHub ↗

r"""Recursively evaluate arguments, including nested calls.

(arg)

Source from the content-addressed store, hash-verified

433 return textwrap.dedent(call).strip()
434
435 def evaluate_arg(arg):
436 r"""Recursively evaluate arguments, including nested calls."""
437 if isinstance(arg, ast.Call):
438 # Recursively parse nested calls
439 func_name, args, kwargs = parse_function_call(ast.unparse(arg))
440 return func_name, args, kwargs
441 elif isinstance(
442 arg, ast.Constant
443 ): # Handle literals like numbers, strings, etc.
444 return arg.value
445 elif isinstance(arg, ast.List): # Handle list literals
446 return [evaluate_arg(el) for el in arg.elts]
447 elif isinstance(arg, ast.Dict): # Handle dictionary literals
448 return {
449 evaluate_arg(k): evaluate_arg(v)
450 for k, v in zip(arg.keys, arg.values)
451 }
452 elif isinstance(arg, ast.Tuple): # Handle tuple literals
453 return tuple(evaluate_arg(el) for el in arg.elts)
454 else:
455 return ast.literal_eval(arg) # Safely evaluate other types
456
457 call = preprocess_input(call)
458 parsed_calls = []

Callers 1

parse_function_callFunction · 0.70

Calls 1

parse_function_callFunction · 0.70

Tested by

no test coverage detected