def _teardown_modules(self): """ Teardown initialized module in reverse initialization order. """ module_registry = AppModule.module_registry() for module_label in reversed(self._init_modules): assert module_label in module_registry module = module_registry[module_label] self._debug_log('Running exit function for %s (%s)' % (module_label, module.description())) try: module.teardown_function() except AppModule.Unimplemented: pass
def _setup_modules(self): """ Setup all initialized modules. """ module_registry = AppModule.module_registry() for bundle in topological_sort(AppModule.module_dependencies()): for module_label in bundle: assert module_label in module_registry module = module_registry[module_label] self._debug_log('Initializing: %s (%s)' % (module.label(), module.description())) try: module.setup_function() except AppModule.Unimplemented: pass self._init_modules.append(module.label())