code: def _get_close_rungs_ops(self) -> List[searcher.Operation]:
      self.raise_exception("_get_close_rungs_ops")
      ops: List[searcher.Operation] = []
  
      for rung in self.asha_search_state.rungs:
          if rung.outstanding_trials > 0:
              break
          for trial_metric in rung.metrics:
              if (
                  not trial_metric.promoted
                  and trial_metric.request_id
                  not in self.asha_search_state.closed_trials
              ):
                  if (
                      trial_metric.request_id
                      not in self.asha_search_state.early_exit_trials
                  ):
                      logging.info(
                          f"Closing trial {trial_metric.request_id}"
                      )
                      ops.append(
                          searcher.Close(trial_metric.request_id)
                      )
                      self.asha_search_state.closed_trials.add(
                          trial_metric.request_id
                      )
      return ops
  
imports: import dataclasses
  import json
  import logging
  import pathlib
  import pickle
  import random
  import sys
  import uuid
  from typing import Any, Dict, List, Optional, Set
  from urllib3 import connectionpool
  from determined import searcher
label_desc: Use image node_id 8 for calling the ASHASearchMethod obj's underlying member method code with example usage: obj._get_close_rungs_ops() and returns: ops