mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 12:21:35 +00:00
Fix Row Filtering (#1433)
When multiple filter expressions are defined: GAM_CSV_ROW_FILTER - should match only if all expressions match GAM_CSV_ROW_DROP_FILTER - should match if any expression matches Currently, the opposite is true
This commit is contained in:
@@ -158,25 +158,25 @@ def write_csv_file(csvRows, titles, list_type, todrive):
|
|||||||
for c, filterVal in iter(filters.items()):
|
for c, filterVal in iter(filters.items()):
|
||||||
for column in columns[c]:
|
for column in columns[c]:
|
||||||
if filterVal[1] == 'regex':
|
if filterVal[1] == 'regex':
|
||||||
if filterVal[2].search(str(row.get(column, ''))):
|
|
||||||
return True
|
|
||||||
elif filterVal[1] == 'notregex':
|
|
||||||
if not filterVal[2].search(str(row.get(column, ''))):
|
if not filterVal[2].search(str(row.get(column, ''))):
|
||||||
return True
|
return False
|
||||||
|
elif filterVal[1] == 'notregex':
|
||||||
|
if filterVal[2].search(str(row.get(column, ''))):
|
||||||
|
return False
|
||||||
elif filterVal[1] in ['date', 'time']:
|
elif filterVal[1] in ['date', 'time']:
|
||||||
if rowDateTimeFilterMatch(
|
if not rowDateTimeFilterMatch(
|
||||||
filterVal[1] == 'date', row.get(column, ''),
|
filterVal[1] == 'date', row.get(column, ''),
|
||||||
filterVal[2], filterVal[3]):
|
filterVal[2], filterVal[3]):
|
||||||
return True
|
return False
|
||||||
elif filterVal[1] == 'count':
|
elif filterVal[1] == 'count':
|
||||||
if rowCountFilterMatch(
|
if not rowCountFilterMatch(
|
||||||
row.get(column, 0), filterVal[2], filterVal[3]):
|
row.get(column, 0), filterVal[2], filterVal[3]):
|
||||||
return True
|
return False
|
||||||
else: #boolean
|
else: #boolean
|
||||||
if rowBooleanFilterMatch(
|
if not rowBooleanFilterMatch(
|
||||||
row.get(column, False), filterVal[2]):
|
row.get(column, False), filterVal[2]):
|
||||||
return True
|
return False
|
||||||
return False
|
return True
|
||||||
|
|
||||||
if GC_Values[GC_CSV_ROW_FILTER] or GC_Values[GC_CSV_ROW_DROP_FILTER]:
|
if GC_Values[GC_CSV_ROW_FILTER] or GC_Values[GC_CSV_ROW_DROP_FILTER]:
|
||||||
if GC_Values[GC_CSV_ROW_FILTER]:
|
if GC_Values[GC_CSV_ROW_FILTER]:
|
||||||
|
|||||||
Reference in New Issue
Block a user