code: def _diff(old_raw, new_raw, with_unchanged):
      old = _parse(old_raw)
      new = _parse(new_raw)
  
      if isinstance(new, dict) or isinstance(old, dict):
          return _diff_dicts(old, new, with_unchanged)
  
      val_diff = _diff_vals(old, new, with_unchanged)
      if val_diff:
          return {"": val_diff}
  
      return {}
  
file_path: dvc/dvc/utils/diff.py
imports: import json
  from collections import defaultdict
  from typing import Dict
  from .flatten import flatten
label_desc: Use image node_id 5 for calling a global function with example usage: _diff(old_raw, new_raw, with_unchanged) and returns: dict, _diff_dicts, dict