


# 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


UpperCAmelCase      =   """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 	__lowerCAmelCase   ()->  Optional[int]:




      """simple docstring"""

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






def 	__lowerCAmelCase   (SCREAMING_SNAKE_CASE=None )->  int:




      """simple docstring"""

      if subparsers is not None:
            snake_case_	=				subparsers.add_parser('''config''' , description=SCREAMING_SNAKE_CASE )
      else:
            snake_case_	=				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 	__lowerCAmelCase   (SCREAMING_SNAKE_CASE )->  Optional[int]:




      """simple docstring"""

      snake_case_	=				get_user_input()
      if args.config_file is not None:
            snake_case_	=				args.config_file
      else:
            if not os.path.isdir(SCREAMING_SNAKE_CASE ):
                  os.makedirs(SCREAMING_SNAKE_CASE )
            snake_case_	=				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 	__lowerCAmelCase   ()->  str:




      """simple docstring"""

      snake_case_	=				config_command_parser()
      snake_case_	=				parser.parse_args()
      config_command(SCREAMING_SNAKE_CASE )


if __name__ == "__main__":
   main()



# Function to print upper half of diamond (pyramid)






def 	__lowerCAmelCase   (SCREAMING_SNAKE_CASE )->  Dict:




      """simple docstring"""

      for i in range(0 , SCREAMING_SNAKE_CASE ):
            for _ in range(0 , n - i - 1 ):  # printing spaces
                  print(''' ''' , end='''''' )
            for _ in range(0 , i + 1 ):  # printing stars
                  print('''* ''' , end='''''' )
            print()






def 	__lowerCAmelCase   (SCREAMING_SNAKE_CASE )->  Dict:




      """simple docstring"""

      for i in range(SCREAMING_SNAKE_CASE , 0 , -1 ):
            for _ in range(SCREAMING_SNAKE_CASE , 0 , -1 ):  # printing stars
                  print('''* ''' , end='''''' )
            print()
            for _ in range(n - i + 1 , 0 , -1 ):  # printing spaces
                  print(''' ''' , end='''''' )






def 	__lowerCAmelCase   (SCREAMING_SNAKE_CASE )->  Any:




      """simple docstring"""

      if n <= 0:
            print('''       ...       ....        nothing printing :(''' )
            return
      floyd(SCREAMING_SNAKE_CASE )  # upper half
      reverse_floyd(SCREAMING_SNAKE_CASE )  # lower half


if __name__ == "__main__":
   print(r"""| /\ | |- |  |-  |--| |\  /| |-""")
   print(r"""|/  \| |- |_ |_  |__| | \/ | |_""")
   UpperCAmelCase      =   1
   while K:
      UpperCAmelCase      =   int(input("""enter the number and , and see the magic : """))
      print()
      pretty_print(user_number)
      UpperCAmelCase      =   int(input("""press 0 to exit... and 1 to continue..."""))

   print("""Good Bye...""")