diff options
author | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2019-11-19 22:24:13 -0500 |
---|---|---|
committer | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2019-11-19 22:24:13 -0500 |
commit | eee6bf15805fa8ed3ca713a4c6e8edfd9ebc5d4e (patch) | |
tree | 1ca2646da76dcb0e788e47d2ccf61de5a666e168 /examples/override_parser.py | |
parent | 8c00d342ee3967e09cce436d76208238307d1cd4 (diff) | |
download | cmd2-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-x | examples/override_parser.py | 24 |
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()) |