code: def get_param(self):
      if self.t == len(self.test_set):
          if len(self.scores) != self.t:
              self.current_proposal = None
              return None
          tids = sorted(self.scores, key=self.scores.get)
          tids = tids[0 : int(self.n_configs / self.eta)]
          self.test_set = [self.test_set[i] for i in tids]
          self.scores = {}
          self.i += 1
          self.t = 0
          self.n_configs = self.n * self.eta ** (-self.i)
          self.n_iterations = self.r * self.eta**self.i
  
      if self.i == (self.s + 1 - int(self.skip_last)):
          self.i = 0
          self.setup(self.s - 1)
          logger.debug(
              "\n*** {} configurations x {:.1f} iterations each".format(
                  self.n_configs, self.n_iterations
              )
          )
  
      if type(self.test_set[self.t]) != dict:
          self.test_set[self.t] = self.test_set[self.t]()
      self.test_set[self.t]["tid"] = self.t
      self.test_set[self.t]["n_iterations"] = self.n_iterations
  
      self.t += 1
      return self.test_set[self.t - 1]
  
file_path: auptimizer/src/aup/Proposer/HyperbandProposer.py
imports: import logging
  import random
  from math import log, ceil
  from six.moves import input
  from aup.Proposer import get_proposer
  from .AbstractProposer import AbstractProposer
  from ..utils import set_default_keyvalue, get_from_options
label_desc: Use image node_id 4 for calling the HyperbandProposer obj's underlying member method code with example usage: obj.get_param() and returns: self, None