+
    œ°³j/  ã                   óf   € R t ^RIHtHt ^RIHt ]P                  ! ]4      t ! R R]4      t	R.t
R# )z!Tokenization class for Perceiver.)Ú
AddedTokenÚPreTrainedTokenizer)Úloggingc                   óÜ   a a€ ] tR t^t oRtRR.tRV3R lV 3R llltV3R lR lt]R 4       t	RV3R	 lV 3R
 lllt
RV3R lR lltV3R lR ltR tR tR tRV3R lR lltRtVtV ;t# )ÚPerceiverTokenizeraÿ  
Construct a Perceiver tokenizer. The Perceiver simply uses raw bytes utf-8 encoding.

This tokenizer inherits from [`PreTrainedTokenizer`] which contains most of the main methods. Users should refer to
this superclass for more information regarding those methods.

Args:
    pad_token (`str`, *optional*, defaults to `"[PAD]"`):
        The token used for padding, for example when batching sequences of different lengths.
    bos_token (`str`, *optional*, defaults to `"[BOS]"`):
        The BOS token (reserved in the vocab, but not actually used).
    eos_token (`str`, *optional*, defaults to `"[EOS]"`):
        The end of sequence token (reserved in the vocab, but not actually used).

        <Tip>

        When building a sequence using special tokens, this is not the token that is used for the end of sequence.
        The token used is the `sep_token`.

        </Tip>

    mask_token (`str`, *optional*, defaults to `"[MASK]"`):
        The MASK token, useful for masked language modeling.
    cls_token (`str`, *optional*, defaults to `"[CLS]"`):
        The CLS token (reserved in the vocab, but not actually used).
    sep_token (`str`, *optional*, defaults to `"[SEP]"`):
        The separator token, which is used when building a sequence from two sequences.

Ú	input_idsÚattention_maskc                ó   <€ V ^8„  d   QhRR/# )é   ÚreturnN© )ÚformatÚ__classdict__s   "€Úu/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/perceiver/tokenization_perceiver.pyÚ__annotate__ÚPerceiverTokenizer.__annotate__8   s   ø€ ÷ '
ñ '
ð 
ñ'
ó    c                ót  <€ \        V\        4      '       d   \        VR R R7      MTp\        V\        4      '       d   \        VR R R7      MTp\        V\        4      '       d   \        VR R R7      MTp\        V\        4      '       d   \        VR R R7      MTp\        V\        4      '       d   \        VR R R7      MTp\        V\        4      '       d   \        VR R R7      MTpR
V n        ^ V^V^V^V^V^V/V n        \        V P                  4      V n        \        S	V `   ! RRVRVRVRVRVRVRV/VB  R	# )F)ÚlstripÚrstripÚ	pad_tokenÚ	bos_tokenÚ	eos_tokenÚ
mask_tokenÚ	cls_tokenÚ	sep_tokenÚmodel_max_lengthNé   r   )	Ú
isinstanceÚstrr   Ú_utf_vocab_sizeÚ_added_tokens_decoderÚlenÚ_num_special_tokensÚsuperÚ__init__)
Úselfr   r   r   r   r   r   r   ÚkwargsÚ	__class__s
   &&&&&&&&,€r   r%   ÚPerceiverTokenizer.__init__8   sa  ø€ ô JTÐT]Ô_b×IcÒIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_b×IcÒIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_b×IcÒIc”J˜y°¸uÕEÐirˆ	ÜKUÐV`Ôbe×KfÒKf”Z 
°5ÀÕGÐlvˆ
ÜISÐT]Ô_b×IcÒIc”J˜y°¸uÕEÐirˆ	ÜISÐT]Ô_b×IcÒIc”J˜y°¸uÕEÐirˆ	à#ˆÔð ˆyØˆyØˆyØˆzØˆyØˆyð6
ˆÔ"ô $' t×'AÑ'AÓ#BˆÔ Ü‰Òñ 		
Øð		
àð		
ð  ð		
ð "ð			
ð
  ð		
