docs: def generate_help(self, filename="", command=""):
      """
      :type command str
      """
      "{} [{}]\n\n".format(filename, "|".join(self.available_command_list))
      help_str = """Available commands:
  
      """
  
      command_list = self.available_command_list if command == "" else [command]
  
      for command in command_list:
        cmd_meta = self.get_command_metainfo(command)
        """:type cmd_meta ModuleMetaInfo"""
  
        if cmd_meta is None:
          continue
  
        args = {}
        args.update(cmd_meta.get_arguments_builder().arguments)
        args.update(cmd_meta.get_arguments_builder().default_arguments)
  
        cmd_arguments_help = {name: value.item_help for name, value in args.items() if value.item_help}
  
        if len(cmd_arguments_help) > 0:
          help_str += """
          {cmd} [{args}] - {cmd_help}
  
          Argument details:
          {arg_details}
  
  
          """.format(
            cmd=command,
            args=" | ".join(cmd_arguments_help.keys()),
            cmd_help=cmd_meta.help,
            arg_details="\n".join(["{} - {}".format(k, v) for k, v in cmd_arguments_help.items()])
          )
  
        else:
          help_str += """
          {cmd} - {cmd_help}""".format(
            cmd=command,
            cmd_help=cmd_meta.help
          )
  
      return help_str