wf-transcriptomes-v202/bin/workflow_glue/util.py
Neil Horner d8d8a791af Glue
2023-02-24 14:42:57 +00:00

53 lines
1.5 KiB
Python
Executable File

"""The odd helper function."""
import argparse
import logging
_log_name = None
def get_main_logger(name):
"""Create the top-level logger."""
global _log_name
_log_name = name
logging.basicConfig(
format='[%(asctime)s - %(name)s] %(message)s',
datefmt='%H:%M:%S', level=logging.INFO)
return logging.getLogger(name)
def get_named_logger(name):
"""Create a logger with a name.
:param name: name of logger.
"""
name = name.ljust(10)[:10] # so logging is aligned
logger = logging.getLogger('{}.{}'.format(_log_name, name))
return logger
def wf_parser(name):
"""Make an argument parser for a workflow command."""
return argparse.ArgumentParser(
name,
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
add_help=False)
def _log_level():
"""Parser to set logging level and acquire software version/commit."""
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter, add_help=False)
modify_log_level = parser.add_mutually_exclusive_group()
modify_log_level.add_argument(
'--debug', action='store_const',
dest='log_level', const=logging.DEBUG, default=logging.INFO,
help='Verbose logging of debug information.')
modify_log_level.add_argument(
'--quiet', action='store_const',
dest='log_level', const=logging.WARNING, default=logging.INFO,
help='Minimal logging; warnings only.')
return parser