


# coding=utf-8
# Copyright 2020 The HuggingFace Inc. team.
#
# 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.

# this script dumps information about the environment

import os
import sys

import transformers


A       :		str    =   """3"""

print('Python version:', sys.version)
print('transformers version:', transformers.__version__)

try:
	import torch

	print('Torch version:', torch.__version__)
	print('Cuda available:', torch.cuda.is_available())
	print('Cuda version:', torch.version.cuda)
	print('CuDNN version:', torch.backends.cudnn.version())
	print('Number of GPUs available:', torch.cuda.device_count())
	print('NCCL version:', torch.cuda.nccl.version())
except ImportError:
	print('Torch version:', None)

try:
	import deepspeed

	print('DeepSpeed version:', deepspeed.__version__)
except ImportError:
	print('DeepSpeed version:', None)

try:
	import tensorflow as tf

	print('TensorFlow version:', tf.__version__)
	print('TF GPUs available:', bool(tf.config.list_physical_devices('GPU')))
	print('Number of TF GPUs available:', len(tf.config.list_physical_devices('GPU')))
except ImportError:
	print('TensorFlow version:', None)








def 		A_				(     _lowerCAmelCase     )						-> str:
 UpperCamelCase	:					Optional[int]       	=   int(_lowerCAmelCase     )
 if decimal in (0, 1):  # Exit cases for the recursion
  return str(_lowerCAmelCase     )
 UpperCamelCase	,    UpperCamelCase	:					Dict       	=   divmod(_lowerCAmelCase							,   2     )
 return binary_recursive(_lowerCAmelCase     ) + str(_lowerCAmelCase     )



def 		A_				(     _lowerCAmelCase     )						-> str:
 UpperCamelCase	:					Tuple       	=   str(_lowerCAmelCase     ).strip()
 if not number:
  raise ValueError("No input value was provided"     )
 UpperCamelCase	:					Optional[int]       	=   "-" if number.startswith("-"     ) else ""
 UpperCamelCase	:					Any       	=   number.lstrip("-"     )
 if not number.isnumeric():
  raise ValueError("Input value is not an integer"     )
 return F"""{negative}0b{binary_recursive(int(_lowerCAmelCase     )     )}"""


if __name__ == "__main__":
    from doctest import testmod

    testmod()
