def print_mad_recap(q, order_by=["run_id"]): """ Create the table then print the mad """ # -#-#-#- # # I n i t # # -#-#-#- # table_body = [] # -#-#-#-#-#- # # H e a d e r # # -#-#-#-#-#- # header_name = L_FIELD + ["mad", "rmsad"] header_unit = [DEFAULT_CHARACTER] * len(L_FIELD) + ["kcal/mol", "kcal/mol"] # -#-#-#- # # B o d y # # -#-#-#- # #Now add the real mad for run_id, l_info in q.d_run_info.iteritems(): try: mad = q.d_mad[run_id] rmsad = q.d_rmsad[run_id] except KeyError: mad = 0. rmsad = 0. line = [getattr(l_info, field) for field in L_FIELD] + [mad, rmsad] table_body.append(line) # -#-#-#-#-#- # # F o r m a t # # -#-#-#-#-#- # table_body = order(order_by, header_name, table_body) table_body = format_table(header_name, table_body) # -#-#-#-#-#-#-#- # # B i g Ta b l e # # -#-#-#-#-#-#-#- # table_body = [map(str, i) for i in table_body] table_data = [header_name] + [header_unit] + table_body table_big = AsciiTable(table_data) print table_big.table(row_separator=2)
def print_energie_recap(q, order_by=["run_id"], mode=3): # -#-#-#- # # I n i t # # -#-#-#- # # 1 : only energy # 2 : only ae # 3 : all # -#-#-#-#-#- # # H e a d e r # # -#-#-#-#-#- # header_name = L_FIELD + ["ele"] header_unit = [DEFAULT_CHARACTER] * (len(L_FIELD) + 1) # -#- # # A E # # -#- # if mode == 1 or mode == 3: header_name += "e".split() header_unit += ["hartree"] if mode == 2 or mode == 3: header_name += "ae ae_ref ae_diff".split() header_unit += ["kcal/mol"] * 3 table_body = [] for run_id in q.l_run_id: l_info = q.d_run_info[run_id] line = [getattr(l_info, field) for field in L_FIELD] if mode in [1, 3]: d_e = q.d_e[run_id] if mode in [2, 3]: d_ae = q.d_ae[run_id] d_ae_ref = q.d_ae_ref d_ae_deviation = q.d_ae_deviation[run_id] for ele in q.l_element: sentinel = False line_value = [] if mode in [1, 3]: if ele in d_e: line_value.append(d_e[ele]) sentinel = True else: line_value.append(None) if mode in [2, 3]: if ele in d_ae: line_value.append(d_ae[ele]) sentinel = True else: line_value.append(None) if ele in d_ae_ref: line_value.append(d_ae_ref[ele]) else: line_value.append(None) if ele in d_ae_deviation: line_value.append(d_ae_deviation[ele]) else: line_value.append(None) if sentinel: table_body.append(line + [ele] + line_value) # -#-#-#-#-#- # # F o r m a t # # -#-#-#-#-#- # table_body = order(order_by, header_name, table_body) table_body = format_table(header_name, table_body) # -#-#-#-#-#-#-#- # # B i g Ta b l e # # -#-#-#-#-#-#-#- # table_body = [map(str, i) for i in table_body] table_data = [header_name] + [header_unit] + table_body mode = config.get("Size", "mode") table_big = AsciiTable(table_data) if all([mode == "Auto", not table_big.ok]) or mode == "Small": table_data_top = [] for i in table_data: l = i[:len(L_FIELD)] if l not in table_data_top: table_data_top.append(l) table_data_botom = [i[0:1] + i[len(L_FIELD):] for i in table_data] table_big = AsciiTable(table_data_top) print table_big.table(row_separator=2) table_big = AsciiTable(table_data_botom) print table_big.table(row_separator=2) else: print table_big.table(row_separator=2)