






from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


lowerCamelCase_						: List[str]         =  {
    """configuration_whisper""": ["""WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP""", """WhisperConfig""", """WhisperOnnxConfig"""],
    """feature_extraction_whisper""": ["""WhisperFeatureExtractor"""],
    """processing_whisper""": ["""WhisperProcessor"""],
    """tokenization_whisper""": ["""WhisperTokenizer"""],
}

try:
							if not is_tokenizers_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							lowerCamelCase_						: Dict         =  ["""WhisperTokenizerFast"""]

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							lowerCamelCase_						: List[Any]         =  [
							    """WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST""",
							    """WhisperForConditionalGeneration""",
							    """WhisperModel""",
							    """WhisperPreTrainedModel""",
							    """WhisperForAudioClassification""",
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							lowerCamelCase_						: List[str]         =  [
							    """TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST""",
							    """TFWhisperForConditionalGeneration""",
							    """TFWhisperModel""",
							    """TFWhisperPreTrainedModel""",
							]

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							lowerCamelCase_						: List[Any]         =  [
							    """FlaxWhisperForConditionalGeneration""",
							    """FlaxWhisperModel""",
							    """FlaxWhisperPreTrainedModel""",
							    """FlaxWhisperForAudioClassification""",
							]


if TYPE_CHECKING:
							from .configuration_whisper import WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP, WhisperConfig, WhisperOnnxConfig
							from .feature_extraction_whisper import WhisperFeatureExtractor
							from .processing_whisper import WhisperProcessor
							from .tokenization_whisper import WhisperTokenizer

							try:
														if not is_tokenizers_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_whisper_fast import WhisperTokenizerFast

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_whisper import (
														    WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    WhisperForAudioClassification,
														    WhisperForConditionalGeneration,
														    WhisperModel,
														    WhisperPreTrainedModel,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_whisper import (
														    TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFWhisperForConditionalGeneration,
														    TFWhisperModel,
														    TFWhisperPreTrainedModel,
														)

							try:
														if not is_flax_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_flax_whisper import (
														    FlaxWhisperForAudioClassification,
														    FlaxWhisperForConditionalGeneration,
														    FlaxWhisperModel,
														    FlaxWhisperPreTrainedModel,
														)

else:
							import sys

							lowerCamelCase_						: List[Any]         =  _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)








import inspect
import os
import sys
import unittest

import accelerate
from accelerate.test_utils import execute_subprocess_async, require_tpu

class        _UpperCamelCase				(					unittest.TestCase  ):






			'''simple docstring'''

			def       lowerCAmelCase__	(       self :       Optional[int]      ):
							UpperCamelCase_:							List[Any]	=						inspect.getfile(accelerate.test_utils      )
							UpperCamelCase_:							List[str]	=						os.path.sep.join(mod_file.split(os.path.sep      )[:-1] + ["""scripts""", """test_script.py"""]      )
							UpperCamelCase_:							str	=						os.path.sep.join(inspect.getfile(self.__class__      ).split(os.path.sep      )[:-1]      )




			@require_tpu
			def       lowerCAmelCase__	(       self :       Optional[int]      ):
							UpperCamelCase_:							Any	=						f'''
            {self.test_dir}/xla_spawn.py
            --num_cores 8
            {self.test_file_path}
        '''.split()
							UpperCamelCase_:							Dict	=						[sys.executable] + distributed_args
							execute_subprocess_async(snake_case_						,	env=os.environ.copy()      )