ð  ð		
ð .ð		
ð ô		
r   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# )r
   r   )Údictr   Úint)r   r   s   "€r   r   r   a   s   ø€ ÷ ñ ™4¡¡S �>ñ r   c                ó¶   € / p\        V P                  4       F"  p\        V4      pW P                  ,           W&   K$  	  VP	                  V P
                  4       V# ©N)Úranger    Úchrr#   ÚupdateÚadded_tokens_encoder)r&   ÚvocabÚiÚtokens   &   r   Ú	get_vocabÚPerceiverTokenizer.get_vocaba   sN   € ØˆÜ�t×+Ñ+Ö,ˆAÜ˜“FˆEØ×7Ñ7Õ7ˆE‹Lñ -ð 	�‰�T×.Ñ.Ô/Øˆr   c                ó   € V P                   # r.   )r    )r&   s   &r   Ú
vocab_sizeÚPerceiverTokenizer.vocab_sizei   s   € à×#Ñ#Ð#r   c          	      óp   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          R,          RS[RS[ S[,          /# )r
   Útoken_ids_0Útoken_ids_1NÚalready_has_special_tokensr   )Úlistr,   Úbool)r   r   s   "€r   r   r   m   sD   ø€ ÷ Uñ UÙ¡�9ðUÙ37¹µ9¸tÕ3CðUÙhlðUá	‰c�ñUr   c                ó
  <€ V'       d   \         SV `  WRR7      # Vf$   ^.^ .\        V4      ,          ,           ^.,           # ^.^ .\        V4      ,          ,           ^.,           ^ .\        V4      ,          ,           ^.,           # )ad  
Retrieve sequence ids from a token list that has no special tokens added. This method is called when adding
special tokens using the tokenizer `prepare_for_model` method.

Args:
    token_ids_0 (`list[int]`):
        List of IDs.
    token_ids_1 (`list[int]`, *optional*):
        Optional second list of IDs for sequence pairs.
    already_has_special_tokens (`bool`, *optional*, defaults to `False`):
        Whether or not the token list is already formatted with special tokens for the model.

Returns:
    `list[int]`: A list of integers in the range [0, 1]: 1 for a special token, 0 for a sequence token.
T)r<   r=   r>   )r$   Úget_special_tokens_maskr"   )r&   r<   r=   r>   r(   s   &&&&€r   rB   Ú*PerceiverTokenizer.get_special_tokens_maskm   s‡   ø€ ÷$ &Ü‘7Ñ2Ø'Ð]að 3ó ð ð
 ÒØ�3˜!˜œs ;Ó/Õ/Õ/°1°#Õ5Ð5Øˆs�q�cœC Ó,Õ,Õ-°°Õ3¸°s¼SÀÓ=MÕ7MÕNÐRSÐQTÕTÐTr   c                ój   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          R,          RS[ S[,          /# )r
   r<   r=   Nr   )r?   r,   )r   r   s   "€r   r   r   ‰   s;   ø€ ÷ oñ oÙ¡�9ðoÙ37¹µ9¸tÕ3Cðoá	‰c�ñor   c                óÔ   € Vf'   V P                   .V,           V P                  .,           # V P                   .V,           V P                  .,           V,           V P                  .,           # )a  
Build model inputs from a sequence or a pair of sequence for sequence classification tasks. A sequence has the
following format:

- single sequence: `[CLS] X [SEP]`
- pair of sequences: `[CLS] A [SEP] B [SEP]`

Args:
    token_ids_0 (`list[int]`):
        List of IDs to which the special tokens will be added.
    token_ids_1 (`list[int]`, *optional*):
        Optional second list of IDs for sequence pairs.

