



import unittest

from datasets import load_dataset

from transformers.pipelines import pipeline
from transformers.testing_utils import is_pipeline_test, nested_simplify, require_torch, slow



@is_pipeline_test
@require_torch
class       UpperCAmelCase__(							unittest.TestCase	):

   '''simple docstring'''




   @require_torch
   def 			UpperCAmelCase		(						self  :			Optional[Any])	->				str:




         """simple docstring"""

         lowercase__     =  pipeline(
             task='zero-shot-audio-classification'			,				model='hf-internal-testing/tiny-clap-htsat-unfused')
         lowercase__     =  load_dataset('ashraq/esc50')
         lowercase__     =  dataset['train']['audio'][-1]['array']
         lowercase__     =  audio_classifier(lowerCAmelCase			,				candidate_labels=['Sound of a dog', 'Sound of vaccum cleaner'])
         self.assertEqual(
             nested_simplify(lowerCAmelCase)			,				[{'score': 0.5_01, 'label': 'Sound of a dog'}, {'score': 0.4_99, 'label': 'Sound of vaccum cleaner'}]			,				)


   @unittest.skip('No models are available in TF')
   def 			UpperCAmelCase		(						self  :			Tuple)	->				Optional[int]:




         """simple docstring"""

         pass


   @slow
   @require_torch
   def 			UpperCAmelCase		(						self  :			Any)	->				List[Any]:




         """simple docstring"""

         lowercase__     =  pipeline(
             task='zero-shot-audio-classification'			,				model='laion/clap-htsat-unfused'			,				)
         # This is an audio of a dog
         lowercase__     =  load_dataset('ashraq/esc50')
         lowercase__     =  dataset['train']['audio'][-1]['array']
         lowercase__     =  audio_classifier(lowerCAmelCase			,				candidate_labels=['Sound of a dog', 'Sound of vaccum cleaner'])

         self.assertEqual(
             nested_simplify(lowerCAmelCase)			,				[
                 {'score': 0.9_99, 'label': 'Sound of a dog'},
                 {'score': 0.0_01, 'label': 'Sound of vaccum cleaner'},
             ]			,				)

         lowercase__     =  audio_classifier([audio] * 5			,				candidate_labels=['Sound of a dog', 'Sound of vaccum cleaner'])
         self.assertEqual(
             nested_simplify(lowerCAmelCase)			,				[
                 [
                     {'score': 0.9_99, 'label': 'Sound of a dog'},
                     {'score': 0.0_01, 'label': 'Sound of vaccum cleaner'},
                 ],
             ]
             * 5			,				)
         lowercase__     =  audio_classifier(
             [audio] * 5			,				candidate_labels=['Sound of a dog', 'Sound of vaccum cleaner']			,				batch_size=5)
         self.assertEqual(
             nested_simplify(lowerCAmelCase)			,				[
                 [
                     {'score': 0.9_99, 'label': 'Sound of a dog'},
                     {'score': 0.0_01, 'label': 'Sound of vaccum cleaner'},
                 ],
             ]
             * 5			,				)



   @unittest.skip('No models are available in TF')
   def 			UpperCAmelCase		(						self  :			int)	->				List[Any]:




         """simple docstring"""

         pass





from typing import TYPE_CHECKING

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


a__      :				Optional[int]   	=			{
    "configuration_blenderbot": [
        "BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "BlenderbotConfig",
        "BlenderbotOnnxConfig",
    ],
    "tokenization_blenderbot": ["BlenderbotTokenizer"],
}

try:
       if not is_tokenizers_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       a__      :				Any   	=			["BlenderbotTokenizerFast"]

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       a__      :				Dict   	=			[
           "BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST",
           "BlenderbotForCausalLM",
           "BlenderbotForConditionalGeneration",
           "BlenderbotModel",
           "BlenderbotPreTrainedModel",
       ]


try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       a__      :				List[str]   	=			[
           "TFBlenderbotForConditionalGeneration",
           "TFBlenderbotModel",
           "TFBlenderbotPreTrainedModel",
       ]


try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       a__      :				int   	=			[
           "FlaxBlenderbotForConditionalGeneration",
           "FlaxBlenderbotModel",
           "FlaxBlenderbotPreTrainedModel",
       ]


if TYPE_CHECKING:
       from .configuration_blenderbot import (
           BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP,
           BlenderbotConfig,
           BlenderbotOnnxConfig,
       )
       from .tokenization_blenderbot import BlenderbotTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_blenderbot_fast import BlenderbotTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_blenderbot import (
                  BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST,
                  BlenderbotForCausalLM,
                  BlenderbotForConditionalGeneration,
                  BlenderbotModel,
                  BlenderbotPreTrainedModel,
              )

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_blenderbot import (
                  TFBlenderbotForConditionalGeneration,
                  TFBlenderbotModel,
                  TFBlenderbotPreTrainedModel,
              )

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_blenderbot import (
                  FlaxBlenderbotForConditionalGeneration,
                  FlaxBlenderbotModel,
                  FlaxBlenderbotPreTrainedModel,
              )

else:
       import sys

       a__      :				Optional[Any]   	=			_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)
