code: def fingerprints(self, keyhalf='any', keytype='any'):
          
          return {pk.fingerprint for pk in self._keys.values()
                  if pk.is_primary in [True if keytype in ['primary', 'any'] else None,
                                       False if keytype in ['sub', 'any'] else None]
                  if pk.is_public in [True if keyhalf in ['public', 'any'] else None,
                                      False if keyhalf in ['private', 'any'] else None]}
docs: List loaded fingerprints with some optional filtering.
  
          :param str keyhalf: Can be 'any', 'public', or 'private'. If 'public', or 'private', the fingerprints of keys of the
                              the other type will not be included in the results.
          :param str keytype: Can be 'any', 'primary', or 'sub'. If 'primary' or 'sub', the fingerprints of keys of the
                              the other type will not be included in the results.
          :returns: a ``set`` of fingerprints of keys matching the filters specified.