o
    á)i  ã                
   @   s<  d dl mZmZmZ dedeedf dedefdd„Zd	ed
eeef dededef
dd„Zdedededefdd„Z	ded
eeef dedefdd„Z
d
eeef deeef fdd„Zded
eeef dee fdd„Zdee dee ddfdd„Zdedefdd„Zd ee d!eddfd"d#„Zdee fd$d%„ZdS )&é    )ÚAnyÚCallableÚOptionalÚ
adapter_idÚactive_adaptersNÚdeactivate_funcÚreturnc                 C   s"   | |v r|| ƒ |  | ¡ dS dS )NTF)Úpop)r   r   r   © r
   úf/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/adapter_commons/utils.pyÚdeactivate_adapter   s
   
r   ÚadapterÚregistered_adaptersÚcapacityÚadd_funcc                 C   s8   | j |vrt|ƒ|krtdƒ‚|| ƒ | || j < dS dS )NzNo free adapter slots.TF)ÚidÚlenÚRuntimeError)r   r   r   r   r
   r
   r   Úadd_adapter   s   

r   ÚmappingÚlast_mappingÚset_mapping_funcc                 C   s   || kr
|| ƒ | S |S ©Nr
   )r   r   r   r
   r
   r   Úset_adapter_mapping   s   r   c                 C   s   || ƒ t | | d ¡ƒS r   )Úboolr	   )r   r   r   r
   r
   r   Úremove_adapter$   s   r   c                 C   s   t | ƒS r   )Údict)r   r
   r
   r   Úlist_adapters*   s   r   c                 C   s
   |  | ¡S r   )Úget)r   r   r
   r
   r   Úget_adapter.   s   
r   Úrequestsc                 C   s   || ƒ ||ƒ d S r   r
   )r    r   Zapply_adapters_funcZset_adapter_mapping_funcr
   r
   r   Úset_active_adapters_worker4   s   r!   Úadapter_requestc                 C   s.   | j |ƒ v rdS || ƒ}||ƒ}||jƒ |S )NF)r   r   )r"   Úlist_adapters_funcZload_adapter_funcÚadd_adapter_funcZactivate_adapter_funcZloaded_adapterZloadedr
   r
   r   Úadd_adapter_worker;   s   
r%   Úadapter_requestsÚadapter_slotsc                 C   s~   |ƒ }dd„ | D ƒ}t |ƒ|krtdt |ƒ› d|› dƒ‚t|ƒ}|| }|| }	|	D ]}
||
ƒ q+|D ]}
|||
 ƒ q4d S )Nc                 S   s   i | ]}|r|j |“qS r
   )r   )Ú.0r"   r
   r
   r   Ú
<dictcomp>J   s
    þÿz)apply_adapters_worker.<locals>.<dictcomp>zNumber of requested models (z1) is greater than the number of GPU model slots (z).)r   r   Úset)r&   r#   r'   Zremove_adapter_funcr$   Zmodels_that_existZ
models_mapZ
new_modelsZmodels_to_addZmodels_to_remover   r
   r
   r   Úapply_adapters_workerF   s$   þþÿ
ÿr+   c                 C   s
   t | ƒ ƒS r   )r*   )Z"adapter_manager_list_adapters_funcr
   r
   r   Úlist_adapters_worker\   s   
r,   )Útypingr   r   r   Úintr   r   r   r   r   r   r   r   r*   r!   r%   r+   r,   r
   r
   r
   r   Ú<module>   sR   ÿ
ÿ	ÿÿ
ÿ
ÿ
ÿÿ
ÿ"
ÿ
ÿ
þ
þ
ÿ
þ