import time
import traceback
+# This module is commonly used by others in here and should avoid
+# taking any unnecessary dependencies back on them.
import argparse_utils
import config
-import logging_utils
logger = logging.getLogger(__name__)
def initialize(funct):
+ import logging_utils
+
"""Remember to initialize config and logging before running main."""
@functools.wraps(funct)
def initialize_wrapper(*args, **kwargs):
sys.excepthook = handle_uncaught_exception
config.parse()
logging_utils.initialize_logging(logging.getLogger())
- logger.debug(f"About to invoke {funct}...")
+ config.late_logging()
+ logger.debug(f'Starting {funct.__name__}')
start = time.perf_counter()
ret = funct(*args, **kwargs)
end = time.perf_counter()
f'child system: {cstime}s\n'
f'elapsed: {elapsed_time}s\n'
f'walltime: {end - start}s\n')
- logger.info(f'Exit {ret}')
+ if ret != 0:
+ logger.info(f'Exit {ret}')
+ else:
+ logger.debug(f'Exit {ret}')
sys.exit(ret)
return initialize_wrapper