#! /usr/bin/python3 import filemanip import re import sys def filter_dbmem(rec): if len(rec.fields) < 3: return None if ";" not in rec.fields[1]: return None (date, purview) = re.split(";\s*", rec.fields[1], 1) fields = [""] * 16 fields[6] = rec.fields[0] fields[5] = rec.fields[2] fields[11] = purview fields[0] = date return Record(fields) def call_filter(dtbname, recs): final = [] for rec in recs: if rec.fields[0].startswith("#"): continue if dtbname == "dbmem": return filter_dbmem(rec) else: raise ValueError("no such filter for database") result = filter_dbmem(rec) if result is not None: final.append(result) return final def main(args): recs = filemanip.FileStorage('csv', "/dev/stdin").load() if len(args) == 0: raise ValueError("need a type of database") dtbname = args[0] call_filter(dtbname, recs) filemanip.FileStorage('csv', "/dev/stdout").store(recs) main(sys.argv[1:])