Beispiel #1
0
    def load_all(cls, project_config, all_projects):
        root_project = project_config
        macros = MacroLoader.load_all(root_project, all_projects)
        macros.update(OperationLoader.load_all(root_project, all_projects))
        nodes = {}
        for loader in cls._LOADERS:
            nodes.update(loader.load_all(root_project, all_projects, macros))
        docs = DocumentationLoader.load_all(root_project, all_projects)

        tests, patches = SchemaTestLoader.load_all(root_project, all_projects)

        manifest = Manifest(nodes=nodes, macros=macros, docs=docs,
                            generated_at=timestring(), config=project_config)
        manifest.add_nodes(tests)
        manifest.patch_nodes(patches)

        patches = DocumentationLoader.get_model_doc_patches(nodes, docs)
        manifest.patch_nodes(patches)

        manifest = dbt.parser.ParserUtils.process_refs(
            manifest,
            root_project.project_name
        )
        manifest = dbt.parser.ParserUtils.process_docs(manifest, root_project)
        return manifest
Beispiel #2
0
 def create_manifest(self):
     manifest = Manifest(nodes=self.nodes,
                         macros=self.macros,
                         docs=self.docs,
                         generated_at=timestring(),
                         config=self.root_project,
                         disabled=self.disabled)
     manifest.add_nodes(self.tests)
     manifest.patch_nodes(self.patches)
     manifest = ParserUtils.process_sources(manifest, self.root_project)
     manifest = ParserUtils.process_refs(manifest,
                                         self.root_project.project_name)
     manifest = ParserUtils.process_docs(manifest, self.root_project)
     return manifest
Beispiel #3
0
def add_new_refs(manifest: Manifest, config: RuntimeConfig,
                 node: ParsedRPCNode, macros: Dict[str, Any]) -> None:
    """Given a new node that is not in the manifest, insert the new node
    into it as if it were part of regular ref processing.
    """
    if config.args.single_threaded or flags.SINGLE_THREADED_HANDLER:
        manifest = manifest.deepcopy()
    # it's ok for macros to silently override a local project macro name
    manifest.macros.update(macros)

    for macro in macros.values():
        process_macro(config, manifest, macro)

    manifest.add_nodes({node.unique_id: node})
    process_node(config, manifest, node)
Beispiel #4
0
 def create_manifest(self):
     manifest = Manifest(
         nodes=self.nodes,
         macros=self.macros,
         docs=self.docs,
         generated_at=timestring(),
         config=self.root_project,
         disabled=self.disabled
     )
     manifest.add_nodes(self.tests)
     manifest.patch_nodes(self.patches)
     manifest = ParserUtils.process_sources(manifest, self.root_project)
     manifest = ParserUtils.process_refs(manifest,
                                         self.root_project.project_name)
     manifest = ParserUtils.process_docs(manifest, self.root_project)
     return manifest