

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


_a:      Any								=     {
    """configuration_openai""": ["""OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """OpenAIGPTConfig"""],
    """tokenization_openai""": ["""OpenAIGPTTokenizer"""],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_a:      Dict								=     ["""OpenAIGPTTokenizerFast"""]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_a:      int								=     [
				    """OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """OpenAIGPTDoubleHeadsModel""",
				    """OpenAIGPTForSequenceClassification""",
				    """OpenAIGPTLMHeadModel""",
				    """OpenAIGPTModel""",
				    """OpenAIGPTPreTrainedModel""",
				    """load_tf_weights_in_openai_gpt""",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_a:      str								=     [
				    """TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """TFOpenAIGPTDoubleHeadsModel""",
				    """TFOpenAIGPTForSequenceClassification""",
				    """TFOpenAIGPTLMHeadModel""",
				    """TFOpenAIGPTMainLayer""",
				    """TFOpenAIGPTModel""",
				    """TFOpenAIGPTPreTrainedModel""",
				]


if TYPE_CHECKING:
				from .configuration_openai import OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP, OpenAIGPTConfig
				from .tokenization_openai import OpenAIGPTTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_openai_fast import OpenAIGPTTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_openai import (
								    OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    OpenAIGPTDoubleHeadsModel,
								    OpenAIGPTForSequenceClassification,
								    OpenAIGPTLMHeadModel,
								    OpenAIGPTModel,
								    OpenAIGPTPreTrainedModel,
								    load_tf_weights_in_openai_gpt,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_openai import (
								    TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFOpenAIGPTDoubleHeadsModel,
								    TFOpenAIGPTForSequenceClassification,
								    TFOpenAIGPTLMHeadModel,
								    TFOpenAIGPTMainLayer,
								    TFOpenAIGPTModel,
								    TFOpenAIGPTPreTrainedModel,
								)

else:
				import sys

				_a:      List[str]								=     _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)


import unittest

from datasets import load_dataset

from transformers import load_tool

from .test_tools_common import ToolTesterMixin

class   __UpperCamelCase      (   unittest.TestCase       ,       lowercase  ):




	def  __A   (						self		:  str							):


		'''simple docstring'''







		UpperCAmelCase_    			=     load_tool("document-question-answering"							)
		self.tool.setup()
		UpperCAmelCase_    			=     load_tool("document-question-answering"						,		remote=lowerCAmelCase							)




	def  __A   (						self		:  Optional[Any]							):


		'''simple docstring'''







		UpperCAmelCase_    			=     load_dataset("hf-internal-testing/example-documents"						,		split="test"							)
		UpperCAmelCase_    			=     dataset[0]["image"]

		UpperCAmelCase_    			=     self.tool(lowerCAmelCase						,		"When is the coffee break?"							)
		self.assertEqual(lowerCAmelCase						,		"11-14 to 11:39 a.m."							)




	def  __A   (						self		:  Any							):


		'''simple docstring'''







		UpperCAmelCase_    			=     load_dataset("hf-internal-testing/example-documents"						,		split="test"							)
		UpperCAmelCase_    			=     dataset[0]["image"]

		UpperCAmelCase_    			=     self.remote_tool(lowerCAmelCase						,		"When is the coffee break?"							)
		self.assertEqual(lowerCAmelCase						,		"11-14 to 11:39 a.m."							)




	def  __A   (						self		:  int							):


		'''simple docstring'''







		UpperCAmelCase_    			=     load_dataset("hf-internal-testing/example-documents"						,		split="test"							)
		UpperCAmelCase_    			=     dataset[0]["image"]

		self.tool(document=lowerCAmelCase						,		question="When is the coffee break?"							)




	def  __A   (						self		:  Any							):


		'''simple docstring'''







		UpperCAmelCase_    			=     load_dataset("hf-internal-testing/example-documents"						,		split="test"							)
		UpperCAmelCase_    			=     dataset[0]["image"]

		UpperCAmelCase_    			=     self.remote_tool(document=lowerCAmelCase						,		question="When is the coffee break?"							)
		self.assertEqual(lowerCAmelCase						,		"11-14 to 11:39 a.m."							)