"""simple docstring"""






__A       =					{
    "Pillow": "Pillow<10.0.0",
    "accelerate": "accelerate>=0.20.3",
    "av": "av==9.2.0",
    "beautifulsoup4": "beautifulsoup4",
    "black": "black~=23.1",
    "codecarbon": "codecarbon==1.2.0",
    "cookiecutter": "cookiecutter==1.7.3",
    "dataclasses": "dataclasses",
    "datasets": "datasets!=2.5.0",
    "decord": "decord==0.6.0",
    "deepspeed": "deepspeed>=0.9.3",
    "diffusers": "diffusers",
    "dill": "dill<0.3.5",
    "evaluate": "evaluate>=0.2.0",
    "fairscale": "fairscale>0.3",
    "faiss-cpu": "faiss-cpu",
    "fastapi": "fastapi",
    "filelock": "filelock",
    "flax": "flax>=0.4.1,<=0.7.0",
    "ftfy": "ftfy",
    "fugashi": "fugashi>=1.0",
    "GitPython": "GitPython<3.1.19",
    "hf-doc-builder": "hf-doc-builder>=0.3.0",
    "huggingface-hub": "huggingface-hub>=0.14.1,<1.0",
    "importlib_metadata": "importlib_metadata",
    "ipadic": "ipadic>=1.0.0,<2.0",
    "isort": "isort>=5.5.4",
    "jax": "jax>=0.2.8,!=0.3.2,<=0.4.13",
    "jaxlib": "jaxlib>=0.1.65,<=0.4.13",
    "jieba": "jieba",
    "kenlm": "kenlm",
    "keras-nlp": "keras-nlp>=0.3.1",
    "librosa": "librosa",
    "nltk": "nltk",
    "natten": "natten>=0.14.6",
    "numpy": "numpy>=1.17",
    "onnxconverter-common": "onnxconverter-common",
    "onnxruntime-tools": "onnxruntime-tools>=1.4.2",
    "onnxruntime": "onnxruntime>=1.4.0",
    "opencv-python": "opencv-python",
    "optuna": "optuna",
    "optax": "optax>=0.0.8,<=0.1.4",
    "packaging": "packaging>=20.0",
    "parameterized": "parameterized",
    "phonemizer": "phonemizer",
    "protobuf": "protobuf",
    "psutil": "psutil",
    "pyyaml": "pyyaml>=5.1",
    "pydantic": "pydantic<2",
    "pytest": "pytest>=7.2.0",
    "pytest-timeout": "pytest-timeout",
    "pytest-xdist": "pytest-xdist",
    "python": "python>=3.8.0",
    "ray[tune]": "ray[tune]",
    "regex": "regex!=2019.12.17",
    "requests": "requests",
    "rhoknp": "rhoknp>=1.1.0,<1.3.1",
    "rjieba": "rjieba",
    "rouge-score": "rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1",
    "ruff": "ruff>=0.0.241,<=0.0.259",
    "sacrebleu": "sacrebleu>=1.4.12,<2.0.0",
    "sacremoses": "sacremoses",
    "safetensors": "safetensors>=0.3.1",
    "sagemaker": "sagemaker>=2.31.0",
    "scikit-learn": "scikit-learn",
    "sentencepiece": "sentencepiece>=0.1.91,!=0.1.92",
    "sigopt": "sigopt",
    "starlette": "starlette",
    "sudachipy": "sudachipy>=0.6.6",
    "sudachidict_core": "sudachidict_core>=20220729",
    "tensorflow-cpu": "tensorflow-cpu>=2.6,<2.14",
    "tensorflow": "tensorflow>=2.6,<2.14",
    "tensorflow-text": "tensorflow-text<2.14",
    "tf2onnx": "tf2onnx",
    "timeout-decorator": "timeout-decorator",
    "timm": "timm",
    "tokenizers": "tokenizers>=0.11.1,!=0.11.3,<0.14",
    "torch": "torch>=1.9,!=1.12.0",
    "torchaudio": "torchaudio",
    "torchvision": "torchvision",
    "pyctcdecode": "pyctcdecode>=0.4.0",
    "tqdm": "tqdm>=4.27",
    "unidic": "unidic>=1.0.2",
    "unidic_lite": "unidic_lite>=1.0.7",
    "urllib3": "urllib3<2.0.0",
    "uvicorn": "uvicorn",
}








'''simple docstring'''



import importlib.util
import os
import platform
from argparse import ArgumentParser

import huggingface_hub

from .. import __version__ as version
from ..utils import (
    is_accelerate_available,
    is_flax_available,
    is_safetensors_available,
    is_tf_available,
    is_torch_available,
)
from . import BaseTransformersCLICommand


def 				lowercase_					(     __A			:							List[Any]      )							->   Union[str, Any]:



 """simple docstring"""




 return EnvironmentCommand()


