def decorate(func, caller, extras=()):
evaldict = dict(_call_=caller, _func_=func)<EOL>es = '<STR_LIT>'<EOL>for i, extra in enumerate(extras):<EOL><INDENT>ex = '<STR_LIT>' % i<EOL>evaldict[ex] = extra<EOL>es += ex + '<STR_LIT:U+002CU+0020>'<EOL><DEDENT>fun = FunctionMaker.create(<EOL>func, "<STR_LIT>" % es,<EOL>evaldict, __wrapped__=func)<EOL>if hasattr(func, '<STR_LIT>'):<EOL><INDENT>fun.__qualname__ = func.__qualname__<EOL><DEDENT>return fun<EOL>
decorate(func, caller) decorates a function using a caller.