]> scripts.mit.edu Git - wizard.git/blob - lib/wizard/__init__.py
Convert migrate to logger, and misc refactoring.
[wizard.git] / lib / wizard / __init__.py
1 import logging
2 import sys
3 import optparse
4
5 def makeLogger(options):
6     logger = logging.getLogger("main")
7     logger.setLevel(logging.INFO)
8     stdout = logging.StreamHandler(sys.stdout)
9     logger.addHandler(stdout)
10     if options.verbose:
11         logger.verbose = True
12         stdout.setLevel(logging.INFO)
13     else:
14         stdout.setLevel(logging.ERROR)
15     return logger
16
17 class UserException(Exception):
18     """User friendly exceptions inherit from here"""
19     pass
20
21 class NullLogHandler(logging.Handler):
22     """Log handler that doesn't do anything"""
23     def emit(self, record):
24         pass
25
26 class WizardOptionParser(optparse.OptionParser):
27     """Configures some default user-level options"""
28     def __init__(self, *args, **kwargs):
29         optparse.OptionParser.__init__(self, *args, **kwargs)
30         self.add_option("-v", "--verbose", dest="verbose", action="store_true",
31                 default=False, help="Turns on verbose output")
32     def parse_all(self, argv, logger):
33         options, numeric_args = self.parse_args(argv)
34         return options, numeric_args, makeLogger(options)