human
Here's a good function header given the following:
I wrote the below code

    from ..bricks import BatchNormalization
    from ..filter import VariableFilter, get_application_call
    var_filter = VariableFilter(bricks=[BatchNormalization], roles=[OUTPUT])
    all_app_calls = map(get_application_call, var_filter(training_graph))
    train_app_calls = _training_mode_application_calls(all_app_calls)
    if (len(train_app_calls) == 0):
        raise ValueError('no    training    mode    BatchNormalization    applications    found    in    graph')
    bricks = [c.application.brick for c in train_app_calls]
    if ((not allow_duplicates) and (not isdistinct(bricks))):
        raise ValueError('multiple    applications    of    the    same    BatchNormalization    brick.
   pass    allow_duplicates    =    True    to    override    this    check')
    def extract_pair(brick_attribute, metadata_key, app_call):
        return (getattr(app_call.application.brick, brick_attribute), app_call.metadata[metadata_key])
    mean_pair = partial(extract_pair, 'population_mean', 'offset')
    stdev_pair = partial(extract_pair, 'population_stdev', 'divisor')
    return sum([([mean_pair(a), stdev_pair(a)] if (not a.application.brick.mean_only) else [mean_pair(a)]) for a in train_app_calls], [])

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

def get_batch_normalization_updates(training_graph, allow_duplicates=False):