class_docstr: Because there doesn't appear to be any other Markdown-friendly
  docstring support in Python.
  
  See also:
  
    * [PEP 256](https://www.python.org/dev/peps/pep-0256/)
    * [`inspect`](https://docs.python.org/3/library/inspect.html)
      
docstr: Generate apidocs markdown for the given class method.
  
      path_list:
  elements of a class path, as a list
  
      name:
  class method name
  
      obj:
  class method object
  
      func_kind:
  function kind
  
      returns:
  line number, plus apidocs for the method as a list of markdown lines
          
docstr_tok: ["Generate","apidocs","markdown","for","the","given","class","method",".","path_list",":","elements","of","a","class","path",",","as","a","list","name",":","class","method","name","obj",":","class","method","object","func_kind",":","function","kind","returns",":","line","number",",","plus","apidocs","for","the","method","as","a","list","of","markdown","lines"]
code: def document_method(
      self,
      path_list: list,
      name: str,
      obj: typing.Any,
      func_kind: str,
  ) -> typing.Tuple[int, typing.List[str]]:
      """
      Generate apidocs markdown for the given class method.
  
          path_list:
      elements of a class path, as a list
  
          name:
      class method name
  
          obj:
      class method object
  
          func_kind:
      function kind
  
          returns:
      line number, plus apidocs for the method as a list of markdown lines
      """
      local_md: typing.List[str] = ["---"]
  
      # format a header + anchor
      frag = ".".join(path_list + [name])
      anchor = "#### [`{}` {}](#{})".format(name, func_kind, frag)
      local_md.append(anchor)
  
      # link to source code in Git repo
      code = obj.__code__
      line_num = code.co_firstlineno
      file = code.co_filename.replace(os.getcwd(), "")
  
      src_url = "[*\[source\]*]({}{}#L{})\n".format(
          self.git_url, file, line_num
      )
      local_md.append(src_url)
  
      # format the callable signature
      sig = inspect.signature(obj)
      arg_list = self.get_arg_list(sig)
      arg_list_str = "{}".format(", ".join([a[0] for a in arg_list]))
  
      local_md.append("```python")
      local_md.append("{}({})".format(name, arg_list_str))
      local_md.append("```")
  
      # include the docstring, with return annotation
      arg_dict: dict = {
          name.split("=")[0]: anno for name, anno in arg_list
      }
  
      arg_dict["yields"] = None
  
      ret = sig.return_annotation
  
      if ret:
          arg_dict["returns"] = self.extract_type_annotation(ret)
  
      local_md.extend(
          self.get_docstring(obj, parse=True, arg_dict=arg_dict)
      )
      local_md.append("")
  
      return line_num, local_md
  
imports: from icecream import ic
  import inspect
  import os
  import re
  import sys
  import traceback
  import typing
label_desc: Use image node_id 9 for calling the PackageDoc obj's underlying member method code with example usage: obj.document_method(path_list, name, obj, func_kind) and returns: line_num,  local_md