
'''simple docstring'''

from ...configuration_utils import PretrainedConfig
from ...utils import logging


__snake_case:  str								=			logging.get_logger(__name__)

__snake_case:  Optional[int]								=			{
    "tanreinama/GPTSAN-2.8B-spout_is_uniform": (
        "https://huggingface.co/tanreinama/GPTSAN-2.8B-spout_is_uniform/resolve/main/config.json"
    ),
}


class  _UpperCAmelCase ( lowerCAmelCase__    ):

     """simple docstring"""

     a_    	=					"gptsan-japanese"
     a_    	=					[
         "past_key_values",
     ]
     a_    	=					{
         "hidden_size": "d_model",
         "num_attention_heads": "num_heads",
         "num_hidden_layers": "num_layers",
     }


     def __init__(      self							,		lowerCAmelCase_=3_60_00							,		lowerCAmelCase_=12_80							,		lowerCAmelCase_=10_24							,		lowerCAmelCase_=81_92							,		lowerCAmelCase_=40_96							,		lowerCAmelCase_=1_28							,		lowerCAmelCase_=10							,		lowerCAmelCase_=0							,		lowerCAmelCase_=16							,		lowerCAmelCase_=16							,		lowerCAmelCase_=1_28							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=1E-5							,		lowerCAmelCase_=False							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_="float32"							,		lowerCAmelCase_=False							,		lowerCAmelCase_=False							,		lowerCAmelCase_=False							,		lowerCAmelCase_=0.002							,		lowerCAmelCase_=False							,		lowerCAmelCase_=True							,		lowerCAmelCase_=3_59_98							,		lowerCAmelCase_=3_59_95							,		lowerCAmelCase_=3_59_99							,		**lowerCAmelCase_							,		):

       '''simple docstring'''

       a_      :	str      =							vocab_size
       a_      :	Optional[Any]      =							max_position_embeddings
       a_      :	Optional[Any]      =							d_model
       a_      :	Dict      =							d_ff
       a_      :	List[Any]      =							d_ext
       a_      :	List[Any]      =							d_spout
       a_      :	Optional[int]      =							num_switch_layers
       a_      :	List[Any]      =							num_ext_layers
       a_      :	List[Any]      =							num_switch_layers + num_ext_layers
       a_      :	Any      =							num_heads
       a_      :	int      =							num_experts
       a_      :	List[str]      =							expert_capacity
       a_      :	List[Any]      =							dropout_rate
       a_      :	List[str]      =							layer_norm_epsilon
       a_      :	List[str]      =							router_bias
       a_      :	Union[str, Any]      =							router_jitter_noise
       a_      :	str      =							router_dtype
       a_      :	Optional[Any]      =							router_ignore_padding_tokens
       a_      :	Union[str, Any]      =							output_hidden_states
       a_      :	int      =							output_attentions
       a_      :	Any      =							initializer_factor
       a_      :	Union[str, Any]      =							output_router_logits
       a_      :	Dict      =							use_cache

       super().__init__(
           separator_token_id=lowerCAmelCase_							,		pad_token_id=lowerCAmelCase_							,		eos_token_id=lowerCAmelCase_							,		**lowerCAmelCase_							,		)




'''simple docstring'''

from datasets.utils.patching import _PatchedModuleObj, patch_submodule

from . import _test_patching






def 	_snake_case						(      ):
  """simple docstring"""







  import os as original_os
  from os import path as original_path
  from os import rename as original_rename
  from os.path import dirname as original_dirname
  from os.path import join as original_join

  assert _test_patching.os is original_os
  assert _test_patching.path is original_path
  assert _test_patching.join is original_join

  assert _test_patching.renamed_os is original_os
  assert _test_patching.renamed_path is original_path
  assert _test_patching.renamed_join is original_join

  a_      :	List[str]      =							"""__test_patch_submodule_mock__"""
  with patch_submodule(_test_patching     ,		"""os.path.join"""     ,		A_   ):
    # Every way to access os.path.join must be patched, and the rest must stay untouched

    # check os.path.join
    assert isinstance(_test_patching.os     ,		_PatchedModuleObj   )
    assert isinstance(_test_patching.os.path     ,		_PatchedModuleObj   )
    assert _test_patching.os.path.join is mock

    # check path.join
    assert isinstance(_test_patching.path     ,		_PatchedModuleObj   )
    assert _test_patching.path.join is mock

    # check join
    assert _test_patching.join is mock

    # check that the other attributes are untouched
    assert _test_patching.os.rename is original_rename
    assert _test_patching.path.dirname is original_dirname
    assert _test_patching.os.path.dirname is original_dirname

    # Even renamed modules or objects must be patched

    # check renamed_os.path.join
    assert isinstance(_test_patching.renamed_os     ,		_PatchedModuleObj   )
    assert isinstance(_test_patching.renamed_os.path     ,		_PatchedModuleObj   )
    assert _test_patching.renamed_os.path.join is mock

    # check renamed_path.join
    assert isinstance(_test_patching.renamed_path     ,		_PatchedModuleObj   )
    assert _test_patching.renamed_path.join is mock

    # check renamed_join
    assert _test_patching.renamed_join is mock

    # check that the other attributes are untouched
    assert _test_patching.renamed_os.rename is original_rename
    assert _test_patching.renamed_path.dirname is original_dirname
    assert _test_patching.renamed_os.path.dirname is original_dirname

  # check that everthing is back to normal when the patch is over

  assert _test_patching.os is original_os
  assert _test_patching.path is original_path
  assert _test_patching.join is original_join

  assert _test_patching.renamed_os is original_os
  assert _test_patching.renamed_path is original_path
  assert _test_patching.renamed_join is original_join






