Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
Arquivo: cshr.py Projeto: ec429/harris
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
Exemplo n.º 6
0
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