def make_dict()

in hpcpack-autoscaler/src/cyclecloud-hpcpack/commonutil.py [0:0]


def make_dict(source: List[T], keyfunc: Callable[[T], K], valuefunc: Callable[[T], V] = lambda  x: x) -> Dict[K, List[V]]:
    by_key: Dict[K, List[V]] = {}
    for item in source:
        key = keyfunc(item)
        value = valuefunc(item)
        if key not in by_key:
            by_key[key] = []
        by_key[key].append(value)
    return by_key