def 	_snake_case						(      ):
  """simple docstring"""







  assert _test_patching.open is open

  a_      :	Tuple      =							"""__test_patch_submodule_builtin_mock__"""
  # _test_patching has "open" in its globals
  assert _test_patching.open is open
  with patch_submodule(_test_patching     ,		"""open"""     ,		A_   ):
    assert _test_patching.open is mock

  # check that everthing is back to normal when the patch is over

  assert _test_patching.open is open






def 	_snake_case						(      ):
  """simple docstring"""







  a_      :	Any      =							"""__test_patch_submodule_missing_mock__"""
  with patch_submodule(_test_patching     ,		"""pandas.read_csv"""     ,		A_   ):
    pass






def 	_snake_case						(      ):
  """simple docstring"""







  a_      :	int      =							"""__test_patch_submodule_missing_builtin_mock__"""
  # _test_patching doesn't have "len" in its globals
  assert getattr(_test_patching     ,		"""len"""     ,		A_   ) is None
  with patch_submodule(_test_patching     ,		"""len"""     ,		A_   ):
    assert _test_patching.len is mock
  assert _test_patching.len is len






def 	_snake_case						(      ):
  """simple docstring"""







  a_      :	List[str]      =							"""__test_patch_submodule_start_and_stop_mock__"""
  a_      :	int      =							patch_submodule(_test_patching     ,		"""open"""     ,		A_   )
  assert _test_patching.open is open
  patch.start()
  assert _test_patching.open is mock
  patch.stop()
  assert _test_patching.open is open






def 	_snake_case						(      ):
  """simple docstring"""







  from os import rename as original_rename
  from os.path import dirname as original_dirname
  from os.path import join as original_join

  a_      :	Any      =							"""__test_patch_submodule_successive_join__"""
  a_      :	Optional[Any]      =							"""__test_patch_submodule_successive_dirname__"""
  a_      :	Optional[int]      =							"""__test_patch_submodule_successive_rename__"""
  assert _test_patching.os.path.join is original_join
  assert _test_patching.os.path.dirname is original_dirname
  assert _test_patching.os.rename is original_rename

  with patch_submodule(_test_patching     ,		"""os.path.join"""     ,		A_   ):
    with patch_submodule(_test_patching     ,		"""os.rename"""     ,		A_   ):
      with patch_submodule(_test_patching     ,		"""os.path.dirname"""     ,		A_   ):
        assert _test_patching.os.path.join is mock_join
        assert _test_patching.os.path.dirname is mock_dirname
        assert _test_patching.os.rename is mock_rename

    # try another order
  with patch_submodule(_test_patching     ,		"""os.rename"""     ,		A_   ):
    with patch_submodule(_test_patching     ,		"""os.path.join"""     ,		A_   ):
      with patch_submodule(_test_patching     ,		"""os.path.dirname"""     ,		A_   ):
        assert _test_patching.os.path.join is mock_join
        assert _test_patching.os.path.dirname is mock_dirname
        assert _test_patching.os.rename is mock_rename

  assert _test_patching.os.path.join is original_join
  assert _test_patching.os.path.dirname is original_dirname
  assert _test_patching.os.rename is original_rename






def 	_snake_case						(      ):
  """simple docstring"""







  a_      :	Optional[int]      =							"""__test_patch_submodule_doesnt_exist_mock__"""
  with patch_submodule(_test_patching     ,		"""__module_that_doesn_exist__.__attribute_that_doesn_exist__"""     ,		A_   ):
    pass
  with patch_submodule(_test_patching     ,		"""os.__attribute_that_doesn_exist__"""     ,		A_   ):
    pass


