Почему выдает ошибку во время создания подпарсера и как ее решить?
Во время создания подпарсера extensions_parser, выдает ошибку, что init класса ProgramParser получил ключевой аргумент prog. Добавлял и **kwargs в init, и убирал все параметры, была вообще бесконечная рекурсия. Как решить данную проблему?
import argparse
import os
from os import path
class ProgramParser(argparse.ArgumentParser):
def __init__(self, program_path: str) -> None:
super().__init__(prog="mini-cleaner")
self.add_argument(
"program_path",
action="store_const",
const=program_path,
help=argparse.SUPPRESS
)
self.add_argument(
"categories_extensions_path",
action="store_const",
const=path.join(
path.dirname(program_path),
"categories_extensions.json"
),
help=argparse.SUPPRESS,
)
self.add_argument(
"-v", "--version",
action="version",
version='%(prog)s 1.0.0'
)
self.sp_commands = self.add_subparsers(title="base commands")
self.sp_commands.add_parser("extensions") # Ошибка
def run(self) -> None:
args = self.parse_args()
if hasattr(args, "command"):
args.subcommand()
else:
self.print_help()
def extensions(self) -> None:
print("Extensions")
pass
# Traceback (most recent call last):
# File "<frozen runpy>", line 198, in _run_module_as_main
# File "<frozen runpy>", line 88, in _run_code
# File "D:\Programming\Python\mini-cleaner\main.py", line 6, in <module>
# pp = ProgramParser(program_path=argv[0])
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# File "D:\Programming\Python\mini-cleaner\program_parser.py", line 32, in __init__
# self.sp_commands.add_parser("extensions") # Ошибка
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# File "C:\Users\Win\AppData\Local\Programs\Python\Python312\Lib\argparse.py", line 1227, # in add_parser
# parser = self._parser_class(**kwargs)
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# TypeError: ProgramParser.__init__() got an unexpected keyword argument 'prog'