def maybe_update(sources, destination, func):
    """
    Updates defaults (values) in destination with values from func
    applied to sources, only if defaults (values) not already specified.
    """
    for source in sources:
        for key, value in func(source).items():
            if key not in destination:
                destination[key] = value
