
"""simple docstring"""


from collections import OrderedDict
from typing import Mapping

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


A_						       =				logging.get_logger(__name__)

A_						       =				{
    """mnaylor/mega-base-wikitext""": """https://huggingface.co/mnaylor/mega-base-wikitext/resolve/main/config.json""",
}




class    __lowerCamelCase     (   lowerCAmelCase ):
				a__:			Optional[Any]									=						'mega'




				def __init__(							self       ,	UpperCAmelCase=3_0522       ,	UpperCAmelCase=128       ,	UpperCAmelCase=4       ,	UpperCAmelCase=256       ,	UpperCAmelCase=16       ,	UpperCAmelCase=True       ,	UpperCAmelCase=64       ,	UpperCAmelCase=False       ,	UpperCAmelCase=-1       ,	UpperCAmelCase=None       ,	UpperCAmelCase=True       ,	UpperCAmelCase="scalenorm"       ,	UpperCAmelCase=True       ,	UpperCAmelCase="silu"       ,	UpperCAmelCase="softmax"       ,	UpperCAmelCase=0.1       ,	UpperCAmelCase=0.1       ,	UpperCAmelCase=0.1       ,	UpperCAmelCase=False       ,	UpperCAmelCase=True       ,	UpperCAmelCase=256       ,	UpperCAmelCase=True       ,	UpperCAmelCase=0.1       ,	UpperCAmelCase=2048       ,	UpperCAmelCase=False       ,	UpperCAmelCase=2       ,	UpperCAmelCase=0.0_2       ,	UpperCAmelCase=0.2       ,	UpperCAmelCase=0.0_2       ,	UpperCAmelCase=1.0       ,	UpperCAmelCase=1       ,	UpperCAmelCase=0       ,	UpperCAmelCase=2       ,	UpperCAmelCase="rotary"       ,	UpperCAmelCase=None       ,	UpperCAmelCase=True       ,	UpperCAmelCase=True       ,	**UpperCAmelCase       ,	):
							super().__init__(pad_token_id=UpperCAmelCase       ,	bos_token_id=UpperCAmelCase       ,	eos_token_id=UpperCAmelCase       ,	**UpperCAmelCase      )

							lowerCamelCase_ 		=     vocab_size
							lowerCamelCase_ 		=     hidden_size
							lowerCamelCase_ 		=     num_hidden_layers
							lowerCamelCase_ 		=     activation
							lowerCamelCase_ 		=     attention_activation
							lowerCamelCase_ 		=     intermediate_size
							lowerCamelCase_ 		=     ema_projection_size
							lowerCamelCase_ 		=     bidirectional
							lowerCamelCase_ 		=     shared_representation_size
							lowerCamelCase_ 		=     use_chunking
							lowerCamelCase_ 		=     chunk_size
							lowerCamelCase_ 		=     truncation
							lowerCamelCase_ 		=     normalize_before_mega
							lowerCamelCase_ 		=     normalization_type
							lowerCamelCase_ 		=     norm_affine
							lowerCamelCase_ 		=     dropout_prob
							lowerCamelCase_ 		=     hidden_dropout_prob
							lowerCamelCase_ 		=     attention_probs_dropout_prob
							lowerCamelCase_ 		=     use_feature_dropout
							lowerCamelCase_ 		=     use_normalized_ffn
							lowerCamelCase_ 		=     nffn_hidden_size
							lowerCamelCase_ 		=     normalize_before_ffn
							lowerCamelCase_ 		=     nffn_activation_dropout_prob
							lowerCamelCase_ 		=     max_positions
							lowerCamelCase_ 		=     add_token_type_embeddings
							lowerCamelCase_ 		=     type_vocab_size
							lowerCamelCase_ 		=     initializer_range
							lowerCamelCase_ 		=     ema_delta_alpha_range
							lowerCamelCase_ 		=     ema_beta_range
							lowerCamelCase_ 		=     ema_gamma_omega_range
							lowerCamelCase_ 		=     relative_positional_bias
							lowerCamelCase_ 		=     use_cache
							lowerCamelCase_ 		=     classifier_dropout
							lowerCamelCase_ 		=     add_lm_hidden_dense_layer
							lowerCamelCase_ 		=     1  # not used but required by Hugging Face




class    __lowerCamelCase     (   lowerCAmelCase ):




				@property
				def 					UpperCAmelCase__	(							self      ):
							if self.task == "multiple-choice":
										lowerCamelCase_ 		=     {0: '''batch''', 1: '''choice''', 2: '''sequence'''}
							else:
										lowerCamelCase_ 		=     {0: '''batch''', 1: '''sequence'''}
							return OrderedDict(
							    [
							        ('''input_ids''', dynamic_axis),
							        ('''attention_mask''', dynamic_axis),
							    ]      )





"""simple docstring"""


import glob
import os

from get_test_info import get_tester_classes


if __name__ == "__main__":
						A_						       =				[]

						A_						       =				os.path.join("""tests""", """models""", """**""", """test_modeling_*.py""")
						A_						       =				glob.glob(pattern)
						# TODO: deal with TF/Flax too
						A_						       =				[
						    x for x in test_files if not (x.startswith("""test_modeling_tf_""") or x.startswith("""test_modeling_flax_"""))
						]

						for test_file in test_files:
												A_						       =				get_tester_classes(test_file)
												for tester_class in tester_classes:
																		# A few tester classes don't have `parent` parameter in `__init__`.
																		# TODO: deal this better
																		try:
																								A_						       =				tester_class(parent=None)
																		except Exception:
																								continue
																		if hasattr(tester, """get_config"""):
																								A_						       =				tester.get_config()
																								for k, v in config.to_dict().items():
																														if isinstance(v, int):
																																				A_						       =				None
																																				if k in ["vocab_size"]:
																																										A_						       =				100
																																				elif k in ["max_position_embeddings"]:
																																										A_						       =				128
																																				elif k in ["hidden_size", "d_model"]:
																																										A_						       =				40
																																				elif k == ["num_layers", "num_hidden_layers", "num_encoder_layers", "num_decoder_layers"]:
																																										A_						       =				5
																																				if target is not None and v > target:
																																										failures.append(
																																										    f"{tester_class.__name__} will produce a `config` of type `{config.__class__.__name__}`"
																																										    f" with config[\"{k}\"] = {v} which is too large for testing! Set its value to be smaller"
																																										    f" than {target}."
																																										)

						if len(failures) > 0:
												raise Exception(f"There were {len(failures)} failures:\n" + """\n""".join(failures))



