





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

  _snake_case     		=				"__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 				snake_case_      (		):







  '''simple docstring'''



  assert _test_patching.open is open

  _snake_case     		=				"__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 				snake_case_      (		):







  '''simple docstring'''



  _snake_case     		=				"__test_patch_submodule_missing_mock__"
  with patch_submodule(_test_patching					,	"pandas.read_csv"					,	SCREAMING_SNAKE_CASE__       ):
    pass




def 				snake_case_      (		):







  '''simple docstring'''



  _snake_case     		=				"__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 				snake_case_      (		):







  '''simple docstring'''



  _snake_case     		=				"__test_patch_submodule_start_and_stop_mock__"
  _snake_case     		=				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 				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

  _snake_case     		=				"__test_patch_submodule_successive_join__"
  _snake_case     		=				"__test_patch_submodule_successive_dirname__"
  _snake_case     		=				"__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 				snake_case_      (		):







  '''simple docstring'''



  _snake_case     		=				"__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 Mapping

from packaging import version

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


__magic_name__   :						Dict    =			logging.get_logger(__name__)

__magic_name__   :						Dict    =			{
    """google/mobilenet_v1_1.0_224""": """https://huggingface.co/google/mobilenet_v1_1.0_224/resolve/main/config.json""",
    """google/mobilenet_v1_0.75_192""": """https://huggingface.co/google/mobilenet_v1_0.75_192/resolve/main/config.json""",
    # See all MobileNetV1 models at https://huggingface.co/models?filter=mobilenet_v1
}


class       __SCREAMING_SNAKE_CASE	(						__UpperCamelCase			):



     '''simple docstring'''






     UpperCAmelCase__       :						List[Any]      =   '''mobilenet_v1'''

     def __init__(					self						,   lowerCamelCase=3						,   lowerCamelCase=224						,   lowerCamelCase=1.0						,   lowerCamelCase=8						,   lowerCamelCase="relu6"						,   lowerCamelCase=True						,   lowerCamelCase=0.999						,   lowerCamelCase=0.02						,   lowerCamelCase=0.001						,   **lowerCamelCase						,   ):
       super().__init__(**lowerCamelCase	)

       if depth_multiplier <= 0:
         raise ValueError("depth_multiplier must be greater than zero."	)

       _snake_case     		=				num_channels
       _snake_case     		=				image_size
       _snake_case     		=				depth_multiplier
       _snake_case     		=				min_depth
       _snake_case     		=				hidden_act
       _snake_case     		=				tf_padding
       _snake_case     		=				classifier_dropout_prob
       _snake_case     		=				initializer_range
       _snake_case     		=				layer_norm_eps







class       __SCREAMING_SNAKE_CASE	(						__UpperCamelCase			):



     '''simple docstring'''






     UpperCAmelCase__       :						int      =   version.parse('''1.11'''			)

     @property
     def 	UpperCamelCase(					self	):
       return OrderedDict([("pixel_values", {0: "batch"})]	)

     @property
     def 	UpperCamelCase(					self	):
       if self.task == "image-classification":
         return OrderedDict([("logits", {0: "batch"})]	)
       else:
         return OrderedDict([("last_hidden_state", {0: "batch"}), ("pooler_output", {0: "batch"})]	)






     @property
     def 	UpperCamelCase(					self	):
       return 1e-4


