Skip to content

Commit 653ec69

Browse files
authored
Merge pull request #1366 from jhlegarreta/FixElapsedRuntimeFormat
BUG: Fix elapsed runtime format
2 parents f05769e + 02159a5 commit 653ec69

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

mriqc/cli/run.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,23 @@
2323
"""Definition of the command line interface's (CLI) entry point."""
2424

2525

26+
def format_elapsed_time(elapsed_timedelta):
27+
"""Format a timedelta instance as a %Hh %Mmin %Ss string."""
28+
return (
29+
f'{elapsed_timedelta.days * 24 + elapsed_timedelta.seconds // 3600:02d}h '
30+
f'{(elapsed_timedelta.seconds % 3600) // 60:02d}min '
31+
f'{elapsed_timedelta.seconds % 60:02d}s'
32+
)
33+
34+
2635
def main(argv=None):
2736
"""Entry point for MRIQC's CLI."""
2837
import atexit
2938
import gc
3039
import os
3140
import sys
3241
import time
42+
import datetime
3343
from tempfile import mkstemp
3444

3545
from mriqc import config, messages
@@ -186,15 +196,15 @@ def main(argv=None):
186196

187197
generate_reports()
188198

189-
_subject_duration = time.gmtime(
190-
(time.time() - config.settings.start_time)
191-
/ sum(len(files) for files in config.workflow.inputs.values())
199+
_subject_duration = (time.time() - config.settings.start_time) / sum(
200+
len(files) for files in config.workflow.inputs.values()
192201
)
202+
_subject_duration_td = datetime.timedelta(seconds=_subject_duration)
203+
time_strf = format_elapsed_time(_subject_duration_td)
204+
193205
config.loggers.cli.log(
194206
25,
195-
messages.PARTICIPANT_FINISHED.format(
196-
duration=time.strftime('%Hh %Mmin %Ss', _subject_duration)
197-
),
207+
messages.PARTICIPANT_FINISHED.format(duration=time_strf),
198208
)
199209

200210
if _resmon is not None:
@@ -258,13 +268,14 @@ def main(argv=None):
258268
config.loggers.cli.info(messages.BIDS_META)
259269
write_derivative_description(config.execution.bids_dir, config.execution.output_dir)
260270
write_bidsignore(config.execution.output_dir)
271+
272+
_run_duration = time.time() - config.settings.start_time
273+
_run_duration_td = datetime.timedelta(seconds=_run_duration)
274+
time_strf = format_elapsed_time(_run_duration_td)
275+
261276
config.loggers.cli.log(
262277
26,
263-
messages.RUN_FINISHED.format(
264-
duration=time.strftime(
265-
'%Hh %Mmin %Ss', time.gmtime(time.time() - config.settings.start_time)
266-
)
267-
),
278+
messages.RUN_FINISHED.format(duration=time_strf),
268279
)
269280
config.to_filename(
270281
config.execution.log_dir / f'config-{config.execution.run_uuid}.toml',

0 commit comments

Comments
 (0)