





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

import argparse
import os
import platform

import numpy as np
import psutil
import torch

from accelerate import __version__ as version
from accelerate.commands.config import default_config_file, load_config_from_file

from ..utils import is_npu_available, is_xpu_available

def       A__(		__lowerCAmelCase=None ):
				if subparsers is not None:
								_snake_case :			List[str]  						=   subparsers.add_parser('env' )
				else:
								_snake_case :			Optional[int]  						=   argparse.ArgumentParser('Accelerate env command' )

				parser.add_argument(
				    '--config_file'	,			default=__lowerCAmelCase	,			help='The config file to use for the default values in the launching script.' )

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

def       A__(		__lowerCAmelCase ):
				_snake_case :			List[Any]  						=   torch.__version__
				_snake_case :			Any  						=   torch.cuda.is_available()
				_snake_case :			Tuple  						=   is_xpu_available()
				_snake_case :			Tuple  						=   is_npu_available()

				_snake_case :			Tuple  						=   'Not found'
				# Get the default from the config file.
				if args.config_file is not None or os.path.isfile(__lowerCAmelCase ):
								_snake_case :			Any  						=   load_config_from_file(args.config_file ).to_dict()

				_snake_case :			str  						=   {
				    '`Accelerate` version': version,
				    'Platform': platform.platform(),
				    'Python version': platform.python_version(),
				    'Numpy version': np.__version__,
				    'PyTorch version (GPU?)': F'''{pt_version} ({pt_cuda_available})''',
				    'PyTorch XPU available': str(__lowerCAmelCase ),
				    'PyTorch NPU available': str(__lowerCAmelCase ),
				    'System RAM': F'''{psutil.virtual_memory().total / 10_24 ** 3:.2f} GB''',
				}
				if pt_cuda_available:
								_snake_case :			Union[str, Any]  						=   torch.cuda.get_device_name()

				print('\nCopy-and-paste the text below in your GitHub issue\n' )
				print('\n'.join([F'''- {prop}: {val}''' for prop, val in info.items()] ) )

				print('- `Accelerate` default config:' if args.config_file is None else '- `Accelerate` config passed:' )
				_snake_case :			Optional[int]  						=   (
				    '\n'.join([F'''\t- {prop}: {val}''' for prop, val in accelerate_config.items()] )
				    if isinstance(__lowerCAmelCase	,			__lowerCAmelCase )
				    else F'''\t{accelerate_config}'''
				)
				print(__lowerCAmelCase )

				_snake_case :			List[str]  						=   accelerate_config

				return info

def       A__(		):
				_snake_case :			List[str]  						=   env_command_parser()
				_snake_case :			Dict  						=   parser.parse_args()
				env_command(__lowerCAmelCase )
				return 0


if __name__ == "__main__":
		raise SystemExit(main())













lowercase_		:				Tuple				=						'''
# Installazione di Transformers
! pip install transformers datasets
# Per installare dalla fonte invece dell\'ultima versione rilasciata, commenta il comando sopra e
# rimuovi la modalità commento al comando seguente.
# ! pip install git+https://github.com/huggingface/transformers.git
'''

lowercase_		:				Optional[int]				=						[{'''type''': '''code''', '''content''': INSTALL_CONTENT}]
lowercase_		:				str				=						{
    '''{processor_class}''': '''FakeProcessorClass''',
    '''{model_class}''': '''FakeModelClass''',
    '''{object_class}''': '''FakeObjectClass''',
}






