import numpy as np
import matplotlib.pyplot as plt

def noise_addition_routines_main(inp_dict):
    flag_noise = inp_dict["flag_noise"]

    if flag_noise is None:
        from WEAVEify_routines.step_10_noise_addition.type_0_no_noise.no_noise_routines import \
        no_noise_routines_main

        inp_dict = no_noise_routines_main(inp_dict)

    elif (flag_noise.upper() == "NONE") | (flag_noise.upper() == "NO"):

        from WEAVEify_routines.step_10_noise_addition.type_0_no_noise.no_noise_routines import \
        no_noise_routines_main

        inp_dict = no_noise_routines_main(inp_dict)

    elif "GAUSS" in flag_noise.upper():
        from WEAVEify_routines.step_10_noise_addition.type_1_gaussian_noise.gaussian_noise_routines import \
        gaussian_noise_routines_main

        inp_dict = gaussian_noise_routines_main(inp_dict)

    elif "OPR3" in flag_noise.upper():
        from WEAVEify_routines.step_10_noise_addition.type_3_opr3_mocks.opr3_mock_noise_routines import \
        opr3_mock_noise_routines_main

        inp_dict = opr3_mock_noise_routines_main(inp_dict)

    #elif "POISSON" in flag_noise.upper():


    return inp_dict
