code: def all_composite_sensors():
      """Get all sensor names from available composite configs."""
      paths = get_entry_points_config_dirs("satpy.composites")
      composite_configs = glob_config(
          os.path.join("composites", "*.yaml"), search_dirs=paths
      )
      yaml_names = set(
          [
              os.path.splitext(os.path.basename(fn))[0]
              for fn in composite_configs
          ]
      )
      non_sensor_yamls = ("visir",)
      sensor_names = [
          x for x in yaml_names if x not in non_sensor_yamls
      ]
      return sensor_names
  
imports: from __future__ import annotations
  import logging
  import os
  import warnings
  from functools import lru_cache, update_wrapper
  from typing import Callable, Iterable
  import yaml
  from yaml import UnsafeLoader
  import satpy
  from satpy import DataID, DataQuery
  from satpy._config import config_search_paths, get_entry_points_config_dirs, glob_config
  from satpy.dataset.dataid import minimal_default_keys_config
  from satpy.utils import recursive_dict_update
label_desc: Use image node_id 8 for calling a global function with example usage: all_composite_sensors() and returns: sensor_names