Index: commit_queue.py |
diff --git a/commit_queue.py b/commit_queue.py |
index d23cbd1ac4c0492c423957528a29ef5c0f59fe7a..7639065f8768659d12ee8824b7aacc59c10d8a4e 100755 |
--- a/commit_queue.py |
+++ b/commit_queue.py |
@@ -34,8 +34,8 @@ def need_issue(fn): |
def hook(parser, args, *extra_args, **kwargs): |
old_parse_args = parser.parse_args |
- def new_parse_args(args): |
- options, args = old_parse_args(args) |
+ def new_parse_args(args=None, values=None): |
+ options, args = old_parse_args(args, values) |
if not options.issue: |
parser.error('Require --issue') |
obj = rietveld.Rietveld(options.server, options.user, None) |
@@ -103,32 +103,28 @@ def CMDclear(parser, args): |
## Boilerplate code |
-def gen_parser(): |
- """Returns an OptionParser instance with default options. |
+class OptionParser(optparse.OptionParser): |
+ """An OptionParser instance with default options. |
It should be then processed with gen_usage() before being used. |
""" |
- parser = optparse.OptionParser(version=__version__) |
- # Remove description formatting |
- parser.format_description = ( |
- lambda _: parser.description) # pylint: disable=E1101 |
- # Add common parsing. |
- old_parser_args = parser.parse_args |
- |
- def Parse(*args, **kwargs): |
- options, args = old_parser_args(*args, **kwargs) |
+ def __init__(self, *args, **kwargs): |
+ optparse.OptionParser.__init__(self, *args, **kwargs) |
+ self.add_option( |
+ '-v', '--verbose', action='count', default=0, |
+ help='Use multiple times to increase logging level') |
+ |
+ def parse_args(self, args=None, values=None): |
+ options, args = optparse.OptionParser.parse_args(self, args, values) |
+ levels = [logging.WARNING, logging.INFO, logging.DEBUG] |
logging.basicConfig( |
- level=[logging.WARNING, logging.INFO, logging.DEBUG][ |
- min(2, options.verbose)], |
+ level=levels[min(len(levels) - 1, options.verbose)], |
format='%(levelname)s %(filename)s(%(lineno)d): %(message)s') |
return options, args |
- parser.parse_args = Parse |
- |
- parser.add_option( |
- '-v', '--verbose', action='count', default=0, |
- help='Use multiple times to increase logging level') |
- return parser |
+ def format_description(self, _): |
+ """Removes description formatting.""" |
+ return self.description.rstrip() + '\n' |
def Command(name): |
@@ -168,7 +164,7 @@ def gen_usage(parser, command): |
def main(args=None): |
# Do it late so all commands are listed. |
# pylint: disable=E1101 |
- parser = gen_parser() |
+ parser = OptionParser(version=__version__) |
if args is None: |
args = sys.argv[1:] |
if args: |