2525 ContextFactory ,
2626)
2727from dagster_sqlmesh .controller .dagster import DagsterSQLMeshController
28- from dagster_sqlmesh .utils import get_asset_key_str
28+
29+ if t .TYPE_CHECKING :
30+ from dagster_sqlmesh .translator import SQLMeshDagsterTranslator
2931
3032logger = logging .getLogger (__name__ )
3133
@@ -329,6 +331,7 @@ def __init__(
329331 models_map : dict [str , Model ],
330332 dag : DAG [t .Any ],
331333 prefix : str ,
334+ dagster_sqlmesh_translator : "SQLMeshDagsterTranslator" ,
332335 is_testing : bool = False ,
333336 materializations_enabled : bool = True ,
334337 ) -> None :
@@ -341,6 +344,7 @@ def __init__(
341344 models_map: A mapping of model names to their SQLMesh model instances.
342345 dag: The directed acyclic graph representing the SQLMesh models.
343346 prefix: A prefix to use for all asset keys generated by this handler.
347+ dagster_sqlmesh_translator: The SQLMesh Dagster translator instance.
344348 is_testing: Whether the handler is being used in a testing context.
345349 materializations_enabled: Whether the handler is to generate
346350 materializations, this should be disabled if you with to run a
@@ -351,6 +355,7 @@ def __init__(
351355 self ._prefix = prefix
352356 self ._context = context
353357 self ._logger = context .log
358+ self ._translator = dagster_sqlmesh_translator
354359 self ._tracker = MaterializationTracker (
355360 sorted_dag = dag .sorted [:], logger = self ._logger
356361 )
@@ -382,7 +387,7 @@ def notify_success(
382387 # If the model is not in models_map, we can skip any notification
383388 if model :
384389 # Passing model.fqn to get internal unique asset key
385- output_key = get_asset_key_str (model .fqn )
390+ output_key = self . _translator . get_asset_key_str (model .fqn )
386391 if self ._is_testing :
387392 asset_key = dg .AssetKey (["testing" , output_key ])
388393 self ._logger .warning (
@@ -491,15 +496,15 @@ def report_event(self, event: console.ConsoleEvent) -> None:
491496 log_context .info (
492497 "Snapshot progress complete" ,
493498 {
494- "asset_key" : get_asset_key_str (snapshot .model .name ),
499+ "asset_key" : self . _translator . get_asset_key_str (snapshot .model .name ),
495500 },
496501 )
497502 self ._tracker .update_run (snapshot )
498503 else :
499504 log_context .info (
500505 "Snapshot progress update" ,
501506 {
502- "asset_key" : get_asset_key_str (snapshot .model .name ),
507+ "asset_key" : self . _translator . get_asset_key_str (snapshot .model .name ),
503508 "progress" : f"{ done } /{ expected } " ,
504509 "duration_ms" : duration_ms ,
505510 },
@@ -687,11 +692,13 @@ def create_event_handler(
687692 is_testing : bool ,
688693 materializations_enabled : bool ,
689694 ) -> DagsterSQLMeshEventHandler :
695+ translator = self .config .get_translator ()
690696 return DagsterSQLMeshEventHandler (
691697 context = context ,
692698 dag = dag ,
693699 models_map = models_map ,
694700 prefix = prefix ,
701+ dagster_sqlmesh_translator = translator ,
695702 is_testing = is_testing ,
696703 materializations_enabled = materializations_enabled ,
697704 )
@@ -701,7 +708,7 @@ def _get_selected_models_from_context(
701708 ) -> tuple [set [str ], dict [str , Model ], list [str ] | None ]:
702709 models_map = models .copy ()
703710 try :
704- selected_output_names = set (context .selected_output_names )
711+ selected_output_names = set (context .op_execution_context . selected_output_names )
705712 except (DagsterInvalidPropertyError , AttributeError ) as e :
706713 # Special case for direct execution context when testing. This is related to:
707714 # https://github.com/dagster-io/dagster/issues/23633
@@ -711,10 +718,11 @@ def _get_selected_models_from_context(
711718 else :
712719 raise e
713720
721+ translator = self .config .get_translator ()
714722 select_models : list [str ] = []
715723 models_map = {}
716724 for key , model in models .items ():
717- if get_asset_key_str (model .fqn ) in selected_output_names :
725+ if translator . get_asset_key_str (model .fqn ) in selected_output_names :
718726 models_map [key ] = model
719727 select_models .append (model .name )
720728 return (
0 commit comments