summaryrefslogtreecommitdiff
path: root/cmd2/argparse_custom.py
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2019-11-19 22:24:13 -0500
committerKevin Van Brunt <kmvanbrunt@gmail.com>2019-11-19 22:24:13 -0500
commiteee6bf15805fa8ed3ca713a4c6e8edfd9ebc5d4e (patch)
tree1ca2646da76dcb0e788e47d2ccf61de5a666e168 /cmd2/argparse_custom.py
parent8c00d342ee3967e09cce436d76208238307d1cd4 (diff)
downloadcmd2-git-eee6bf15805fa8ed3ca713a4c6e8edfd9ebc5d4e.tar.gz
Added capability to override the argument parser class used by cmd2 built-in commands
Diffstat (limited to 'cmd2/argparse_custom.py')
-rw-r--r--cmd2/argparse_custom.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/cmd2/argparse_custom.py b/cmd2/argparse_custom.py
index f7dbc8a3..c6aa6550 100644
--- a/cmd2/argparse_custom.py
+++ b/cmd2/argparse_custom.py
@@ -182,7 +182,7 @@ import re
import sys
# noinspection PyUnresolvedReferences,PyProtectedMember
from argparse import ZERO_OR_MORE, ONE_OR_MORE, ArgumentError, _
-from typing import Callable, Optional, Tuple, Union
+from typing import Callable, Optional, Tuple, Type, Union
from .ansi import ansi_aware_write, style_error
@@ -806,3 +806,13 @@ class Cmd2ArgumentParser(argparse.ArgumentParser):
if file is None:
file = sys.stderr
ansi_aware_write(file, message)
+
+
+# The default ArgumentParser class for a cmd2 app
+DEFAULT_ARGUMENT_PARSER = Cmd2ArgumentParser
+
+
+def set_default_argument_parser(parser: Type[argparse.ArgumentParser]) -> None:
+ """Set the default ArgumentParser class for a cmd2 app"""
+ global DEFAULT_ARGUMENT_PARSER
+ DEFAULT_ARGUMENT_PARSER = parser