Ë
    ÛÓ^j,  ã                   ó  — U d Z ddlmZmZ ddlmZ  ej                  e«      ZdZ	dZ
dZdZdZd	Zd
Zedededede
dediZeeef   ed<   ej+                  «       D � �ci c]  \  } }|| “Œ
 c}} Zeeef   ed<    G d„ de«      ZdgZyc c}} w )z Tokenization classes for CANINE.é   )Ú
AddedTokenÚPreTrainedTokenizer)Úloggingi   é    i à  ià  ià  ià  ià  z[CLS]z[SEP]z[BOS]z[MASK]z[PAD]z
[RESERVED]ÚSPECIAL_CODEPOINTSÚSPECIAL_CODEPOINTS_BY_NAMEc                   óÜ   ‡ — e Zd ZdZg d¢Z ee«       ee«       ee«       ee«       ee«       ee	«      ddfˆ fd„	Z
edefd„«       Zd„ Zd	edee   fd
„Zdedefd„Zdedefd„Zd„ Zˆ xZS )ÚCanineTokenizeraé  
    Construct a CANINE tokenizer (i.e. a character splitter). It turns text into a sequence of characters, and then
    converts each character into its Unicode code point.

    [`CanineTokenizer`] inherits from [`PreTrainedTokenizer`].

    Refer to superclass [`PreTrainedTokenizer`] for usage examples and documentation concerning parameters.

    Args:
        model_max_length (`int`, *optional*, defaults to 2048):
                The maximum sentence length the model accepts.
    )Ú	input_idsÚattention_maskÚtoken_type_idsFi   c	                 óÜ  •— t        |t        «      rt        |dd¬«      n|}t        |t        «      rt        |dd¬«      n|}t        |t        «      rt        |dd¬«      n|}t        |t        «      rt        |dd¬«      n|}t        |t        «      rt        |dd¬«      n|}t        |t        «      rt        |dd¬«      n|}i | _        t        j                  «       D ]  \  }
}|
| j                  |<   Œ | j                  j                  «       D ��
ci c]  \  }}
|
|“Œ
 c}
}| _        t        | _        t        | j                  «      | _
        t        ‰| �0  d||||||||ddddœ|	¤Ž y c c}
}w )NF)ÚlstripÚrstripTÚ	all_zerosÚcls_sep)Ú	bos_tokenÚ	eos_tokenÚ	sep_tokenÚ	cls_tokenÚ	pad_tokenÚ
mask_tokenÚadd_prefix_spaceÚmodel_max_lengthÚtoken_type_ids_patternÚ%token_type_ids_include_special_tokensÚspecial_tokens_pattern© )Ú
isinstanceÚstrr   Ú_special_codepointsr   ÚitemsÚ_special_codepoint_stringsÚUNICODE_VOCAB_SIZEÚ_unicode_vocab_sizeÚlenÚ_num_special_tokensÚsuperÚ__init__)Úselfr   r   r   r   r   r   r   r   ÚkwargsÚ	codepointÚnameÚ	__class__s               €úy/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/canine/tokenization_canine.pyr)   zCanineTokenizer.__init__G   sy  ø€ ô JTÐT]Ô_bÔIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_bÔIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_bÔIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_bÔIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_bÔIc”J˜y°¸uÕEÐirˆ	ô KUÐU_ÔadÔJe”Z 
°4ÀÕFÐkuˆ
ð 46ˆÔ Ü1×7Ñ7Ó9ò 	7‰OˆI�tØ-6ˆD×$Ñ$ TÒ*ð	7ð
 48×3KÑ3K×3QÑ3QÓ3S÷;
