code: def do_draw(self, data):
      if not hasattr(data, SHARED_STRATEGY_ATTRIBUTE):
          setattr(data, SHARED_STRATEGY_ATTRIBUTE, {})
      sharing = getattr(data, SHARED_STRATEGY_ATTRIBUTE)
      key = self.key or self
      if key not in sharing:
          sharing[key] = data.draw(self.base)
      return sharing[key]
  
file_path: catboost/contrib/python/hypothesis/py2/hypothesis/strategies/_internal/shared.py
imports: from __future__ import absolute_import, division, print_function
  from hypothesis.strategies._internal import SearchStrategy
label_desc: Use image node_id 4 for calling the SharedStrategy obj's underlying member method code with example usage: obj.do_draw(data) and returns: sharing