code: def _accumulate(iterable, func=operator.add):
      """Return running totals
      Ex. _accumulate([1,2,3,4,5]) --> 1 3 6 10 15
      Ex. _accumulate([1,2,3,4,5], operator.mul) --> 1 2 6 24 120
      """
      it = iter(iterable)
      total = next(it)
      yield total
      for element in it:
          total = func(total, element)
          yield total
  
imports: import itertools
  import operator
  import os
  import warnings
  from os.path import join
  from bisect import bisect_left
  from collections import defaultdict
  from copy import deepcopy
  from itertools import combinations
  from random import sample
  import numpy
  import pandas
  from mlxtend.frequent_patterns import fpgrowth
  from numpy.random import random
  from pandas import read_csv
  from scipy.sparse import csc_matrix
  from sklearn.base import BaseEstimator, ClassifierMixin
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.utils.multiclass import check_classification_targets
  from sklearn.utils.validation import check_X_y, check_is_fitted
  from imodels.rule_set.rule_set import RuleSet
  from imodels.util.arguments import check_fit_arguments
label_desc: Use image node_id 1 for calling a global function with example usage: _accumulate(iterable, func) without return types