def _filter_row(row, filters):
def filterfunc(row, filt):
val = filters[filt]['val']
if filt == "tracks":
tracks_set = set(val.split('|'))
return row['trackrel'] in tracks_set
elif filt.endswith(" (min)"):
filt = filt.replace(" (min)", "")
val = float(val)
return row[filt] >= val
elif filt.endswith(" (max)"):
filt = filt.replace(" (max)", "")
val = float(val)
return row[filt] <= val
elif isinstance(row[filt], bool):
# need to convert our string query values to bool for the comparison
return row[filt] == bool(val)
else:
return row[filt] == val
return all(filterfunc(row, filt) for filt in filters)
评论列表
文章目录