class_docstr: An auxiliary data structure that allows user to control stages and track progress in a single averaging step
  
  :param scheduled_time: estimated time when averaging should begin. Will be used for scheduling
  :param deadline: if averaging is still in progress at this time, it should be stopped due to TimeoutError
  :param allow_retries: if True, allow running matchmaking and all-reduce again if previous attempt fails
  :param weight: averaging weight, can be changed afterwards
  :param data_for_gather: send this data to all peers in the next group and gather it from groupmates
code: def stage(self) -> AveragingStage:
      return AveragingStage(
          self._shared_buffer[StepControl._STAGE].item()
      )
  
imports: import os
  import struct
  from enum import Enum
  from typing import Optional
  import numpy
  import torch
  from hivemind.utils import DHTExpiration, MPFuture, get_dht_time, get_logger
label_desc: Use image node_id 9 for calling the StepControl obj's underlying member method code with example usage: obj.stage() and returns: AveragingStage