
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 			lowercase_		(      unittest.TestCase       ):


       @require_torch
       def 	_snake_case				(    self				)						->    Union[str, Any]:
              SCREAMING_SNAKE_CASE_							:				List[str]		=pipeline(
                  task='''zero-shot-audio-classification'''						,       model='''hf-internal-testing/tiny-clap-htsat-unfused'''				)
              SCREAMING_SNAKE_CASE_							:				str		=load_dataset('''ashraq/esc50'''				)
              SCREAMING_SNAKE_CASE_							:				str		=dataset['train']['audio'][-1]['array']
              SCREAMING_SNAKE_CASE_							:				Union[str, Any]		=audio_classifier(_UpperCAmelCase						,       candidate_labels=['''Sound of a dog''', '''Sound of vaccum cleaner''']				)
              self.assertEqual(
                  nested_simplify(_UpperCAmelCase				)						,       [{'''score''': 0.501, '''label''': '''Sound of a dog'''}, {'''score''': 0.499, '''label''': '''Sound of vaccum cleaner'''}]						,       )


       @unittest.skip('''No models are available in TF'''				)
       def 	_snake_case				(    self				)						->    List[str]:
              pass


       @slow
       @require_torch
       def 	_snake_case				(    self				)						->    int:
              SCREAMING_SNAKE_CASE_							:				List[str]		=pipeline(
                  task='''zero-shot-audio-classification'''						,       model='''laion/clap-htsat-unfused'''						,       )
              # This is an audio of a dog
              SCREAMING_SNAKE_CASE_							:				Any		=load_dataset('''ashraq/esc50'''				)
              SCREAMING_SNAKE_CASE_							:				Dict		=dataset['train']['audio'][-1]['array']
              SCREAMING_SNAKE_CASE_							:				Tuple		=audio_classifier(_UpperCAmelCase						,       candidate_labels=['''Sound of a dog''', '''Sound of vaccum cleaner''']				)

              self.assertEqual(
                  nested_simplify(_UpperCAmelCase				)						,       [
                      {'''score''': 0.999, '''label''': '''Sound of a dog'''},
                      {'''score''': 0.001, '''label''': '''Sound of vaccum cleaner'''},
                  ]						,       )

              SCREAMING_SNAKE_CASE_							:				Tuple		=audio_classifier([audio] * 5						,       candidate_labels=['''Sound of a dog''', '''Sound of vaccum cleaner''']				)
              self.assertEqual(
                  nested_simplify(_UpperCAmelCase				)						,       [
                      [
                          {'''score''': 0.999, '''label''': '''Sound of a dog'''},
                          {'''score''': 0.001, '''label''': '''Sound of vaccum cleaner'''},
                      ],
                  ]
                  * 5						,       )
              SCREAMING_SNAKE_CASE_							:				List[str]		=audio_classifier(
                  [audio] * 5						,       candidate_labels=['''Sound of a dog''', '''Sound of vaccum cleaner''']						,       batch_size=5				)
              self.assertEqual(
                  nested_simplify(_UpperCAmelCase				)						,       [
                      [
                          {'''score''': 0.999, '''label''': '''Sound of a dog'''},
                          {'''score''': 0.001, '''label''': '''Sound of vaccum cleaner'''},
                      ],
                  ]
                  * 5						,       )





       @unittest.skip('''No models are available in TF'''				)
       def 	_snake_case				(    self				)						->    Dict:
              pass







'''simple docstring'''




from ...configuration_utils import PretrainedConfig


lowercase__       : Any         =       {
    '''google/tapas-base-finetuned-sqa''': (
        '''https://huggingface.co/google/tapas-base-finetuned-sqa/resolve/main/config.json'''
    ),
    '''google/tapas-base-finetuned-wtq''': (
        '''https://huggingface.co/google/tapas-base-finetuned-wtq/resolve/main/config.json'''
    ),
    '''google/tapas-base-finetuned-wikisql-supervised''': (
        '''https://huggingface.co/google/tapas-base-finetuned-wikisql-supervised/resolve/main/config.json'''
    ),
    '''google/tapas-base-finetuned-tabfact''': (
        '''https://huggingface.co/google/tapas-base-finetuned-tabfact/resolve/main/config.json'''
    ),
}


