summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2012-04-26 10:05:19 -0500
committerDean Troyer <dtroyer@gmail.com>2012-04-26 10:11:14 -0500
commit81bad3c80b10f08ef06a682dd851854ba492f541 (patch)
tree7404e1c5dfd709e9086de7c2701823d6d8c17f1b
parent4fc166cb3957a55ce0fa303b7ecca71b5a8ca2f6 (diff)
downloadcliff-tablib-81bad3c80b10f08ef06a682dd851854ba492f541.tar.gz
Use argparse for global arguments
-rw-r--r--cliff/app.py33
1 files changed, 16 insertions, 17 deletions
diff --git a/cliff/app.py b/cliff/app.py
index a51c7e1..0610f9e 100644
--- a/cliff/app.py
+++ b/cliff/app.py
@@ -1,9 +1,9 @@
"""Application base class.
"""
+import argparse
import logging
import logging.handlers
-import optparse
import os
import sys
@@ -38,41 +38,40 @@ class App(object):
self.parser = self.build_option_parser(description, version)
def build_option_parser(self, description, version):
- """Return an optparse option parser for this application.
+ """Return an argparse option parser for this application.
Subclasses may override this method to extend
the parser with more global options.
"""
- parser = optparse.OptionParser(
+ parser = argparse.ArgumentParser(
description=description,
- version='%prog {}'.format(version),
- add_help_option=False,
+ add_help=False,
)
- parser.disable_interspersed_args()
- parser.add_option(
+ parser.add_argument(
+ '--version',
+ action='version',
+ version='%(prog)s {}'.format(version),
+ )
+ parser.add_argument(
'-v', '--verbose',
action='count',
dest='verbose_level',
default=self.DEFAULT_VERBOSE_LEVEL,
help='Increase verbosity of output. Can be repeated.',
)
- parser.add_option(
+ parser.add_argument(
'-q', '--quiet',
action='store_const',
dest='verbose_level',
const=0,
help='suppress output except warnings and errors',
)
- parser.add_option(
- '-h', action='help',
+ parser.add_argument(
+ '-h', '--help',
+ action='help',
help="show this help message and exit",
)
- parser.add_option(
- '--help', action='callback',
- callback=self.show_verbose_help,
- help="show verbose help message and exit",
- )
- parser.add_option(
+ parser.add_argument(
'--debug',
default=False,
action='store_true',
@@ -135,7 +134,7 @@ class App(object):
"""
if not argv:
argv = ['-h']
- self.options, remainder = self.parser.parse_args(argv)
+ self.options, remainder = self.parser.parse_known_args(argv)
self.configure_logging()
cmd_factory, cmd_name, sub_argv = self.command_manager.find_command(remainder)
cmd = cmd_factory(self, self.options)