Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import print_function, division, absolute_import, unicode_literals
- # By Bravo Six, https://mobile.facebook.com/Bravo.Six.Going.Seven
- def eiz(n):
- if n == 0: return ''
- sv = str('{0:.2f}'.format(n))
- i, f = sv.split(".")
- return i if f == "00" else sv
- def grouping(data):
- GK_LIMITER = "___"
- indexes = set(int(k.rsplit("_", 1)[-1]) for k in data.keys())
- idx_ = 0
- def gv(key):
- return data["%s_%i" % (key, idx_)][0]
- groups = {}
- for idx in indexes:
- idx_ = idx
- key = "%s%s%s" % (gv("cell"), GK_LIMITER, gv("jam"))
- if key not in groups:
- groups[key] = {"indexes": [], "output_jam": [], "output_ot": []}
- groups[key]["indexes"].append(idx)
- col = "output_ot" if (gv("jam") in ("16-17", "17-18", "18-19")) else "output_jam"
- groups[key][col].append(float(gv("output")))
- return groups, indexes
- def process(data):
- groups, _ = grouping(data)
- idx_ = 0
- def gv(key):
- return data["%s_%i" % (key, idx_)][0]
- def sv(key, value):
- data["%s_%i" % (key, idx_)] = [value]
- def safe_div(dividend, divider):
- return 0 if divider == 0 else (dividend / divider)
- for g_data in groups.values():
- for idx in g_data["indexes"]:
- idx_ = idx
- output_jam = sum(g_data["output_jam"])
- output_ot = sum(g_data["output_ot"])
- sv('output_jam', eiz(output_jam))
- sv('output_ot', eiz(output_ot))
- output = float(gv('output'))
- sv('time', eiz(safe_div(output, output_jam)))
- sv("time_ot", eiz(safe_div(output, output_ot)))
- return data
- def _main(data):
- result = process(data)
- print(result)
- if __name__ == "__main__":
- data = {
- 'cell_1': ['13a'], 'jam_1': ['07-08'], 'model_1': ['SUPERSTAR'], 'output_1': ['10'], 'output_jam_1': [''],
- 'time_1': [''], 'output_ot_1': [''], 'time_ot_1': [''],
- 'cell_2': ['13a'], 'jam_2': ['07-08'], 'model_2': ['SUPERSTAR'], 'output_2': ['20'], 'output_jam_2': [''],
- 'time_2': [''], 'output_ot_2': [''], 'time_ot_2': [''],
- 'cell_3': ['13c'], 'jam_3': ['07-08'], 'model_3': ['SUPERSTAR'], 'output_3': ['40'], 'output_jam_3': [''],
- 'time_3': [''], 'output_ot_3': [''], 'time_ot_3': [''],
- 'cell_4': ['13b'], 'jam_4': ['08-09'], 'model_4': ['SUPERSTAR'], 'output_4': ['30'], 'output_jam_4': [''],
- 'time_4': [''], 'output_ot_4': [''], 'time_ot_4': [''],
- 'cell_5': ['13d'], 'jam_5': ['16-17'], 'model_5': ['SUPERSTAR'], 'output_5': ['40'], 'output_jam_5': [''],
- 'time_5': [''], 'output_ot_5': [''], 'time_ot_5': [''],
- 'cell_6': ['13d'], 'jam_6': ['16-17'], 'model_6': ['SUPERSTAR'], 'output_6': ['40'], 'output_jam_6': [''],
- 'time_6': [''], 'output_ot_6': [''], 'time_ot_6': [''],
- 'cell_7': ['13d'], 'jam_7': ['17-18'], 'model_7': ['SUPERSTAR'], 'output_7': ['10'], 'output_jam_7': [''],
- 'time_7': [''], 'output_ot_7': [''], 'time_ot_7': [''],
- 'cell_8': ['13d'], 'jam_8': ['18-19'], 'model_8': ['SUPERSTAR'], 'output_8': ['60'], 'output_jam_8': [''],
- 'time_8': [''], 'output_ot_8': [''], 'time_ot_8': ['']}
- _main(data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement