1515from sqlmesh .utils .conversions import make_serializable
1616
1717# Override the file name to prevent dbt commands from invalidating the cache.
18- dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
18+ if hasattr (dbt_constants , "PARTIAL_PARSE_FILE_NAME" ):
19+ dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
20+ else :
21+ from dbt .parser import manifest as dbt_manifest
22+
23+ dbt_manifest .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
1924
2025import jinja2
2126from dbt .adapters .factory import register_adapter , reset_adapters
@@ -377,11 +382,17 @@ def _load_on_run_start_end(self) -> None:
377382
378383 if "on-run-start" in node .tags :
379384 self ._on_run_start_per_package [node .package_name ][node_name ] = HookConfig (
380- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
385+ sql = sql ,
386+ index = getattr (node , "index" , None ) or 0 ,
387+ path = node_path ,
388+ dependencies = dependencies ,
381389 )
382390 else :
383391 self ._on_run_end_per_package [node .package_name ][node_name ] = HookConfig (
384- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
392+ sql = sql ,
393+ index = getattr (node , "index" , None ) or 0 ,
394+ path = node_path ,
395+ dependencies = dependencies ,
385396 )
386397
387398 @property
@@ -591,6 +602,9 @@ def _macro_references(
591602 manifest : Manifest , node : t .Union [ManifestNode , Macro ]
592603) -> t .Set [MacroReference ]:
593604 result : t .Set [MacroReference ] = set ()
605+ if not hasattr (node , "depends_on" ):
606+ return result
607+
594608 for macro_node_id in node .depends_on .macros :
595609 if not macro_node_id :
596610 continue
@@ -606,18 +620,20 @@ def _macro_references(
606620
607621def _refs (node : ManifestNode ) -> t .Set [str ]:
608622 if DBT_VERSION >= (1 , 5 , 0 ):
609- result = set ()
623+ result : t .Set [str ] = set ()
624+ if not hasattr (node , "refs" ):
625+ return result
610626 for r in node .refs :
611- ref_name = f"{ r .package } .{ r .name } " if r .package else r .name
627+ ref_name = f"{ r .package } .{ r .name } " if r .package else r .name # type: ignore
612628 if getattr (r , "version" , None ):
613- ref_name = f"{ ref_name } _v{ r .version } "
629+ ref_name = f"{ ref_name } _v{ r .version } " # type: ignore
614630 result .add (ref_name )
615631 return result
616632 return {"." .join (r ) for r in node .refs } # type: ignore
617633
618634
619635def _sources (node : ManifestNode ) -> t .Set [str ]:
620- return {"." .join (s ) for s in node . sources }
636+ return {"." .join (s ) for s in getattr ( node , " sources" , []) }
621637
622638
623639def _model_node_id (model_name : str , package : str ) -> str :
0 commit comments