From 1f163d51a4b6b91a3dca150c2cf4d9c84128b8f0 Mon Sep 17 00:00:00 2001 From: Theophile GENTILHOMME Date: Thu, 28 Jun 2018 11:36:50 +0200 Subject: [PATCH] [script][figure] Add decimal control in the printing of metrics --- bob/measure/script/common_options.py | 14 ++++++++++++++ bob/measure/script/figure.py | 20 +++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/bob/measure/script/common_options.py b/bob/measure/script/common_options.py index 032bd09..13bc2d0 100644 --- a/bob/measure/script/common_options.py +++ b/bob/measure/script/common_options.py @@ -375,6 +375,19 @@ def criterion_option(lcriteria=['eer', 'min-hter', 'far'], **kwargs): return custom_criterion_option +def decimal_option(dflt=2, **kwargs): + '''Get option to get decimal value''' + def custom_decimal_option(func): + def callback(ctx, param, value): + ctx.meta['decimal'] = value + return value + return click.option( + '-d', '--decimal', type=click.INT, default=dflt, + help='Number of decimals to be printed.', + callback=callback, show_default=True, **kwargs)(func) + return custom_decimal_option + + def far_option(**kwargs): '''Get option to get far value''' def custom_far_option(func): @@ -589,6 +602,7 @@ def metrics_command(docstring, criteria=('eer', 'min-hter', 'far')): @verbosity_option() @click.pass_context @functools.wraps(func) + @decimal_option() def wrapper(*args, **kwds): return func(*args, **kwds) return wrapper diff --git a/bob/measure/script/figure.py b/bob/measure/script/figure.py index 1ad1a42..8116acf 100644 --- a/bob/measure/script/figure.py +++ b/bob/measure/script/figure.py @@ -219,15 +219,17 @@ class Metrics(MeasureBase): recall, f1_score) def _strings(self, metrics): - fta_str = "%.1f%%" % (100 * metrics[0]) - fmr_str = "%.1f%% (%d/%d)" % (100 * metrics[1], metrics[6], metrics[7]) - fnmr_str = "%.1f%% (%d/%d)" % (100 * metrics[2], metrics[8], metrics[9]) - far_str = "%.1f%%" % (100 * metrics[4]) - frr_str = "%.1f%%" % (100 * metrics[5]) - hter_str = "%.1f%%" % (100 * metrics[3]) - prec_str = "%.1f" % (metrics[10]) - recall_str = "%.1f" % (metrics[11]) - f1_str = "%.1f" % (metrics[12]) + fta_str = "%s%%" % format(100 * metrics[0], '.%df' % self._decimal) + fmr_str = "%s%% (%d/%d)" % (format(100 * metrics[1], '.%df' % self._decimal), + metrics[6], metrics[7]) + fnmr_str = "%s%% (%d/%d)" % (format(100 * metrics[2], '.%df' % self._decimal), + metrics[8], metrics[9]) + far_str = "%s%%" % format(100 * metrics[4], '.%df' % self._decimal) + frr_str = "%s%%" % format(100 * metrics[5], '.%df' % self._decimal) + hter_str = "%s%%" % format(100 * metrics[3], '.%df' % self._decimal) + prec_str = "%s" % format(metrics[10], '.%df' % self._decimal) + recall_str = "%s" % format(metrics[11], '.%df' % self._decimal) + f1_str = "%s" % format(metrics[12], '.%df' % self._decimal) return (fta_str, fmr_str, fnmr_str, far_str, frr_str, hter_str, prec_str, recall_str, f1_str) -- 2.21.0