def output_summary(self, output_stream=sys.stdout):
        """outputs a usage tip and the list of acceptable commands.
        This is useful as the output of the 'help' option.

        parameters:
            output_stream - an open file-like object suitable for use as the
                            target of a print function
        """
        if self.app_name or self.app_description:
            print('Application: ', end='', file=output_stream)
        if self.app_name:
            print(self.app_name, self.app_version, file=output_stream)
        if self.app_description:
            print(self.app_description, file=output_stream)
        if self.app_name or self.app_description:
            print('', file=output_stream)

        names_list = self.get_option_names()
        print(
            "usage:\n%s [OPTIONS]... " % self.app_invocation_name,
            end='', file=output_stream
        )
        bracket_count = 0
        # this section prints the non-switch command line arguments
        for key in names_list:
            an_option = self.option_definitions[key]
            if an_option.is_argument:
                if an_option.default is None:
                    # there's no option, assume the user must set this
                    print(an_option.name, end='', file=output_stream)
                elif (
                    inspect.isclass(an_option.value)
                    or inspect.ismodule(an_option.value)
                ):
                    # this is already set and it could have expanded, most
                    # likely this is a case where a sub-command has been
                    # loaded and we're looking to show the help for it.
                    # display show it as a constant already provided rather
                    # than as an option the user must provide
                    print(an_option.default, end='', file=output_stream)
                else:
                    # this is an argument that the user may alternatively
                    # provide
                    print("[ %s" % an_option.name, end='', file=output_stream)
                    bracket_count += 1
        print(']' * bracket_count, '\n', file=output_stream)

        names_list.sort()
        if names_list:
            print('OPTIONS:', file=output_stream)

        pad = ' ' * 4

        for name in names_list:
            if name in self.options_banned_from_help:
                continue
            option = self._get_option(name)

            line = ' ' * 2  # always start with 2 spaces
            if option.short_form:
                line += '-%s, ' % option.short_form
            line += '--%s' % name
            line += '\n'

            doc = option.doc if option.doc is not None else ''
            if doc:
                line += '%s%s\n' % (pad, doc)
            try:
                value = option.value
                type_of_value = type(value)
                converter_function = to_string_converters[type_of_value]
                default = converter_function(value)
            except KeyError:
                default = option.value
            if default is not None:
                if (
                    (option.secret or 'password' in name.lower()) and
                    not self.option_definitions.admin.expose_secrets.default
                ):
                    default = '*********'
                if name not in ('help',):
                    # don't bother with certain dead obvious ones
                    line += '%s(default: %s)\n' % (pad, default)

            print(line, file=output_stream)
outputs a usage tip and the list of acceptable commands.
        This is useful as the output of the 'help' option.

        parameters:
            output_stream - an open file-like object suitable for use as the
                            target of a print function