Returns:
    `list[int]`: List of [input IDs](../glossary#input-ids) with the appropriate special tokens.
)Úcls_token_idÚsep_token_id)r&   r<   r=   s   &&&r   Ú build_inputs_with_special_tokensÚ3PerceiverTokenizer.build_inputs_with_special_tokens‰   sb   € ð& ÒØ×%Ñ%Ð&¨Õ4¸×8IÑ8IÐ7JÕJÐJà×%Ñ%Ð&¨Õ4¸×8IÑ8IÐ7JÕJÈ[ÕXÐ\`×\mÑ\mÐ[nÕnÐnr   c                ó6   <€ V ^8„  d   QhRS[ RS[S[ ,          /# )r
   Útextr   )r   r?   )r   r   s   "€r   r   r   ¡   s   ø€ ÷ ñ ™cð ¡d©3¥iñ r   c                ób   € VP                  R4       Uu. uF  p\        V4      NK  	  ppV# u upi )zPTake as input a string and return a list of strings (tokens) for words/sub-wordsúutf-8)Úencoder0   )r&   rK   r4   Útokenss   &&  r   Ú	_tokenizeÚPerceiverTokenizer._tokenize¡   s/   € à"&§+¡+¨gÔ"6Ó7Ñ"6˜Q”#�a–&Ñ"6ˆÐ7Øˆùò 8s   ”,c                óz   € \        V4      ^8w  d   V P                  pV# \        V4      V P                  ,           pV# )z0Converts a token (str) in an id using the vocab.)r"   Úunk_token_idÚordr#   )r&   r5   Útoken_ids   && r   Ú_convert_token_to_idÚ'PerceiverTokenizer._convert_token_to_id¦   s:   € äˆu‹:˜Œ?Ø×(Ñ(ˆHð ˆô ˜5“z D×$<Ñ$<Õ<ˆHØˆr   c                ó<   € \        WP                  ,
          4      pV# )z=Converts an index (integer) in a token (str) using the vocab.)r0   r#   )r&   Úindexr5   s   && r   Ú_convert_id_to_tokenÚ'PerceiverTokenizer._convert_id_to_token®   s   € ä�E×4Ñ4Õ4Ó5ˆØˆr   c                óÒ   € RpV FK  pW0P                   9   d   \        V4      P                  R4      pM\        \	        V4      .4      pW$,          pKM  	  VP                  RRR7      pV# )z:Converts a sequence of tokens (string) in a single string.r   rM   Úreplace)Úerrors)Ú_added_tokens_encoderr   rN   ÚbytesrT   Údecode)r&   rO   Úbstringr5   Ú
tok_stringÚstrings   &&    r   Úconvert_tokens_to_stringÚ+PerceiverTokenizer.convert_tokens_to_string´   sb   € àˆÛˆEØ×2Ñ2Ô2Ü  ›Z×.Ñ.¨wÓ7‘
ä"¤C¨£J <Ó0�
ØÕ!ŠGñ ð —‘ °	�Ó:ˆØˆr   c                óJ   <€ V ^8„  d   QhRS[ RS[ R,          RS[S[ ,          /# )r
   Úsave_directoryÚfilename_prefixNr   )r   Útuple)r   r   s   "€r   r   r   Á   s-   ø€ ÷ ñ ©cð ÁCÈ$ÅJð ÑZ_Ñ`cÕZdñ r   c                ó   € R# )Nr   r   )r&   rh   ri   s   &&&r   Úsave_vocabularyÚ"PerceiverTokenizer.save_vocabularyÁ   s   € Øˆ	r   )r!   r#   r    )z[PAD]z[BOS]z[EOS]z[MASK]z[CLS]z[SEP]i   )NFr.   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úmodel_input_namesr%   r6   Úpropertyr9   rB   rH   rP   rV   rZ   re   rl   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r(   r   s   @@r   r   r      s�   ù‡ € ñð< %Ð&6Ð7Ð÷'
õ '
÷Rð ð ñ$ó ð$÷Uõ U÷8oò o÷0ð ò
òò
÷÷ ò r   r   N)rr   Útokenization_pythonr   r   Úutilsr   Ú
get_loggerrn   Úloggerr   Ú__all__r   r   r   Ú<module>r}      s<   ðñ (ç BÝ ð 
×	Ò	˜HÓ	%€ôkÐ,ô kð\  Ð
 ‚r   