Почему выдает ошибку во время создания подпарсера и как ее решить?

Во время создания подпарсера 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'

Ответы (0 шт):