'Whether the conditions applies, modulo host data.
Args:
os_name: An OS string.
cpe: A CPE string.
label: A label string.
Returns:
True if os_name, cpe or labels match. Empty values are ignored.'

def Artifacts(self, os_name=None, cpe=None, label=None):

    hit = (lambda x: ((x[0] == x[1]) or (not x[0])))
    seq = [(self.os_name, os_name), (self.cpe, cpe), (self.label, label)]
    return all(map(hit, seq))
