code: def _read_metrics(
      fs: "FileSystem", metrics: Iterable[str], **load_kwargs
  ) -> Iterator[Tuple[str, Union[Exception, Any]]]:
      for metric in metrics:
          try:
              yield metric, _read_metric(fs, metric, **load_kwargs)
          except Exception as exc:  # noqa: BLE001
              logger.debug(exc)
              yield metric, exc
  
imports: import os
  from itertools import chain
  from typing import TYPE_CHECKING, Any, Dict, Iterable, Iterator, List, Optional, Tuple, TypedDict, Union
  from funcy import ldistinct
  from scmrepo.exceptions import SCMError
  from dvc.log import logger
  from dvc.scm import NoSCMError
  from dvc.utils import as_posix, expand_paths
  from dvc.utils.collections import ensure_list
  from dvc.utils.serialize import load_path
label_desc: Use image node_id 4 for calling a global function with example usage: _read_metrics(fs, metrics) without return types