@@ -124,8 +124,6 @@ def _to_sqlmesh(config: BMC, context: DbtContext) -> Model:
124124 )
125125
126126 for project in self ._load_projects ():
127- context = project .context .copy ()
128-
129127 macros_max_mtime = self ._macros_max_mtime
130128 yaml_max_mtimes = self ._compute_yaml_max_mtime_per_subfolder (
131129 project .context .project_root
@@ -135,12 +133,13 @@ def _to_sqlmesh(config: BMC, context: DbtContext) -> Model:
135133 logger .debug ("Converting models to sqlmesh" )
136134 # Now that config is rendered, create the sqlmesh models
137135 for package in project .packages .values ():
138- context .set_and_render_variables (package .variables , package .name )
136+ package_context = project .context .copy ()
137+ package_context .set_and_render_variables (package .variables , package .name )
139138 package_models : t .Dict [str , BaseModelConfig ] = {** package .models , ** package .seeds }
140139
141140 for model in package_models .values ():
142141 sqlmesh_model = cache .get_or_load_models (
143- model .path , loader = lambda : [_to_sqlmesh (model , context )]
142+ model .path , loader = lambda : [_to_sqlmesh (model , package_context )]
144143 )[0 ]
145144
146145 models [sqlmesh_model .fqn ] = sqlmesh_model
@@ -155,15 +154,14 @@ def _load_audits(
155154 audits : UniqueKeyDict = UniqueKeyDict ("audits" )
156155
157156 for project in self ._load_projects ():
158- context = project .context
159-
160157 logger .debug ("Converting audits to sqlmesh" )
161158 for package in project .packages .values ():
162- context .set_and_render_variables (package .variables , package .name )
159+ package_context = project .context .copy ()
160+ package_context .set_and_render_variables (package .variables , package .name )
163161 for test in package .tests .values ():
164162 logger .debug ("Converting '%s' to sqlmesh format" , test .name )
165163 try :
166- audits [test .name ] = test .to_sqlmesh (context )
164+ audits [test .name ] = test .to_sqlmesh (package_context )
167165 except MissingModelError as e :
168166 logger .warning (
169167 "Skipping audit '%s' because model '%s' is not a valid ref" ,
@@ -244,9 +242,9 @@ def _load_environment_statements(self, macros: MacroRegistry) -> t.List[Environm
244242 project_names : t .Set [str ] = set ()
245243 dialect = self .config .dialect
246244 for project in self ._load_projects ():
247- context = project .context
248245 for package_name , package in project .packages .items ():
249- context .set_and_render_variables (package .variables , package_name )
246+ package_context = project .context .copy ()
247+ package_context .set_and_render_variables (package .variables , package_name )
250248 on_run_start : t .List [str ] = [
251249 on_run_hook .sql
252250 for on_run_hook in sorted (package .on_run_start .values (), key = lambda h : h .index )
@@ -261,7 +259,7 @@ def _load_environment_statements(self, macros: MacroRegistry) -> t.List[Environm
261259 for hook in [* package .on_run_start .values (), * package .on_run_end .values ()]:
262260 dependencies = dependencies .union (hook .dependencies )
263261
264- statements_context = context .context_for_dependencies (dependencies )
262+ statements_context = package_context .context_for_dependencies (dependencies )
265263 jinja_registry = make_jinja_registry (
266264 statements_context .jinja_macros , package_name , set (dependencies .macros )
267265 )
0 commit comments