Source code for asparagus.utils.output

import sys
import time
import socket
import logging

from typing import Optional, Union, Callable

from asparagus import utils

[docs]def set_logger( logger: logging.Logger, level: Optional[Callable] = None, stream: Optional[Union[Callable, str]] = sys.stdout, verbose: Optional[bool] = True, **kwargs ) -> logging.Logger: """ Set logging parameters, Parameters ---------- logger: logging.Logger Logger object to set parameters level: callable, optional, default 'logging.INFO' Print level for output (e.g. logging.DEBUG, logging.INFO, ...) stream: (callable, str), optional, default 'sys.stdout' Output channel to print or file path to write verbose: bool, optional, default True Start logger output with header for information Returns ------- logging.Logger Loger object with set paramerts """ # Set print level if level is None: logger.setLevel(logging.INFO) else: logger.setLevel(level) # Initialize output path if utils.is_string(stream): handler = logging.FileHandler(stream, mode='a') else: handler = logging.StreamHandler(stream) if verbose: handler.setFormatter( logging.Formatter( '%(levelname)s - %(name)s.%(funcName)s:\n%(msg)s\n')) else: handler.setFormatter(logging.Formatter('%(msg)s\n')) logger.addHandler(handler) logger.propagate = False return logger
[docs]def get_header( config_file: str ) -> str: """ Provide the Asparagus header. Parameters ---------- config_file: str Current configuration file path Returns ------- str Asparagus header """ current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) host = socket.gethostname() msg = ( r""" ' _______ ______ _ _ ' (_______) (____ \ | | | ' _______ ___ ____ _____ ____ _____ ____ _ _ ___ ____) )_ _ ____ __| | | _____ ' | ___ |/___) _ \(____ |/ ___|____ |/ _ | | | |/___) | __ (| | | | _ \ / _ | || ___ | ' | | | |___ | |_| / ___ | | / ___ ( (_| | |_| |___ | | |__) ) |_| | | | ( (_| | || ____| ' |_| |_(___/| __/\_____|_| \_____|\___ |____/(___/ |______/|____/|_| |_|\____|\_)_____) ' |_| (_____|""" + f""" ' ' Authors: K. Toepfer and L.I. Vazquez-Salazar ' Date: {current_time:s} ' Running on: {host:s} ' Details of this run are stored in: {config_file:s} ' ---------------------------------------------------------------------------------------------""" ) return msg