def METHOD_NAME(self) -> None:
    """
    Get the frame of the code containing the with statement, cut down the source code
    such that it only contains the with statement and the accumulator loop and set up
    the trace function to track the values of the accumulator variables during each iteration
    """
    func_frame = inspect.getouterframes(
        inspect.getouterframes(inspect.currentframe())[1].frame
    )[1].frame
    node = get_loop_node(func_frame)
    self._loop_lineno = inspect.getlineno(func_frame) + node.lineno
    if isinstance(node, astroid.For) and isinstance(node.target, astroid.Tuple):
        self.loop_variables = {loop_var.name: [] for loop_var in node.target.elts}
    elif isinstance(node, astroid.For):
        self.loop_variables[node.target.name] = []
    assert (
        self.loop_accumulators != {} or self.loop_variables != {}
    ), "The loop accumulator and loop variables cannot be both empty"
    func_frame.f_trace = self._trace_loop
    sys.settrace(lambda *_args: None)