




"""simple docstring"""

def   UpperCamelCase__     (		lowercase__  :     int   ):
		if not isinstance(lowercase__       ,     lowercase__   ):
				snake_case		:						Optional[Any]								=				F'''Input value of [number={number}] must be an integer'''
				raise TypeError(lowercase__   )
		if number < 0 or number % 2 == 1:
				return False
		snake_case		:						str								=				int(number**0.5   )
		return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
							import doctest

							doctest.testmod()







"""simple docstring"""

from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding
class 			lowerCamelCase__    (  lowerCamelCase_			):
			a__ :      Tuple								=     ["""image_processor""", """tokenizer"""]
			a__ :      List[Any]								=     """EfficientNetImageProcessor"""
			a__ :      str								=     ("""BertTokenizer""", """BertTokenizerFast""")


			def __init__(     self				, SCREAMING_SNAKE_CASE				, SCREAMING_SNAKE_CASE							):



					"""simple docstring"""







					super().__init__(SCREAMING_SNAKE_CASE				, SCREAMING_SNAKE_CASE							)


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



					"""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:
							snake_case		:						Dict								=				self.tokenizer(
							    SCREAMING_SNAKE_CASE				, padding=SCREAMING_SNAKE_CASE				, max_length=SCREAMING_SNAKE_CASE				, return_tensors=SCREAMING_SNAKE_CASE				, **SCREAMING_SNAKE_CASE							)

					if images is not None:
							snake_case		:						Tuple								=				self.image_processor(SCREAMING_SNAKE_CASE				, return_tensors=SCREAMING_SNAKE_CASE				, **SCREAMING_SNAKE_CASE							)

					if text is not None and images is not None:
							snake_case		:						Dict								=				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 							lowerCamelCase_				(     self				, *SCREAMING_SNAKE_CASE				, **SCREAMING_SNAKE_CASE							):



					"""simple docstring"""







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


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



					"""simple docstring"""







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



			@property
			def 							lowerCamelCase_				(     self							):



					"""simple docstring"""







					snake_case		:						Optional[Any]								=				self.tokenizer.model_input_names
					snake_case		:						Any								=				self.image_processor.model_input_names
					return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names							)							)

