What is a decorator in python.
Implement count_calls(function_source, calls), which applies a decorator to the function defined by function_source. The decorator must count invocations, preserve the original function name, execute each requested call, and return the results with the final count. Each call contains positional arguments in args and keyword arguments in kwargs.
The function returns a dictionary with returns, call_count, and name. Function sources contain one standard Python function definition and use only built-in operations.
function_source contains exactly one standard Python function definitioncalls contains zero or more objects with args as a list and kwargs as a dictionarydef count_calls(function_source, calls):