def find_by_labels(self, labels=None, exclude_subworkflow=True):
    'Finds workflows by exactly matching labels (key, value) tuples.\n        Does OR search for a list of label key/value pairs.\n        Wildcards (? and *) are not allowed.\n\n        Args:\n            labels:\n                List of labels (key/value pairs).\n        Returns:\n            List of matched workflow JSONs.\n        '
    if has_wildcard(labels):
        raise ValueError('Wildcards are not allowed in labels. labels={labels}'.format(labels=labels))
    result = []
    if labels:
        labels = ['{key}:{val}'.format(key=key, val=val) for (key, val) in labels if val]
        resp = self.__request_get(CromwellRestAPI.ENDPOINT_WORKFLOWS, params={'additionalQueryResultFields': 'labels', 'includeSubworkflows': (not exclude_subworkflow), 'labelor': labels})
        if (resp and resp['results']):
            result.extend(resp['results'])
        logger.debug('find_by_labels: labels={labels}, result={result}'.format(labels=labels, result=result))
    return result
Finds workflows by exactly matching labels (key, value) tuples.
Does OR search for a list of label key/value pairs.
Wildcards (? and *) are not allowed.

Args:
    labels:
        List of labels (key/value pairs).
Returns:
    List of matched workflow JSONs.
def find_by_labels(self, labels=None, exclude_subworkflow=True):
    'Finds workflows by exactly matching labels (key, value) tuples.\n        Does OR search for a list of label key/value pairs.\n        Wildcards (? and *) are not allowed.\n\n        Args:\n            labels:\n                List of labels (key/value pairs).\n        Returns:\n            List of matched workflow JSONs.\n        '
    if has_wildcard(labels):
        raise ValueError('Wildcards are not allowed in labels. labels={labels}'.format(labels=labels))
    result = []
    if labels:
        labels = ['{key}:{val}'.format(key=key, val=val) for (key, val) in labels if val]
        resp = self.__request_get(CromwellRestAPI.ENDPOINT_WORKFLOWS, params={'additionalQueryResultFields': 'labels', 'includeSubworkflows': (not exclude_subworkflow), 'labelor': labels})
        if (resp and resp['results']):
            result.extend(resp['results'])
        logger.debug('find_by_labels: labels={labels}, result={result}'.format(labels=labels, result=result))
    return result