summaryrefslogtreecommitdiff
path: root/examples/override_parser.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 /examples/override_parser.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 'examples/override_parser.py')
-rwxr-xr-xexamples/override_parser.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/examples/override_parser.py b/examples/override_parser.py
new file mode 100755
index 00000000..ddfa8323
--- /dev/null
+++ b/examples/override_parser.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+# coding=utf-8
+# flake8: noqa F402
+"""
+The standard parser used by cmd2 built-in commands is Cmd2ArgumentParser.
+The following code shows how to override it with your own parser class.
+"""
+
+# First set a value called argparse.cmd2_parser_module with the module that defines the custom parser
+# See the code for custom_parser.py. It simply defines a parser and calls cmd2.set_default_argument_parser()
+# with the custom parser's type.
+import argparse
+argparse.cmd2_parser_module = 'examples.custom_parser'
+
+# Next import stuff from cmd2. It will import your module just before the cmd2.Cmd class file is imported
+# and therefore override the parser class it uses on its commands.
+from cmd2 import cmd2
+
+if __name__ == '__main__':
+ import sys
+ app = cmd2.Cmd(use_ipython=True, persistent_history_file='cmd2_history.dat')
+ app.locals_in_py = True # Enable access to "self" within the py command
+ app.debug = True # Show traceback if/when an exception occurs
+ sys.exit(app.cmdloop())