Esempio n. 1
0
def selectFilters(cfg, lexicon):
    filtersPresetName, filtersCfg = selectSubTreeWithBase(cfg, 'filters')

    filters = []

    #OriginalOnlyFilter
    if filtersCfg.get('original') == True:
        filters.append(Filters.OriginalOnlyFilter(lexicon))

    #NameLengthFilter
    minLength = filtersCfg.get('min-length', default=0)
    maxLength = filtersCfg.get('max-length', default=float("inf"))
    if minLength > 0 or maxLength < float("inf"):
        filters.append(Filters.NameLengthFilter(minLength, maxLength))

    if filtersCfg.contains('regex'):
        pattern = filtersCfg.get('regex')
        filters.append(Filters.RegexFilter(pattern))

    if cfg.get('verbose'):
        print('Choosing filters using settings %s' % (repr(filtersPresetName)))

    return Filters.AggregateFilter(filters)