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_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)
Example #4
0
def show_result(data):
    table = AsciiTable(data)
    # table.inner_row_border = True
    print table.table
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)