docs: def _execute(self, logger: Logger, options: Dict[str, Dict[str, Any]]) -> T:
          """
          Implementation of the parent class method.
          Checks that self.parser is a _BaseParser, and calls the appropriate parsing method.
  
          :param logger:
          :param options:
          :return:
          """
          if isinstance(self.parser, _BaseParser):
              if (not self.is_singlefile) and self.parser.supports_multifile():
                  return self.parser._parse_multifile(self.obj_type, self.obj_on_fs_to_parse,
                                                      self._get_children_parsing_plan(), logger, options)
  
              elif self.is_singlefile and self.parser.supports_singlefile():
                  return self.parser._parse_singlefile(self.obj_type, self.get_singlefile_path(),
                                                       self.get_singlefile_encoding(), logger, options)
              else:
                  raise _InvalidParserException.create(self.parser, self.obj_on_fs_to_parse)
          else:
              raise TypeError('Parser attached to this _BaseParsingPlan is not a ' + str(_BaseParser))