Edit file File name : main.py Content : from cement import App, TestApp, init_defaults from cement.core.exc import CaughtSignal from .core.exc import DhWpError from .controllers.base import Base from .controllers.stage import Stage from .controllers.install import Install from .controllers.metrics import Metrics from .controllers.test import Test # configuration defaults CONFIG = init_defaults('dhwp') CONFIG['dhwp']['foo'] = 'bar' class DhWp(App): """DH WP primary application.""" class Meta: label = 'dhwp' # configuration defaults config_defaults = CONFIG # call sys.exit() on close close_on_exit = True # load additional framework extensions extensions = [ 'yaml', 'colorlog', 'jinja2', ] # configuration handler config_handler = 'yaml' # configuration file suffix config_file_suffix = '.yml' # set the log handler log_handler = 'colorlog' # set the output handler output_handler = 'jinja2' # register handlers handlers = [ Base, Stage, Test, Install, Metrics, ] class DhWpTest(TestApp, DhWp): """A sub-class of DhWp that is better suited for testing.""" class Meta: label = 'dhwp' def main(): with DhWp() as app: try: app.run() except AssertionError as e: print('AssertionError > %s' % e.args[0]) app.exit_code = 1 if app.debug is True: import traceback traceback.print_exc() except DhWpError as e: print('DhWpError > %s' % e.args[0]) app.exit_code = 1 if app.debug is True: import traceback traceback.print_exc() except CaughtSignal as e: # Default Cement signals are SIGINT and SIGTERM, exit 0 (non-error) print('\n%s' % e) app.exit_code = 0 if __name__ == '__main__': main() Save