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