def determine_selection_of_iterable_values_from_config(config: DictLike, possible_iterables: Mapping[str, Type[enum.Enum]]) -> Dict[str, List[Any]]:
    iterables = {}
    requested_iterables = config["iterables"]
    for k, v in requested_iterables.items():
        if k not in possible_iterables:
            raise KeyError(k, f"Cannot find requested iterable in possible_iterables: {possible_iterables}")
        logger.debug(f"k: {k}, v: {v}")
        additional_iterable: List[Any] = []
        enum_values = possible_iterables[k]
        if isinstance(v, str):
            raise TypeError(type(v), f"Passed string {v} when must be either bool or list")
        if v is False:
            continue
        elif v is True:
            additional_iterable = list(enum_values)
        else:
            if enum_values is None:
                additional_iterable = list(v)
            else:
                for el in v:
                    additional_iterable.append(enum_values[el])
        iterables[k] = additional_iterable
    return iterables