def METHOD_NAME(cls):
    """
    :meta private:
    """
    parser = argparse.ArgumentParser(conflict_handler="resolve")
    # add the arguments of a specific search
    add_arguments_from_signature(parser, cls)
    # add argument of Search.search interface
    parser.add_argument(
        "--max-evals",
        default=-1,
        type=int,
        help="Type[int]. Defaults to '-1' when an number of evaluations is not imposed.",
    )
    parser.add_argument(
        "--timeout",
        default=None,
        type=int,
        help="Type[int]. Number of seconds before killing the search. Defaults to 'None' when a time budget is not imposed.",
    )
    # add arguments for evaluators
    evaluator_added_arguments = add_arguments_from_signature(parser, Evaluator)
    for eval_name, eval_cls in EVALUATORS.items():
        try:
            eval_cls = load_attr(f"deephyper.evaluator.{eval_cls}")
            add_arguments_from_signature(
                parser, eval_cls, prefix=eval_name, exclude=evaluator_added_arguments
            )
        except ModuleNotFoundError:  # some evaluators are optional
            pass
    return parser