o
    VÛ·i<  ã                   @   s6   d dl mZmZmZmZ ddlmZ G dd„ dƒZdS )é    )ÚListÚOptionalÚSequenceÚAnyé   )ÚTokenIdc                   @   sf   e Zd ZU eed< ee ed< ee ed< ee ed< de	ddfdd	„Z
d
edee fdd„ZeZdS )ÚTokenizerWrapperÚeos_token_idÚbos_token_idÚtokensÚspecial_token_idsÚ
gtokenizerÚreturnNc                 C   sZ   |j | _ |j| _|j| _t|dg ƒ| _d| _|| _d| _z|dƒ W d S    d| _Y d S )Nr   Ts   testF)r	   r
   r   Úgetattrr   Úis_tokenizer_wrapperÚ_gtokenizerÚ_accepts_bytes)Úselfr   © r   úK/home/ubuntu/vllm_env/lib/python3.10/site-packages/llguidance/_tokenizer.pyÚ__init__   s   zTokenizerWrapper.__init__Úsc                 C   s(   | j r|  | d¡¡}|S |  |¡}|S )Nzutf-8)r   r   Úencode)r   r   Úrr   r   r   Ú_encode_string   s
   
ÿzTokenizerWrapper._encode_string)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r   ÚbytesÚintr   r   Ústrr   r   Ú__call__r   r   r   r   r      s   
 	r   N)Útypingr   r   r   r   Ú_utilr   r   r   r   r   r   Ú<module>   s    