






from typing import TYPE_CHECKING

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


UpperCAmelCase_ :						Union[str, Any]      =      {
    '''configuration_electra''': ['''ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ElectraConfig''', '''ElectraOnnxConfig'''],
    '''tokenization_electra''': ['''ElectraTokenizer'''],
}

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

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	UpperCAmelCase_ :						int      =      [
	    '''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:
	UpperCAmelCase_ :						Dict      =      [
	    '''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:
	UpperCAmelCase_ :						str      =      [
	    '''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

	UpperCAmelCase_ :						Optional[int]      =      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)





'''simple docstring'''





import warnings

from ...utils import logging
from .image_processing_beit import BeitImageProcessor


__a          =		logging.get_logger(__name__)







class     UpperCAmelCase_       (       _a	):
    """simple docstring"""







    def __init__(    self					:     List[str] ,     *snake_case_					:     str ,     **snake_case_					:     List[str]						):
          warnings.warn(
              """The class BeitFeatureExtractor is deprecated and will be removed in version 5 of Transformers. Please"""
              """ use BeitImageProcessor instead.""" ,     snake_case_ ,     )
          super().__init__(*snake_case_ ,     **snake_case_						)
