def pattern_filter()

in src/translation/dags/translation_utils/csv_utils.py [0:0]


def pattern_filter(pattern):
    """
    creates a pattern filter for each field
    pattern should be of the form FIELD1:KEYWORD1,FIELD2:KEYWORD1,...
    this will filter rows that contains KEYWORD1 on FIELD1 or KEYWORD2 on FIELD2, etc...
    """
    if not pattern or pattern == "":
        return None

    field_patterns = list(map(lambda f: f.strip().split("="), pattern.split(",")))

    def filter(row):
        for [field, keyword] in field_patterns:
            if field in row and row[field].find(keyword) >= 0:
                return True

        return False

    return filter