16
16
from sqlmesh .utils .conversions import make_serializable
17
17
18
18
# Override the file name to prevent dbt commands from invalidating the cache.
19
- dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
19
+ if hasattr (dbt_constants , "PARTIAL_PARSE_FILE_NAME" ):
20
+ dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
21
+ else :
22
+ from dbt .parser import manifest as dbt_manifest
23
+
24
+ dbt_manifest .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
20
25
21
26
import jinja2
22
27
from dbt .adapters .factory import register_adapter , reset_adapters
@@ -379,11 +384,17 @@ def _load_on_run_start_end(self) -> None:
379
384
380
385
if "on-run-start" in node .tags :
381
386
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
387
+ sql = sql ,
388
+ index = getattr (node , "index" , None ) or 0 ,
389
+ path = node_path ,
390
+ dependencies = dependencies ,
383
391
)
384
392
else :
385
393
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
394
+ sql = sql ,
395
+ index = getattr (node , "index" , None ) or 0 ,
396
+ path = node_path ,
397
+ dependencies = dependencies ,
387
398
)
388
399
389
400
@property
@@ -599,6 +610,9 @@ def _macro_references(
599
610
manifest : Manifest , node : t .Union [ManifestNode , Macro ]
600
611
) -> t .Set [MacroReference ]:
601
612
result : t .Set [MacroReference ] = set ()
613
+ if not hasattr (node , "depends_on" ):
614
+ return result
615
+
602
616
for macro_node_id in node .depends_on .macros :
603
617
if not macro_node_id :
604
618
continue
@@ -614,18 +628,20 @@ def _macro_references(
614
628
615
629
def _refs (node : ManifestNode ) -> t .Set [str ]:
616
630
if DBT_VERSION >= (1 , 5 , 0 ):
617
- result = set ()
631
+ result : t .Set [str ] = set ()
632
+ if not hasattr (node , "refs" ):
633
+ return result
618
634
for r in node .refs :
619
- ref_name = f"{ r .package } .{ r .name } " if r .package else r .name
635
+ ref_name = f"{ r .package } .{ r .name } " if r .package else r .name # type: ignore
620
636
if getattr (r , "version" , None ):
621
- ref_name = f"{ ref_name } _v{ r .version } "
637
+ ref_name = f"{ ref_name } _v{ r .version } " # type: ignore
622
638
result .add (ref_name )
623
639
return result
624
640
return {"." .join (r ) for r in node .refs } # type: ignore
625
641
626
642
627
643
def _sources (node : ManifestNode ) -> t .Set [str ]:
628
- return {"." .join (s ) for s in node . sources }
644
+ return {"." .join (s ) for s in getattr ( node , " sources" , []) }
629
645
630
646
631
647
def _model_node_id (model_name : str , package : str ) -> str :
0 commit comments