'Whether the condition applies to external data.
Args:
artifact: A string identifier for the artifact.
os_name: An OS string.
cpe: A CPE string.
label: A label string.
Returns:
True if the query values match non-empty condition values. Empty values
are ignored in the comparison.'

def Match(self, artifact, os_name=None, cpe=None, label=None):

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