human
I wrote the below code

    assert callable(get_vi_mode_enabled)
    token = Token.Toolbar
    def get_toolbar_tokens(cli):
        result = []
        result.append((token, '    '))
        if cli.buffers[DEFAULT_BUFFER].completer.smart_completion:
            result.append((token.On, '[F2]    Smart    Completion:    ON        '))
        else:
            result.append((token.Off, '[F2]    Smart    Completion:    OFF        '))
        if cli.buffers[DEFAULT_BUFFER].always_multiline:
            result.append((token.On, '[F3]    Multiline:    ON        '))
        else:
            result.append((token.Off, '[F3]    Multiline:    OFF        '))
        if cli.buffers[DEFAULT_BUFFER].always_multiline:
            if (cli.buffers[DEFAULT_BUFFER].multiline_mode == 'safe'):
                result.append((token, '    ([Esc]    [Enter]    to    execute])    '))
            else:
                result.append((token, '    (Semi-colon    [;]    will    end    the    line)    '))
        if get_vi_mode_enabled():
            result.append((token.On, (('[F4]    Vi-mode    (' + _get_vi_mode(cli)) + ')')))
        else:
            result.append((token.On, '[F4]    Emacs-mode'))
        if failed_transaction():
            result.append((token.Transaction.Failed, '                    Failed    transaction'))
        if valid_transaction():
            result.append((token.Transaction.Valid, '                    Transaction'))
        if get_is_refreshing():
            result.append((token, '                    Refreshing    completions...'))
        return result
    return get_toolbar_tokens

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

def create_toolbar_tokens_func(get_vi_mode_enabled, get_is_refreshing, failed_transaction, valid_transaction):