def compareCascadingDicts(dict1, dict2):
    if isinstance(dict1, (list, tuple)):
        dict1 = dict(enumerate(dict1))
    if isinstance(dict2, (list, tuple)):
        dict2 = dict(enumerate(dict2))
    v1 = set(dict1)
    v2 = set(dict2)
    both = v1 & v2
    only1 = v1 - both
    only2 = v2 - both
    
    recurseTypes = (dict, list, tuple)
    differences = dict( (key, dict2[key]) for key in only2)
    differences.update( (key, RemovedKey(dict1[key])) for key in only1 )
    for key in both:
        val1 = dict1[key]
        val2 = dict2[key]
        if val1 != val2:
            if isinstance(val1, recurseTypes) and isinstance(val2, recurseTypes):
                subDiffs = compareCascadingDicts(val1, val2)[-1]
                differences[key] = subDiffs
            else:
                differences[key] = val2
    
    return both, only1, only2, differences
Turn the switch on.
dataset/ETHPy150Open CountZer0/PipelineConstructionSet/python/maya/site-packages/pymel-1.0.3/pymel/util/arguments.py/compareCascadingDicts--crossover with--dataset/ETHPy150Open home-assistant/home-assistant/homeassistant/components/switch/dlink.py/SmartPlugSwitch.turn_on