code: def _update_merge(d1: Optional[dict], d2: dict) -> dict:
      # For convenience in the loop, allow d1 to be empty initially
      if d1 is None:
          return d2
  
      if not isinstance(d1, dict) or not isinstance(d2, dict):
          raise TypeError(
              "Both arguments need to be of type dictionary (ProfileReport.description_set)"
          )
  
      return _update_merge_dict(d1, d2)
  
imports: import json
  import warnings
  from dataclasses import asdict
  from typing import Any, List, Optional, Tuple, Union
  import pandas
  from dacite import from_dict
  from ydata_profiling.config import Correlation, Settings
  from ydata_profiling.model import BaseDescription
  from ydata_profiling.model.alerts import Alert
  from ydata_profiling.profile_report import ProfileReport
label_desc: Use image node_id 5 for calling a global function with example usage: _update_merge(d1, d2) and returns: _update_merge_dict, d2