Ù /  iˆI�t‰Oó;
ˆÔ'ô $6ˆÔ Ü#& t×'?Ñ'?Ó#@ˆÔ ä‰Ñð 	
ØØØØØØ!Ø-Ø-Ø#.Ø26Ø#,ñ	
ð ó	
ùó;
s   ÄE(Úreturnc                 ó   — | j                   S ©N)r%   )r*   s    r/   Ú
vocab_sizezCanineTokenizer.vocab_sizex   s   € à×'Ñ'Ð'ó    c                 óž   — t        | j                  «      D �ci c]  }t        |«      |“Œ }}|j                  | j                  «       |S c c}w r2   )Úranger3   ÚchrÚupdateÚadded_tokens_encoder)r*   ÚiÚvocabs      r/   Ú	get_vocabzCanineTokenizer.get_vocab|   sB   € Ü$)¨$¯/©/Ó$:Ö;˜q”�Q“˜‘Ð;ˆÐ;Ø�‰�T×.Ñ.Ô/Øˆùò <s   ˜A
Útextc                 ó   — t        |«      S )z5Tokenize a string (i.e. perform character splitting).)Úlist)r*   r=   s     r/   Ú	_tokenizezCanineTokenizer._tokenize�   s   € ä�D‹zÐr4   Útokenc                 óR   — 	 t        |«      S # t        $ r t        d|› d�«      ‚w xY w)zaConverts a token (i.e. a Unicode character) in an id (i.e. its integer Unicode code point value).zinvalid token: 'ú')ÚordÚ	TypeErrorÚ
ValueError)r*   rA   s     r/   Ú_convert_token_to_idz$CanineTokenizer._convert_token_to_id…   s5   € ð	:Ü�u“:ÐøÜò 	:ÜÐ/°¨w°aÐ8Ó9Ð9ð	:ús   ‚
 �&Úindexc                 ór   — 	 |t         v r	t         |   S t        |«      S # t        $ r t        d|› �«      ‚w xY w)z˜
        Converts a Unicode code point (integer) in a token (str). In case it's a special code point, convert to
        human-readable format.
        zinvalid id: )r   r7   rE   rF   )r*   rH   s     r/   Ú_convert_id_to_tokenz$CanineTokenizer._convert_id_to_tokenŒ   sF   € ð
	5ØÔ*Ñ*Ü)¨%Ñ0Ð0Ü�u“:ÐøÜò 	5Ü˜|¨E¨7Ð3Ó4Ð4ð	5ús   ‚ “
 ž6c                 ó$   — dj                  |«      S )NÚ )Újoin)r*   Útokenss     r/   Úconvert_tokens_to_stringz(CanineTokenizer.convert_tokens_to_string˜   s   € Ø�w‰w�v‹Ðr4   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úmodel_input_namesr7   ÚCLSÚSEPÚPADÚMASKr)   ÚpropertyÚintr3   r<   r    r?   r@   rG   rJ   rO   Ú__classcell__)r.   s   @r/   r
   r
   7   s«   ø„ ñò JÐñ �c“(Ù�c“(Ù�c“(Ù�c“(Ù�c“(Ù�t“9ØØõ/
ðb ð(˜Cò (ó ð(òð
˜cð  d¨3¡ió ð:¨#ð :°#ó :ð
5¨#ð 
5°#ó 
5ör4   r
   N)rS   Útokenization_pythonr   r   Úutilsr   Ú
get_loggerrP   Úloggerr$   rW   rU   rV   ÚBOSrX   ÚRESERVEDr   ÚdictrZ   r    Ú__annotations__r"   r   r
   Ú__all__)r,   r-   s   00r/   ú<module>re      s×   ðò 'ç BÝ ð 
ˆ×	Ñ	˜HÓ	%€ð Ð ð €Ø€Ø€Ø€Ø€Ø€ð ˆØˆØˆØˆ(ØˆØˆlð&Ð �D˜˜c˜‘Nó ð  Vh×UmÑUmÓUo×-pÁ/À)ÈT¨d°I©oÓ-pÐ ˜D  c ™NÓ pôbÐ)ô bðJ Ð
�ùóQ .qs   ÁB