<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _ParseShowList(self, checkOnly=False):
 """ Read self._allShowList as csv file and make list of titles and IDs. Parameters checkOnly : boolean [optional : default = False] If checkOnly is True this will only check to ensure the column headers can be extracted correctly. """

    showTitleList = []
    showIDList = []

    csvReader = csv.reader(self._allShowList.splitlines())
    for rowCnt, row in enumerate(csvReader):
      if rowCnt == 0:
        # Get header column index
        for colCnt, column in enumerate(row):
          if column == 'title':
            titleIndex = colCnt
          if column == self.ID_LOOKUP_TAG:
            lookupIndex = colCnt
      else:
        try:
          showTitleList.append(row[titleIndex])
          showIDList.append(row[lookupIndex])
        except UnboundLocalError:
          goodlogging.Log.Fatal("EPGUIDE", "Error detected in EPGUIDES allshows csv content")
        else:
          if checkOnly and rowCnt > 1:
            return True
    self._showTitleList = showTitleList
    self._showIDList = showIDList
    return True