code: def make_robust(
      funcs: Union[
          Callable, FuncWrapper, List[Union[Callable, FuncWrapper]]
      ],
      min_nb_samples: Optional[int] = 1,
      error_val: Optional[Any] = np.nan,
      passthrough_nans: Optional[bool] = True,
  ) -> Union[FuncWrapper, List[FuncWrapper]]:
      """Decorate `funcs` into one or multiple robust FuncWrappers.
  
       More specifically this method does (in the following order):\n
       * `np.NaN` data input propagation / filtering
       *  `min_nb_samples` checking before feeding to `func`
          (if not met, returns `error_val`)\n
       Note: this wrapper is useful for functions that should be robust for empty or
       sparse windows and/or nans in the data.
  
      Parameters
      ----------
      funcs: Union[Callable, FuncWrapper, List[Union[Callable, FuncWrapper]]]
          The function which will be made robust.
      min_nb_samples: int, optional
          The minimum number of samples that are needed for `func` to be applied
          successfully, by default 1.
          .. Note::
              The number of samples are determined after the `passthrough_nans` filter
              took place.
  
      error_val: Any, optional
          The error *return* value if the `min_nb_samples` requirement is not met, by
          default `np.NaN`.
      passthrough_nans: bool, optional
          If set to true, `np.NaN` values, which occur in the data will be passed through.
          Otherwise, the `np.NaN` values will be masked out before being passed to `func`,
          by default True.
  
      Returns
      -------
      Union[FuncWrapper, List[FuncWrapper]]
          The robust FuncWrapper if a single func is passed or a list of robust
          FuncWrappers when a list of functions is passed.
  
      """
      if isinstance(funcs, Callable) or isinstance(funcs, FuncWrapper):
          return _make_single_func_robust(
              funcs, min_nb_samples, error_val, passthrough_nans
          )
      return [
          _make_single_func_robust(
              func, min_nb_samples, error_val, passthrough_nans
          )
          for func in funcs
      ]
  
file_path: tsflex/tsflex/features/utils.py
imports: from typing import Any, Callable, List, Optional, Tuple, Union
  import numpy
  import pandas
  from .function_wrapper import FuncWrapper, _get_name
label_desc: Use image node_id 5 for calling a global function with example usage: make_robust(funcs, min_nb_samples, error_val, passthrough_nans) and returns: unknown, _make_single_func_robust