class 					SCREAMING_SNAKE_CASE       (a__				):
     lowerCAmelCase						     =			'''tapas'''


     def __init__(		self		,      _UpperCAmelCase=3_0522		,      _UpperCAmelCase=768		,      _UpperCAmelCase=12		,      _UpperCAmelCase=12		,      _UpperCAmelCase=3072		,      _UpperCAmelCase="gelu"		,      _UpperCAmelCase=0.1		,      _UpperCAmelCase=0.1		,      _UpperCAmelCase=1024		,      _UpperCAmelCase=[3, 256, 256, 2, 256, 256, 10]		,      _UpperCAmelCase=0.02		,      _UpperCAmelCase=1e-1_2		,      _UpperCAmelCase=0		,      _UpperCAmelCase=10.0		,      _UpperCAmelCase=0		,      _UpperCAmelCase=1.0		,      _UpperCAmelCase=None		,      _UpperCAmelCase=1.0		,      _UpperCAmelCase=False		,      _UpperCAmelCase=None		,      _UpperCAmelCase=1.0		,      _UpperCAmelCase=1.0		,      _UpperCAmelCase=False		,      _UpperCAmelCase=False		,      _UpperCAmelCase="ratio"		,      _UpperCAmelCase=None		,      _UpperCAmelCase=None		,      _UpperCAmelCase=64		,      _UpperCAmelCase=32		,      _UpperCAmelCase=False		,      _UpperCAmelCase=True		,      _UpperCAmelCase=False		,      _UpperCAmelCase=False		,      _UpperCAmelCase=True		,      _UpperCAmelCase=False		,      _UpperCAmelCase=None		,      _UpperCAmelCase=None		,      **_UpperCAmelCase		,      ):

          '''simple docstring'''






          super().__init__(pad_token_id=_UpperCAmelCase		,      **_UpperCAmelCase)

          # BERT hyperparameters (with updated max_position_embeddings and type_vocab_sizes)
          __A		:					Dict						=			vocab_size
          __A		:					Tuple						=			hidden_size
          __A		:					Any						=			num_hidden_layers
          __A		:					int						=			num_attention_heads
          __A		:					Tuple						=			hidden_act
          __A		:					Tuple						=			intermediate_size
          __A		:					List[Any]						=			hidden_dropout_prob
          __A		:					int						=			attention_probs_dropout_prob
          __A		:					List[str]						=			max_position_embeddings
          __A		:					Optional[int]						=			type_vocab_sizes
          __A		:					str						=			initializer_range
          __A		:					List[str]						=			layer_norm_eps

          # Fine-tuning task hyperparameters
          __A		:					List[str]						=			positive_label_weight
          __A		:					List[Any]						=			num_aggregation_labels
          __A		:					Optional[Any]						=			aggregation_loss_weight
          __A		:					Tuple						=			use_answer_as_supervision
          __A		:					List[str]						=			answer_loss_importance
          __A		:					Any						=			use_normalized_answer_loss
          __A		:					Any						=			huber_loss_delta
          __A		:					Union[str, Any]						=			temperature
          __A		:					Tuple						=			aggregation_temperature
          __A		:					Optional[Any]						=			use_gumbel_for_cells
          __A		:					List[str]						=			use_gumbel_for_aggregation
          __A		:					Tuple						=			average_approximation_function
          __A		:					List[str]						=			cell_selection_preference
          __A		:					Dict						=			answer_loss_cutoff
          __A		:					Union[str, Any]						=			max_num_rows
          __A		:					Optional[Any]						=			max_num_columns
          __A		:					int						=			average_logits_per_cell
          __A		:					Optional[Any]						=			select_one_column
          __A		:					int						=			allow_empty_column_selection
          __A		:					List[Any]						=			init_cell_selection_weights_to_zero
          __A		:					int						=			reset_position_index_per_cell
          __A		:					Union[str, Any]						=			disable_per_token_loss

          # Aggregation hyperparameters
          __A		:					Optional[Any]						=			aggregation_labels
          __A		:					List[str]						=			no_aggregation_label_index

          if isinstance(self.aggregation_labels		,      _UpperCAmelCase):
               __A		:					Optional[Any]						=			{int(_UpperCAmelCase): v for k, v in aggregation_labels.items()}