class_docstr: Abstract Parser class to be inherited by all StreamAlert Parsers
class_docstr_tok: ["Abstract","Parser","class","to","be","inherited","by","all","StreamAlert","Parsers"]
docstr: Protected parser method to be overridden by all Parser classes
  
  Args:
      data (str|dict): Data to be parsed.
  
  Returns:
      list<tuple>: List of tuples with records and their parsing status
          Examples: [({'key': 'value'}, True)]
docstr_tok: ["Protected","parser","method","to","be","overridden","by","all","Parser","classes","Args",":","data","(","str|dict",")",":","Data","to","be","parsed",".","Returns",":","list","<","tuple",">",":","List","of","tuples","with","records","and","their","parsing","status","Examples",":","[","(","{","'key","'",":","'value","'","}",",","True",")","]"]
code: def _parse(self, data):
      """Protected parser method to be overridden by all Parser classes
  
      Args:
          data (str|dict): Data to be parsed.
  
      Returns:
          list<tuple>: List of tuples with records and their parsing status
              Examples: [({'key': 'value'}, True)]
      """
  
imports: from abc import ABCMeta, abstractmethod
  from copy import deepcopy
  import csv
  from fnmatch import fnmatch
  import json
  import logging
  import re
  import io
  import jmespath
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 27 for calling the ParserBase obj's underlying member method code with example usage: obj._parse(data) without return types