def extract_gprod(f): records = subprocess.check_output(['grep', ' 11:55 M GP '], stdin=f) res = [] d = None day = {} def save_day(): if day: grow = {i: day[i][0] for i in day} drow = {i: day[i][1] for i in day} for dct in [grow, drow]: dct['total'] = sum(dct.values()) res.append({'date': d, 'gprod': grow, 'dprod': drow}) for record in records.splitlines(): # <date> 11:55 M GP <class> <current> <delta> date, time, M, GP, cls, current, delta = record.split(" ") assert time == '11:55', record assert M == 'M', record assert GP == 'GP', record date = hhist.date.parse(date) if date != d: save_day() day = {} d = date cls = int(cls) current = hsave.readfloat(current) delta = hsave.readfloat(delta) day[cls] = (current, delta) save_day() return res
def extract_gprod(f): records = subprocess.check_output(['grep', ' 11:55 M GP '], stdin=f) res = [] d = None day = {} def save_day(): if day: grow = {i:day[i][0] for i in day} drow = {i:day[i][1] for i in day} for dct in [grow, drow]: dct['total'] = sum(dct.values()) res.append({'date':d, 'gprod':grow, 'dprod':drow}) for record in records.splitlines(): # <date> 11:55 M GP <class> <current> <delta> date, time, M, GP, cls, current, delta = record.split(" ") assert time == '11:55', record assert M == 'M', record assert GP == 'GP', record date = hhist.date.parse(date) if date != d: save_day() day = {} d = date cls = int(cls) current = hsave.readfloat(current) delta = hsave.readfloat(delta) day[cls] = (current, delta) save_day() return res
def extract_como(f): records = subprocess.check_output(os.path.join(this_script_path, 'como'), stdin=f) entries = [] for record in records.splitlines(): date, etyp, value = record.split(" ") date = hhist.date.parse(date) value = hsave.readfloat(value) if etyp == 'CO': vname = 'confid' elif etyp == 'MO': vname = 'morale' else: raise Exception("Bad etyp", etyp, "in record", record) entries.append({'date': date, 'etyp': etyp, vname: value}) co = extract_confid(entries) mo = extract_morale(entries) res = [] last = None for c, m in zip(co, mo): if c[0] != m[0]: raise UnpairedEntry(c[0], m[0]) while last and (c[0] != last['date'].next()): last['date'] = last['date'].next() res.append(dict(last)) last = {'date': c[0], 'confid': c[1], 'morale': m[1]} res.append(dict(last)) return (res)
def extract_como(f): records = subprocess.check_output(os.path.join(this_script_path, 'como'), stdin=f) entries = [] for record in records.splitlines(): date, etyp, value = record.split(" ") date = hhist.date.parse(date) value = hsave.readfloat(value) if etyp == 'CO': vname = 'confid' elif etyp == 'MO': vname = 'morale' else: raise Exception("Bad etyp", etyp, "in record", record) entries.append({'date':date, 'etyp':etyp, vname:value}) co = extract_confid(entries) mo = extract_morale(entries) res = [] last = None for c,m in zip(co, mo): if c[0]!=m[0]: raise UnpairedEntry(c[0], m[0]) while last and (c[0] != last['date'].next()): last['date'] = last['date'].next() res.append(dict(last)) last = {'date':c[0], 'confid':c[1], 'morale':m[1]} res.append(dict(last)) return(res)
def extract_cshr(f): records = subprocess.check_output(os.path.join(this_script_path, 'cshr'), stdin=f) entries = {} for record in records.splitlines(): date, etyp, delta, current = record.split(" ") date = hhist.date.parse(date) delta = hsave.readfloat(delta) if etyp == 'CA': entries[date] = delta else: raise Exception("Bad etyp", etyp, "in record", record) return entries