summaryrefslogtreecommitdiff
path: root/cliff/app.py
diff options
context:
space:
mode:
Diffstat (limited to 'cliff/app.py')
-rw-r--r--cliff/app.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/cliff/app.py b/cliff/app.py
index 798b41f..10a4941 100644
--- a/cliff/app.py
+++ b/cliff/app.py
@@ -20,8 +20,6 @@ import logging.handlers
import os
import sys
-import cmd2
-
from cliff import _argparse
from . import complete
from . import help
@@ -403,7 +401,12 @@ class App(object):
try:
parsed_args = cmd_parser.parse_args(sub_argv)
except SystemExit as ex:
- raise cmd2.exceptions.Cmd2ArgparseError from ex
+ if self.interactive_mode:
+ # Defer importing cmd2 as it is a slow import
+ import cmd2
+ raise cmd2.exceptions.Cmd2ArgparseError from ex
+ else:
+ raise ex
result = cmd.run(parsed_args)
except BrokenPipeError as err1:
result = _SIGPIPE_EXIT