docs: def textfsm_extractor(cls, template_name, raw_text):
      """
      Applies a TextFSM template over a raw text and return the matching table.
  
      Main usage of this method will be to extract data form a non-structured output
      from a network device and return the values in a table format.
  
      :param cls: Instance of the driver class
      :param template_name: Specifies the name of the template to be used
      :param raw_text: Text output as the devices prompts on the CLI
      :return: table-like list of entries
      """
      textfsm_data = list()
      fsm_handler = None
      for c in cls.__class__.mro():
          if c is object:
              continue
          current_dir = os.path.dirname(
              os.path.abspath(sys.modules[c.__module__].__file__)
          )
          template_dir_path = "{current_dir}/utils/textfsm_templates".format(
              current_dir=current_dir
          )
          template_path = "{template_dir_path}/{template_name}.tpl".format(
              template_dir_path=template_dir_path, template_name=template_name
          )
  
          try:
              with open(template_path) as f:
                  fsm_handler = textfsm.TextFSM(f)
  
                  for obj in fsm_handler.ParseText(raw_text):
                      entry = {}
                      for index, entry_value in enumerate(obj):
                          entry[fsm_handler.header[index].lower()] = entry_value
                      textfsm_data.append(entry)
  
                  return textfsm_data
          except IOError:  # Template not present in this class
              continue  # Continue up the MRO
          except textfsm.TextFSMTemplateError as tfte:
              raise napalm.base.exceptions.TemplateRenderException(
                  "Wrong format of TextFSM template {template_name}: {error}".format(
                      template_name=template_name, error=py23_compat.text_type(tfte)
                  )
              )
  
      raise napalm.base.exceptions.TemplateNotImplemented(
          "TextFSM template {template_name}.tpl is not defined under {path}".format(
              template_name=template_name, path=template_dir_path
          )
      )