code: def _match_defaults(
      arg_names: list[str],
      init_def: tuple[str, list[ast.expr]],
      deco_def: tuple[str, list[ast.expr]],
  ) -> collections.abc.Iterator[str]:
      init_name, init_defaults = init_def
      deco_name, deco_defaults = deco_def
      for i, (ini, dec) in enumerate(
          zip(init_defaults, deco_defaults), 1
      ):
          if ast.dump(ini) != ast.dump(
              dec
          ):  # Poorly implemented equality check.
              yield (
                  f"Argument {arg_names[i]!r} default mismatch: "
                  f"{init_name} has {_reveal(ini)} but @{deco_name} has {_reveal(dec)}"
              )
  
file_path: airflow/scripts/ci/pre_commit/pre_commit_sync_init_decorator.py
imports: from __future__ import annotations
  import ast
  import collections.abc
  import itertools
  import pathlib
  import sys
label_desc: Use image node_id 6 for calling a global function with example usage: _match_defaults(arg_names, init_def, deco_def) without return types