code: def process_class(
      c_name,
      obj,
      c_skip,
      c_missing_doc,
      c_missing_doctest,
      c_indirect_doctest,
      c_has_doctest,
      mod_path,
      sph,
      sphinx=True,
  ):
      """
      Extracts information about the class regarding documentation.
      It is assumed that the function calling this subroutine has already
      checked that the class is valid.
      """
  
      # Skip class case
      if c_name.startswith("_"):
          c_skip.append(c_name)
          return False, False, None
  
      c = False
      c_dt = False
      # Get the line number of class
      try:
          source, line_no = inspect.getsourcelines(obj)
      except IOError:
          # Raised when source does not exist
          # which means the class is not there.
          return False, False, None
  
      c = True
      full_name = "LINE %d: %s" % (line_no, c_name)
      doc = obj.__doc__
      if isinstance(doc, str):
          if not doc:
              c_missing_doc.append(full_name)
          elif not ">>>" in doc:
              c_missing_doctest.append(full_name)
          elif _is_indirect(c_name, doc):
              c_indirect_doctest.append(full_name)
          else:
              c_dt = True
              c_has_doctest.append(full_name)
      elif doc is None:
          # this was a class defined in the docstring
          c_dt = True
          c_has_doctest.append(full_name)
      elif isinstance(doc, property):
          # skip class with dynamic doc
          c_skip.append(c_name)
          return False, False, None
      else:
          raise TypeError(
              "Current doc type of ",
              print(obj),
              " is ",
              type(doc),
              ". Docstring must be a string, property , or none",
          )
  
      in_sphinx = False
      if sphinx:
          in_sphinx = find_sphinx(c_name, mod_path)
  
      if not in_sphinx:
          sph.append(full_name)
  
      return c_dt, c, source
  
file_path: sympy/bin/coverage_doctest.py
imports: from __future__ import print_function
  import os
  import sys
  import inspect
  from argparse import ArgumentParser, RawDescriptionHelpFormatter
  from sympy.utilities.misc import filldedent
label_desc: Use image node_id 8 for calling a global function with example usage: process_class(c_name, obj, c_skip, c_missing_doc, c_missing_doctest, c_indirect_doctest, c_has_doctest, mod_path, sph, sphinx) and returns: c_dt,  c,  source, False,  False,  None, False,  False,  None, False,  False,  None