





# Copyright 2021 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.

import argparse
import os

from accelerate.utils import ComputeEnvironment

from .cluster import get_cluster_input
from .config_args import cache_dir, default_config_file, default_yaml_config_file, load_config_from_file  # noqa: F401
from .config_utils import _ask_field, _ask_options, _convert_compute_environment  # noqa: F401
from .sagemaker import get_sagemaker_input


lowerCamelCase__				  =   "Launches a series of prompts to create and save a `default_config.yaml` configuration file for your training system. Should always be ran first on your machine"




def 					lowercase__    (					)					->		Optional[int]:




      """simple docstring"""

      _UpperCamelCase      :	Dict						=       _ask_options(
          "In which compute environment are you running?"		,["This machine", "AWS (Amazon SageMaker)"]		,_convert_compute_environment		,)
      if compute_environment == ComputeEnvironment.AMAZON_SAGEMAKER:
            _UpperCamelCase      :	Dict						=       get_sagemaker_input()
      else:
            _UpperCamelCase      :	Tuple						=       get_cluster_input()
      return config




def 					lowercase__    (					lowercase_=None			)					->		Optional[int]:




      """simple docstring"""

      if subparsers is not None:
            _UpperCamelCase      :	Any						=       subparsers.add_parser("config"		,description=SCREAMING_SNAKE_CASE_			)
      else:
            _UpperCamelCase      :	Optional[Any]						=       argparse.ArgumentParser("Accelerate config command"		,description=SCREAMING_SNAKE_CASE_			)

      parser.add_argument(
          "--config_file"		,default=SCREAMING_SNAKE_CASE_		,help=(
              "The path to use to store the config file. 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\'."
          )		,)

      if subparsers is not None:
            parser.set_defaults(func=SCREAMING_SNAKE_CASE_			)
      return parser




def 					lowercase__    (					lowercase_			)					->		int:




      """simple docstring"""

      _UpperCamelCase      :	List[Any]						=       get_user_input()
      if args.config_file is not None:
            _UpperCamelCase      :	Union[str, Any]						=       args.config_file
      else:
            if not os.path.isdir(SCREAMING_SNAKE_CASE_			):
                  os.makedirs(SCREAMING_SNAKE_CASE_			)
            _UpperCamelCase      :	Optional[Any]						=       default_yaml_config_file

      if config_file.endswith(".json"			):
            config.to_json_file(SCREAMING_SNAKE_CASE_			)
      else:
            config.to_yaml_file(SCREAMING_SNAKE_CASE_			)
      print(F'''accelerate configuration saved at {config_file}'''			)




def 					lowercase__    (					)					->		Union[str, Any]:




      """simple docstring"""

      _UpperCamelCase      :	Optional[Any]						=       config_command_parser()
      _UpperCamelCase      :	Tuple						=       parser.parse_args()
      config_command(SCREAMING_SNAKE_CASE_			)


if __name__ == "__main__":
  main()







"""simple docstring"""


from typing import TYPE_CHECKING

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


lowerCamelCase__				  =   {
    "configuration_mask2former": [
        "MASK2FORMER_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "Mask2FormerConfig",
    ],
}

try:
  if not is_vision_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowerCamelCase__				  =   ["Mask2FormerImageProcessor"]

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowerCamelCase__				  =   [
      "MASK2FORMER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "Mask2FormerForUniversalSegmentation",
      "Mask2FormerModel",
      "Mask2FormerPreTrainedModel",
  ]

if TYPE_CHECKING:
  from .configuration_maskaformer import MASK2FORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, MaskaFormerConfig

  try:
    if not is_vision_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .image_processing_maskaformer import MaskaFormerImageProcessor

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_maskaformer import (
        MASK2FORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
        MaskaFormerForUniversalSegmentation,
        MaskaFormerModel,
        MaskaFormerPreTrainedModel,
    )


else:
  import sys

  lowerCamelCase__				  =   _LazyModule(__name__, globals()["__file__"], _import_structure)
