vllm/vllm/v1/utils.py
Woosuk Kwon 42b4f46b71
[V1] Add all_token_ids attribute to Request (#10135)
Signed-off-by: Woosuk Kwon <woosuk.kwon@berkeley.edu>
2024-11-07 17:08:24 -08:00

65 lines
1.4 KiB
Python

from typing import Generic, List, TypeVar, overload
T = TypeVar("T")
class ConstantList(Generic[T]):
def __init__(self, x: List[T]) -> None:
self._x = x
def append(self, item):
raise Exception("Cannot append to a constant list")
def extend(self, item):
raise Exception("Cannot extend a constant list")
def insert(self, item):
raise Exception("Cannot insert into a constant list")
def pop(self, item):
raise Exception("Cannot pop from a constant list")
def remove(self, item):
raise Exception("Cannot remove from a constant list")
def clear(self):
raise Exception("Cannot clear a constant list")
def index(self, item):
return self._x.index(item)
@overload
def __getitem__(self, item) -> T:
...
@overload
def __getitem__(self, s: slice, /) -> List[T]:
...
def __getitem__(self, item):
return self._x[item]
@overload
def __setitem__(self, item, value):
...
@overload
def __setitem__(self, s: slice, value, /):
...
def __setitem__(self, item, value):
raise Exception("Cannot set item in a constant list")
def __delitem__(self, item):
raise Exception("Cannot delete item from a constant list")
def __iter__(self):
return iter(self._x)
def __contains__(self, item):
return item in self._x
def __len__(self):
return len(self._x)