code: def replace_dataset_id_hash(text: str) -> str:
      """Replaces data set ID hashes for primed semantic models.
  
      The data set ID hash changes from run to run because it's based on the DW schema in the semantic model, which changes
      run to run.
      """
      pattern = re.compile(
          r"'[a-zA-Z0-9_]+__[a-zA-Z0-9_]+__(?P<hash>[a-zA-Z0-9_]+)'"
      )
      while True:
          match = pattern.search(text)
          if match:
              data_set_id_hash = match.group("hash")
              # Replace with the same length to preserve indents
              text = text.replace(
                  data_set_id_hash,
                  PLACEHOLDER_CHAR_FOR_INCOMPARABLE_STRINGS
                  * len(data_set_id_hash),
              )
          else:
              break
      return text
  
imports: from __future__ import annotations
  import difflib
  import logging
  import os
  import re
  import webbrowser
  from typing import Any, Callable, List, Optional, Tuple, TypeVar
  import tabulate
  from _pytest.fixtures import FixtureRequest
  from dbt_semantic_interfaces.pretty_print import pformat_big_objects
  from metricflow.dag.mf_dag import MetricFlowDag
  from metricflow.dataflow.dataflow_plan import DataflowPlan
  from metricflow.dataflow.dataflow_plan_to_text import dataflow_plan_as_text
  from metricflow.execution.execution_plan import ExecutionPlan
  from metricflow.execution.execution_plan_to_text import execution_plan_to_text
  from metricflow.mf_logging.pretty_print import mf_pformat
  from metricflow.model.semantics.linkable_spec_resolver import LinkableElementSet
  from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
  from metricflow.protocols.sql_client import SqlClient
  from metricflow.specs.specs import InstanceSpecSet, LinkableSpecSet
  from metricflow.test.fixtures.setup_fixtures import MetricFlowTestSessionState, check_sql_engine_snapshot_marker
label_desc: Use image node_id 2 for calling a global function with example usage: replace_dataset_id_hash(text) and returns: text