import os from dbt.contracts.graph.parsed import ParsedAnalysisNode from dbt.node_types import NodeType from dbt.parser.base import SimpleSQLParser from dbt.parser.search import FileBlock class AnalysisParser(SimpleSQLParser[ParsedAnalysisNode]): def parse_from_dict(self, dct, validate=True) -> ParsedAnalysisNode: if validate: ParsedAnalysisNode.validate(dct) return ParsedAnalysisNode.from_dict(dct) @property def resource_type(self) -> NodeType: return NodeType.Analysis @classmethod def get_compiled_path(cls, block: FileBlock): return os.path.join('analysis', block.path.relative_path)