o
    á)i6  ã                   @   s˜   d dl mZmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ eeƒZG dd„ deƒZedƒZG d	d
„ d
eeef ƒZG dd„ deƒZdS )é    )ÚABCÚabstractmethod)ÚAnyÚCallableÚOptionalÚTypeVar)Únn)Úinit_logger)ÚLRUCachec                   @   s$   e Zd Zddd„Zeddd„ƒZdS )ÚAdapterModelNc                 C   s
   || _ d S ©N)Úid)ÚselfÚmodel_id© r   úg/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/adapter_commons/models.pyÚ__init__   ó   
zAdapterModel.__init__c                 K   s   t dƒ‚)Nz&Subclasses must implement this method.©ÚNotImplementedError)ÚclsZ	model_dirr   Úkwargsr   r   r   Úfrom_local_checkpoint   s   z"AdapterModel.from_local_checkpointr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r      s    
r   ÚTc                       sJ   e Zd Zdedeegef f‡ fdd„Zdedee f‡ fdd„Z	‡  Z
S )	ÚAdapterLRUCacheÚcapacityÚdeactivate_fnc                    s   t ƒ  |¡ || _d S r   )Úsuperr   r   )r   r   r   ©Ú	__class__r   r   r       s   
zAdapterLRUCache.__init__ÚkeyÚvaluec                    s$   t  d|¡ |  |¡ tƒ  ||¡S )NzRemoving adapter int id: %d)ÚloggerÚdebugr   r    Ú
_on_remove)r   r#   r$   r!   r   r   r'   $   s   
zAdapterLRUCache._on_remove)r   r   r   Úintr   Úobjectr   r   r   r'   Ú__classcell__r   r   r!   r   r      s     "r   c                   @   s  e Zd Zdejfdd„Zdefdd„Zee	defdd„ƒƒZ
ee	defd	d
„ƒƒZe	dedefdd„ƒZe	dedefdd„ƒZe	dedefdd„ƒZe	deddfdd„ƒZe	dedefdd„ƒZe	d!dd„ƒZe	dedee fdd„ƒZe	deeef fdd„ƒZe	dedefdd „ƒZdS )"ÚAdapterModelManagerÚmodelc                 C   s"   || _ i | _i | _d| _d| _dS )z~Create a AdapterModelManager and adapter for a given model.
        Args:
            model: the model to be adapted.
        ZAdapterN)r,   Ú_registered_adaptersZ_active_adaptersZadapter_typeZ_last_mapping)r   r,   r   r   r   r   ,   s
   
zAdapterModelManager.__init__Úreturnc                 C   s
   t | jƒS r   )Úlenr-   ©r   r   r   r   Ú__len__;   r   zAdapterModelManager.__len__c                 C   ó   t ‚r   r   r0   r   r   r   Úadapter_slots>   ó   z!AdapterModelManager.adapter_slotsc                 C   r2   r   r   r0   r   r   r   r   C   r4   zAdapterModelManager.capacityÚ
adapter_idc                 C   r2   r   r   ©r   r5   r   r   r   Úactivate_adapterH   ó   z$AdapterModelManager.activate_adapterc                 C   r2   r   r   r6   r   r   r   Údeactivate_adapterL   r8   z&AdapterModelManager.deactivate_adapterÚadapterc                 C   r2   r   r   )r   r:   r   r   r   Úadd_adapterP   r8   zAdapterModelManager.add_adapterÚmappingNc                 C   r2   r   r   )r   r<   r   r   r   Úset_adapter_mappingT   r8   z'AdapterModelManager.set_adapter_mappingc                 C   r2   r   r   r6   r   r   r   Úremove_adapterX   r8   z"AdapterModelManager.remove_adapterc                 C   r2   r   r   r0   r   r   r   Úremove_all_adapters\   r8   z'AdapterModelManager.remove_all_adaptersc                 C   r2   r   r   r6   r   r   r   Úget_adapter`   r8   zAdapterModelManager.get_adapterc                 C   r2   r   r   r0   r   r   r   Úlist_adaptersd   r8   z!AdapterModelManager.list_adaptersc                 C   r2   r   r   r6   r   r   r   Úpin_adapterh   r8   zAdapterModelManager.pin_adapter)r.   N)r   r   r   r   ÚModuler   r(   r1   Úpropertyr   r3   r   Úboolr7   r9   r   r;   r=   r>   r?   r   r@   ÚdictrA   rB   r   r   r   r   r+   *   s:    
þr+   N)Úabcr   r   Útypingr   r   r   r   Ztorchr   Zvllm.loggerr	   Z
vllm.utilsr
   r   r%   r   r   r(   r   r+   r   r   r   r   Ú<module>   s   