




'''simple docstring'''





import sys

from .dependency_versions_table import deps
from .utils.versions import require_version, require_version_core


# define which module versions we always want to check at run time
# (usually the ones defined in `install_requires` in setup.py)
#
# order specific notes:
# - tqdm must be checked before tokenizers

_lowerCamelCase			:	List[Any]							 =     """python tqdm regex requests packaging filelock numpy tokenizers""".split()
if sys.version_info < (3, 7):
  pkgs_to_check_at_runtime.append("""dataclasses""")
if sys.version_info < (3, 8):
  pkgs_to_check_at_runtime.append("""importlib_metadata""")

for pkg in pkgs_to_check_at_runtime:
  if pkg in deps:
    if pkg == "tokenizers":
      # must be loaded here, or else tqdm check may fail
      from .utils import is_tokenizers_available

      if not is_tokenizers_available():
        continue  # not required, check version only if installed

    require_version_core(deps[pkg])
  else:
    raise ValueError(F'''can\'t find {pkg} in {deps.keys()}, check dependency_versions_table.py''')







def SCREAMING_SNAKE_CASE       ( lowercase_				,       lowercase_=None		)     -> Dict:



       """simple docstring"""

       require_version(deps[pkg]				,       lowercase_		)








from collections import OrderedDict
from typing import Mapping

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


_lowerCamelCase			:	List[Any]							 =     logging.get_logger(__name__)

_lowerCamelCase			:	Dict							 =     {
    """xlm-mlm-en-2048""": """https://huggingface.co/xlm-mlm-en-2048/resolve/main/config.json""",
    """xlm-mlm-ende-1024""": """https://huggingface.co/xlm-mlm-ende-1024/resolve/main/config.json""",
    """xlm-mlm-enfr-1024""": """https://huggingface.co/xlm-mlm-enfr-1024/resolve/main/config.json""",
    """xlm-mlm-enro-1024""": """https://huggingface.co/xlm-mlm-enro-1024/resolve/main/config.json""",
    """xlm-mlm-tlm-xnli15-1024""": """https://huggingface.co/xlm-mlm-tlm-xnli15-1024/resolve/main/config.json""",
    """xlm-mlm-xnli15-1024""": """https://huggingface.co/xlm-mlm-xnli15-1024/resolve/main/config.json""",
    """xlm-clm-enfr-1024""": """https://huggingface.co/xlm-clm-enfr-1024/resolve/main/config.json""",
    """xlm-clm-ende-1024""": """https://huggingface.co/xlm-clm-ende-1024/resolve/main/config.json""",
    """xlm-mlm-17-1280""": """https://huggingface.co/xlm-mlm-17-1280/resolve/main/config.json""",
    """xlm-mlm-100-1280""": """https://huggingface.co/xlm-mlm-100-1280/resolve/main/config.json""",
}


class        UpperCamelCase_					(				UpperCAmelCase__  ):

    '''simple docstring'''






    UpperCAmelCase__													=   '''xlm'''
    UpperCAmelCase__													=   {
        '''hidden_size''': '''emb_dim''',
        '''num_attention_heads''': '''n_heads''',
        '''num_hidden_layers''': '''n_layers''',
        '''n_words''': '''vocab_size''',  # For backward compatibility
    }


    def __init__(    self   :			Tuple      ,				UpperCAmelCase__   :			Optional[Any]=30_145      ,				UpperCAmelCase__   :			List[str]=2_048      ,				UpperCAmelCase__   :			str=12      ,				UpperCAmelCase__   :			List[Any]=16      ,				UpperCAmelCase__   :			Dict=0.1      ,				UpperCAmelCase__   :			Tuple=0.1      ,				UpperCAmelCase__   :			str=True      ,				UpperCAmelCase__   :			Union[str, Any]=False      ,				UpperCAmelCase__   :			str=False      ,				UpperCAmelCase__   :			Optional[int]=False      ,				UpperCAmelCase__   :			List[str]=1      ,				UpperCAmelCase__   :			List[Any]=True      ,				UpperCAmelCase__   :			Union[str, Any]=512      ,				UpperCAmelCase__   :			List[str]=2_048**-0.5      ,				UpperCAmelCase__   :			List[Any]=1e-12      ,				UpperCAmelCase__   :			Any=0.02      ,				UpperCAmelCase__   :			str=0      ,				UpperCAmelCase__   :			int=1      ,				UpperCAmelCase__   :			Union[str, Any]=2      ,				UpperCAmelCase__   :			List[Any]=3      ,				UpperCAmelCase__   :			int=5      ,				UpperCAmelCase__   :			Any=True      ,				UpperCAmelCase__   :			Tuple="first"      ,				UpperCAmelCase__   :			Optional[int]=True      ,				UpperCAmelCase__   :			List[str]=None      ,				UpperCAmelCase__   :			Tuple=True      ,				UpperCAmelCase__   :			Dict=0.1      ,				UpperCAmelCase__   :			Any=5      ,				UpperCAmelCase__   :			List[Any]=5      ,				UpperCAmelCase__   :			int=0      ,				UpperCAmelCase__   :			Dict=0      ,				UpperCAmelCase__   :			Dict=2      ,				UpperCAmelCase__   :			str=0      ,				**UpperCAmelCase__   :			List[str]      ,				)		->str:





           '''simple docstring'''

           A__   				=					vocab_size
           A__   				=					emb_dim
           A__   				=					n_layers
           A__   				=					n_heads
           A__   				=					dropout
           A__   				=					attention_dropout
           A__   				=					gelu_activation
           A__   				=					sinusoidal_embeddings
           A__   				=					causal
           A__   				=					asm
           A__   				=					n_langs
           A__   				=					use_lang_emb
           A__   				=					layer_norm_eps
           A__   				=					bos_index
           A__   				=					eos_index
           A__   				=					pad_index
           A__   				=					unk_index
           A__   				=					mask_index
           A__   				=					is_encoder
           A__   				=					max_position_embeddings
           A__   				=					embed_init_std
           A__   				=					init_std
           A__   				=					summary_type
           A__   				=					summary_use_proj
           A__   				=					summary_activation
           A__   				=					summary_proj_to_labels
           A__   				=					summary_first_dropout
           A__   				=					start_n_top
           A__   				=					end_n_top
           A__   				=					mask_token_id
           A__   				=					lang_id

           if "n_words" in kwargs:
                  A__   				=					kwargs['''n_words''']

           super().__init__(pad_token_id=UpperCAmelCase__      ,				bos_token_id=UpperCAmelCase__      ,				**UpperCAmelCase__)


class        UpperCamelCase_					(				UpperCAmelCase__  ):

    '''simple docstring'''






    @property
    def  SCREAMING_SNAKE_CASE							(    self   :			Dict)		->Mapping[str, Mapping[int, str]]:





           '''simple docstring'''

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


