Exemple #1
0
    def compile(self, dry=False):
        linker = Linker()

        all_models = self.model_sources(this_project=self.project)

        for project in dependency_projects(self.project):
            all_models.extend(
                self.model_sources(this_project=self.project,
                                   own_project=project))

        enabled_models = [model for model in all_models if model.is_enabled]

        compiled_models, written_models = self.compile_models(
            linker, enabled_models)

        # TODO : only compile schema tests for enabled models
        written_schema_tests = self.compile_schema_tests(linker)

        self.validate_models_unique(compiled_models)
        self.validate_models_unique(written_schema_tests)
        self.write_graph_file(linker)

        if self.create_template.label != 'test':
            written_analyses = self.compile_analyses(linker, compiled_models)
        else:
            written_analyses = []

        return len(written_models), len(written_schema_tests), len(
            written_analyses)
Exemple #2
0
    def get_models(self):
        all_models = self.model_sources(this_project=self.project)
        for project in dependency_projects(self.project):
            all_models.extend(
                self.model_sources(this_project=self.project,
                                   own_project=project))

        return all_models
Exemple #3
0
    def compile(self, limit_to=None):
        linker = Linker()

        all_models = self.get_models()
        all_macros = self.get_macros(this_project=self.project)

        for project in dependency_projects(self.project):
            all_macros.extend(
                self.get_macros(this_project=self.project,
                                own_project=project))

        self.macro_generator = self.generate_macros(all_macros)

        if limit_to is not None and 'models' in limit_to:
            enabled_models = [
                model for model in all_models
                if model.is_enabled and not model.is_empty
            ]
        else:
            enabled_models = []

        compiled_models, written_models = self.compile_models(
            linker, enabled_models)

        # TODO : only compile schema tests for enabled models
        if limit_to is not None and 'tests' in limit_to:
            written_schema_tests = self.compile_schema_tests(linker)
            written_data_tests = self.compile_data_tests(linker)
        else:
            written_schema_tests = []
            written_data_tests = []

        self.validate_models_unique(compiled_models)
        self.validate_models_unique(written_schema_tests)
        self.write_graph_file(linker, self.create_template.label)

        if limit_to is not None and 'analyses' in limit_to and \
           self.create_template.label not in ['test', 'archive']:
            written_analyses = self.compile_analyses(linker, compiled_models)
        else:
            written_analyses = []

        if limit_to is not None and 'archives' in limit_to:
            compiled_archives = self.compile_archives()
        else:
            compiled_archives = []

        return {
            "models": len(written_models),
            "schema tests": len(written_schema_tests),
            "data tests": len(written_data_tests),
            "archives": len(compiled_archives),
            "analyses": len(written_analyses)
        }
Exemple #4
0
    def compile(self, dry=False):
        linker = Linker()

        all_models = self.get_models()
        all_macros = self.get_macros(this_project=self.project)

        for project in dependency_projects(self.project):
            all_macros.extend(self.get_macros(this_project=self.project, own_project=project))

        self.macro_generator = self.generate_macros(all_macros)

        enabled_models = [model for model in all_models if model.is_enabled]

        compiled_models, written_models = self.compile_models(linker, enabled_models)

        # TODO : only compile schema tests for enabled models
        written_schema_tests = self.compile_schema_tests(linker)
        written_data_tests = self.compile_data_tests(linker)

        self.validate_models_unique(compiled_models)
        self.validate_models_unique(written_schema_tests)
        self.write_graph_file(linker, self.create_template.label)

        if self.create_template.label not in ['test', 'archive']:
            written_analyses = self.compile_analyses(linker, compiled_models)
        else:
            written_analyses = []


        compiled_archives = self.compile_archives()

        return {
            "models": len(written_models),
            "schema tests" : len(written_schema_tests),
            "data tests" : len(written_data_tests),
            "archives": len(compiled_archives),
            "analyses" : len(written_analyses)
        }