diff --git a/cal_tools/cal_tools/tools.py b/cal_tools/cal_tools/tools.py index a9de200724c9413707b34ff6e0fcccdf6f4866ae..7d549bc32f3573d6d629185c39a0020ccc8db521 100644 --- a/cal_tools/cal_tools/tools.py +++ b/cal_tools/cal_tools/tools.py @@ -107,52 +107,38 @@ def make_timing_summary(run_path, joblist): :param run_path: Run path of the slurm job :param joblist: List of slurm jobs """ + print('Prepare timing summary') run_path = os.path.abspath(run_path) pars_vals = [] pars = 'JobID,Elapsed,Suspended' pars_name = pars.split(',') for job in joblist: - print('Summary for job {}'.format(job)) out = check_output(['sacct', '-j', job, '--format={}'.format(pars)], shell=False) l = str(out).split('\\n') - print (l) for line in l[2:]: s = line.split() - if len(s)==len(pars_name): + if len(s) == len(pars_name): pars_vals.append(s) - print(s) break + tmpl = Template(''' + Timing summary + ============== + + .. math:: + {% for line in table %} + {{ line }} + {%- endfor %} + ''') + import tabulate with open("{}/timing_summary.rst".format(run_path), "w+") as gfile: - gfile.write('Timing summary\n') - gfile.write('==============\n\n') - - gfile.write('.. math::\n') - gfile.write(' \\begin{tabular}{ccc}\n') - gfile.write(' \\hline\n') - gfile.write(' ') - for i in range(len(pars_name)): - gfile.write(pars_name[i]) - if i<len(pars_name)-1: - gfile.write(' & ') - else: - gfile.write(' \\\\ \n') - gfile.write(' \\hline\n') - - for pars_val in pars_vals: - gfile.write(' ') - for i in range(len(pars_name)): - gfile.write(pars_val[i]) - if i < len(pars_name) - 1: - gfile.write(' & ') - else: - gfile.write(' \\\\ \n') - gfile.write(' \\hline\n') - gfile.write(' \\end{tabular}\n') + table = tabulate.tabulate(pars_vals, tablefmt='latex', + headers=pars_name) + gfile.write(textwrap.dedent(tmpl.render(table=table.split('\n')))) def make_report(run_path, tmp_path, out_path, project, author, version, report_to):