'Whether the condition contains the specified values.
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 values match the non-empty query attributes.
Empty query attributes are ignored in the comparison.'

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

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