



# Copyright 2022 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from pathlib import Path

from .config_args import default_config_file, load_config_from_file
from .config_utils import SubcommandHelpFormatter


A__       =			"""Update an existing config file with the latest defaults while maintaining the old configuration."""


def 						_UpperCAmelCase							( snake_case     ):





					"""simple docstring"""

					_lowerCAmelCase         =       args.config_file
					if config_file is None and Path(snake_case     ).exists():
										_lowerCAmelCase         =       default_config_file
					elif not Path(snake_case     ).exists():
										raise ValueError(F'The passed config file located at {config_file} doesn\'t exist.'     )
					_lowerCAmelCase         =       load_config_from_file(snake_case     )

					if config_file.endswith(""".json"""     ):
										config.to_json_file(snake_case     )
					else:
										config.to_yaml_file(snake_case     )
					return config_file


def 						_UpperCAmelCase							( snake_case      ,		snake_case     ):





					"""simple docstring"""

					_lowerCAmelCase         =       parser.add_parser("""update"""      ,		parents=snake_case      ,		help=snake_case      ,		formatter_class=snake_case     )
					parser.add_argument(
					    """--config_file"""      ,		default=snake_case      ,		help=(
					        """The path to the config file to update. Will default to a file named default_config.yaml in the cache """
					        """location, which is the content of the environment `HF_HOME` suffixed with 'accelerate', or if you don't have """
					        """such an environment variable, your cache directory ('~/.cache' or the content of `XDG_CACHE_HOME`) suffixed """
					        """with 'huggingface'."""
					    )      ,		)

					parser.set_defaults(func=snake_case     )
					return parser


def 						_UpperCAmelCase							( snake_case     ):





					"""simple docstring"""

					_lowerCAmelCase         =       update_config(snake_case     )
					print(F'Sucessfully updated the configuration file at {config_file}.'     )










from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


snake_case__   :				Dict						=	{
    'configuration_videomae': ['VIDEOMAE_PRETRAINED_CONFIG_ARCHIVE_MAP', 'VideoMAEConfig'],
}

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       snake_case__   :				Any						=	[
           'VIDEOMAE_PRETRAINED_MODEL_ARCHIVE_LIST',
           'VideoMAEForPreTraining',
           'VideoMAEModel',
           'VideoMAEPreTrainedModel',
           'VideoMAEForVideoClassification',
       ]

try:
       if not is_vision_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       snake_case__   :				str						=	['VideoMAEFeatureExtractor']
       snake_case__   :				Tuple						=	['VideoMAEImageProcessor']

if TYPE_CHECKING:
       from .configuration_videomae import VIDEOMAE_PRETRAINED_CONFIG_ARCHIVE_MAP, VideoMAEConfig

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_videomae import (
                  VIDEOMAE_PRETRAINED_MODEL_ARCHIVE_LIST,
                  VideoMAEForPreTraining,
                  VideoMAEForVideoClassification,
                  VideoMAEModel,
                  VideoMAEPreTrainedModel,
              )

       try:
              if not is_vision_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .feature_extraction_videomae import VideoMAEFeatureExtractor
              from .image_processing_videomae import VideoMAEImageProcessor

else:
       import sys

       snake_case__   :				Optional[Any]						=	_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)





