from estimate_explosion_time.shared import get_custom_logger, main_logger_name, test_plots_dir, storage_dir, bandcolors
import logging

logger = get_custom_logger(main_logger_name)
logger_level = logging.DEBUG
logger.setLevel(logger_level)
logger.debug('logging level is DEBUG')

from estimate_explosion_time.analyses.simsurvey_simulations import SimsurveyDH
from estimate_explosion_time.core.analyse_fits_from_simulation.get_source_explosion_time.find_explosion_time import \
    get_explosion_time, ExplosionTimeError, bolometric_bandpass
import pickle
import os
import numpy as np
import sncosmo
from tqdm import tqdm
from matplotlib import pyplot as plt
import multiprocessing
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-f', '--force', type=bool, default=False)
args = parser.parse_args()

raw = f'{test_plots_dir}/test_explosion_time_estimation_from_template'

if not os.path.exists(raw):
    os.mkdir(raw)

storage_file = f'{storage_dir}/test_explosion_time_estimation_from_template.npy'
cl = 0.9
import os
import numpy as np
from tqdm import tqdm
import pickle
import pandas as pd
from estimate_explosion_time.core.data_prep.data import DataHandler, DataImportError
import logging
from estimate_explosion_time.shared import get_custom_logger, main_logger_name, es_scratch_dir

logger = get_custom_logger(__name__)
logger.setLevel(logging.getLogger(main_logger_name).getEffectiveLevel())
# logger.setLevel(logging.DEBUG)

raw_data_dir = es_scratch_dir + '/../benchmark_lcs'
lightcurve_dir = raw_data_dir + '/lcs'
meta_file = raw_data_dir + '/meta.csv'
pickle_filename = raw_data_dir + '/benchmark_lcs.pkl'

event_get_lc_fct = {}


def register_event(name):
    logger.debug(f'registering {name}')

    def dec(fct):
        event_get_lc_fct[name] = fct
        return fct

    return dec