class_docstr: A Shrinker object manages a single value and a predicate it should
  satisfy, and attempts to improve it in some direction, making it smaller
  and simpler.
class_docstr_tok: ["A","Shrinker","object","manages","a","single","value","and","a","predicate","it","should","satisfy",",","and","attempts","to","improve","it","in","some","direction",",","making","it","smaller","and","simpler","."]
docstr: Run for an appropriate number of steps to improve the current value.
  
  If self.full is True, will run until no further improvements can
  be found.
docstr_tok: ["Run","for","an","appropriate","number","of","steps","to","improve","the","current","value",".","If","self.full","is","True",",","will","run","until","no","further","improvements","can","be","found","."]
code: def run(self):
      """Run for an appropriate number of steps to improve the current value.
  
      If self.full is True, will run until no further improvements can
      be found.
      """
      if self.short_circuit():
          return
      if self.full:
          prev = -1
          while self.changes != prev:
              prev = self.changes
              self.run_step()
      else:
          self.run_step()
      self.debug("COMPLETE")
  
file_path: catboost/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/shrinking/common.py
label_desc: Use image node_id 9 for calling the Shrinker obj's underlying member method code with example usage: obj.run() without return types