class_docstr: Hold data for distributed view.
  Aggregate all data for distributed in ProfileData object.
class_docstr_tok: ["Hold","data","for","distributed","view",".","Aggregate","all","data","for","distributed","in","ProfileData","object","."]
code: def get_distributed_steps(self):
      for profile_data in self.profile_datas:
          if not profile_data.distributed_parser:
              continue
          steps = list(profile_data.distributed_time.keys())
          final_steps = ["All"] + sorted(
              [int(step) for step in steps if step != "All"]
          )
          return final_steps
  
imports: from collections import defaultdict
  from collections import OrderedDict
  from .parser.distributed_parser import DistributedParser
  from .parser.kernel_parser import KernelParser
  from .parser.memory_parser import MemoryParser
  from .parser.operator_parser import OperatorParser
  from .parser.overview_parser import CPUType
  from .parser.overview_parser import GPUType
  from .parser.overview_parser import OverviewParser
  from .parser.trace_parser import TraceParser
  from .parser.utils import format_float
  from .parser.utils import format_memory
  from .parser.utils import format_ratio
  from .parser.utils import format_time
  from .parser.utils import traverse_tree
label_desc: Use image node_id 4 for calling the DistributedProfilerData obj's underlying member method code with example usage: obj.get_distributed_steps() and returns: final_steps