


import importlib.metadata
import subprocess
import sys



def 			_lowerCAmelCase						(							lowerCAmelCase_							:bool = False							)->Optional[int]:
   '''simple docstring'''






   snake_case_					    =					False
   if "IPython" in sys.modules:
      snake_case_					    =					"google.colab" in str(sys.modules["IPython"].get_ipython()							)

   if in_colab:
      if upgrade:
         snake_case_					    =					["pip", "install", "-U", "torch"]
         subprocess.run(lowerCAmelCase_		,						check=lowerCAmelCase_							)
      # get the current version of torch
      snake_case_					    =					importlib.metadata.version("torch"							)
      snake_case_					    =					torch_version[: torch_version.rindex("."							)]
      snake_case_					    =					F'''https://storage.googleapis.com/tpu-pytorch/wheels/colab/torch_xla-{torch_version_trunc}-cp37-cp37m-linux_x86_64.whl'''
      snake_case_					    =					["pip", "install", xla_wheel]
      subprocess.run(lowerCAmelCase_		,						check=lowerCAmelCase_							)
   else:
      raise RuntimeError("`install_xla` utility works only on google colab."							)








from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_speech_available,
    is_torch_available,
)


SCREAMING_SNAKE_CASE	:List[Any]  		=     {
    '''configuration_speech_to_text_2''': ['''SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''Speech2Text2Config'''],
    '''processing_speech_to_text_2''': ['''Speech2Text2Processor'''],
    '''tokenization_speech_to_text_2''': ['''Speech2Text2Tokenizer'''],
}


try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   SCREAMING_SNAKE_CASE	:int  		=     [
       '''SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''Speech2Text2ForCausalLM''',
       '''Speech2Text2PreTrainedModel''',
   ]


if TYPE_CHECKING:
   from .configuration_speech_to_text_a import SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP, SpeechaTextaConfig
   from .processing_speech_to_text_a import SpeechaTextaProcessor
   from .tokenization_speech_to_text_a import SpeechaTextaTokenizer

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_speech_to_text_a import (
          SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST,
          SpeechaTextaForCausalLM,
          SpeechaTextaPreTrainedModel,
      )

else:
   import sys

   SCREAMING_SNAKE_CASE	:str  		=     _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




