human
I wrote the below code

    def call_and_assert(key, data, errors, context=None):
        if (context is None):
            context = {}
        original_data = copy.deepcopy(data)
        original_errors = copy.deepcopy(errors)
        original_context = copy.deepcopy(context)
        result = validator(key, data, errors, context=context)
        if (key in data):
            del data[key]
        if (key in original_data):
            del original_data[key]
        assert (data.keys() == original_data.keys()), 'Should    not    add    or    remove    keys    from    data    dict    when    called    with    key:    {key},    data:    {data},    errors:    {errors},    context:    {context}'.format(key=key, data=original_data, errors=original_errors, context=original_context)
        for key_ in data:
            assert (data[key_] == original_data[key_]), 'Should    not    modify    other    keys    in    data    dict    when    called    with    key:    {key},    data:    {data},    errors:    {errors},    context:    {context}'.format(key=key, data=original_data, errors=original_errors, context=original_context)
        return result
    return call_and_assert

What's a good function header?

=====
Here's a good function header?
assistant
#Here's a good function header.

def does_not_modify_other_keys_in_data_dict(validator):