o
    -i}                     @   sT   d Z ddlmZ ddlmZmZ ddlZerddlmZ neZeG dd dZ	dS )z!Sequence and its related classes.    )	dataclass)TYPE_CHECKINGAnyN)KVConnectorOutputc                   @   s   e Zd ZU dZeeejf ed< e	dB ed< 	ddeeejf de	dB ddfddZ
deeB fd	d
ZdedejfddZdd Zdd ZdefddZdefddZdS )IntermediateTensorsa  For all pipeline stages except the last, we need to return the hidden
    states and residuals to be sent to the next stage. This data structure
    contains the hidden states and residuals for a request.

    Each stage also needs to handle its own kv_connector_output.
    tensorsNkv_connector_outputreturnc                 C   s   || _ || _d S N)r   r   )selfr   r    r   J/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/sequence.py__init__   s   	
zIntermediateTensors.__init__keyc                    s@   t  tr
| j  S t  tr|  fdd| j D S d S )Nc                    s   i | ]	\}}||  qS r   r   ).0kvr   r   r   
<dictcomp>-   s    z3IntermediateTensors.__getitem__.<locals>.<dictcomp>)
isinstancestrr   slice	__class__items)r   r   r   r   r   __getitem__)   s
   


zIntermediateTensors.__getitem__valuec                 C   s   || j |< d S r
   r   )r   r   r   r   r   r   __setitem__/      zIntermediateTensors.__setitem__c                 C   s
   | j  S r
   )r   r   r   r   r   r   r   2      
zIntermediateTensors.itemsc                 C   s
   t | jS r
   )lenr   r   r   r   r   __len__5   r    zIntermediateTensors.__len__otherc                    sB   t  jsdS j  j krdS t fddjD S )NFc                 3   s(    | ]}t j|  j| V  qd S r
   )torchequalr   )r   r   r#   r   r   r   	<genexpr>=   s   & z-IntermediateTensors.__eq__.<locals>.<genexpr>)r   r   r   keysall)r   r#   r   r&   r   __eq__8   s
   zIntermediateTensors.__eq__c                 C   s   d| j  dS )NzIntermediateTensors(tensors=)r   r   r   r   r   __repr__?   r   zIntermediateTensors.__repr__r
   )__name__
__module____qualname____doc__dictr   r$   Tensor__annotations__r   r   r   r   r   r   r"   objectr*   r,   r   r   r   r   r      s$   
 
r   )
r0   dataclassesr   typingr   r   r$   .vllm.v1.worker.kv_connector_model_runner_mixinr   r   r   r   r   r   <module>   s   