1919
2020from sqlmesh .core import constants as c
2121from sqlmesh .core .audit import Audit , ModelAudit , StandaloneAudit , load_multiple_audits
22+ from sqlmesh .core .console import Console
2223from sqlmesh .core .dialect import parse
2324from sqlmesh .core .environment import EnvironmentStatements
2425from sqlmesh .core .linter .rule import Rule
@@ -85,25 +86,32 @@ def get(self, path: Path) -> t.List[Model]:
8586def _init_model_defaults (
8687 config : Config ,
8788 selected_gateway : t .Optional [str ],
88- defaults : t .Optional [t .Dict [str , t .Any ]] = None ,
89+ model_loading_defaults : t .Optional [t .Dict [str , t .Any ]] = None ,
8990 cache : t .Optional [CacheBase ] = None ,
91+ console : t .Optional [Console ] = None ,
9092) -> None :
9193 global _defaults , _cache , _config , _selected_gateway
92- _defaults = defaults
94+ _defaults = model_loading_defaults
9395 _cache = cache
9496 _config = config
9597 _selected_gateway = selected_gateway
9698
99+ # Set the console passed from the parent process
100+ if console is not None :
101+ from sqlmesh .core .console import set_console
97102
98- def load_sql_models (path : Path ) -> t .Tuple [Path , list [Model ]]:
103+ set_console (console )
104+
105+
106+ def load_sql_models (path : Path ) -> t .List [Model ]:
99107 assert _defaults
100108 assert _cache
101109
102110 with open (path , "r" , encoding = "utf-8" ) as file :
103111 expressions = parse (file .read (), default_dialect = _defaults ["dialect" ])
104112 models = load_sql_based_models (expressions , path = Path (path ).absolute (), ** _defaults )
105113
106- return ( path , [] if _cache .put (models , path ) else models )
114+ return [] if _cache .put (models , path ) else models
107115
108116
109117def get_variables (gateway_name : t .Optional [str ] = None ) -> t .Dict [str , t .Any ]:
@@ -528,7 +536,7 @@ def _load_sql_models(
528536 models [model .fqn ] = model
529537
530538 if paths :
531- defaults = dict (
539+ model_loading_defaults = dict (
532540 get_variables = get_variables ,
533541 defaults = self .config .model_defaults .dict (),
534542 macros = macros ,
@@ -549,14 +557,14 @@ def _load_sql_models(
549557 errors : t .List [str ] = []
550558 with create_process_pool_executor (
551559 initializer = _init_model_defaults ,
552- initargs = (self .config , gateway , defaults , cache ),
560+ initargs = (self .config , gateway , model_loading_defaults , cache , self . _console ),
553561 max_workers = c .MAX_FORK_WORKERS ,
554562 ) as pool :
555563 futures_to_paths = {pool .submit (load_sql_models , path ): path for path in paths }
556564 for future in concurrent .futures .as_completed (futures_to_paths ):
557565 path = futures_to_paths [future ]
558566 try :
559- _ , loaded = future .result ()
567+ loaded = future .result ()
560568 for model in loaded or cache .get (path ):
561569 if model .fqn in models :
562570 errors .append (
@@ -572,7 +580,7 @@ def _load_sql_models(
572580
573581 if errors :
574582 error_string = "\n " .join (errors )
575- raise ConfigError (f"Failed to load models \n \n { error_string } " )
583+ raise ConfigError (error_string )
576584
577585 return models
578586
0 commit comments