
     `io                     l    d Z ddlmZmZ ddlmZmZmZ ddlm	Z	 ddl
mZmZ  G d de	          ZdgZd	S )
z
Processor class for Nougat.
    )OptionalUnion)PreTokenizedInput	TextInputTruncationStrategy   )ProcessorMixin)PaddingStrategy
TensorTypec            A       .    e Zd ZdZddgZdZdZ fdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0dee	         dee	         dee
eef                  dddee	         dee	         dee	         dee	         deeeef                  dee	         deeeee         f                  deeeee         f                  ded         deeedf                  deeeeee         ee         f                  deeeeee         ee         f                  deeeeee         ee         f                  de	d ee	eef         d!eee	eef                  d"ee         d#ed$e	d%ee         d&eeeef                  d'ee	         d(ee	         d)e	d*e	d+e	d,e	d-e	f@d.Zd/ Z xZS )1NougatProcessoran  
    Constructs a Nougat processor which wraps a Nougat image processor and a Nougat tokenizer into a single processor.

    [`NougatProcessor`] offers all the functionalities of [`NougatImageProcessor`] and [`NougatTokenizerFast`]. See the
    [`~NougatProcessor.__call__`] and [`~NougatProcessor.decode`] for more information.

    Args:
        image_processor ([`NougatImageProcessor`]):
            An instance of [`NougatImageProcessor`]. The image processor is a required input.
        tokenizer ([`NougatTokenizerFast`]):
            An instance of [`NougatTokenizerFast`]. The tokenizer is a required input.
    image_processor	tokenizerAutoImageProcessorAutoTokenizerc                 d    t                                          ||           | j        | _        d S )N)super__init__r   current_processor)selfr   r   	__class__s      /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/transformers/models/nougat/processing_nougat.pyr   zNougatProcessor.__init__-   s.    )444!%!5    Nchannels_firstTFr   do_crop_margin	do_resizesizeresamplePILImageResamplingdo_thumbnaildo_align_long_axisdo_pad
do_rescalerescale_factordo_normalize
image_mean	image_stddata_formatChannelDimensioninput_data_format	text_pairtext_targettext_pair_targetadd_special_tokenspadding
truncation
max_lengthstrideis_split_into_wordspad_to_multiple_ofreturn_tensorsreturn_token_type_idsreturn_attention_maskreturn_overflowing_tokensreturn_special_tokens_maskreturn_offsets_mappingreturn_lengthverbosec#                     ||t          d          |%|                     ||||||||	|
|||||||          }#|(|                     ||||||||||||||||| |!|"          }$||#S ||$S |$d         |#d<   |#S )NzBYou need to specify either an `images` or `text` input to process.)r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r5   r(   r*   )r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   	input_idslabels)
ValueErrorr   r   )%r   imagestextr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   inputs	encodingss%                                        r   __call__zNougatProcessor.__call__1   s    N >dlabbb))-#!)#5%-)%#-'"3! *  F$ #'!1#5%%$7#5-&;&;*C+E'=+' '  I, <M^(5F8Mr   c                 &     | j         j        |i |S )z
        This method forwards all its arguments to NougatTokenizer's [`~PreTrainedTokenizer.post_process_generation`].
        Please refer to the docstring of this method for more information.
        )r   post_process_generation)r   argskwargss      r   rG   z'NougatProcessor.post_process_generation   s    
 6t~5tFvFFFr   )"NNNNNNNNNNNNNNr   NNNNTFNNr   FNNNNFFFFT)__name__
__module____qualname____doc__
attributesimage_processor_classtokenizer_classr   r   booldictstrintr   floatlistr   r   r
   r   r   rE   rG   __classcell__)r   s   @r   r   r      ss         $[1J0%O6 6 6 6 6 )-$()-)-'+-1!%%)6:'+:>9=4DFJmqos #'5:EI$($),0;?0404*/+0',#KZ Z !	Z
 D>Z tCH~&Z 'Z tnZ %TNZ Z TNZ !sEz!23Z tnZ U5$u+#567Z E%e"456Z  01!Z" $E#/A*A$BC#Z$ E)->YQUVgQh"hij%Z& eI/@$y/SWXiSj$jkl'Z( #).YFWAXXY
)Z. !/Z0 tS/121Z2 U4.@#@AB3Z4 SM5Z6 7Z8 "9Z: %SM;Z< !sJ!78=Z>  (~?Z@  (~AZB $(CZD %)EZF !%GZH IZJ KZ Z Z ZxG G G G G G Gr   r   N)rM   typingr   r   $transformers.tokenization_utils_baser   r   r   processing_utilsr	   utilsr
   r   r   __all__ r   r   <module>r^      s     # " " " " " " " a a a a a a a a a a . . . . . . 0 0 0 0 0 0 0 0wG wG wG wG wGn wG wG wGt 
r   