11import logging
2- from typing import Dict , Optional
2+ from typing import Dict , Optional , List
33
44from . import models
55
@@ -42,11 +42,19 @@ def parse_models(raw_manifest: dict, tag=None):
4242 return filtered_models
4343
4444
45+ def check_models_for_missing_column_types (dbt_typed_models : List [models .DbtModel ]):
46+ for model in dbt_typed_models :
47+ if all ([col .data_type is None for col in model .columns .values ()]):
48+ logging .debug ('Model %s has no typed columns, no dimensions will be generated. %s' , model .unique_id , model )
49+
50+
4551def parse_typed_models (raw_manifest : dict , raw_catalog : dict , tag : Optional [str ] = None ):
4652 catalog_nodes = parse_catalog_nodes (raw_catalog )
4753 dbt_models = parse_models (raw_manifest , tag = tag )
4854 adapter_type = parse_adapter_type (raw_manifest )
4955
56+ logging .debug ('Parsed %d models from manifest.json' , len (dbt_models ))
57+
5058 # Check catalog for models
5159 for model in dbt_models :
5260 if model .unique_id not in catalog_nodes :
@@ -65,6 +73,9 @@ def parse_typed_models(raw_manifest: dict, raw_catalog: dict, tag: Optional[str]
6573 for model in dbt_models
6674 if model .unique_id in catalog_nodes
6775 ]
76+ logging .debug ('Found catalog entries for %d models' , len (dbt_typed_models ))
77+ logging .debug ('Catalog entries missing for %d models' , len (dbt_models ) - len (dbt_typed_models ))
78+ check_models_for_missing_column_types (dbt_typed_models )
6879 return dbt_typed_models
6980
7081
0 commit comments