Source code for snews_cs.cs_utils

"""
Example initial dosctring
"""
from dotenv import load_dotenv
from datetime import datetime
import os


[docs]def set_env(env_path=None): """ Set environment parameters Parameters ---------- env_path : `str`, (optional) path for the environment file. Use default settings if not given """ dirname = os.path.dirname(__file__) default_env_path = os.path.dirname(__file__) + '/auxiliary/test-config.env' env = env_path or default_env_path load_dotenv(env)
[docs]class TimeStuff: ''' SNEWS format datetime objects ''' def __init__(self, env_path=None): set_env(env_path) self.snews_t_format = os.getenv("TIME_STRING_FORMAT") self.hour_fmt = "%H:%M:%S" self.date_fmt = "%y_%m_%d" self.get_datetime = datetime.utcnow() self.get_snews_time = lambda fmt=self.snews_t_format: datetime.utcnow().strftime(fmt) self.get_hour = lambda fmt=self.hour_fmt: datetime.utcnow().strftime(fmt) self.get_date = lambda fmt=self.date_fmt: datetime.utcnow().strftime(fmt)
[docs] def str_to_datetime(self, nu_time, fmt='%y/%m/%d %H:%M:%S'): """ string to datetime object """ return datetime.strptime(nu_time, fmt)
[docs] def str_to_hr(self, nu_time, fmt='%H:%M:%S:%f'): """ string to datetime hour object """ return datetime.strptime(nu_time, fmt)
# TODO: needs work
[docs]def get_logger(scriptname, logfile_name): """ Logger .. note:: Deprecated """ import logging # Gets or creates a logger logger = logging.getLogger(scriptname) # set log level logger.setLevel(logging.INFO) # define file handler and set formatter file_handler = logging.FileHandler(logfile_name) formatter = logging.Formatter('%(asctime)s : %(levelname)s : %(name)s : %(message)s') file_handler.setFormatter(formatter) # add file handler to logger logger.addHandler(file_handler) return logger
# TODO: Change to SNEWS_PT struc
[docs]def data_cs_alert(p_vals=None, nu_times=None, detector_names=None, p_val_avg=None, sub_list_num=None): """ Default alert message data Parameters ---------- p_vals : `list` list with p-values of the observations involved in the alert nu_time : `list` list of neutrino arrival times detector_names : `list` list of ids of the detectors involved in the alert p_val_avg : `float` Naive, average p value sub_list_num : `int` The sublist number of the triggered alert Returns ------- `dict` dictionary of the complete alert data """ keys = ['p_vals', 'neutrino_times', 'detector_names', 'p_val_avg', 'sub_list_num'] values = [p_vals, nu_times, detector_names, p_val_avg, sub_list_num] return dict(zip(keys, values))