code: def _search_param_in_docstr(docstr, param_str):
      """
      Search `docstr` for type(-s) of `param_str`.
  
      >>> _search_param_in_docstr(':type param: int', 'param')
      ['int']
      >>> _search_param_in_docstr('@type param: int', 'param')
      ['int']
      >>> _search_param_in_docstr(
      ...   ':type param: :class:`threading.Thread`', 'param')
      ['threading.Thread']
      >>> bool(_search_param_in_docstr('no document', 'param'))
      False
      >>> _search_param_in_docstr(':param int param: some description', 'param')
      ['int']
  
      """
      # look at #40 to see definitions of those params
      patterns = [
          re.compile(p % re.escape(param_str))
          for p in DOCSTRING_PARAM_PATTERNS
      ]
      for pattern in patterns:
          match = pattern.search(docstr)
          if match:
              return [_strip_rst_role(match.group(1))]
  
      return _search_param_in_numpydocstr(docstr, param_str)
  
file_path: catboost/contrib/python/jedi/py2/jedi/evaluate/docstrings.py
imports: import re
  from textwrap import dedent
  from parso import parse, ParserSyntaxError
  from jedi._compatibility import u
  from jedi.evaluate.utils import indent_block
  from jedi.evaluate.cache import evaluator_method_cache
  from jedi.evaluate.base_context import iterator_to_context_set, ContextSet, NO_CONTEXTS
  from jedi.evaluate.lazy_context import LazyKnownContexts
label_desc: Use image node_id 5 for calling a global function with example usage: _search_param_in_docstr(docstr, param_str) and returns: _search_param_in_numpydocstr, list