





'''simple docstring'''




from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


a__				: List[str]									=   logging.get_logger(__name__)

a__				: Optional[Any]									=   {
    'google/electra-small-generator': 'https://huggingface.co/google/electra-small-generator/resolve/main/config.json',
    'google/electra-base-generator': 'https://huggingface.co/google/electra-base-generator/resolve/main/config.json',
    'google/electra-large-generator': 'https://huggingface.co/google/electra-large-generator/resolve/main/config.json',
    'google/electra-small-discriminator': (
        'https://huggingface.co/google/electra-small-discriminator/resolve/main/config.json'
    ),
    'google/electra-base-discriminator': (
        'https://huggingface.co/google/electra-base-discriminator/resolve/main/config.json'
    ),
    'google/electra-large-discriminator': (
        'https://huggingface.co/google/electra-large-discriminator/resolve/main/config.json'
    ),
}






class 							__snake_case    (				__magic_name__       ):
	__lowerCAmelCase						=     '''electra'''





	def __init__(		self			,					UpperCamelCase_=3_0522			,					UpperCamelCase_=128			,					UpperCamelCase_=256			,					UpperCamelCase_=12			,					UpperCamelCase_=4			,					UpperCamelCase_=1024			,					UpperCamelCase_="gelu"			,					UpperCamelCase_=0.1			,					UpperCamelCase_=0.1			,					UpperCamelCase_=512			,					UpperCamelCase_=2			,					UpperCamelCase_=0.0_2			,					UpperCamelCase_=1E-1_2			,					UpperCamelCase_="first"			,					UpperCamelCase_=True			,					UpperCamelCase_="gelu"			,					UpperCamelCase_=0.1			,					UpperCamelCase_=0			,					UpperCamelCase_="absolute"			,					UpperCamelCase_=True			,					UpperCamelCase_=None			,					**UpperCamelCase_			,					)			->		Dict:
		super().__init__(pad_token_id=UpperCamelCase_			,					**UpperCamelCase_		)

		snake_case__  					=      vocab_size
		snake_case__  					=      embedding_size
		snake_case__  					=      hidden_size
		snake_case__  					=      num_hidden_layers
		snake_case__  					=      num_attention_heads
		snake_case__  					=      intermediate_size
		snake_case__  					=      hidden_act
		snake_case__  					=      hidden_dropout_prob
		snake_case__  					=      attention_probs_dropout_prob
		snake_case__  					=      max_position_embeddings
		snake_case__  					=      type_vocab_size
		snake_case__  					=      initializer_range
		snake_case__  					=      layer_norm_eps

		snake_case__  					=      summary_type
		snake_case__  					=      summary_use_proj
		snake_case__  					=      summary_activation
		snake_case__  					=      summary_last_dropout
		snake_case__  					=      position_embedding_type
		snake_case__  					=      use_cache
		snake_case__  					=      classifier_dropout






class 							__snake_case    (				__magic_name__       ):





	@property
	def      _snake_case      (		self		)			->		Mapping[str, Mapping[int, str]]:
		if self.task == "multiple-choice":
			snake_case__  					=      {0: '''batch''', 1: '''choice''', 2: '''sequence'''}
		else:
			snake_case__  					=      {0: '''batch''', 1: '''sequence'''}
		return OrderedDict(
		    [
		        ('input_ids', dynamic_axis),
		        ('attention_mask', dynamic_axis),
		        ('token_type_ids', dynamic_axis),
		    ]		)










'''simple docstring'''




from typing import Callable




def 	__lowerCamelCase (  UpperCAmelCase_       )      ->str:

	def wrapper(UpperCAmelCase_       ):
		snake_case__  					=      function_with_docstring.__doc__
		return target_function

	return wrapper



