

import unittest
from pathlib import Path

from transformers import is_vision_available, load_tool
from transformers.testing_utils import get_tests_dir

from .test_tools_common import ToolTesterMixin


if is_vision_available():
						from PIL import Image






class 			__magic_name__					(    unittest.TestCase						,					A_   ):





			def 	__magic_name__					(	self      )     ->				int:




						'''simple docstring'''
						__a						   =load_tool('image-question-answering'      )
						self.tool.setup()
						__a						   =load_tool('image-question-answering'      ,						remote=__snake_case      )





			def 	__magic_name__					(	self      )     ->				Union[str, Any]:




						'''simple docstring'''
						__a						   =Image.open(Path(get_tests_dir('fixtures/tests_samples/COCO'      )      ) / '000000039769.png'      )
						__a						   =self.tool(__snake_case      ,						'How many cats are sleeping on the couch?'      )
						self.assertEqual(__snake_case      ,						'2'      )





			def 	__magic_name__					(	self      )     ->				Union[str, Any]:




						'''simple docstring'''
						__a						   =Image.open(Path(get_tests_dir('fixtures/tests_samples/COCO'      )      ) / '000000039769.png'      )
						__a						   =self.remote_tool(__snake_case      ,						'How many cats are sleeping on the couch?'      )
						self.assertEqual(__snake_case      ,						'2'      )





			def 	__magic_name__					(	self      )     ->				Any:




						'''simple docstring'''
						__a						   =Image.open(Path(get_tests_dir('fixtures/tests_samples/COCO'      )      ) / '000000039769.png'      )
						__a						   =self.tool(image=__snake_case      ,						question='How many cats are sleeping on the couch?'      )
						self.assertEqual(__snake_case      ,						'2'      )





			def 	__magic_name__					(	self      )     ->				str:




						'''simple docstring'''
						__a						   =Image.open(Path(get_tests_dir('fixtures/tests_samples/COCO'      )      ) / '000000039769.png'      )
						__a						   =self.remote_tool(image=__snake_case      ,						question='How many cats are sleeping on the couch?'      )
						self.assertEqual(__snake_case      ,						'2'      )









from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_sentencepiece_available, is_torch_available


_lowerCAmelCase      :    Union[str, Any]						       =    {
    "configuration_ernie_m": ["ERNIE_M_PRETRAINED_CONFIG_ARCHIVE_MAP", "ErnieMConfig"],
}

try:
						if not is_sentencepiece_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						_lowerCAmelCase      :    str						       =    ["ErnieMTokenizer"]

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						_lowerCAmelCase      :    Optional[Any]						       =    [
						    "ERNIE_M_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "ErnieMForMultipleChoice",
						    "ErnieMForQuestionAnswering",
						    "ErnieMForSequenceClassification",
						    "ErnieMForTokenClassification",
						    "ErnieMModel",
						    "ErnieMPreTrainedModel",
						    "ErnieMForInformationExtraction",
						]


if TYPE_CHECKING:
						from .configuration_ernie_m import ERNIE_M_PRETRAINED_CONFIG_ARCHIVE_MAP, ErnieMConfig

						try:
												if not is_sentencepiece_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_ernie_m import ErnieMTokenizer

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_ernie_m import (
												    ERNIE_M_PRETRAINED_MODEL_ARCHIVE_LIST,
												    ErnieMForInformationExtraction,
												    ErnieMForMultipleChoice,
												    ErnieMForQuestionAnswering,
												    ErnieMForSequenceClassification,
												    ErnieMForTokenClassification,
												    ErnieMModel,
												    ErnieMPreTrainedModel,
												)


else:
						import sys

						_lowerCAmelCase      :    Tuple						       =    _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)






