def construct(self, options=None, **kwargs): options = options or self.getDefaultOptions() if isinstance(options, dict): options = self.setDependentOptions(self.getDefaultOptions(), **options) self._verifyOptions(options) defaultFields = FieldContainer(options=options, **kwargs) initOrder = toposort_flatten(self.componentGraph.getComponentGraph()) for name in initOrder: isEnabled = getattr(options, 'use'+name) if isEnabled: self.initComponent(name, defaultFields) fields = self._joinFields([defaultFields] + self.componentFields.values()) return fields
def construct(self, options=None, **kwargs): options = options or self.getDefaultOptions() if isinstance(options, dict): options = self.setDependentOptions(self.getDefaultOptions(), **options) self._verifyOptions(options) defaultFields = FieldContainer(options=options, **kwargs) initOrder = toposort_flatten(self.componentGraph.getComponentGraph()) for name in initOrder: isEnabled = getattr(options, "use" + name) if isEnabled: self.initComponent(name, defaultFields) fields = self._joinFields([defaultFields] + self.componentFields.values()) return fields
def construct(self, options=None, **kwargs): options = options or self.getDefaultOptions() if isinstance(options, dict): options = self.setDependentOptions(self.getDefaultOptions(), **options) self._verifyOptions(options) componentGraph = self.componentGraph for name in componentGraph.getComponentNames(): if 'use'+name not in options.__dict__: raise Exception('Missing use option: ' + 'use'+name) if 'init'+name not in dir(self): raise Exception('Missing init function: ' + 'init'+name) initOrder = toposort_flatten(componentGraph._graph) componentFields = OrderedDict() defaultFields = FieldContainer(options=options, **kwargs) for name in initOrder: initFunction = getattr(self, 'init'+name) isEnabled = getattr(options, 'use'+name) if isEnabled: dependencies = componentGraph.getComponentDependencies(name) inputFields = self._joinFields([defaultFields] + [componentFields[dep] for dep in dependencies]) newFields = initFunction(inputFields) if not newFields: newFields = FieldContainer() componentFields[name] = newFields # for componentName, componentFields in app.iteritems(): # print componentName, 'exports fields:' # for name in componentFields._fields: # print ' ', name fields = self._joinFields([defaultFields] + componentFields.values()) return fields
def construct(self, options=None, **kwargs): options = options or self.getDefaultOptions() if isinstance(options, dict): options = self.setDependentOptions(self.getDefaultOptions(), **options) self._verifyOptions(options) componentGraph = self.componentGraph for name in componentGraph.getComponentNames(): if 'use'+name not in options.__dict__: raise Exception('Missing use option: ' + 'use'+name) if 'init'+name not in dir(self): raise Exception('Missing init function: ' + 'init'+name) initOrder = toposort_flatten(componentGraph._graph) componentFields = OrderedDict() defaultFields = FieldContainer(options=options, **kwargs) for name in initOrder: initFunction = getattr(self, 'init'+name) isEnabled = getattr(options, 'use'+name) if isEnabled: dependencies = componentGraph.getComponentDependencies(name) inputFields = self._joinFields([defaultFields] + [componentFields[dep] for dep in dependencies]) newFields = initFunction(inputFields) if not newFields: newFields = FieldContainer() componentFields[name] = newFields #for k, v in componentFields.iteritems(): # print k, 'exports fields:' # for name in v._fields: # print ' ', name fields = self._joinFields([defaultFields] + componentFields.values()) return fields