class_docstr: Grappler Clusters.
class_docstr_tok: ["Grappler","Clusters","."]
docstr: Returns a list of available hardware devices.
docstr_tok: ["Returns","a","list","of","available","hardware","devices","."]
code: def ListDevices(self):
      """Returns a list of available hardware devices."""
      if self._tf_cluster is None:
          return []
      return [
          device_properties_pb2.NamedDevice.FromString(device)
          for device in tf_cluster.TF_ListDevices(self._tf_cluster)
      ]
  
file_path: tensorflow-upstream/tensorflow/python/grappler/cluster.py
imports: import contextlib
  from tensorflow.core.framework import step_stats_pb2
  from tensorflow.core.grappler.costs import op_performance_data_pb2
  from tensorflow.core.protobuf import device_properties_pb2
  from tensorflow.python.grappler import _pywrap_tf_cluster
label_desc: Use image node_id 5 for calling the Cluster obj's underlying member method code with example usage: obj.ListDevices() and returns: unknown, list