"""simple docstring"""


from collections import OrderedDict
from typing import TYPE_CHECKING, Any, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxSeqaSeqConfigWithPast
from ...utils import logging


if TYPE_CHECKING:
    from ...feature_extraction_utils import FeatureExtractionMixin
    from ...tokenization_utils_base import PreTrainedTokenizerBase
    from ...utils import TensorType

UpperCAmelCase__  		=						logging.get_logger(__name__)

UpperCAmelCase__  		=						{
    'openai/whisper-base': 'https://huggingface.co/openai/whisper-base/resolve/main/config.json',
}

# fmt: off
UpperCAmelCase__  		=						[
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_7, 3_6_6, 4_3_8, 5_3_2, 6_8_5,
    7_0_5, 7_9_6, 9_3_0, 1_0_5_8, 1_2_2_0, 1_2_6_7, 1_2_7_9, 1_3_0_3, 1_3_4_3, 1_3_7_7,
    1_3_9_1, 1_6_3_5, 1_7_8_2, 1_8_7_5, 2_1_6_2, 2_3_6_1, 2_4_8_8, 3_4_6_7, 4_0_0_8, 4_2_1_1,
    4_6_0_0, 4_8_0_8, 5_2_9_9, 5_8_5_5, 6_3_2_9, 7_2_0_3, 9_6_0_9, 9_9_5_9, 1_0_5_6_3, 1_0_7_8_6,
    1_1_4_2_0, 1_1_7_0_9, 1_1_9_0_7, 1_3_1_6_3, 1_3_6_9_7, 1_3_7_0_0, 1_4_8_0_8, 1_5_3_0_6, 1_6_4_1_0, 1_6_7_9_1,
    1_7_9_9_2, 1_9_2_0_3, 1_9_5_1_0, 2_0_7_2_4, 2_2_3_0_5, 2_2_9_3_5, 2_7_0_0_7, 3_0_1_0_9, 3_0_4_2_0, 3_3_4_0_9,
    3_4_9_4_9, 4_0_2_8_3, 4_0_4_9_3, 4_0_5_4_9, 4_7_2_8_2, 4_9_1_4_6, 5_0_2_5_7, 5_0_3_5_9, 5_0_3_6_0, 5_0_3_6_1
]
UpperCAmelCase__  		=						[
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_9, 5_0_3, 5_2_2, 5_4_2, 8_7_3,
    8_9_3, 9_0_2, 9_1_8, 9_2_2, 9_3_1, 1_3_5_0, 1_8_5_3, 1_9_8_2, 2_4_6_0, 2_6_2_7,
    3_2_4_6, 3_2_5_3, 3_2_6_8, 3_5_3_6, 3_8_4_6, 3_9_6_1, 4_1_8_3, 4_6_6_7, 6_5_8_5, 6_6_4_7,
    7_2_7_3, 9_0_6_1, 9_3_8_3, 1_0_4_2_8, 1_0_9_2_9, 1_1_9_3_8, 1_2_0_3_3, 1_2_3_3_1, 1_2_5_6_2, 1_3_7_9_3,
    1_4_1_5_7, 1_4_6_3_5, 1_5_2_6_5, 1_5_6_1_8, 1_6_5_5_3, 1_6_6_0_4, 1_8_3_6_2, 1_8_9_5_6, 2_0_0_7_5, 2_1_6_7_5,
    2_2_5_2_0, 2_6_1_3_0, 2_6_1_6_1, 2_6_4_3_5, 2_8_2_7_9, 2_9_4_6_4, 3_1_6_5_0, 3_2_3_0_2, 3_2_4_7_0, 3_6_8_6_5,
    4_2_8_6_3, 4_7_4_2_5, 4_9_8_7_0, 5_0_2_5_4, 5_0_2_5_8, 5_0_3_6_0, 5_0_3_6_1, 5_0_3_6_2
]


