code: def _check_docstring(self, node_type, node, report_missing=True,
                           confidence=None):
          
          docstring = node.doc
          if docstring is None:
              # The node does not have a docstring.
              if _isInner(node):
                  # Do not check things inside a function or method.
                  return
  
              if _isSetter(node_type, node):
                  # Setters don't need a docstring as they are documented in
                  # the getter.
                  return
  
              self.add_message('W9208', node=node)
              return
          elif not docstring.strip():
              # Empty docstring.
              self.add_message('W9209', node=node)
              return
          # Get line number of docstring.
          linenoDocstring = self._getDocstringLineno(node_type, node)
          self._checkDocstringFormat(node_type, node, linenoDocstring)
          self._checkEpytext(node_type, node, linenoDocstring)
          self._checkBlankLineBeforeEpytext(node_type, node, linenoDocstring)
docs: Check whether the opening and the closing of docstring
          on a line by themselves.
          Then check for epytext markups for function or method.
  
          @param node_type: type of node
          @param node: current node of pylint