code: def citeFilter(self, keyString = '', field = 'all', reverse = False, caseSensitive = False):
          retRecs = []
          keyString = str(keyString)
          for R in self:
              try:
                  if field == 'all':
                      for cite in R.get('citations'):
                          if caseSensitive:
                              if keyString in cite.original:
                                  retRecs.append(R)
                                  break
                          else:
                              if keyString.upper() in cite.original.upper():
                                  retRecs.append(R)
                                  break
                  elif field == 'author':
                      for cite in R.get('citations'):
                          try:
                              if keyString.upper() in cite.author.upper():
                                  retRecs.append(R)
                                  break
                          except AttributeError:
                              pass
                  elif field == 'journal':
                      for cite in R.get('citations'):
                          try:
                              if keyString.upper() in cite.journal:
                                  retRecs.append(R)
                                  break
                          except AttributeError:
                              pass
                  elif field == 'year':
                      for cite in R.get('citations'):
                          try:
                              if int(keyString) == cite.year:
                                  retRecs.append(R)
                                  break
                          except AttributeError:
                              pass
                  elif field == 'V':
                      for cite in R.get('citations'):
                          try:
                              if keyString.upper() in cite.V:
                                  retRecs.append(R)
                                  break
                          except AttributeError:
                              pass
                  elif field == 'P':
                      for cite in R.get('citations'):
                          try:
                              if keyString.upper() in cite.P:
                                  retRecs.append(R)
                                  break
                          except AttributeError:
                              pass
                  elif field == 'misc':
                      for cite in R.get('citations'):
                          try:
                              if keyString.upper() in cite.misc:
                                  retRecs.append(R)
                                  break
                          except AttributeError:
                              pass
                  elif field == 'anonymous':
                      for cite in R.get('citations'):
                          if cite.isAnonymous():
                              retRecs.append(R)
                              break
                  elif field == 'bad':
                      for cite in R.get('citations'):
                          if cite.bad:
                              retRecs.append(R)
                              break
              except TypeError:
                  pass
          if reverse:
              excluded = []
              for R in self:
                  if R not in retRecs:
                      excluded.append(R)
              return RecordCollection(inCollection = excluded, name = self.name, quietStart = True)
          else:
              return RecordCollection(inCollection = retRecs, name = self.name, quietStart = True)