



"""simple docstring"""






from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCAmelCase__              =							logging.get_logger(__name__)

lowerCAmelCase__              =							{
    '''facebook/s2t-small-librispeech-asr''': (
        '''https://huggingface.co/facebook/s2t-small-librispeech-asr/resolve/main/config.json'''
    ),
    # See all Speech2Text models at https://huggingface.co/models?filter=speech_to_text
}






class 			__snake_case			(      _lowercase):
  snake_case__							:  Optional[int]         =		"speech_to_text"
  snake_case__							:  Any         =		["past_key_values"]
  snake_case__							:  Union[str, Any]         =		{"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}




  def __init__(					self	:		List[Any]		,   __lowerCAmelCase	:		List[str]=1_0_0_0_0		,   __lowerCAmelCase	:		Optional[Any]=1_2		,   __lowerCAmelCase	:		Dict=2_0_4_8		,   __lowerCAmelCase	:		int=4		,   __lowerCAmelCase	:		Optional[Any]=6		,   __lowerCAmelCase	:		Dict=2_0_4_8		,   __lowerCAmelCase	:		Optional[Any]=4		,   __lowerCAmelCase	:		Optional[Any]=0.0		,   __lowerCAmelCase	:		Optional[Any]=0.0		,   __lowerCAmelCase	:		Optional[Any]=True		,   __lowerCAmelCase	:		str=True		,   __lowerCAmelCase	:		Union[str, Any]="relu"		,   __lowerCAmelCase	:		Tuple=2_5_6		,   __lowerCAmelCase	:		Optional[Any]=0.1		,   __lowerCAmelCase	:		Any=0.0		,   __lowerCAmelCase	:		Optional[Any]=0.0		,   __lowerCAmelCase	:		int=0.02		,   __lowerCAmelCase	:		Any=2		,   __lowerCAmelCase	:		Optional[int]=True		,   __lowerCAmelCase	:		int=1		,   __lowerCAmelCase	:		str=0		,   __lowerCAmelCase	:		Tuple=2		,   __lowerCAmelCase	:		str=6_0_0_0		,   __lowerCAmelCase	:		Any=1_0_2_4		,   __lowerCAmelCase	:		List[Any]=2		,   __lowerCAmelCase	:		Union[str, Any]=(5, 5)		,   __lowerCAmelCase	:		Optional[int]=1_0_2_4		,   __lowerCAmelCase	:		List[Any]=8_0		,   __lowerCAmelCase	:		int=1		,   **__lowerCAmelCase	:		List[str]		,   ):






         """simple docstring"""






         _lowerCamelCase		:							Optional[Any]            =					vocab_size
         _lowerCamelCase		:							List[str]            =					d_model
         _lowerCamelCase		:							Any            =					encoder_ffn_dim
         _lowerCamelCase		:							str            =					encoder_layers
         _lowerCamelCase		:							List[str]            =					encoder_attention_heads
         _lowerCamelCase		:							int            =					decoder_ffn_dim
         _lowerCamelCase		:							int            =					decoder_layers
         _lowerCamelCase		:							Optional[Any]            =					decoder_attention_heads
         _lowerCamelCase		:							Union[str, Any]            =					dropout
         _lowerCamelCase		:							List[str]            =					attention_dropout
         _lowerCamelCase		:							List[Any]            =					activation_dropout
         _lowerCamelCase		:							Optional[Any]            =					activation_function
         _lowerCamelCase		:							Optional[Any]            =					init_std
         _lowerCamelCase		:							str            =					encoder_layerdrop
         _lowerCamelCase		:							Union[str, Any]            =					decoder_layerdrop
         _lowerCamelCase		:							Any            =					use_cache
         _lowerCamelCase		:							Union[str, Any]            =					encoder_layers
         _lowerCamelCase		:							Dict            =					scale_embedding  # scale factor will be sqrt(d_model) if True
         _lowerCamelCase		:							int            =					max_source_positions
         _lowerCamelCase		:							int            =					max_target_positions
         _lowerCamelCase		:							Dict            =					num_conv_layers
         _lowerCamelCase		:							Union[str, Any]            =					list(__lowerCAmelCase						)
         _lowerCamelCase		:							str            =					conv_channels
         _lowerCamelCase		:							str            =					input_feat_per_channel
         _lowerCamelCase		:							Tuple            =					input_channels

         if len(self.conv_kernel_sizes						) != self.num_conv_layers:
                raise ValueError(
                    '''Configuration for convolutional module is incorrect. '''
                    '''It is required that `len(config.conv_kernel_sizes)` == `config.num_conv_layers` '''
                    f'''but is `len(config.conv_kernel_sizes) = {len(self.conv_kernel_sizes						)}`, '''
                    f'''`config.num_conv_layers = {self.num_conv_layers}`.'''						)

         super().__init__(
             pad_token_id=__lowerCAmelCase		,   bos_token_id=__lowerCAmelCase		,   eos_token_id=__lowerCAmelCase		,   is_encoder_decoder=__lowerCAmelCase		,   decoder_start_token_id=__lowerCAmelCase		,   **__lowerCAmelCase		,   )









"""simple docstring"""


import argparse
import os
import re

import packaging.version


lowerCamelCase__						= "examples/"
lowerCamelCase__						= {
    "examples": (re.compile(R"^check_min_version\(\"[^\"]+\"\)\s*$", re.MULTILINE), "check_min_version(\"VERSION\")\n"),
    "init": (re.compile(R"^__version__\s+=\s+\"([^\"]+)\"\s*$", re.MULTILINE), "__version__ = \"VERSION\"\n"),
    "setup": (re.compile(R"^(\s*)version\s*=\s*\"[^\"]+\",", re.MULTILINE), R"\1version=\"VERSION\","),
    "doc": (re.compile(R"^(\s*)release\s*=\s*\"[^\"]+\"$", re.MULTILINE), "release = \"VERSION\"\n"),
}
lowerCamelCase__						= {
    "init": "src/transformers/__init__.py",
    "setup": "setup.py",
}
lowerCamelCase__						= "README.md"




def        lowercase__     (       lowercase_		,lowercase_		,lowercase_      )       ->		Dict:




      """simple docstring"""

      with open(lowercase_		,"r"		,encoding="utf-8"		,newline="\n"      ) as f:
            _UpperCamelCase   :						Any    =							f.read()
      _UpperCamelCase,	_UpperCamelCase   :						str    =							REPLACE_PATTERNS[pattern]
      _UpperCamelCase   :						List[str]    =							replace.replace("VERSION"		,lowercase_      )
      _UpperCamelCase   :						Any    =							re_pattern.sub(lowercase_		,lowercase_      )
      with open(lowercase_		,"w"		,encoding="utf-8"		,newline="\n"      ) as f:
            f.write(lowercase_      )




def        lowercase__     (       lowercase_      )       ->		str:




      """simple docstring"""

      for folder, directories, fnames in os.walk(lowercase_      ):
            # Removing some of the folders with non-actively maintained examples from the walk
            if "research_projects" in directories:
                  directories.remove("research_projects"      )
            if "legacy" in directories:
                  directories.remove("legacy"      )
            for fname in fnames:
                  if fname.endswith(".py"      ):
                        update_version_in_file(os.path.join(lowercase_		,lowercase_      )		,lowercase_		,pattern="examples"      )




def        lowercase__     (       lowercase_		,lowercase_=False      )       ->		Any:




      """simple docstring"""

      for pattern, fname in REPLACE_FILES.items():
            update_version_in_file(lowercase_		,lowercase_		,lowercase_      )
      if not patch:
            update_version_in_examples(lowercase_      )




def        lowercase__     (       )       ->		List[str]:




      """simple docstring"""

      _UpperCamelCase   :						int    =							"🤗 Transformers currently provides the following architectures"
      _UpperCamelCase   :						int    =							"1. Want to contribute a new model?"
      with open(lowercase_		,"r"		,encoding="utf-8"		,newline="\n"      ) as f:
            _UpperCamelCase   :						int    =							f.readlines()

      # Find the start of the list.
      _UpperCamelCase   :						Optional[Any]    =							0
      while not lines[start_index].startswith(_start_prompt      ):
            start_index += 1
      start_index += 1

      _UpperCamelCase   :						Any    =							start_index
      # Update the lines in the model list.
      while not lines[index].startswith(_end_prompt      ):
            if lines[index].startswith("1."      ):
                  _UpperCamelCase   :						Dict    =							lines[index].replace(
                      "https://huggingface.co/docs/transformers/main/model_doc"		,"https://huggingface.co/docs/transformers/model_doc"		,)
            index += 1

      with open(lowercase_		,"w"		,encoding="utf-8"		,newline="\n"      ) as f:
            f.writelines(lowercase_      )




def        lowercase__     (       )       ->		List[str]:




      """simple docstring"""

      with open(REPLACE_FILES["init"]		,"r"      ) as f:
            _UpperCamelCase   :						Dict    =							f.read()
      _UpperCamelCase   :						List[str]    =							REPLACE_PATTERNS["init"][0].search(lowercase_      ).groups()[0]
      return packaging.version.parse(lowercase_      )




def        lowercase__     (       lowercase_=False      )       ->		Any:




      """simple docstring"""

      _UpperCamelCase   :						Tuple    =							get_version()
      if patch and default_version.is_devrelease:
            raise ValueError("Can't create a patch version from the dev branch, checkout a released version!"      )
      if default_version.is_devrelease:
            _UpperCamelCase   :						Union[str, Any]    =							default_version.base_version
      elif patch:
            _UpperCamelCase   :						Union[str, Any]    =							F'''{default_version.major}.{default_version.minor}.{default_version.micro + 1}'''
      else:
            _UpperCamelCase   :						Any    =							F'''{default_version.major}.{default_version.minor + 1}.0'''

      # Now let's ask nicely if that's the right one.
      _UpperCamelCase   :						List[str]    =							input(F'''Which version are you releasing? [{default_version}]'''      )
      if len(lowercase_      ) == 0:
            _UpperCamelCase   :						Any    =							default_version

      print(F'''Updating version to {version}.'''      )
      global_version_update(lowercase_		,patch=lowercase_      )
      if not patch:
            print("Cleaning main README, don't forget to run `make fix-copies`."      )
            clean_main_ref_in_model_list()




def        lowercase__     (       )       ->		List[Any]:




      """simple docstring"""

      _UpperCamelCase   :						List[Any]    =							get_version()
      _UpperCamelCase   :						List[Any]    =							F'''{current_version.major}.{current_version.minor + 1}.0.dev0'''
      _UpperCamelCase   :						Tuple    =							current_version.base_version

      # Check with the user we got that right.
      _UpperCamelCase   :						Union[str, Any]    =							input(F'''Which version are we developing now? [{dev_version}]'''      )
      if len(lowercase_      ) == 0:
            _UpperCamelCase   :						Optional[int]    =							dev_version

      print(F'''Updating version to {version}.'''      )
      global_version_update(lowercase_      )
      print("Cleaning main README, don't forget to run `make fix-copies`."      )
      clean_main_ref_in_model_list()


if __name__ == "__main__":
  lowerCamelCase__						= argparse.ArgumentParser()
  parser.add_argument("--post_release", action="store_true", help="Whether this is pre or post release.")
  parser.add_argument("--patch", action="store_true", help="Whether or not this is a patch release.")
  lowerCamelCase__						= parser.parse_args()
  if not args.post_release:
    pre_release_work(patch=args.patch)
  elif args.patch:
    print("Nothing to do after a patch :-)")
  else:
    post_release_work()
