
"""simple docstring"""







from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding



class     __a			(					lowerCAmelCase_			):
       _lowerCamelCase							:							int       =			['image_processor', 'tokenizer']
       _lowerCamelCase							:							int       =			'EfficientNetImageProcessor'
       _lowerCamelCase							:							Union[str, Any]       =			('BertTokenizer', 'BertTokenizerFast')







       def __init__(					self							,lowerCamelCase_							,lowerCamelCase_		):



          '''simple docstring'''

          super().__init__(lowerCamelCase_							,lowerCamelCase_		)







       def __call__(					self							,lowerCamelCase_=None							,lowerCamelCase_=None							,lowerCamelCase_="max_length"							,lowerCamelCase_=64							,lowerCamelCase_=None							,**lowerCamelCase_		):



          '''simple docstring'''

          if text is None and images is None:
             raise ValueError("You have to specify either text or images. Both cannot be none."		)

          if text is not None:
             _UpperCAmelCase   	=					self.tokenizer(
                 lowerCamelCase_							,padding=lowerCamelCase_							,max_length=lowerCamelCase_							,return_tensors=lowerCamelCase_							,**lowerCamelCase_		)

          if images is not None:
             _UpperCAmelCase   	=					self.image_processor(lowerCamelCase_							,return_tensors=lowerCamelCase_							,**lowerCamelCase_		)

          if text is not None and images is not None:
             _UpperCAmelCase   	=					image_features.pixel_values
             return encoding
          elif text is not None:
             return encoding
          else:
             return BatchEncoding(data=dict(**lowerCamelCase_		)							,tensor_type=lowerCamelCase_		)







       def    _snake_case			(					self							,*lowerCamelCase_							,**lowerCamelCase_		):



          '''simple docstring'''

          return self.tokenizer.batch_decode(*lowerCamelCase_							,**lowerCamelCase_		)







       def    _snake_case			(					self							,*lowerCamelCase_							,**lowerCamelCase_		):



          '''simple docstring'''

          return self.tokenizer.decode(*lowerCamelCase_							,**lowerCamelCase_		)







       @property
       def    _snake_case			(					self		):



          '''simple docstring'''

          _UpperCAmelCase   	=					self.tokenizer.model_input_names
          _UpperCAmelCase   	=					self.image_processor.model_input_names
          return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names		)		)



"""simple docstring"""







import warnings

from .generation import FlaxGenerationMixin






class     __a			(					lowerCAmelCase_			):
       # warning at import time
       warnings.warn(
           'Importing `FlaxGenerationMixin` from `src/transformers/generation_flax_utils.py` is deprecated and will '
           'be removed in Transformers v5. Import as `from transformers import FlaxGenerationMixin` instead.'				,	lowerCAmelCase_				,	)

