






import warnings
from contextlib import contextmanager

from ....processing_utils import ProcessorMixin
class     a    ( lowercase__   ):



      """simple docstring"""


      a  : List[str]							       =	'MCTCTFeatureExtractor'
      a  : str							       =	'AutoTokenizer'
      def __init__(      self					:			Tuple		,      __lowercase					:			int		,      __lowercase					:			Dict					)							->      Any:
        super().__init__(__lowercase		,      __lowercase					)
        __UpperCAmelCase							:	Optional[Any]           =  self.feature_extractor
        __UpperCAmelCase							:	Optional[int]           =  False
      def __call__(      self					:			int		,      *__lowercase					:			Tuple		,      **__lowercase					:			Optional[int]					)							->      Union[str, Any]:
        # For backward compatibility
        if self._in_target_context_manager:
          return self.current_processor(*__lowercase		,      **__lowercase					)

        if "raw_speech" in kwargs:
          warnings.warn("""Using `raw_speech` as a keyword argument is deprecated. Use `audio` instead."""					)
          __UpperCAmelCase							:	Dict           =  kwargs.pop("""raw_speech"""					)
        else:
          __UpperCAmelCase							:	Dict           =  kwargs.pop("""audio"""		,      __lowercase					)
        __UpperCAmelCase							:	List[str]           =  kwargs.pop("""sampling_rate"""		,      __lowercase					)
        __UpperCAmelCase							:	Tuple           =  kwargs.pop("""text"""		,      __lowercase					)
        if len(__lowercase					) > 0:
          __UpperCAmelCase							:	Tuple           =  args[0]
          __UpperCAmelCase							:	str           =  args[1:]

        if audio is None and text is None:
          raise ValueError("""You need to specify either an `audio` or `text` input to process."""					)

        if audio is not None:
          __UpperCAmelCase							:	Tuple           =  self.feature_extractor(__lowercase		,      *__lowercase		,      sampling_rate=__lowercase		,      **__lowercase					)
        if text is not None:
          __UpperCAmelCase							:	str           =  self.tokenizer(__lowercase		,      **__lowercase					)

        if text is None:
          return inputs
        elif audio is None:
          return encodings
        else:
          __UpperCAmelCase							:	Dict           =  encodings["""input_ids"""]
          return inputs
      def 	UpperCAmelCase      (      self					:			Optional[Any]		,      *__lowercase					:			List[Any]		,      **__lowercase					:			int					)							->      List[Any]:
        return self.tokenizer.batch_decode(*__lowercase		,      **__lowercase					)
      def 	UpperCAmelCase      (      self					:			Optional[int]		,      *__lowercase					:			Optional[Any]		,      **__lowercase					:			List[str]					)							->      int:
        # For backward compatibility
        if self._in_target_context_manager:
          return self.current_processor.pad(*__lowercase		,      **__lowercase					)

        __UpperCAmelCase							:	Optional[int]           =  kwargs.pop("""input_features"""		,      __lowercase					)
        __UpperCAmelCase							:	Optional[Any]           =  kwargs.pop("""labels"""		,      __lowercase					)
        if len(__lowercase					) > 0:
          __UpperCAmelCase							:	Union[str, Any]           =  args[0]
          __UpperCAmelCase							:	str           =  args[1:]

        if input_features is not None:
          __UpperCAmelCase							:	Any           =  self.feature_extractor.pad(__lowercase		,      *__lowercase		,      **__lowercase					)
        if labels is not None:
          __UpperCAmelCase							:	Union[str, Any]           =  self.tokenizer.pad(__lowercase		,      **__lowercase					)

        if labels is None:
          return input_features
        elif input_features is None:
          return labels
        else:
          __UpperCAmelCase							:	Any           =  labels["""input_ids"""]
          return input_features
      def 	UpperCAmelCase      (      self					:			Any		,      *__lowercase					:			Union[str, Any]		,      **__lowercase					:			Dict					)							->      List[Any]:
        return self.tokenizer.decode(*__lowercase		,      **__lowercase					)




      @contextmanager
      def 	UpperCAmelCase      (      self					:			Optional[Any]					)							->      Tuple:
        warnings.warn(
            """`as_target_processor` is deprecated and will be removed in v5 of Transformers. You can process your """
            """labels by using the argument `text` of the regular `__call__` method (either in the same call as """
            """your audio inputs, or in a separate call."""					)
        __UpperCAmelCase							:	Any           =  True
        __UpperCAmelCase							:	Optional[int]           =  self.tokenizer
        yield
        __UpperCAmelCase							:	List[Any]           =  self.feature_extractor
        __UpperCAmelCase							:	int           =  False










from typing import Mapping

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


a		:       Tuple			     = logging.get_logger(__name__)

