code: def _checkEpytext(self, node_type, node, linenoDocstring):
          
          if node_type not in ['function', 'method']:
              return
          # Check for arguments.
          # If current node is method,
          # then first argument could not have a epytext markup.
          # The first argument usually named 'self'.
          argnames = (node.argnames()[1:] if node_type == 'method'
                      else node.argnames())
  
          if _isSetter(node_type, node):
              # For setter methods we remove the `value` argument as it
              # does not need to be documented.
              try:
                  argnames.remove('value')
              except ValueError:
                  # No `value` in arguments.
                  pass
  
          for argname in argnames:
              if node.name.startswith('opt_'):
                  # The docstring for option methods is presented as user-facing
                  # documentation.  Avoid requiring epytext in them.
                  return
              if not re.search(r"@param\s+%s\s*:" % argname, node.doc):
                  self.add_message('W9202', line=linenoDocstring,
                                   node=node, args=argname)
              if not re.search(r"@type\s+%s\s*:" % argname, node.doc):
                  self.add_message('W9203', line=linenoDocstring,
                                   node=node, args=argname)
  
          self._checkReturnValueEpytext(node, linenoDocstring)
docs: Check epytext of docstring.
  
          @param node_type: type of node
          @param node: current node of pylint
          @param linenoDocstring: linenumber of docstring