ArgumentParser.add_subparsers() returns a _SubParsersAction. This requires user code using type annotations to use a protected type which causes type checkers like PyCharm to complain. For example:
def add_subparser(name: str, subparser: _SubParsersAction, subparsers: dict) -> ArgumentParser:
parser = subparser.add_parser(name)
parser.add_argument('-v', '--verbose', action='store_true')
subparsers[name] = parser
return parser
You can't use plain Action because Action doesn't have the add_parser() method. |