a		:       Dict			     = {
    "t5-small": "https://huggingface.co/t5-small/resolve/main/config.json",
    "t5-base": "https://huggingface.co/t5-base/resolve/main/config.json",
    "t5-large": "https://huggingface.co/t5-large/resolve/main/config.json",
    "t5-3b": "https://huggingface.co/t5-3b/resolve/main/config.json",
    "t5-11b": "https://huggingface.co/t5-11b/resolve/main/config.json",
}
class     a    ( lowercase__   ):



      """simple docstring"""


      a  : int							       =	't5'
      a  : Dict							       =	['past_key_values']
      a  : Tuple							       =	{'hidden_size': 'd_model', 'num_attention_heads': 'num_heads', 'num_hidden_layers': 'num_layers'}
      def __init__(      self					:			str		,      __lowercase					:			Optional[int]=32128		,      __lowercase					:			Optional[int]=512		,      __lowercase					:			int=64		,      __lowercase					:			Any=2048		,      __lowercase					:			Tuple=6		,      __lowercase					:			Tuple=None		,      __lowercase					:			int=8		,      __lowercase					:			List[Any]=32		,      __lowercase					:			Dict=128		,      __lowercase					:			Optional[int]=0.1		,      __lowercase					:			int=1e-6		,      __lowercase					:			List[str]=1.0		,      __lowercase					:			List[str]="relu"		,      __lowercase					:			Dict=True		,      __lowercase					:			Optional[Any]=True		,      __lowercase					:			Tuple=0		,      __lowercase					:			List[str]=1		,      **__lowercase					:			Any		,      )							->      str:
        __UpperCAmelCase							:	Tuple           =  vocab_size
        __UpperCAmelCase							:	Optional[int]           =  d_model
        __UpperCAmelCase							:	Union[str, Any]           =  d_kv
        __UpperCAmelCase							:	Union[str, Any]           =  d_ff
        __UpperCAmelCase							:	int           =  num_layers
        __UpperCAmelCase							:	Any           =  (
            num_decoder_layers if num_decoder_layers is not None else self.num_layers
        )  # default = symmetry
        __UpperCAmelCase							:	Dict           =  num_heads
        __UpperCAmelCase							:	List[Any]           =  relative_attention_num_buckets
        __UpperCAmelCase							:	List[str]           =  relative_attention_max_distance
        __UpperCAmelCase							:	Union[str, Any]           =  dropout_rate
        __UpperCAmelCase							:	List[str]           =  layer_norm_epsilon
        __UpperCAmelCase							:	str           =  initializer_factor
        __UpperCAmelCase							:	Dict           =  feed_forward_proj
        __UpperCAmelCase							:	Optional[int]           =  use_cache

        __UpperCAmelCase							:	List[Any]           =  self.feed_forward_proj.split("""-"""					)
        __UpperCAmelCase							:	Tuple           =  act_info[-1]
        __UpperCAmelCase							:	int           =  act_info[0] == """gated"""

        if len(__lowercase					) > 1 and act_info[0] != "gated" or len(__lowercase					) > 2:
          raise ValueError(
              f"""`feed_forward_proj`: {feed_forward_proj} is not a valid activation function of the dense layer."""
              """Please make sure `feed_forward_proj` is of the format `gated-{ACT_FN}` or `{ACT_FN}`, e.g. """
              """'gated-gelu' or 'relu'"""					)

        # for backwards compatibility
        if feed_forward_proj == "gated-gelu":
          __UpperCAmelCase							:	Dict           =  """gelu_new"""

        super().__init__(
            pad_token_id=__lowercase		,      eos_token_id=__lowercase		,      is_encoder_decoder=__lowercase		,      **__lowercase		,      )


class     a    ( lowercase__   ):



      """simple docstring"""


      @property
      def 	UpperCAmelCase      (      self					:			str					)							->      Mapping[str, Mapping[int, str]]:
        __UpperCAmelCase							:	Union[str, Any]           =  {
            """input_ids""": {0: """batch""", 1: """encoder_sequence"""},
            """attention_mask""": {0: """batch""", 1: """encoder_sequence"""},
        }
        if self.use_past:
          __UpperCAmelCase							:	List[Any]           =  """past_encoder_sequence + sequence"""
          __UpperCAmelCase							:	Optional[int]           =  {0: """batch"""}
          __UpperCAmelCase							:	Union[str, Any]           =  {0: """batch""", 1: """past_decoder_sequence + sequence"""}
        else:
          __UpperCAmelCase							:	str           =  {0: """batch""", 1: """decoder_sequence"""}
          __UpperCAmelCase							:	str           =  {0: """batch""", 1: """decoder_sequence"""}

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

        return common_inputs




      @property
      def 	UpperCAmelCase      (      self					:			int					)							->      int:
        return 13


