class_docstr: Key/value record parser
class_docstr_tok: ["Key\/value","record","parser"]
docstr: Parse a key/value string into a dictionary
  
  Args:
      data (str): Data to be parsed
  
  Returns:
      list<tuple>: List of tuples with records and their parsing status
          Example: [({'key': 'value'}, True)]
docstr_tok: ["Parse","a","key\/value","string","into","a","dictionary","Args",":","data","(","str",")",":","Data","to","be","parsed","Returns",":","list","<","tuple",">",":","List","of","tuples","with","records","and","their","parsing","status","Example",":","[","(","{","'key","'",":","'value","'","}",",","True",")","]"]
code: def _parse(self, data):
      """Parse a key/value string into a dictionary
  
      Args:
          data (str): Data to be parsed
  
      Returns:
          list<tuple>: List of tuples with records and their parsing status
              Example: [({'key': 'value'}, True)]
      """
      record = self._extract_record(data)
      return [(record, True)] if record else [(data, False)]
  
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 3 for calling the KVParser obj's underlying member method code with example usage: obj._parse(data) and returns: unknown