code: def _filter_jit_cache(fun_names, jitkwargs):
      def fun_wrapped(dynamic_donate, dynamic_nodonate, static):
          dynamic_dict = dict(**dynamic_donate, **dynamic_nodonate)
          dynamic_fun = dynamic_dict.pop("fun")
          dynamic_first = dynamic_dict.pop("first")
          dynamic_rest = dynamic_dict.pop("rest")
          static_fun, static_first, static_rest = static
          fun = hashable_combine(dynamic_fun, static_fun)
          first_arg = hashable_combine(dynamic_first, static_first)
          rest_args, kwargs = hashable_combine(
              dynamic_rest, static_rest
          )
          assert type(rest_args) is tuple
          *args, dummy_arg = (first_arg,) + rest_args
          assert dummy_arg is None
          out = fun(*args, **kwargs)
          dynamic_out, static_out = partition(out, is_array)
          return dynamic_out, Static(static_out)
  
      fun_name, fun_qualname = fun_names
      fun_wrapped.__name__ = fun_name
      fun_wrapped.__qualname__ = fun_qualname
      return jax.jit(
          fun_wrapped, donate_argnums=0, static_argnums=2, **jitkwargs
      )
  
imports: import functools
  import inspect
  import warnings
  from collections.abc import Callable
  from typing import Any, Literal, overload, TypeVar
  from typing_extensions import ParamSpec
  import jax
  import jax._src.traceback_util
  import jax.core
  from jaxtyping import PyTree
  from ._compile_utils import compile_cache, get_fn_names, hashable_combine, hashable_filter, hashable_partition, Lowered
  from ._custom_types import sentinel
  from ._deprecate import deprecated_0_10
  from ._doc_utils import doc_remove_args
  from ._filters import combine, is_array, partition
  from ._module import field, Module, module_update_wrapper, Partial, Static
label_desc: Use image node_id 1 for calling a global function with example usage: _filter_jit_cache(fun_names, jitkwargs) and returns: jax, dynamic_out,  Static