code: def _filter_groups(groups, missing="pass"):
      """Filter multi-reader group-files behavior.
  
      Helper for `group_files`.  When `group_files` is called with multiple
      readers, make sure that the desired behaviour for missing files is
      enforced: if missing is ``"raise"``, raise an exception if at least one
      group has at least one reader without files; if it is ``"skip"``, remove
      those.  If it is ``"pass"``, do nothing.  Yields groups to be kept.
  
      Args:
          groups (List[Mapping[str, List[str]]]):
              groups as found by `group_files`.
          missing (str):
              String controlling behaviour, see documentation above.
  
      Yields:
          ``Mapping[str:, List[str]]``: groups to be retained
      """
      if missing == "pass":
          yield from groups
          return
      if missing not in ("raise", "skip"):
          raise ValueError(
              "Invalid value for ``missing`` argument.  Expected "
              f"'raise', 'skip', or 'pass', got {missing!r}"
          )
      for i, grp in enumerate(groups):
          readers_without_files = _get_keys_with_empty_values(grp)
          if readers_without_files:
              if missing == "raise":
                  raise FileNotFoundError(
                      f"when grouping files, group at index {i:d} "
                      "had no files for readers: "
                      + ", ".join(readers_without_files)
                  )
          else:
              yield grp
  
imports: from __future__ import annotations
  import logging
  import os
  import pathlib
  import pickle
  import warnings
  from datetime import datetime, timedelta
  from functools import total_ordering
  import yaml
  from yaml import UnsafeLoader
  from satpy._config import config_search_paths, get_entry_points_config_dirs, glob_config
  from .yaml_reader import AbstractYAMLReader
  from .yaml_reader import load_yaml_configs
label_desc: Use image node_id 5 for calling a global function with example usage: _filter_groups(groups, missing) without return types