



'''simple docstring'''



# 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 					UpperCAmelCase   (						A  :				Union[str, Any]=None				):
							if subparsers is not None:
														SCREAMING_SNAKE_CASE					:      Optional[int]     					=			subparsers.add_parser('''env'''				)
							else:
														SCREAMING_SNAKE_CASE					:      int     					=			argparse.ArgumentParser('''Accelerate env command'''				)

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

							if subparsers is not None:
														parser.set_defaults(func=A				)
							return parser
def 					UpperCAmelCase   (						A  :				Union[str, Any]				):
							SCREAMING_SNAKE_CASE					:      str     					=			torch.__version__
							SCREAMING_SNAKE_CASE					:      Optional[int]     					=			torch.cuda.is_available()
							SCREAMING_SNAKE_CASE					:      int     					=			is_xpu_available()
							SCREAMING_SNAKE_CASE					:      Optional[int]     					=			is_npu_available()

							SCREAMING_SNAKE_CASE					:      str     					=			'''Not found'''
							# Get the default from the config file.
							if args.config_file is not None or os.path.isfile(A				):
														SCREAMING_SNAKE_CASE					:      int     					=			load_config_from_file(args.config_file				).to_dict()

							SCREAMING_SNAKE_CASE					:      List[Any]     					=			{
							    '''`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(A				),
							    '''PyTorch NPU available''': str(A				),
							    '''System RAM''': F"""{psutil.virtual_memory().total / 1024 ** 3:.2f} GB""",
							}
							if pt_cuda_available:
														SCREAMING_SNAKE_CASE					:      str     					=			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:'''				)
							SCREAMING_SNAKE_CASE					:      Optional[Any]     					=			(
							    '''\n'''.join([F"""\t- {prop}: {val}""" for prop, val in accelerate_config.items()]				)
							    if isinstance(A					,		A				)
							    else F"""\t{accelerate_config}"""
							)
							print(A				)

							SCREAMING_SNAKE_CASE					:      List[str]     					=			accelerate_config

							return info
def 					UpperCAmelCase   (						):
							SCREAMING_SNAKE_CASE					:      Optional[Any]     					=			env_command_parser()
							SCREAMING_SNAKE_CASE					:      Any     					=			parser.parse_args()
							env_command(A				)
							return 0


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









'''simple docstring'''



from urllib.parse import quote

import pytest

from datasets.utils.hub import hf_hub_url
@pytest.mark.parametrize('''repo_id'''					,		['''canonical_dataset_name''', '''org-name/dataset-name''']				)
@pytest.mark.parametrize('''path'''					,		['''filename.csv''', '''filename with blanks.csv''']				)
@pytest.mark.parametrize('''revision'''					,		[None, '''v2''']				)
def 					UpperCAmelCase   (						A  :				int					,		A  :				Tuple					,		A  :				Any				):
							SCREAMING_SNAKE_CASE					:      int     					=			hf_hub_url(repo_id=A					,		path=A					,		revision=A				)
							assert url == F"""https://huggingface.co/datasets/{repo_id}/resolve/{revision or "main"}/{quote(A				)}"""




