def all(cls, otp=False, ccid=False, u2f=False):
        """Returns a set of all PIDs, with optional filtering"""
        pids = set([
            cls.YUBIKEY,
            cls.NEO_OTP,
            cls.NEO_OTP_CCID,
            cls.NEO_CCID,
            cls.NEO_U2F,
            cls.NEO_OTP_U2F,
            cls.NEO_U2F_CCID,
            cls.NEO_OTP_U2F_CCID,
            cls.NEO_SKY,
            cls.YK4_OTP,
            cls.YK4_U2F,
            cls.YK4_OTP_U2F,
            cls.YK4_CCID,
            cls.YK4_OTP_CCID,
            cls.YK4_U2F_CCID,
            cls.YK4_OTP_U2F_CCID,
            cls.PLUS_U2F_OTP
        ])

        if otp:
            pids.difference_update(set([
                cls.NEO_CCID,
                cls.NEO_U2F,
                cls.NEO_U2F_CCID,
                cls.NEO_SKY,
                cls.YK4_U2F,
                cls.YK4_CCID,
                cls.YK4_U2F_CCID
            ]))

        if ccid:
            pids.difference_update(set([
                cls.YUBIKEY,
                cls.NEO_OTP,
                cls.NEO_U2F,
                cls.NEO_OTP_U2F,
                cls.NEO_SKY,
                cls.YK4_OTP,
                cls.YK4_U2F,
                cls.YK4_OTP_U2F,
                cls.PLUS_U2F_OTP
            ]))

        if u2f:
            pids.difference_update(set([
                cls.YUBIKEY,
                cls.NEO_OTP,
                cls.NEO_OTP_CCID,
                cls.NEO_CCID,
                cls.YK4_OTP,
                cls.YK4_CCID,
                cls.YK4_OTP_CCID
            ]))

        return pids
def all ( cls , otp = False , ccid = False , u2f = False ) : pids = set ( [ cls . YUBIKEY , cls . NEO_OTP , cls . NEO_OTP_CCID , cls . NEO_CCID , cls . NEO_U2F , cls . NEO_OTP_U2F , cls . NEO_U2F_CCID , cls . NEO_OTP_U2F_CCID , cls . NEO_SKY , cls . YK4_OTP , cls . YK4_U2F , cls . YK4_OTP_U2F , cls . YK4_CCID , cls . YK4_OTP_CCID , cls . YK4_U2F_CCID , cls . YK4_OTP_U2F_CCID , cls . PLUS_U2F_OTP ] ) if otp : pids . difference_update ( set ( [ cls . NEO_CCID , cls . NEO_U2F , cls . NEO_U2F_CCID , cls . NEO_SKY , cls . YK4_U2F , cls . YK4_CCID , cls . YK4_U2F_CCID ] ) ) if ccid : pids . difference_update ( set ( [ cls . YUBIKEY , cls . NEO_OTP , cls . NEO_U2F , cls . NEO_OTP_U2F , cls . NEO_SKY , cls . YK4_OTP , cls . YK4_U2F , cls . YK4_OTP_U2F , cls . PLUS_U2F_OTP ] ) ) if u2f : pids . difference_update ( set ( [ cls . YUBIKEY , cls . NEO_OTP , cls . NEO_OTP_CCID , cls . NEO_CCID , cls . YK4_OTP , cls . YK4_CCID , cls . YK4_OTP_CCID ] ) ) return pids
Returns a set of all PIDs, with optional filtering