class        a				(		__lowercase   ):
    _snake_case     :  Optional[Any]     							=							'''whisper'''
    _snake_case     :  Optional[Any]     							=							['''past_key_values''']
    _snake_case     :  Union[str, Any]     							=							{'''num_attention_heads''': '''encoder_attention_heads''', '''hidden_size''': '''d_model'''}


    def __init__(					self	:  Optional[int]   ,				__lowerCAmelCase	:  int=5_1865   ,				__lowerCAmelCase	:  str=80   ,				__lowerCAmelCase	:  int=6   ,				__lowerCAmelCase	:  Union[str, Any]=4   ,				__lowerCAmelCase	:  Union[str, Any]=6   ,				__lowerCAmelCase	:  Union[str, Any]=4   ,				__lowerCAmelCase	:  str=1536   ,				__lowerCAmelCase	:  Any=1536   ,				__lowerCAmelCase	:  int=0.0   ,				__lowerCAmelCase	:  Optional[Any]=0.0   ,				__lowerCAmelCase	:  Dict=5_0257   ,				__lowerCAmelCase	:  str=True   ,				__lowerCAmelCase	:  Optional[Any]=True   ,				__lowerCAmelCase	:  List[Any]="gelu"   ,				__lowerCAmelCase	:  Optional[int]=256   ,				__lowerCAmelCase	:  Tuple=0.0   ,				__lowerCAmelCase	:  Union[str, Any]=0.0   ,				__lowerCAmelCase	:  Union[str, Any]=0.0   ,				__lowerCAmelCase	:  str=0.02   ,				__lowerCAmelCase	:  Tuple=False   ,				__lowerCAmelCase	:  Optional[Any]=1500   ,				__lowerCAmelCase	:  Optional[Any]=448   ,				__lowerCAmelCase	:  List[str]=5_0256   ,				__lowerCAmelCase	:  int=5_0256   ,				__lowerCAmelCase	:  Tuple=5_0256   ,				__lowerCAmelCase	:  str=None   ,				__lowerCAmelCase	:  Union[str, Any]=[220, 5_0256]   ,				__lowerCAmelCase	:  Optional[int]=False   ,				__lowerCAmelCase	:  str=256   ,				__lowerCAmelCase	:  str=False   ,				__lowerCAmelCase	:  Tuple=0.05   ,				__lowerCAmelCase	:  Union[str, Any]=10   ,				__lowerCAmelCase	:  Tuple=2   ,				__lowerCAmelCase	:  Optional[int]=0.0   ,				__lowerCAmelCase	:  List[Any]=10   ,				__lowerCAmelCase	:  Any=0   ,				__lowerCAmelCase	:  Optional[int]=7   ,				**__lowerCAmelCase	:  Tuple   ,				):
      _UpperCAmelCase						 =      vocab_size
      _UpperCAmelCase						 =      num_mel_bins
      _UpperCAmelCase						 =      d_model
      _UpperCAmelCase						 =      encoder_layers
      _UpperCAmelCase						 =      encoder_attention_heads
      _UpperCAmelCase						 =      decoder_layers
      _UpperCAmelCase						 =      decoder_attention_heads
      _UpperCAmelCase						 =      decoder_ffn_dim
      _UpperCAmelCase						 =      encoder_ffn_dim
      _UpperCAmelCase						 =      dropout
      _UpperCAmelCase						 =      attention_dropout
      _UpperCAmelCase						 =      activation_dropout
      _UpperCAmelCase						 =      activation_function
      _UpperCAmelCase						 =      init_std
      _UpperCAmelCase						 =      encoder_layerdrop
      _UpperCAmelCase						 =      decoder_layerdrop
      _UpperCAmelCase						 =      use_cache
      _UpperCAmelCase						 =      encoder_layers
      _UpperCAmelCase						 =      scale_embedding  # scale factor will be sqrt(d_model) if True
      _UpperCAmelCase						 =      max_source_positions
      _UpperCAmelCase						 =      max_target_positions

      # Audio Classification-specific parameters. Feel free to ignore for other classes.
      _UpperCAmelCase						 =      classifier_proj_size
      _UpperCAmelCase						 =      use_weighted_layer_sum

      # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
      _UpperCAmelCase						 =      apply_spec_augment
      _UpperCAmelCase						 =      mask_time_prob
      _UpperCAmelCase						 =      mask_time_length
      _UpperCAmelCase						 =      mask_time_min_masks
      _UpperCAmelCase						 =      mask_feature_prob
      _UpperCAmelCase						 =      mask_feature_length
      _UpperCAmelCase						 =      mask_feature_min_masks

      _UpperCAmelCase						 =      median_filter_width

      super().__init__(
          pad_token_id=__a   ,				bos_token_id=__a   ,				eos_token_id=__a   ,				is_encoder_decoder=__a   ,				decoder_start_token_id=__a   ,				suppress_tokens=__a   ,				begin_suppress_tokens=__a   ,				**__a   ,				)



