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: Format apidocs as markdown for the given class.
  
      todo_list:
  list of classes to be documented
  
      class_name:
  name of the class to document
          
docstr_tok: ["Format","apidocs","as","markdown","for","the","given","class",".","todo_list",":","list","of","classes","to","be","documented","class_name",":","name","of","the","class","to","document"]
code: def format_class(
      self,
      todo_list: typing.Dict[str, typing.Any],
      class_name: str,
  ) -> None:
      """
      Format apidocs as markdown for the given class.
  
          todo_list:
      list of classes to be documented
  
          class_name:
      name of the class to document
      """
      self.md.append(
          "## [`{class_name}` class](#{class_name})".format(
              class_name=class_name
          )
      )
  
      class_obj = todo_list[class_name]
      docstring = class_obj.__doc__
  
      if docstring:
          # add the raw docstring for a class
          self.md.append(docstring)
  
      obj_md_pos: typing.Dict[int, typing.List[str]] = {}
  
      for member_name, member_obj in inspect.getmembers(class_obj):
          path_list = [self.module_name, class_name]
  
          if member_name.startswith("__") or not member_name.startswith(
              "_"
          ):
              if member_name not in class_obj.__dict__:
                  # inherited method
                  continue
              if inspect.isfunction(member_obj):
                  func_kind = "method"
              elif inspect.ismethod(member_obj):
                  func_kind = "classmethod"
              else:
                  continue
  
              line_num, obj_md = self.document_method(
                  path_list, member_name, member_obj, func_kind
              )
              obj_md_pos[line_num] = obj_md
  
      for _pos, obj_md in sorted(obj_md_pos.items()):
          self.md.extend(obj_md)
  
imports: from icecream import ic
  import inspect
  import os
  import re
  import sys
  import traceback
  import typing
label_desc: Use image node_id 13 for calling the PackageDoc obj's underlying member method code with example usage: obj.format_class(todo_list, class_name) without return types