"""simple docstring"""







from abc import ABC, abstractmethod
from argparse import ArgumentParser

class 	UpperCamelCase    (					lowercase		):



				@staticmethod
				@abstractmethod
				def       _lowercase  (_A       :   ArgumentParser)					->			Tuple:
					raise NotImplementedError()






				@abstractmethod
				def       _lowercase  (self       :   Any)					->			Optional[Any]:
					raise NotImplementedError()






"""simple docstring"""







from typing import TYPE_CHECKING

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


_a  :  Optional[Any]=				{
    "configuration_wav2vec2": ["WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP", "Wav2Vec2Config"],
    "feature_extraction_wav2vec2": ["Wav2Vec2FeatureExtractor"],
    "processing_wav2vec2": ["Wav2Vec2Processor"],
    "tokenization_wav2vec2": ["Wav2Vec2CTCTokenizer", "Wav2Vec2Tokenizer"],
}


try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a  :  Optional[Any]=				[
	    "WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST",
	    "Wav2Vec2ForAudioFrameClassification",
	    "Wav2Vec2ForCTC",
	    "Wav2Vec2ForMaskedLM",
	    "Wav2Vec2ForPreTraining",
	    "Wav2Vec2ForSequenceClassification",
	    "Wav2Vec2ForXVector",
	    "Wav2Vec2Model",
	    "Wav2Vec2PreTrainedModel",
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a  :  List[str]=				[
	    "TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST",
	    "TFWav2Vec2ForCTC",
	    "TFWav2Vec2Model",
	    "TFWav2Vec2PreTrainedModel",
	    "TFWav2Vec2ForSequenceClassification",
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a  :  List[Any]=				[
	    "FlaxWav2Vec2ForCTC",
	    "FlaxWav2Vec2ForPreTraining",
	    "FlaxWav2Vec2Model",
	    "FlaxWav2Vec2PreTrainedModel",
	]


if TYPE_CHECKING:
	from .configuration_wavaveca import WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP, WavaVecaConfig
	from .feature_extraction_wavaveca import WavaVecaFeatureExtractor
	from .processing_wavaveca import WavaVecaProcessor
	from .tokenization_wavaveca import WavaVecaCTCTokenizer, WavaVecaTokenizer

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_wavaveca import (
		    WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
		    WavaVecaForAudioFrameClassification,
		    WavaVecaForCTC,
		    WavaVecaForMaskedLM,
		    WavaVecaForPreTraining,
		    WavaVecaForSequenceClassification,
		    WavaVecaForXVector,
		    WavaVecaModel,
		    WavaVecaPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_wavaveca import (
		    TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFWavaVecaForCTC,
		    TFWavaVecaForSequenceClassification,
		    TFWavaVecaModel,
		    TFWavaVecaPreTrainedModel,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_wavaveca import (
		    FlaxWavaVecaForCTC,
		    FlaxWavaVecaForPreTraining,
		    FlaxWavaVecaModel,
		    FlaxWavaVecaPreTrainedModel,
		)


else:
	import sys

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





