code: def testDoc(self):
      ignore = {"py2f", "f2py"}
      invalid = False
      missing = False
      docs = {}
      getdocstr(MPI, docs)
      for k in docs:
          doc = docs[k]
          name = k.split(".")[-1]
          if name in ignore:
              continue
          if not doc and name.startswith("_"):
              continue
          if doc is None:
              print(f"'{k}': missing docstring")
              missing = True
              continue
          if not doc.strip():
              print(f"'{k}': empty docstring")
              missing = True
              continue
          if doc.startswith("\n") and not doc.endswith(" "):
              print(f"'{k}': mismatch start and end whitespace")
              invalid = True
          if not doc.startswith("\n") and doc.endswith(" "):
              print(f"'{k}': mismatch start and end whitespace")
              invalid = True
          if doc.replace(" ", "").endswith("\n\n"):
              print(f"'{k}': docstring ends with too many newlines")
              invalid = True
          doc = doc.strip()
          if doc[0] == doc[0].lower():
              print(f"'{k}': docstring starts with lowercase")
              invalid = True
          if not doc.endswith("."):
              print(f"'{k}': docstring does not end with '.'")
              invalid = True
          summary, _, description = doc.partition("\n")
          if not summary.endswith("."):
              print(f"'{k}': summary line does not end with '.'")
              invalid = True
      self.assertFalse(missing)
      self.assertFalse(invalid)
  
imports: from mpi4py import MPI
  import mpiunittest
  import sys
label_desc: Use image node_id 1 for calling the TestDoc obj's underlying member method code with example usage: obj.testDoc() without return types