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

		SCREAMING_SNAKE_CASE_  :		str				      =    "__test_patch_submodule_mock__"
		with patch_submodule(_test_patching   , "os.path.join"   , lowerCAmelCase	):
				# 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

		SCREAMING_SNAKE_CASE_  :		Any				      =    "__test_patch_submodule_builtin_mock__"
		# _test_patching has "open" in its globals
		assert _test_patching.open is open
		with patch_submodule(_test_patching   , "open"   , lowerCAmelCase	):
				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"""







		SCREAMING_SNAKE_CASE_  :		int				      =    "__test_patch_submodule_missing_mock__"
		with patch_submodule(_test_patching   , "pandas.read_csv"   , lowerCAmelCase	):
				pass




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







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




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







		SCREAMING_SNAKE_CASE_  :		Optional[int]				      =    "__test_patch_submodule_start_and_stop_mock__"
		SCREAMING_SNAKE_CASE_  :		Union[str, Any]				      =    patch_submodule(_test_patching   , "open"   , lowerCAmelCase	)
		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

		SCREAMING_SNAKE_CASE_  :		Tuple				      =    "__test_patch_submodule_successive_join__"
		SCREAMING_SNAKE_CASE_  :		List[Any]				      =    "__test_patch_submodule_successive_dirname__"
		SCREAMING_SNAKE_CASE_  :		List[str]				      =    "__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"   , lowerCAmelCase	):
				with patch_submodule(_test_patching   , "os.rename"   , lowerCAmelCase	):
						with patch_submodule(_test_patching   , "os.path.dirname"   , lowerCAmelCase	):
								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"   , lowerCAmelCase	):
				with patch_submodule(_test_patching   , "os.path.join"   , lowerCAmelCase	):
						with patch_submodule(_test_patching   , "os.path.dirname"   , lowerCAmelCase	):
								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"""







		SCREAMING_SNAKE_CASE_  :		Dict				      =    "__test_patch_submodule_doesnt_exist_mock__"
		with patch_submodule(_test_patching   , "__module_that_doesn_exist__.__attribute_that_doesn_exist__"   , lowerCAmelCase	):
				pass
		with patch_submodule(_test_patching   , "os.__attribute_that_doesn_exist__"   , lowerCAmelCase	):
				pass




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


A      :    str		=					logging.get_logger(__name__)

A      :    int		=					{
    "alibaba-damo/mgp-str-base": "https://huggingface.co/alibaba-damo/mgp-str-base/resolve/main/config.json",
}







class 			_lowercase (							lowercase__):


       """simple docstring"""




       A__											=			"mgp-str"





       def __init__(   self							:			List[str]					,      __lowerCamelCase							:			List[Any]=[32, 128]					,      __lowerCamelCase							:			Optional[int]=4					,      __lowerCamelCase							:			str=3					,      __lowerCamelCase							:			Optional[Any]=27					,      __lowerCamelCase							:			List[str]=38					,      __lowerCamelCase							:			Dict=50257					,      __lowerCamelCase							:			List[Any]=30522					,      __lowerCamelCase							:			Optional[Any]=768					,      __lowerCamelCase							:			str=12					,      __lowerCamelCase							:			Optional[int]=12					,      __lowerCamelCase							:			List[str]=4.0					,      __lowerCamelCase							:			Union[str, Any]=True					,      __lowerCamelCase							:			Any=False					,      __lowerCamelCase							:			Dict=1E-5					,      __lowerCamelCase							:			int=0.0					,      __lowerCamelCase							:			Optional[int]=0.0					,      __lowerCamelCase							:			List[Any]=0.0					,      __lowerCamelCase							:			Union[str, Any]=False					,      __lowerCamelCase							:			str=0.0_2					,      **__lowerCamelCase							:			Dict					,      ):


             '''simple docstring'''



             super().__init__(**__lowerCamelCase       )

             lowerCamelCase__		:				int    =  image_size
             lowerCamelCase__		:				Union[str, Any]    =  patch_size
             lowerCamelCase__		:				Dict    =  num_channels
             lowerCamelCase__		:				Union[str, Any]    =  max_token_length
             lowerCamelCase__		:				Optional[int]    =  num_character_labels
             lowerCamelCase__		:				Union[str, Any]    =  num_bpe_labels
             lowerCamelCase__		:				Optional[int]    =  num_wordpiece_labels
             lowerCamelCase__		:				List[str]    =  hidden_size
             lowerCamelCase__		:				Dict    =  num_hidden_layers
             lowerCamelCase__		:				Any    =  num_attention_heads
             lowerCamelCase__		:				Any    =  mlp_ratio
             lowerCamelCase__		:				List[Any]    =  distilled
             lowerCamelCase__		:				Optional[Any]    =  layer_norm_eps
             lowerCamelCase__		:				Union[str, Any]    =  drop_rate
             lowerCamelCase__		:				List[Any]    =  qkv_bias
             lowerCamelCase__		:				int    =  attn_drop_rate
             lowerCamelCase__		:				List[Any]    =  drop_path_rate
             lowerCamelCase__		:				List[str]    =  output_aa_attentions
             lowerCamelCase__		:				Dict    =  initializer_range


