class_docstr: Override the default implementation to ignore duplicated trials in budget accounting
docstr: Notifies the bracket that a job for a budget has been completed
  This function must be called when a config for a budget has finished evaluation to inform
  the Bracket Manager that no job needs to be waited for and the next rung can begin for the
  synchronous Successive Halving case.
docstr_tok: ["Notifies","the","bracket","that","a","job","for","a","budget","has","been","completed","This","function","must","be","called","when","a","config","for","a","budget","has","finished","evaluation","to","inform","the","Bracket","Manager","that","no","job","needs","to","be","waited","for","and","the","next","rung","can","begin","for","the","synchronous","Successive","Halving","case","."]
code: def complete_job(self, budget: int) -> None:
      """Notifies the bracket that a job for a budget has been completed
      This function must be called when a config for a budget has finished evaluation to inform
      the Bracket Manager that no job needs to be waited for and the next rung can begin for the
      synchronous Successive Halving case.
      """
      assert budget in self.budgets
      _max_configs: int = self.n_configs[
          list(self.budgets).index(budget)
      ]
  
      offset = 0
      if self.duplicates is not None:
          offset = self.duplicates.get(str(budget), 0)
  
      assert self._sh_bracket[budget] - offset < _max_configs
      self._sh_bracket[budget] += 1
  
file_path: orion/src/orion/algo/dehb/brackets.py
imports: from __future__ import annotations
  import logging
  from collections import defaultdict
  import numpy
label_desc: Use image node_id 2 for calling the SHBracketManager obj's underlying member method code with example usage: obj.complete_job(budget) without return types