# SPDX-License-Identifier: Apache-2.0 from collections import deque from dataclasses import dataclass from typing import Deque, Dict, Iterable, List, Optional, Protocol, Tuple from vllm.core.block.interfaces import Block, BlockAllocator BlockId = int RefCount = int class BlockList: def append_token_ids(self, block_index: int, token_ids: List[int], seq_id: Optional[int]=None) -> None: block = self._blocks[block_index] prev_block_id = block.block_id block.append_token_ids(token_ids, seq_id=seq_id) # CoW or promotion may update the internal block_id if prev_block_id != block.block_id: self._update_block_id(block_index, block.block_id)