


'''simple docstring'''



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





class 							__UpperCamelCase    (		a__ ):
	A_           =   ["image_processor", "tokenizer"]
	A_           =   "AutoImageProcessor"
	A_           =   "AutoTokenizer"




	def __init__(       self						,    __a						,    __a							):

						'''simple docstring'''





						super().__init__(SCREAMING_SNAKE_CASE_						,    SCREAMING_SNAKE_CASE_							)
						__a      :	Optional[Any]    =  self.image_processor




	def __call__(       self						,    __a=None						,    __a=None						,    __a=None						,    **__a							):

						'''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:
											__a      :	Optional[int]    =  self.tokenizer(SCREAMING_SNAKE_CASE_						,    return_tensors=SCREAMING_SNAKE_CASE_						,    **SCREAMING_SNAKE_CASE_							)

						if images is not None:
											__a      :	int    =  self.image_processor(SCREAMING_SNAKE_CASE_						,    return_tensors=SCREAMING_SNAKE_CASE_						,    **SCREAMING_SNAKE_CASE_							)

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




	def 				__UpperCAmelCase							(       self						,    *__a						,    **__a							):

						'''simple docstring'''





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




	def 				__UpperCAmelCase							(       self						,    *__a						,    **__a							):

						'''simple docstring'''





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





	@property
	def 				__UpperCAmelCase							(       self							):

						'''simple docstring'''





						return ["input_ids", "attention_mask", "pixel_values"]







'''simple docstring'''



# tests directory-specific settings - this file is run automatically
# by pytest before any tests are run

import sys
import warnings
from os.path import abspath, dirname, join


# allow having multiple repository checkouts and not needing to remember to rerun
# 'pip install -e .[dev]' when switching between checkouts and running tests.
__lowercase     :						Dict	=     abspath(join(dirname(dirname(dirname(__file__))), 'src'))
sys.path.insert(1, git_repo_path)


# silence FutureWarning warnings in tests since often we can't act on them until
# they become normal warnings - i.e. the tests still need to test the current functionality
warnings.simplefilter(action='ignore', category=FutureWarning)






def   lowerCamelCase							(_SCREAMING_SNAKE_CASE				:       Optional[Any]       ):
					from transformers.testing_utils import pytest_addoption_shared

					pytest_addoption_shared(_SCREAMING_SNAKE_CASE       )






def   lowerCamelCase							(_SCREAMING_SNAKE_CASE				:       List[str]       ):
					from transformers.testing_utils import pytest_terminal_summary_main

					__a      :	Any    =  terminalreporter.config.getoption('--make-reports'       )
					if make_reports:
										pytest_terminal_summary_main(_SCREAMING_SNAKE_CASE						,				id=_SCREAMING_SNAKE_CASE       )



