
'''simple docstring'''


import unittest

from transformers import DebertaVaTokenizer, DebertaVaTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


snake_case_ :  Tuple     =					get_tests_dir('fixtures/spiece.model')


@require_sentencepiece
@require_tokenizers
class 						lowercase__	(  __lowercase,					unittest.TestCase   ):






			'''simple docstring'''







			_snake_case		   =							DebertaVaTokenizer
			_snake_case		   =							DebertaVaTokenizerFast
			_snake_case		   =							True
			_snake_case		   =							True







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						super().setUp()

						# We have a SentencePiece fixture for testing
						UpperCamelCase       =  DebertaVaTokenizer(_A ,   unk_token='''<unk>'''   )
						tokenizer.save_pretrained(self.tmpdirname   )







			def       UpperCAmelCase				(			self ,   lowerCamelCase__   ):

						'''simple docstring'''







						UpperCamelCase       =  '''this is a test'''
						UpperCamelCase       =  '''this is a test'''
						return input_text, output_text







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  '''<pad>'''
						UpperCamelCase       =  0

						self.assertEqual(self.get_tokenizer()._convert_token_to_id(_A   ) ,   _A   )
						self.assertEqual(self.get_tokenizer()._convert_id_to_token(_A   ) ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  list(self.get_tokenizer().get_vocab().keys()   )
						self.assertEqual(vocab_keys[0] ,   '''<pad>'''   )
						self.assertEqual(vocab_keys[1] ,   '''<unk>'''   )
						self.assertEqual(vocab_keys[-1] ,   '''[PAD]'''   )
						self.assertEqual(len(_A   ) ,   3_0_0_0_1   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						self.assertEqual(self.get_tokenizer().vocab_size ,   3_0_0_0_0   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  ''' \tHeLLo!how  \n Are yoU?  '''
						UpperCamelCase       =  ['''▁hello''', '''!''', '''how''', '''▁are''', '''▁you''', '''?''']
						# fmt: on

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   do_lower_case=_A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   do_lower_case=_A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )







			@unittest.skip('''There is an inconsistency between slow and fast tokenizer due to a bug in the fast one.'''   )
			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						pass







			@unittest.skip('''There is an inconsistency between slow and fast tokenizer due to a bug in the fast one.'''   )
			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						pass







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  '''I was born in 92000, and this is falsé.'''
						UpperCamelCase       =  ['''▁''', '''<unk>''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', '''▁''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''▁''', '''.''', ]
						# fmt: on

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   split_by_punct=_A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   split_by_punct=_A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  '''I was born in 92000, and this is falsé.'''
						UpperCamelCase       =  ['''▁i''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', '''▁''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''▁''', '''.''', ]
						# fmt: on

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )
						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )
						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  '''I was born in 92000, and this is falsé.'''
						UpperCamelCase       =  ['''▁i''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''.''', ]
						# fmt: on

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  '''I was born in 92000, and this is falsé.'''
						UpperCamelCase       =  ['''▁''', '''<unk>''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', '''▁''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''▁''', '''.''', ]
						# fmt: on

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  ''' \tHeLLo!how  \n Are yoU?  '''
						UpperCamelCase       =  ['''▁''', '''<unk>''', '''e''', '''<unk>''', '''o''', '''!''', '''how''', '''▁''', '''<unk>''', '''re''', '''▁yo''', '''<unk>''', '''?''']
						# fmt: on

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   do_lower_case=_A ,   split_by_punct=_A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )

						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  self.get_tokenizer()
						UpperCamelCase       =  self.get_rust_tokenizer()

						UpperCamelCase       =  '''I was born in 92000, and this is falsé.'''

						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(tokenizer.encode(_A ,   add_special_tokens=_A   )   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_A ,   add_special_tokens=_A   )   )
						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  tokenizer.encode(_A ,   add_special_tokens=_A   )
						UpperCamelCase       =  rust_tokenizer.encode(_A ,   add_special_tokens=_A   )
						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  self.get_rust_tokenizer()
						UpperCamelCase       =  tokenizer.encode(_A   )
						UpperCamelCase       =  rust_tokenizer.encode(_A   )
						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  '''This is a test'''
						UpperCamelCase       =  [1_3, 1, 4_3_9_8, 2_5, 2_1, 1_2_8_9]
						UpperCamelCase       =  ['''▁''', '''T''', '''his''', '''▁is''', '''▁a''', '''▁test''']
						UpperCamelCase       =  ['''▁''', '''<unk>''', '''his''', '''▁is''', '''▁a''', '''▁test''']

						UpperCamelCase       =  DebertaVaTokenizer(_A ,   keep_accents=_A   )
						UpperCamelCase       =  DebertaVaTokenizerFast(_A ,   keep_accents=_A   )

						UpperCamelCase       =  tokenizer.encode(_A ,   add_special_tokens=_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  tokenizer.tokenize(_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(_A   )
						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  rust_tokenizer.encode(_A ,   add_special_tokens=_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  rust_tokenizer.tokenize(_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(_A   )
						self.assertListEqual(_A ,   _A   )

						# fmt: off
						UpperCamelCase       =  '''I was born in 92000, and this is falsé.'''
						UpperCamelCase       =  [1_3, 1, 2_3, 3_8_6, 1_9, 5_6_1, 3_0_5_0, 1_5, 1_7, 4_8, 2_5, 8_2_5_6, 1_8, 1, 9]
						UpperCamelCase       =  ['''▁''', '''I''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''é''', '''.''', ]
						UpperCamelCase       =  ['''▁''', '''<unk>''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''.''', ]
						# fmt: on

						UpperCamelCase       =  tokenizer.encode(_A ,   add_special_tokens=_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  tokenizer.tokenize(_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  tokenizer.convert_ids_to_tokens(_A   )
						self.assertListEqual(_A ,   _A   )

						UpperCamelCase       =  rust_tokenizer.encode(_A ,   add_special_tokens=_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  rust_tokenizer.tokenize(_A   )
						self.assertListEqual(_A ,   _A   )
						UpperCamelCase       =  rust_tokenizer.convert_ids_to_tokens(_A   )
						self.assertListEqual(_A ,   _A   )







			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  DebertaVaTokenizer(_A   )

						UpperCamelCase       =  tokenizer.encode('''sequence builders'''   )
						UpperCamelCase       =  tokenizer.encode('''multi-sequence build'''   )

						UpperCamelCase       =  tokenizer.build_inputs_with_special_tokens(_A   )
						UpperCamelCase       =  tokenizer.build_inputs_with_special_tokens(_A ,   _A   )

						self.assertEqual([tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] ,   _A   )
						self.assertEqual(
						    [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] + text_a + [tokenizer.sep_token_id] ,   _A ,   )







			@slow
			def       UpperCAmelCase				(			self   ):

						'''simple docstring'''







						UpperCamelCase       =  {'''input_ids''': [[1, 3_9_8_6_7, 3_6, 1_9_3_9_0, 4_8_6, 2_7, 3_5_0_5_2, 8_1_4_3_6, 1_8, 6_0_6_8_5, 1_2_2_5, 7, 3_5_0_5_2, 8_1_4_3_6, 1_8, 9_3_6_7, 1_6_8_9_9, 1_8, 1_5_9_3_7, 5_3, 5_9_4, 7_7_3, 1_8, 1_6_2_8_7, 3_0_4_6_5, 3_6, 1_5_9_3_7, 6, 4_1_1_3_9, 3_8, 3_6_9_7_9, 6_0_7_6_3, 1_9_1, 6, 3_4_1_3_2, 9_9, 6, 5_0_5_3_8, 3_9_0, 4_3_2_3_0, 6, 3_4_1_3_2, 2_7_7_9, 2_0_8_5_0, 1_4, 6_9_9, 1_0_7_2, 1_1_9_4, 3_6, 3_8_2, 1_0_9_0_1, 5_3, 7, 6_9_9, 1_0_7_2, 2_0_8_4, 3_6, 2_0_4_2_2, 6_3_0, 5_3, 1_9, 1_0_5, 3_0_4_9, 1_8_9_6, 1_0_5_3, 1_6_8_9_9, 1_5_0_6, 1_1, 3_7_9_7_8, 4_2_4_3, 7, 1_2_3_7, 3_1_8_6_9, 2_0_0, 1_6_5_6_6, 6_5_4, 6, 3_5_0_5_2, 8_1_4_3_6, 7, 5_5_6_3_0, 1_3_5_9_3, 4, 2], [1, 2_6, 1_5_0_1_1, 1_3, 6_6_7, 8, 1_0_5_3, 1_8, 2_3_6_1_1, 1_2_3_7, 7_2_3_5_6, 1_2_8_2_0, 3_4, 1_0_4_1_3_4, 1_2_0_9, 3_5, 1_3_3_1_3, 6_6_2_7, 2_1, 2_0_2, 3_4_7, 7, 1_6_4, 2_3_9_9, 1_1, 4_6, 4_4_8_5, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 5, 1_2_3_2, 2_8_6_4, 1_5_7_8_5, 1_4_9_5_1, 1_0_5, 5, 8_5_8_1, 1_2_5_0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], '''token_type_ids''': [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], '''attention_mask''': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}  # noqa: E501
						# fmt: on

						self.tokenizer_integration_test_util(
						    expected_encoding=_A ,   model_name='''microsoft/deberta-v2-xlarge''' ,   revision='''ad6e42c1532ddf3a15c39246b63f5559d558b670''' ,   )







'''simple docstring'''


from typing import TYPE_CHECKING

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


snake_case_ :  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:
   snake_case_ :  Union[str, Any]     =					['ElectraTokenizerFast']

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   snake_case_ :  Tuple     =					[
       '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:
   snake_case_ :  int     =					[
       '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:
   snake_case_ :  Optional[int]     =					[
       '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

   snake_case_ :  Union[str, Any]     =					_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)





