1313
1414from dbt import constants as dbt_constants , flags
1515
16+ from sqlmesh .dbt .util import DBT_VERSION
1617from sqlmesh .utils .conversions import make_serializable
1718
1819# Override the file name to prevent dbt commands from invalidating the cache.
19- dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
20+
21+ if DBT_VERSION >= (1 , 6 , 0 ):
22+ dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack" # type: ignore
23+ else :
24+ from dbt .parser import manifest as dbt_manifest # type: ignore
25+
26+ dbt_manifest .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack" # type: ignore
2027
2128import jinja2
2229from dbt .adapters .factory import register_adapter , reset_adapters
@@ -379,11 +386,17 @@ def _load_on_run_start_end(self) -> None:
379386
380387 if "on-run-start" in node .tags :
381388 self ._on_run_start_per_package [node .package_name ][node_name ] = HookConfig (
382- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
389+ sql = sql ,
390+ index = getattr (node , "index" , None ) or 0 ,
391+ path = node_path ,
392+ dependencies = dependencies ,
383393 )
384394 else :
385395 self ._on_run_end_per_package [node .package_name ][node_name ] = HookConfig (
386- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
396+ sql = sql ,
397+ index = getattr (node , "index" , None ) or 0 ,
398+ path = node_path ,
399+ dependencies = dependencies ,
387400 )
388401
389402 @property
@@ -599,6 +612,9 @@ def _macro_references(
599612 manifest : Manifest , node : t .Union [ManifestNode , Macro ]
600613) -> t .Set [MacroReference ]:
601614 result : t .Set [MacroReference ] = set ()
615+ if not hasattr (node , "depends_on" ):
616+ return result
617+
602618 for macro_node_id in node .depends_on .macros :
603619 if not macro_node_id :
604620 continue
@@ -614,18 +630,20 @@ def _macro_references(
614630
615631def _refs (node : ManifestNode ) -> t .Set [str ]:
616632 if DBT_VERSION >= (1 , 5 , 0 ):
617- result = set ()
633+ result : t .Set [str ] = set ()
634+ if not hasattr (node , "refs" ):
635+ return result
618636 for r in node .refs :
619- ref_name = f"{ r .package } .{ r .name } " if r .package else r .name
637+ ref_name = f"{ r .package } .{ r .name } " if r .package else r .name # type: ignore
620638 if getattr (r , "version" , None ):
621- ref_name = f"{ ref_name } _v{ r .version } "
639+ ref_name = f"{ ref_name } _v{ r .version } " # type: ignore
622640 result .add (ref_name )
623641 return result
624642 return {"." .join (r ) for r in node .refs } # type: ignore
625643
626644
627645def _sources (node : ManifestNode ) -> t .Set [str ]:
628- return {"." .join (s ) for s in node . sources }
646+ return {"." .join (s ) for s in getattr ( node , " sources" , []) }
629647
630648
631649def _model_node_id (model_name : str , package : str ) -> str :
0 commit comments