code: def cumreduce(
      function: Callable[[Series, Series], Series],
      exprs: Sequence[Expr | str] | Expr,
  ) -> Expr:
      """
      Cumulatively accumulate over multiple columns horizontally/ row wise with a left fold.
  
      Every cumulative result is added as a separate field in a Struct column.
  
      Parameters
      ----------
      function
          Function to apply over the accumulator and the value.
          Fn(acc, value) -> new_value
      exprs
          Expressions to aggregate over. May also be a wildcard expression.
      """  # noqa: W505
      # in case of col("*")
      if isinstance(exprs, pl.Expr):
          exprs = [exprs]
  
      exprs = parse_as_list_of_expressions(exprs)
      return wrap_expr(plr.cum_reduce(function, exprs))
  
imports: from __future__ import annotations
  import contextlib
  from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence, overload
  import polars._reexport
  import polars.functions
  from polars.datatypes import DTYPE_TEMPORAL_UNITS, Date, Datetime, Int64
  from polars.utils._async import _AioDataFrameResult, _GeventDataFrameResult
  from polars.utils._parse_expr_input import parse_as_expression, parse_as_list_of_expressions
  from polars.utils._wrap import wrap_df, wrap_expr
  from polars.utils.deprecation import deprecate_renamed_function
label_desc: Use image node_id 49 for calling a global function with example usage: cumreduce(function, exprs) and returns: wrap_expr