
    .`iF                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZ erd dl	m
Z
 d dlmZ  ee          Z G d d	          Ze                    d
dd
           dS )    N)Callable)TYPE_CHECKING)init_logger)OffloadingSpec)
VllmConfig)KVCacheConfigc            	           e Zd ZU i Zeeeg ee         f         f         e	d<   e
dedededdfd            Ze
dd	d
ddefd            ZdS )OffloadingSpecFactory	_registrynamemodule_path
class_namereturnNc                     || j         v rt          d| d          dt          t                   ffd}|| j         |<   dS )z:Register a spec with a lazy-loading module and class name.zConnector 'z' is already registered.r   c                  L    t          j                  } t          |           S )N)	importlibimport_modulegetattr)moduler   r   s    n/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/kv_offload/factory.pyloaderz3OffloadingSpecFactory.register_spec.<locals>.loader   s#    ,[99F6:...    N)r   
ValueErrortyper   )clsr   r   r   r   s     `` r   register_specz#OffloadingSpecFactory.register_spec   sp     3=  I4IIIJJJ	/^, 	/ 	/ 	/ 	/ 	/ 	/ 	/ %dr   configr   kv_cache_configzKVCacheConfig | Nonec                    |j         }|J |j        }|                    dd          }|| j        v r | j        |                     }nM|                    d          }|t	          d|           t          j        |          }t          ||          }t          |t                    sJ t                              d|            |||          S )N	spec_nameCPUOffloadingSpecspec_module_pathzUnsupported spec type: z&Creating offloading spec with name: %s)kv_transfer_configkv_connector_extra_configgetr   r   r   r   r   
issubclassr   loggerinfo)	r   r   r   r#   extra_configr    spec_clsr"   spec_modules	            r   create_specz!OffloadingSpecFactory.create_spec    s     $6!---)C $$[2EFF	%%/s}Y/11HH+//0BCC' !F9!F!FGGG#12BCCK{I66H(N33333<iHHHx000r   )__name__
__module____qualname__r   dictstrr   r   r   __annotations__classmethodr   r,    r   r   r
   r
      s         ?AItC"d>&:":;;<AAA	% 	%3 	%C 	%D 	% 	% 	% [	% 11 01 
	1 1 1 [1 1 1r   r
   r!   zvllm.v1.kv_offload.cpu)r   collections.abcr   typingr   vllm.loggerr   vllm.v1.kv_offload.specr   vllm.configr   vllm.v1.kv_cache_interfacer   r-   r'   r
   r   r4   r   r   <module>r;      s        $ $ $ $ $ $             # # # # # # 2 2 2 2 2 2 9&&&&&&888888	X		#1 #1 #1 #1 #1 #1 #1 #1N  # #13F    r   