
"""simple docstring"""
from typing import TYPE_CHECKING

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


_a      :			Optional[int]					=							{
    """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:
				_a      :			Tuple					=							["""WhisperTokenizerFast"""]

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

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_a      :			Optional[int]					=							[
				    """TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """TFWhisperForConditionalGeneration""",
				    """TFWhisperModel""",
				    """TFWhisperPreTrainedModel""",
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_a      :			List[str]					=							[
				    """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

				_a      :			Tuple					=							_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)



"""simple docstring"""
def 				a__   (   a   :				list       ,     a   :				int       ,     a   :				int = 0       ,     a   :				int = 0		):

  """simple docstring"""







  _snake_case     :						Optional[int]						=   right or len(a		) - 1
  if left > right:
    return -1
  elif list_data[left] == key:
    return left
  elif list_data[right] == key:
    return right
  else:
    return search(a       ,     a       ,     left + 1       ,     right - 1		)


if __name__ == "__main__":
    import doctest

    doctest.testmod()

