@@ -468,8 +468,8 @@ def load_or_generate_config(cls, description, argv):
468468
469469 Returns: Config object, or None if --generate-config or --generate-keys was set
470470 """
471- config_parser = argparse .ArgumentParser (add_help = False )
472- config_parser .add_argument (
471+ parser = argparse .ArgumentParser (description = description )
472+ parser .add_argument (
473473 "-c" ,
474474 "--config-path" ,
475475 action = "append" ,
@@ -478,7 +478,7 @@ def load_or_generate_config(cls, description, argv):
478478 " may specify directories containing *.yaml files." ,
479479 )
480480
481- generate_group = config_parser .add_argument_group ("Config generation" )
481+ generate_group = parser .add_argument_group ("Config generation" )
482482 generate_group .add_argument (
483483 "--generate-config" ,
484484 action = "store_true" ,
@@ -526,12 +526,13 @@ def load_or_generate_config(cls, description, argv):
526526 ),
527527 )
528528
529- config_args , remaining_args = config_parser .parse_known_args (argv )
529+ cls .invoke_all_static ("add_arguments" , parser )
530+ config_args = parser .parse_args (argv )
530531
531532 config_files = find_config_files (search_paths = config_args .config_path )
532533
533534 if not config_files :
534- config_parser .error (
535+ parser .error (
535536 "Must supply a config file.\n A config file can be automatically"
536537 ' generated using "--generate-config -H SERVER_NAME'
537538 ' -c CONFIG-FILE"'
@@ -550,7 +551,7 @@ def load_or_generate_config(cls, description, argv):
550551
551552 if config_args .generate_config :
552553 if config_args .report_stats is None :
553- config_parser .error (
554+ parser .error (
554555 "Please specify either --report-stats=yes or --report-stats=no\n \n "
555556 + MISSING_REPORT_STATS_SPIEL
556557 )
@@ -609,15 +610,6 @@ def load_or_generate_config(cls, description, argv):
609610 )
610611 generate_missing_configs = True
611612
612- parser = argparse .ArgumentParser (
613- parents = [config_parser ],
614- description = description ,
615- formatter_class = argparse .RawDescriptionHelpFormatter ,
616- )
617-
618- obj .invoke_all_static ("add_arguments" , parser )
619- args = parser .parse_args (remaining_args )
620-
621613 config_dict = read_config_files (config_files )
622614 if generate_missing_configs :
623615 obj .generate_missing_files (config_dict , config_dir_path )
@@ -626,7 +618,7 @@ def load_or_generate_config(cls, description, argv):
626618 obj .parse_config_dict (
627619 config_dict , config_dir_path = config_dir_path , data_dir_path = data_dir_path
628620 )
629- obj .invoke_all ("read_arguments" , args )
621+ obj .invoke_all ("read_arguments" , config_args )
630622
631623 return obj
632624
0 commit comments