code: def exp_refs(
      scm: "Git", url: Optional[str] = None
  ) -> Generator["ExpRefInfo", None, None]:
      """Iterate over all experiment refs."""
      ref_gen = (
          iter_remote_refs(scm, url, base=EXPS_NAMESPACE)
          if url
          else scm.iter_refs(base=EXPS_NAMESPACE)
      )
      for ref in ref_gen:
          if _ignore_ref(ref):
              continue
          yield ExpRefInfo.from_ref(ref)
  
imports: import os
  import random
  import sys
  from collections import defaultdict
  from functools import wraps
  from typing import TYPE_CHECKING, Callable, Dict, Generator, Iterable, List, Mapping, Optional, Set, Tuple, Union
  from dvc.exceptions import InvalidArgumentError
  from dvc.repo.experiments.exceptions import AmbiguousExpRefInfo
  from dvc.rwlock import rwlock
  from dvc.scm import Git
  from .refs import EXEC_APPLY, EXEC_BASELINE, EXEC_BRANCH, EXPS_NAMESPACE, ITER_SKIP_NAMESPACES, STASHES, ExpRefInfo
label_desc: Use image node_id 4 for calling a global function with example usage: exp_refs(scm, url) without return types