import logging
import os

from eive_tmtc import EIVE_TMTC_ROOT
from tmtccmd.fsfw import parse_fsfw_events_csv
from tmtccmd.pus.s5_fsfw_event import EventDictT

DEFAULT_EVENTS_CSV_PATH = EIVE_TMTC_ROOT / "config/events.csv"
__EVENT_DICT = None


def get_event_dict() -> EventDictT:
    global __EVENT_DICT
    if __EVENT_DICT is None:
        if os.path.exists(DEFAULT_EVENTS_CSV_PATH):
            __EVENT_DICT = parse_fsfw_events_csv(DEFAULT_EVENTS_CSV_PATH)
        else:
            logging.getLogger(__name__).warning(
                f"No Event CSV file found at {DEFAULT_EVENTS_CSV_PATH}"
            )
            __EVENT_DICT = dict()
    return __EVENT_DICT