code: 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