Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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