
    g0                     ~    d Z ddlmZmZ ddlmZmZmZ ddlm	Z	m
Z
mZ  G d ded	          Z G d
 de          ZdS )z"
Processor class for BridgeTower.
    )ListUnion   )ProcessingKwargsProcessorMixinUnpack)BatchEncodingPreTokenizedInput	TextInputc            	       0    e Zd ZdddddddddddddZdS )BridgeTowerProcessorKwargsTFr   )add_special_tokenspaddingstridereturn_overflowing_tokensreturn_special_tokens_maskreturn_offsets_mappingreturn_lengthverbose)do_normalizedo_center_crop)text_kwargsimages_kwargsN)__name__
__module____qualname__	_defaults     r/var/www/html/ai-engine/env/lib/python3.11/site-packages/transformers/models/bridgetower/processing_bridgetower.pyr   r      sP         #').*/&+"	
 	
 !"
 
 IIIr   r   F)totalc                        e Zd ZdZddgZdZdZ fdZ	 	 	 ddee	e
ee	         ee
         f         d	ee         d
efdZd Zd Zed             Z xZS )BridgeTowerProcessora  
    Constructs a BridgeTower processor which wraps a Roberta tokenizer and BridgeTower image processor into a single
    processor.

    [`BridgeTowerProcessor`] offers all the functionalities of [`BridgeTowerImageProcessor`] and
    [`RobertaTokenizerFast`]. See the docstring of [`~BridgeTowerProcessor.__call__`] and
    [`~BridgeTowerProcessor.decode`] for more information.

    Args:
        image_processor (`BridgeTowerImageProcessor`):
            An instance of [`BridgeTowerImageProcessor`]. The image processor is a required input.
        tokenizer (`RobertaTokenizerFast`):
            An instance of ['RobertaTokenizerFast`]. The tokenizer is a required input.
    image_processor	tokenizerBridgeTowerImageProcessor)RobertaTokenizerRobertaTokenizerFastc                 L    t                                          ||           d S N)super__init__)selfr$   r%   	__class__s      r    r,   zBridgeTowerProcessor.__init__@   s#    )44444r   Ntextkwargsreturnc                      | j         t          fd| j        j        i|} | j        dd|i|d         } | j        |fi |d         }|                    |           |S )a  
        This method uses [`BridgeTowerImageProcessor.__call__`] method to prepare image(s) for the model, and
        [`RobertaTokenizerFast.__call__`] to prepare text for the model.

        Please refer to the docstring of the above two methods for more information.
        tokenizer_init_kwargsr/   r   r   r   )_merge_kwargsr   r%   init_kwargsr$   update)	r-   imagesr/   audiovideosr0   output_kwargsencodingencoding_image_processors	            r    __call__zBridgeTowerProcessor.__call__C   s     +*&
 
"&."<
 
 

 "4>LLtL}]/KLL#74#7#a#a-P_B`#a#a 0111r   c                 &     | j         j        |i |S )z
        This method forwards all its arguments to RobertaTokenizerFast's [`~PreTrainedTokenizer.batch_decode`]. Please
        refer to the docstring of this method for more information.
        )r%   batch_decoder-   argsr0   s      r    r?   z!BridgeTowerProcessor.batch_decode]   s    
 +t~*D;F;;;r   c                 &     | j         j        |i |S )z
        This method forwards all its arguments to RobertaTokenizerFast's [`~PreTrainedTokenizer.decode`]. Please refer
        to the docstring of this method for more information.
        )r%   decoder@   s      r    rC   zBridgeTowerProcessor.decoded   s    
 %t~$d5f555r   c                     | j         j        }| j        j        }t          t                              ||z                       S r*   )r%   model_input_namesr$   listdictfromkeys)r-   tokenizer_input_namesimage_processor_input_namess      r    rE   z&BridgeTowerProcessor.model_input_namesk   s:     $ @&*&:&L#DMM"7:U"UVVWWWr   )NNN)r   r   r   __doc__
attributesimage_processor_classtokenizer_classr,   r   r   r
   r   r   r   r	   r=   r?   rC   propertyrE   __classcell__)r.   s   @r    r#   r#   ,   s          $[1J7BO5 5 5 5 5 _c  I0$y/4HYCZZ[ 34 
   4< < <6 6 6 X X XX X X X Xr   r#   N)rK   typingr   r   processing_utilsr   r   r   tokenization_utils_baser	   r
   r   r   r#   r   r   r    <module>rT      s             H H H H H H H H H H R R R R R R R R R R    !1    &CX CX CX CX CX> CX CX CX CX CXr   