code: def _preempt_by_recompute(
      self,
      seq_group: SequenceGroup,
  ) -> None:
      seqs = seq_group.get_seqs(status=SequenceStatus.RUNNING)
      # len(seqs) should be 1
      for seq in seqs:
          seq.status = SequenceStatus.WAITING
          # self.block_manager.free(seq)
          if not self.kv_cache[0][0].get(seq.seq_id) is None:
              for i in range(len(self.kv_cache)):
                  for j in range(2):
                      del self.kv_cache[i][j][seq.seq_id]
  
      # NOTE: For FCFS, we insert the preempted sequence group to the front
      # of the waiting queue.
      self.waiting.insert(0, seq_group)
  
imports: import enum
  import time
  from typing import Dict, Iterable, List, Optional, Tuple, Union
  from bigdl.llm.vllm.config import SchedulerConfig
  from bigdl.llm.vllm.core.policy import PolicyFactory
  from bigdl.llm.vllm.logger import init_logger
  from bigdl.llm.vllm.sequence import SequenceData, SequenceStatus
  from bigdl.llm.vllm.sequence import Sequence, SequenceGroup, SequenceGroupMetadata
  from bigdl.llm.utils.common import invalidInputError
label_desc: Use image node_id 11 for calling the FixedWindowScheduler obj's underlying member method code with example usage: obj._preempt_by_recompute(seq_group) without return types