def process_timepoint_list(img_obj_list, config):
    """Make sure all members of timepoints are part of io_obj.
    If timepoints = 'all', replace with actual list of timepoints

      Parameters
    ----------
    img_obj_list: list
        list of mManagerReader instances
    config: obj
        ConfigReader instance

    Returns
    -------
        img_obj_list: list
        list of modified mManagerReader instances
    """
    for idx, io_obj in enumerate(img_obj_list):
        config_t_list = config.dataset.timepoints[idx]
        metadata_t_list = range(io_obj.nTime)
        if config_t_list[0] == 'all':
            t_list = metadata_t_list
        else:
            assert set(config_t_list).issubset(metadata_t_list
                ), 'timepoint list {} for sample in {} is invalid'.format(
                config_t_list, io_obj.ImgSmPath)
            t_list = config_t_list
        img_obj_list[idx].TimeList = t_list
    return img_obj_list
