code: def wait_until_ready(self) -> timedelta:
      statuses = [""]
      all_executions = self._get_executions()
      self._logger.info(all_executions)
      start = datetime.now()
      while any(
          s not in ["Succeeded", "Failed", "Timeout", "Interrupted"]
          for s in statuses
      ):
          executions = self._get_executions()
          statuses = [execution["status"] for execution in executions]
          self._logger.info(
              [
                  f"{execution['id']}={execution['status']};"
                  for execution in executions
              ]
          )
          time.sleep(5)
      end = datetime.now()
      ex_time = end - start
      return ex_time
  
imports: import json
  import os
  import shutil
  import time
  from datetime import datetime, timedelta
  from typing import List, Optional
  import requests
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.remote.infrastructure.clients.client import Client
label_desc: Use image node_id 3 for calling the DataMallClient obj's underlying member method code with example usage: obj.wait_until_ready() and returns: ex_time