


"""simple docstring"""






from typing import TYPE_CHECKING

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


__snake_case				=				{
    '''configuration_perceiver''': ['''PERCEIVER_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''PerceiverConfig''', '''PerceiverOnnxConfig'''],
    '''tokenization_perceiver''': ['''PerceiverTokenizer'''],
}

try:
   if not is_vision_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   __snake_case				=				['''PerceiverFeatureExtractor''']
   __snake_case				=				['''PerceiverImageProcessor''']

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   __snake_case				=				[
       '''PERCEIVER_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''PerceiverForImageClassificationConvProcessing''',
       '''PerceiverForImageClassificationFourier''',
       '''PerceiverForImageClassificationLearned''',
       '''PerceiverForMaskedLM''',
       '''PerceiverForMultimodalAutoencoding''',
       '''PerceiverForOpticalFlow''',
       '''PerceiverForSequenceClassification''',
       '''PerceiverLayer''',
       '''PerceiverModel''',
       '''PerceiverPreTrainedModel''',
   ]


if TYPE_CHECKING:
   from .configuration_perceiver import PERCEIVER_PRETRAINED_CONFIG_ARCHIVE_MAP, PerceiverConfig, PerceiverOnnxConfig
   from .tokenization_perceiver import PerceiverTokenizer

   try:
      if not is_vision_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .feature_extraction_perceiver import PerceiverFeatureExtractor
      from .image_processing_perceiver import PerceiverImageProcessor

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_perceiver import (
          PERCEIVER_PRETRAINED_MODEL_ARCHIVE_LIST,
          PerceiverForImageClassificationConvProcessing,
          PerceiverForImageClassificationFourier,
          PerceiverForImageClassificationLearned,
          PerceiverForMaskedLM,
          PerceiverForMultimodalAutoencoding,
          PerceiverForOpticalFlow,
          PerceiverForSequenceClassification,
          PerceiverLayer,
          PerceiverModel,
          PerceiverPreTrainedModel,
      )

else:
   import sys

   __snake_case				=				_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







"""simple docstring"""



import unittest

from transformers import load_tool

from .test_tools_common import ToolTesterMixin


__A		:       Dict  				=		'''
Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf originally as a company that developed a chatbot app targeted at teenagers.[2] After open-sourcing the model behind the chatbot, the company pivoted to focus on being a platform for machine learning.

In March 2021, Hugging Face raised $40 million in a Series B funding round.[3]

On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model.[4] In 2022, the workshop concluded with the announcement of BLOOM, a multilingual large language model with 176 billion parameters.[5]
'''





class 					_UpperCAmelCase       ( unittest.TestCase   ,						_A							):




					def   A  (				self     :						List[Any]   )  ->  Dict:
							lowercase_ : Optional[int]							       =   load_tool('''text-question-answering'''   )
							self.tool.setup()
							lowercase_ : Union[str, Any]							       =   load_tool('''text-question-answering'''    ,						remote=A   )




					def   A  (				self     :						Any   )  ->  List[str]:
							lowercase_ : Union[str, Any]							       =   self.tool(A    ,						'''What did Hugging Face do in April 2021?'''   )
							self.assertEqual(A    ,						'''launched the BigScience Research Workshop'''   )




					def   A  (				self     :						str   )  ->  List[str]:
							lowercase_ : int							       =   self.remote_tool(A    ,						'''What did Hugging Face do in April 2021?'''   )
							self.assertEqual(A    ,						'''launched the BigScience Research Workshop'''   )




					def   A  (				self     :						List[Any]   )  ->  int:
							lowercase_ : Optional[Any]							       =   self.tool(text=A    ,						question='''What did Hugging Face do in April 2021?'''   )
							self.assertEqual(A    ,						'''launched the BigScience Research Workshop'''   )






					def   A  (				self     :						List[str]   )  ->  Optional[int]:
							lowercase_ : int							       =   self.remote_tool(text=A    ,						question='''What did Hugging Face do in April 2021?'''   )
							self.assertEqual(A    ,						'''launched the BigScience Research Workshop'''   )



