def get_data(DataManager_Options, Task_Options, dataset_type, apply = 0):
    """Defines input and target data given user input parameters.

    For details on all input parameter dictionaries, see: 
    /spectrai/spectrai/configs/*.yml

    Arguments:
        DataManager_Options: dictionary of data manager options
        Task_Options: dictionary of task options
        dataset_type: variable indicating dataset as 'train', 'val'
            or 'test'
        apply: flag indicating that target data is unavailable for
            training/evaluation
    
    Returns:
        input_data: path to input data
        target_data: path to target data
    """
    if dataset_type == 'train':
        input_data = DataManager_Options['train_input_data']
        target_data = DataManager_Options['train_target_data']
    elif dataset_type == 'val':
        input_data = DataManager_Options['val_input_data']
        target_data = DataManager_Options['val_target_data']
    elif dataset_type == 'test' and Task_Options['task'] == 'Super-Resolution':
        if apply:
            input_data = DataManager_Options['test_target_data']
            target_data = None
        else:
            input_data = None
            target_data = DataManager_Options['test_target_data']
    else: #dataset_type == 'test':
        input_data = DataManager_Options['test_input_data']
        if apply:
            target_data = None
        else:
            target_data = DataManager_Options['test_target_data']
    return input_data, target_data