code: def _lru_cache_with_config_path(func: Callable):
      """Use lru_cache but include satpy's current config_path."""
  
      @lru_cache()
      def _call_without_config_path_wrapper(sensor_name, _):
          return func(sensor_name)
  
      def _add_config_path_wrapper(sensor_name: str):
          config_path = satpy.config.get("config_path")
          # make sure config_path is hashable, but keep original order since it matters
          config_path = tuple(config_path)
          return _call_without_config_path_wrapper(
              sensor_name, config_path
          )
  
      wrapper = update_wrapper(_add_config_path_wrapper, func)
      wrapper = _update_cached_wrapper(
          wrapper, _call_without_config_path_wrapper
      )
      return wrapper
  
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 4 for calling a global function with example usage: _lru_cache_with_config_path(func) and returns: wrapper, func, _call_without_config_path_wrapper