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 scheduled_time(self, scheduled_time):
      if self.began_allreduce:
          logger.warning(
              "Changing scheduled time has no effect after all-reduce has already started"
          )
      if scheduled_time >= self.deadline:
          logger.warning(
              "Changing scheduled time to after deadline, averaging will likely fail due to timeout"
          )
      struct.pack_into(
          "d",
          self._shared_buffer[StepControl._SCHEDULED_TIME].numpy().data,
          0,
          float(scheduled_time),
      )
  
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 6 for calling the StepControl obj's underlying member method code with example usage: obj.scheduled_time(scheduled_time) without return types