



"""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_			   =					{
    '''configuration_electra''': ['''ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ElectraConfig''', '''ElectraOnnxConfig'''],
    '''tokenization_electra''': ['''ElectraTokenizer'''],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				a_			   =					['''ElectraTokenizerFast''']

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				a_			   =					[
				    '''ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''ElectraForCausalLM''',
				    '''ElectraForMaskedLM''',
				    '''ElectraForMultipleChoice''',
				    '''ElectraForPreTraining''',
				    '''ElectraForQuestionAnswering''',
				    '''ElectraForSequenceClassification''',
				    '''ElectraForTokenClassification''',
				    '''ElectraModel''',
				    '''ElectraPreTrainedModel''',
				    '''load_tf_weights_in_electra''',
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				a_			   =					[
				    '''TF_ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''TFElectraForMaskedLM''',
				    '''TFElectraForMultipleChoice''',
				    '''TFElectraForPreTraining''',
				    '''TFElectraForQuestionAnswering''',
				    '''TFElectraForSequenceClassification''',
				    '''TFElectraForTokenClassification''',
				    '''TFElectraModel''',
				    '''TFElectraPreTrainedModel''',
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				a_			   =					[
				    '''FlaxElectraForCausalLM''',
				    '''FlaxElectraForMaskedLM''',
				    '''FlaxElectraForMultipleChoice''',
				    '''FlaxElectraForPreTraining''',
				    '''FlaxElectraForQuestionAnswering''',
				    '''FlaxElectraForSequenceClassification''',
				    '''FlaxElectraForTokenClassification''',
				    '''FlaxElectraModel''',
				    '''FlaxElectraPreTrainedModel''',
				]


if TYPE_CHECKING:
				from .configuration_electra import ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP, ElectraConfig, ElectraOnnxConfig
				from .tokenization_electra import ElectraTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_electra_fast import ElectraTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_electra import (
								    ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST,
								    ElectraForCausalLM,
								    ElectraForMaskedLM,
								    ElectraForMultipleChoice,
								    ElectraForPreTraining,
								    ElectraForQuestionAnswering,
								    ElectraForSequenceClassification,
								    ElectraForTokenClassification,
								    ElectraModel,
								    ElectraPreTrainedModel,
								    load_tf_weights_in_electra,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_electra import (
								    TF_ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFElectraForMaskedLM,
								    TFElectraForMultipleChoice,
								    TFElectraForPreTraining,
								    TFElectraForQuestionAnswering,
								    TFElectraForSequenceClassification,
								    TFElectraForTokenClassification,
								    TFElectraModel,
								    TFElectraPreTrainedModel,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_electra import (
								    FlaxElectraForCausalLM,
								    FlaxElectraForMaskedLM,
								    FlaxElectraForMultipleChoice,
								    FlaxElectraForPreTraining,
								    FlaxElectraForQuestionAnswering,
								    FlaxElectraForSequenceClassification,
								    FlaxElectraForTokenClassification,
								    FlaxElectraModel,
								    FlaxElectraPreTrainedModel,
								)

else:
				import sys

				a_			   =					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)









"""simple docstring"""

import copy
from dataclasses import dataclass, field
from typing import ClassVar, Dict

from ..features import Audio, Features, Value
from .base import TaskTemplate







@dataclass(frozen=_UpperCAmelCase)
class    __lowercase     (					_UpperCAmelCase):







						"""simple docstring"""







						_A		:							str							       =		field(default="""automatic-speech-recognition"""					,    metadata={"""include_in_asdict_even_if_is_default""": True})
						_A		:							ClassVar[Features]							       =		Features({"""audio""": Audio()})
						_A		:							ClassVar[Features]							       =		Features({"""transcription""": Value("""string""")})
						_A		:							str							       =		"audio"
						_A		:							str							       =		"transcription"







						def 						__UpperCamelCase							(self   ,		lowercase__       ):
											if self.audio_column not in features:
																raise ValueError(f'Column {self.audio_column} is not present in features.'       )
											if not isinstance(features[self.audio_column]   ,		lowercase__       ):
																raise ValueError(f'Column {self.audio_column} is not an Audio type.'       )
											snake_case_					:		Optional[int] 					=					copy.deepcopy(self       )
											snake_case_					:		Tuple 					=					self.input_schema.copy()
											snake_case_					:		List[str] 					=					features[self.audio_column]
											snake_case_					:		Any 					=					input_schema
											return task_template







						@property
						def 						__UpperCamelCase							(self       ):
											return {self.audio_column: "audio", self.transcription_column: "transcription"}




