Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/private/callabletask.py: 50%
16 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-31 18:48 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-31 18:48 +0000
1import functools
2import inspect
4from casatasks import casalog
7def log_origin_setter(func):
8 """
9 This is a decorator function for a casatask calling other casatasks.
11 This decorator is intended to be used on a "super" casatask calling "sub" casatasks.
12 Its effect is to set the origin of messages logged by the "sub" tasks called by the "super" task to "super"
13 For example:
14 super_casatask::casa "Msg from super task"
15 super_casatask::casa "Msg from sub-task1 called by super task"
16 super_casatask::casa "Msg from sub-task1 called by super task"
18 Usage:
20 @log_origin_setter
21 def sometask(..)
22 pass
24 def othertask(..)
25 sometask(*args, **kwargs) # logged "othertask::..."
26 """
27 @functools.wraps(func)
28 def wrapper(*args, **kwargs):
29 __set_origin(inspect.stack(), casalog.getOrigin(), func.__name__)
31 retval = func(*args, **kwargs)
33 return retval
35 return wrapper
38def __set_origin(callstack, origin, funcname):
39 for frame_info in callstack:
40 if frame_info.function == origin:
41 casalog.origin(origin)
42 return
43 casalog.origin(funcname)