
    gK                     n    d Z ddlmZmZ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	S )
z
Processor class for Nougat.
    )DictList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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2dedede	e
ef         dddededededeeef         d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         f         deeeeee         ee         f                  ded eee
ef         d!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d0 Zd1 Z xZS )3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      h/var/www/html/ai-engine/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)   r7   r*   r,   )r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   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.batch_decode`]. Please refer
        to the docstring of this method for more information.
        )r   batch_decoder   argskwargss      r   rI   zNougatProcessor.batch_decode   s    
 +t~*D;F;;;r   c                 &     | j         j        |i |S )z
        This method forwards all its arguments to NougatTokenizer's [`~PreTrainedTokenizer.decode`]. Please refer to
        the docstring of this method for more information.
        )r   decoderJ   s      r   rN   zNougatProcessor.decode   s    
 %t~$d5f555r   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_generationrJ   s      r   rP   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   boolr   strintr   floatr   r   r   r   r   r	   r   rG   rI   rN   rP   __classcell__)r   s   @r   r   r      s`         $[1J0%O6 6 6 6 6 ##)-!#',0!:>9=4DFJmqei #'5:;?$($),0;?0404*/+0',#KZ Z 	Z
 Z 38nZ 'Z Z !Z Z Z c5j)Z 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& 9&7i$O`Jaab'Z( #).YFWAXXY
)Z. !/Z0 tS/121Z2 $%7783Z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< < <6 6 6G G G G G G Gr   r   N)rT   typingr   r   r   r   $transformers.tokenization_utils_baser   r   r	   processing_utilsr   utilsr   r   r    r   r   <module>rb      s     / . . . . . . . . . . . a a a a a a a a a a . . . . . . 0 0 0 0 0 0 0 0EG EG EG EG EGn EG EG EG EG EGr   