class_docstr: Class for representing Objective Thresholds.
  
  An objective threshold represents the threshold for an objective metric
  to contribute to hypervolume calculations. A list containing the objective
  threshold for each metric collectively form a reference point.
  
  Objective thresholds may bound the metric from above or from below.
  The bound can be expressed as an absolute measurement or relative
  to the status quo (if applicable).
  
  The direction of the bound is inferred from the Metric's lower_is_better attribute.
  
  Attributes:
      metric: Metric to constrain.
      bound: The bound in the constraint.
      relative: Whether you want to bound on an absolute or relative
          scale. If relative, bound is the acceptable percent change.
      op: automatically inferred, but manually overwritable.
          specifies whether metric should be greater or equal to, or less
          than or equal to, some bound.
class_docstr_tok: ["Class","for","representing","Objective","Thresholds",".","An","objective","threshold","represents","the","threshold","for","an","objective","metric","to","contribute","to","hypervolume","calculations",".","A","list","containing","the","objective","threshold","for","each","metric","collectively","form","a","reference","point",".","Objective","thresholds","may","bound","the","metric","from","above","or","from","below",".","The","bound","can","be","expressed","as","an","absolute","measurement","or","relative","to","the","status","quo","(","if","applicable",")",".","The","direction","of","the","bound","is","inferred","from","the","Metric","'s","lower_is_better","attribute",".","Attributes",":","metric",":","Metric","to","constrain",".","bound",":","The","bound","in","the","constraint",".","relative",":","Whether","you","want","to","bound","on","an","absolute","or","relative","scale",".","If","relative",",","bound","is","the","acceptable","percent","change",".","op",":","automatically","inferred",",","but","manually","overwritable",".","specifies","whether","metric","should","be","greater","or","equal","to",",","or","less","than","or","equal","to",",","some","bound","."]
code: def __repr__(self) -> str:
      op = ">=" if self.op == ComparisonOp.GEQ else "<="
      relative = "%" if self.relative else ""
      return f"ObjectiveThreshold({self.metric.name} {op} {self.bound}{relative})"
  
imports: from __future__ import annotations
  import logging
  from typing import Dict, Iterable, List, Optional, Tuple
  from ax.core.metric import Metric
  from ax.core.types import ComparisonOp
  from ax.utils.common.base import SortableBase
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 3 for calling the ObjectiveThreshold obj's underlying member method code with example usage: obj.__repr__() and returns: str, self, str, op, str, self, relative, str