class        a				(		__lowercase   ):


    @property
    def      lowerCAmelCase_  (					self	:  Tuple					):
      _UpperCAmelCase						 =      OrderedDict(
          [
              ("""input_features""", {0: """batch""", 1: """feature_size""", 2: """encoder_sequence"""}),
          ]					)
      if self.use_past:
        _UpperCAmelCase						 =      {0: """batch"""}
      else:
        _UpperCAmelCase						 =      {0: """batch""", 1: """decoder_sequence"""}

      if self.use_past:
        self.fill_with_past_key_values_(__a   ,				direction="""inputs"""					)

      return common_inputs


    def      lowerCAmelCase_  (					self	:  int   ,				__lowerCAmelCase	:  Union["PreTrainedTokenizerBase", "FeatureExtractionMixin"]   ,				__lowerCAmelCase	:  int = -1   ,				__lowerCAmelCase	:  int = -1   ,				__lowerCAmelCase	:  bool = False   ,				__lowerCAmelCase	:  Optional["TensorType"] = None   ,				__lowerCAmelCase	:  int = 2_2050   ,				__lowerCAmelCase	:  float = 5.0   ,				__lowerCAmelCase	:  int = 220   ,				):
      _UpperCAmelCase						 =      OrderedDict()
      _UpperCAmelCase						 =      OnnxConfig.generate_dummy_inputs(
          self   ,				preprocessor=preprocessor.feature_extractor   ,				batch_size=__a   ,				framework=__a   ,				sampling_rate=__a   ,				time_duration=__a   ,				frequency=__a   ,				)
      _UpperCAmelCase						 =      encoder_inputs["""input_features"""].shape[2]
      _UpperCAmelCase						 =      encoder_sequence_length // 2 if self.use_past else seq_length

      _UpperCAmelCase						 =      super().generate_dummy_inputs(
          preprocessor.tokenizer   ,				__a   ,				__a   ,				__a   ,				__a					)

      _UpperCAmelCase						 =      encoder_inputs.pop("""input_features"""					)
      _UpperCAmelCase						 =      decoder_inputs.pop("""decoder_input_ids"""					)

      if "past_key_values" in decoder_inputs:
        _UpperCAmelCase						 =      decoder_inputs.pop("""past_key_values"""					)

      return dummy_inputs


    @property
    def      lowerCAmelCase_  (					self	:  List[str]					):
      return 1e-3

"""simple docstring"""


import warnings

from ...utils import logging
from .image_processing_chinese_clip import ChineseCLIPImageProcessor


UpperCAmelCase__  		=						logging.get_logger(__name__)


class        a				(		lowerCAmelCase_   ):


    def __init__(					self	:  int   ,				*__lowerCAmelCase	:  List[str]   ,				**__lowerCAmelCase	:  List[str]					):
      warnings.warn(
          """The class ChineseCLIPFeatureExtractor is deprecated and will be removed in version 5 of Transformers."""
          """ Please use ChineseCLIPImageProcessor instead."""   ,				__lowerCAmelCase   ,				)
      super().__init__(*__lowerCAmelCase   ,				**__lowerCAmelCase					)
