MCPcopy Index your code
hub / github.com/prometheus/client_python / decorator

Function decorator

prometheus_client/decorator.py:242–265  ·  view source on GitHub ↗

decorator(caller) converts a caller function into a decorator

(caller, _func=None)

Source from the content-addressed store, hash-verified

240
241
242def decorator(caller, _func=None):
243 """decorator(caller) converts a caller function into a decorator"""
244 if _func is not None: # return a decorated function
245 # this is obsolete behavior; you should use decorate instead
246 return decorate(_func, caller)
247 # else return a decorator function
248 if inspect.isclass(caller):
249 name = caller.__name__.lower()
250 doc = 'decorator(%s) converts functions/generators into ' \
251 'factories of %s objects' % (caller.__name__, caller.__name__)
252 elif inspect.isfunction(caller):
253 if caller.__name__ == '<lambda>':
254 name = '_lambda_'
255 else:
256 name = caller.__name__
257 doc = caller.__doc__
258 else: # assume caller is an object with a __call__ method
259 name = caller.__class__.__name__.lower()
260 doc = caller.__call__.__doc__
261 evaldict = dict(_call_=caller, _decorate_=decorate)
262 return FunctionMaker.create(
263 '%s(func)' % name, 'return _decorate_(func, _call_)',
264 evaldict, doc=doc, module=caller.__module__,
265 __wrapped__=caller)
266
267
268# ####################### contextmanager ####################### #

Callers 1

decorator.pyFile · 0.85

Calls 2

decorateFunction · 0.85
createMethod · 0.45

Tested by

no test coverage detected