o
    eiH	                     @   s~   d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZ ddlmZ G dd ded	d
ZeG dd deZdgZdS )z
Processor class for TrOCR.
   )BatchFeature)
ImageInput)ProcessingKwargsProcessorMixinUnpack)PreTokenizedInput	TextInput)auto_docstringc                   @   s   e Zd Zi ZdS )TrOCRProcessorKwargsN)__name__
__module____qualname__	_defaults r   r   h/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/transformers/models/trocr/processing_trocr.pyr
      s    r
   F)totalc                
       sn   e Zd Zd fdd	Ze		ddedB deeB ee B ee B dB de	e
 defdd	Zed
d Z  ZS )TrOCRProcessorNc                    s   t  || d S )N)super__init__)selfimage_processor	tokenizerkwargs	__class__r   r   r      s   zTrOCRProcessor.__init__imagestextr   returnc                 K   s   |d u r|d u rt d| jtfd| jji|}|d ur(| j|fi |d }|d ur7| j|fi |d }|d u r=|S |d u rC|S |d |d< |S )NzBYou need to specify either an `images` or `text` input to process.tokenizer_init_kwargsimages_kwargstext_kwargs	input_idslabels)
ValueError_merge_kwargsr
   r   init_kwargsr   )r   r   r   r   output_kwargsinputs	encodingsr   r   r   __call__"   s&   zTrOCRProcessor.__call__c                 C   s   | j j}|dg S )Nr"   )r   model_input_names)r   image_processor_input_namesr   r   r   r*   ?   s   
z TrOCRProcessor.model_input_names)NN)r   r   r   r   r	   r   r   r   listr   r
   r   r)   propertyr*   __classcell__r   r   r   r   r      s     r   N)__doc__image_processing_utilsr   image_utilsr   processing_utilsr   r   r   tokenization_utils_baser   r   utilsr	   r
   r   __all__r   r   r   r   <module>   s   
'