summaryrefslogtreecommitdiff
path: root/examples/override_parser.py
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2019-11-22 21:57:51 -0500
committerTodd Leonhardt <todd.leonhardt@gmail.com>2019-11-22 21:57:51 -0500
commitefc9ad1141ecb923a52fa3d9a8f018ae9fae2a8d (patch)
tree9ecb55a5d03a0b3ca70e8c22a2b37b18193375f0 /examples/override_parser.py
parentbfca9f9a879b50f1a23c733832bbca93ff6cc243 (diff)
parent1cad8d92b87a227b331c0e86ddbbee25a6742650 (diff)
downloadcmd2-git-efc9ad1141ecb923a52fa3d9a8f018ae9fae2a8d.tar.gz
Merge branch 'master' into pyscript_docs
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())