<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def Conditions(cls, artifact=None, os_name=None, cpe=None, labels=None):
 """Provide a series of condition tuples. A Target can specify multiple artifact, os_name, cpe or label entries. These are expanded to all distinct tuples. When an entry is undefined or None, it is treated as a single definition of None, meaning that the condition does not apply. Args: artifact: Names of artifacts that should trigger an action. os_name: Names of OS' that should trigger an action. cpe: CPE strings that should trigger an action. labels: Host labels that should trigger an action. Yields: a permuted series of (artifact, os_name, cpe, label) tuples. """

    artifact = cls._AsList(artifact)
    os_name = cls._AsList(os_name)
    cpe = cls._AsList(cpe)
    labels = cls._AsList(labels)
    for condition in itertools.product(artifact, os_name, cpe, labels):
      yield condition