Source code for abed.results.tables
"""
General functions for generating tables for Abed results
"""
from .models import AbedTable, AbedTableTypes
from .ranks import make_rank_table
from ..conf import settings
[docs]def make_tables_scalar(abed_cache, scalar):
# First create the normal table
table = build_tables_scalar(abed_cache, scalar)
table.higher_better = (
True if settings.SCALARS[scalar]["best"] == max else False
)
table.type = AbedTableTypes.VALUES
table.desc = "Scalar: %s" % scalar
table.name = scalar
table.target = scalar
table.is_metric = False
# Now create the rank table from the generated table
ranktable = make_rank_table(table)
return [table, ranktable]
[docs]def build_tables_scalar(abed_cache, scalarname):
table = AbedTable()
table.headers = ["ID"] + sorted(abed_cache.methods)
for i, dset in enumerate(sorted(abed_cache.datasets)):
row = []
for j, method in enumerate(sorted(abed_cache.methods)):
values = list(
abed_cache.get_scalar_values_dm(dset, method, scalarname)
)
best_value = settings.SCALARS[scalarname]["best"](values)
rounded = round(best_value, settings.RESULT_PRECISION)
fmt = "%%.%df" % settings.RESULT_PRECISION
row.append(fmt % rounded)
table.add_row(dset, row)
return table