o
    
۾i                     @   s   U d dl mZ d dlmZ d dlmZ d dlmZmZ er)d dl	m
Z
 d dlmZ daedB ed< d	efd
dZd	efddZddedB d	efddZ	d						dddZdddZdS )    )TYPE_CHECKING)KVConnectorBaseType)KVConnectorFactory)KVConnectorBase_V1KVConnectorRole)
VllmConfig)KVCacheConfigN_KV_CONNECTOR_AGENTreturnc                   C   s   t d usJ dt S )NzAdisaggregated KV cache transfer parallel group is not initializedr	    r   r   b/home/ubuntu/.local/lib/python3.10/site-packages/vllm/distributed/kv_transfer/kv_transfer_state.pyget_kv_transfer_group   s   
r   c                   C   s   t d uS Nr   r   r   r   r   has_kv_transfer_group   s   r   	connectorc                 C   s"   | du rt } | du rdS t| tS )a\  Check if the KV connector is the v1 connector.
    If the argument is None, it will check the global KV connector

    Args:
        connector: The KV connector to check. If None, it will check the
            global KV connector.

    Note:
        This function will no-longer be needed after the v1 KV connector
        becomes the default.
    NF)r	   
isinstancer   )r   r   r   r   is_v1_kv_transfer_group   s
   
r   vllm_configr   kv_cache_configKVCacheConfig | Nonec                 C   s<   | j du rdS | j jrtdu rtj| tj|dadS dS dS )z6
    Initialize KV cache transfer parallel group.
    N)configroler   )kv_transfer_configis_kv_transfer_instancer	   r   create_connectorr   WORKER)r   r   r   r   r   ensure_kv_transfer_initialized3   s   
	
r   c                   C   s   t d urt   d a d S d S r   )r	   shutdownr   r   r   r   ensure_kv_transfer_shutdownJ   s   r   r   )r   r   r   r   r
   N)r
   N)typingr   .vllm.distributed.kv_transfer.kv_connector.baser   1vllm.distributed.kv_transfer.kv_connector.factoryr   ,vllm.distributed.kv_transfer.kv_connector.v1r   r   vllm.configr   vllm.v1.kv_cache_interfacer   r	   __annotations__r   boolr   r   r   r   r   r   r   r   <module>   s(   
