o
    i                     @   s0   d dl Z d dlmZmZmZ G dd deZdS )    N)
AutoConfigDeepseekV2ConfigPretrainedConfigc                       sz   e Zd ZdZ			ddeeB dB dedB dedB f fddZe	dee
jB d	d fd
dZdded	ef fddZ  ZS )EAGLEConfigeagleNmodeltruncated_vocab_sizemethodc                    sJ  t |trtjdi |}n|}| D ]\}}|dkr+|dkr+t||r+t||| q|| _| jd u r8d | _n|d u r@| jj	n|| _|dkr\| jd usPJ ddd | jj
D |d< n!|dkru| jd usiJ dd	d | jj
D |d< ntd
| dt jdi | | jd ur| j  D ]\}}||vrt| || qd S d S )Narchitectures
model_typer   z-model should not be None when method is eaglec                 S   s$   g | ]}| d sd | n|qS )Eagle)
startswith.0arch r   [/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/transformers_utils/configs/eagle.py
<listcomp>0   s    z(EAGLEConfig.__init__.<locals>.<listcomp>eagle3z.model should not be None when method is eagle3c                 S   s.   g | ]}| d s|d r|nd | qS )Eagle3)r   endswithr   r   r   r   r   9   s    zInvalid method z). Supported methods are eagle and eagle3.r   )
isinstancedictr   	for_modelitemshasattrsetattrr   r   
vocab_sizer
   
ValueErrorsuper__init__to_dict)selfr   r   r	   kwargsmodel_configkv	__class__r   r   r       sN   




zEAGLEConfig.__init__pretrained_model_name_or_pathreturnc                 K   s(   | j |fi |\}}| j|fi |S )N)get_config_dict	from_dict)clsr)   r#   config_dictr   r   r   from_pretrainedK   s   
zEAGLEConfig.from_pretrainedTuse_diffc                    s   ~t  jddS )NF)r0   )r   to_json_string)r"   r0   r'   r   r   r1   V   s   zEAGLEConfig.to_json_string)NNr   )T)__name__
__module____qualname__r   r   r   intstrr    classmethodosPathLiker/   boolr1   __classcell__r   r   r'   r   r   	   s&    
? 
r   )r8   transformersr   r   r   r   r   r   r   r   <module>   s   