





'''simple docstring'''






# 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


snake_case_     =	"""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)







'''simple docstring'''






from __future__ import annotations


class   _lowercase						:


   def __init__( self    ,   _UpperCAmelCase					):
       A       :       str							=						data
       A       :       Node | None							=						None
       A       :       Node | None							=						None







def 							_lowerCamelCase(  UpperCamelCase__    : Node | None		)		->  None:  # In Order traversal of the tree
    if tree:
        display(tree.left		)
        print(tree.data		)
        display(tree.right		)
def 							_lowerCamelCase(  UpperCamelCase__    : Node | None		)		->  int:
    return 1 + max(depth_of_tree(tree.left		)    ,       depth_of_tree(tree.right		)		) if tree else 0
def 							_lowerCamelCase(  UpperCamelCase__    : Node		)		->  bool:
    if not tree:
        return True
    if tree.left and tree.right:
        return is_full_binary_tree(tree.left		) and is_full_binary_tree(tree.right		)
    else:
        return not tree.left and not tree.right
def 							_lowerCamelCase(  )		->  None:  # Main function for testing.
    A       :       Optional[int]							=						Node(1		)
    A       :       Tuple							=						Node(2		)
    A       :       Dict							=						Node(3		)
    A       :       List[str]							=						Node(4		)
    A       :       Union[str, Any]							=						Node(5		)
    A       :       str							=						Node(6		)
    A       :       Any							=						Node(7		)
    A       :       str							=						Node(8		)
    A       :       Optional[int]							=						Node(9		)

    print(is_full_binary_tree(UpperCamelCase__		)		)
    print(depth_of_tree(UpperCamelCase__		)		)
    print('''Tree is: '''		)
    display(UpperCamelCase__		)


if __name__ == "__main__":
     main()
