





from datasets.utils.patching import _PatchedModuleObj, patch_submodule

from . import _test_patching
def      A__       (    )  ->  Dict:






   """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

   _UpperCAmelCase           =   '''__test_patch_submodule_mock__'''
   with patch_submodule(_test_patching				,	'''os.path.join'''				,	SCREAMING_SNAKE_CASE_						):
      # 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      A__       (    )  ->  Dict:






   """simple docstring"""







   assert _test_patching.open is open

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






   """simple docstring"""







   _UpperCAmelCase           =   '''__test_patch_submodule_missing_mock__'''
   with patch_submodule(_test_patching				,	'''pandas.read_csv'''				,	SCREAMING_SNAKE_CASE_						):
      pass
def      A__       (    )  ->  List[Any]:






   """simple docstring"""







   _UpperCAmelCase           =   '''__test_patch_submodule_missing_builtin_mock__'''
   # _test_patching doesn't have "len" in its globals
   assert getattr(_test_patching				,	'''len'''				,	SCREAMING_SNAKE_CASE_						) is None
   with patch_submodule(_test_patching				,	'''len'''				,	SCREAMING_SNAKE_CASE_						):
      assert _test_patching.len is mock
   assert _test_patching.len is len
def      A__       (    )  ->  Tuple:






   """simple docstring"""







   _UpperCAmelCase           =   '''__test_patch_submodule_start_and_stop_mock__'''
   _UpperCAmelCase           =   patch_submodule(_test_patching				,	'''open'''				,	SCREAMING_SNAKE_CASE_						)
   assert _test_patching.open is open
   patch.start()
   assert _test_patching.open is mock
   patch.stop()
   assert _test_patching.open is open
def      A__       (    )  ->  Union[str, Any]:






   """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

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






   """simple docstring"""







   _UpperCAmelCase           =   '''__test_patch_submodule_doesnt_exist_mock__'''
   with patch_submodule(_test_patching				,	'''__module_that_doesn_exist__.__attribute_that_doesn_exist__'''				,	SCREAMING_SNAKE_CASE_						):
      pass
   with patch_submodule(_test_patching				,	'''os.__attribute_that_doesn_exist__'''				,	SCREAMING_SNAKE_CASE_						):
      pass




'''simple docstring'''

from collections import OrderedDict
from typing import List, Mapping

from packaging import version

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


SCREAMING_SNAKE_CASE__     :						Union[str, Any]	=  logging.get_logger(__name__)

SCREAMING_SNAKE_CASE__     :						Union[str, Any]	=  {
    '''google/efficientnet-b7''': '''https://huggingface.co/google/efficientnet-b7/resolve/main/config.json''',
}

class 							a__( snake_case__     ):
			a_	: int									=      '''efficientnet'''






			def __init__(     self					,   _UpperCAmelCase = 3					,   _UpperCAmelCase = 600					,   _UpperCAmelCase = 2.0					,   _UpperCAmelCase = 3.1					,   _UpperCAmelCase = 8					,   _UpperCAmelCase = [3, 3, 5, 3, 5, 5, 3]					,   _UpperCAmelCase = [32, 16, 24, 40, 80, 112, 192]					,   _UpperCAmelCase = [16, 24, 40, 80, 112, 192, 320]					,   _UpperCAmelCase = []					,   _UpperCAmelCase = [1, 2, 2, 2, 1, 2, 1]					,   _UpperCAmelCase = [1, 2, 2, 3, 3, 4, 1]					,   _UpperCAmelCase = [1, 6, 6, 6, 6, 6, 6]					,   _UpperCAmelCase = 0.25					,   _UpperCAmelCase = "swish"					,   _UpperCAmelCase = 2560					,   _UpperCAmelCase = "mean"					,   _UpperCAmelCase = 0.02					,   _UpperCAmelCase = 0.001					,   _UpperCAmelCase = 0.99					,   _UpperCAmelCase = 0.5					,   _UpperCAmelCase = 0.2					,   **_UpperCAmelCase					,   )							->							Dict:
					super().__init__(**_UpperCAmelCase						)

					snake_case__	     =num_channels
					snake_case__	     =image_size
					snake_case__	     =width_coefficient
					snake_case__	     =depth_coefficient
					snake_case__	     =depth_divisor
					snake_case__	     =kernel_sizes
					snake_case__	     =in_channels
					snake_case__	     =out_channels
					snake_case__	     =depthwise_padding
					snake_case__	     =strides
					snake_case__	     =num_block_repeats
					snake_case__	     =expand_ratios
					snake_case__	     =squeeze_expansion_ratio
					snake_case__	     =hidden_act
					snake_case__	     =hidden_dim
					snake_case__	     =pooling_type
					snake_case__	     =initializer_range
					snake_case__	     =batch_norm_eps
					snake_case__	     =batch_norm_momentum
					snake_case__	     =dropout_rate
					snake_case__	     =drop_connect_rate
					snake_case__	     =sum(_UpperCAmelCase						) * 4





class 							a__( snake_case__     ):
			a_	: List[str]									=      version.parse('''1.11'''     )






			@property
			def 						_lowercase  (     self						)							->							Mapping[str, Mapping[int, str]]:
					return OrderedDict(
					    [
					        ('pixel_values', {0: 'batch', 1: 'num_channels', 2: 'height', 3: 'width'}),
					    ]						)






			@property
			def 						_lowercase  (     self						)							->							float:
					return 1E-5