def 				lowercase_					(     __A			:							int      )							->   Dict:



 """simple docstring"""




 return EnvironmentCommand(args.accelerate_config_file      )





class UpperCAmelCase_       (     __A					):




      """simple docstring"""




      @staticmethod
      def 					A__   (			UpperCAmelCase      :		ArgumentParser		)	->	List[str]:


       '''simple docstring'''

       lowercase       : Optional[int]						=parser.add_parser('''env'''		)
       download_parser.set_defaults(func=UpperCAmelCase		)
       download_parser.add_argument(
           '''--accelerate-config_file'''  ,   default=UpperCAmelCase  ,   help='''The accelerate config file to use for the default values in the launching script.'''  ,   )
       download_parser.set_defaults(func=UpperCAmelCase		)






      def __init__(			self      :		Dict  ,   UpperCAmelCase      :		Tuple  ,   *UpperCAmelCase      :		Tuple		)	->	None:


       '''simple docstring'''

       lowercase       : List[str]						=accelerate_config_file






      def 					A__   (			self      :		Tuple		)	->	int:


       '''simple docstring'''

       lowercase       : Optional[Any]						='''not installed'''
       if is_safetensors_available():
        import safetensors

        lowercase       : List[Any]						=safetensors.__version__
       elif importlib.util.find_spec('''safetensors'''		) is not None:
        import safetensors

        lowercase       : List[str]						=f'{safetensors.__version__} but is ignored because of PyTorch version too old.'

       lowercase       : List[str]						='''not installed'''
       lowercase       : str						='''not found'''
       if is_accelerate_available():
        import accelerate
        from accelerate.commands.config import default_config_file, load_config_from_file

        lowercase       : List[str]						=accelerate.__version__
        # Get the default from the config file.
        if self._accelerate_config_file is not None or os.path.isfile(UpperCAmelCase		):
         lowercase       : Dict						=load_config_from_file(self._accelerate_config_file		).to_dict()

        lowercase       : Optional[int]						=(
            '''\n'''.join([f'\t- {prop}: {val}' for prop, val in accelerate_config.items()]		)
            if isinstance(UpperCAmelCase  ,   UpperCAmelCase		)
            else f'\t{accelerate_config}'
        )

       lowercase       : Optional[int]						='''not installed'''
       lowercase       : Optional[Any]						='''NA'''
       if is_torch_available():
        import torch

        lowercase       : List[Any]						=torch.__version__
        lowercase       : Dict						=torch.cuda.is_available()

       lowercase       : Optional[Any]						='''not installed'''
       lowercase       : List[str]						='''NA'''
       if is_tf_available():
        import tensorflow as tf

        lowercase       : List[Any]						=tf.__version__
        try:
         # deprecated in v2.1
         lowercase       : Optional[Any]						=tf.test.is_gpu_available()
        except AttributeError:
         # returns list of devices, convert to bool
         lowercase       : Optional[int]						=bool(tf.config.list_physical_devices('''GPU'''		)		)

       lowercase       : Optional[Any]						='''not installed'''
       lowercase       : Optional[Any]						='''not installed'''
       lowercase       : Optional[Any]						='''not installed'''
       lowercase       : List[str]						='''NA'''
       if is_flax_available():
        import flax
        import jax
        import jaxlib

        lowercase       : Dict						=flax.__version__
        lowercase       : List[Any]						=jax.__version__
        lowercase       : Any						=jaxlib.__version__
        lowercase       : Tuple						=jax.lib.xla_bridge.get_backend().platform

       lowercase       : str						={
           '''`transformers` version''': version,
           '''Platform''': platform.platform(),
           '''Python version''': platform.python_version(),
           '''Huggingface_hub version''': huggingface_hub.__version__,
           '''Safetensors version''': f'{safetensors_version}',
           '''Accelerate version''': f'{accelerate_version}',
           '''Accelerate config''': f'{accelerate_config_str}',
           '''PyTorch version (GPU?)''': f'{pt_version} ({pt_cuda_available})',
           '''Tensorflow version (GPU?)''': f'{tf_version} ({tf_cuda_available})',
           '''Flax version (CPU?/GPU?/TPU?)''': f'{flax_version} ({jax_backend})',
           '''Jax version''': f'{jax_version}',
           '''JaxLib version''': f'{jaxlib_version}',
           '''Using GPU in script?''': '''<fill in>''',
           '''Using distributed or parallel set-up in script?''': '''<fill in>''',
       }

       print('''\nCopy-and-paste the text below in your GitHub issue and FILL OUT the two last points.\n'''		)
       print(self.format_dict(UpperCAmelCase		)		)

       return info






      @staticmethod
      def 					A__   (			UpperCAmelCase      :		Any		)	->	Any:


       '''simple docstring'''

       return "\n".join([f'- {prop}: {val}' for prop, val in d.items()]		) + "\n"



