def get_help_message()

in modular_cli/service/help_client.py [0:0]


    def get_help_message(self, token_meta: dict):
        if token_meta.get('route'):
            return self.prepare_command_help(
                token_meta=token_meta,
                specified_tokens=self.requested_command)

        level_token_types = {}
        for token_name, value in token_meta.items():
            token_type = value.get('type')
            if token_type is None:
                token_type = 'command'

            if not level_token_types.get(token_type):
                level_token_types.update({token_type: []})
            level_token_types.get(token_type).append(token_name)

        if not level_token_types:
            return ANY_COMMANDS_AVAILABLE_HELP.format(help_stub=HELP_STUB)

        help: str = GENERAL_HELP_STRING.format(
            help_stub=HELP_STUB, entry_point=ENTRY_POINT)
        if level_token_types.get('root command'):
            root_command = level_token_types.pop('root command')
            if level_token_types.get('command'):
                level_token_types['command'].extend(root_command)
            else:
                level_token_types['command'] = root_command
        for type, names_list in level_token_types.items():
            names = "\n\t".join(sorted(names_list))
            help = help + f"Available {type}s:\n\t{names}\n"""
        return help