def _merge_dicts_nested_lists()

in services/jenkins-autoscaling/lambda_mxnet_ci/autoscaling/handler.py [0:0]


def _merge_dicts_nested_lists(dict1: Dict[Any, List[Any]], dict2: Dict[Any, List[Any]]) -> Dict[Any, List[Any]]:
    """
    Merge two dicts that contain lists as values.
    :param dict1: Dict1
    :param dict2: Dict2
    :return: Merged dict
    """
    result_dict: Dict[Any, List[Any]] = dict()
    # Determine key matches which require list merges
    if dict1 and dict2:
        matching_keys = set(dict1.keys()).intersection(set(dict2.keys()))
    else:
        matching_keys = set()

    for key in matching_keys:
        result_dict[key] = list(dict1[key] + dict2[key])

    # Remainders from dict1
    if dict1:
        for key in set(dict1.keys() - matching_keys):
            result_dict[key] = list(dict1[key])

    # Remainders from dict2
    if dict2:
        for key in set(dict2.keys() - matching_keys):
            result_dict[key] = list(dict2[key])

    return result_dict