|
23 | 23 | """Definition of the command line interface's (CLI) entry point."""
|
24 | 24 |
|
25 | 25 |
|
| 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 | + |
26 | 35 | def main(argv=None):
|
27 | 36 | """Entry point for MRIQC's CLI."""
|
28 | 37 | import atexit
|
29 | 38 | import gc
|
30 | 39 | import os
|
31 | 40 | import sys
|
32 | 41 | import time
|
| 42 | + import datetime |
33 | 43 | from tempfile import mkstemp
|
34 | 44 |
|
35 | 45 | from mriqc import config, messages
|
@@ -186,15 +196,15 @@ def main(argv=None):
|
186 | 196 |
|
187 | 197 | generate_reports()
|
188 | 198 |
|
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() |
192 | 201 | )
|
| 202 | + _subject_duration_td = datetime.timedelta(seconds=_subject_duration) |
| 203 | + time_strf = format_elapsed_time(_subject_duration_td) |
| 204 | + |
193 | 205 | config.loggers.cli.log(
|
194 | 206 | 25,
|
195 |
| - messages.PARTICIPANT_FINISHED.format( |
196 |
| - duration=time.strftime('%Hh %Mmin %Ss', _subject_duration) |
197 |
| - ), |
| 207 | + messages.PARTICIPANT_FINISHED.format(duration=time_strf), |
198 | 208 | )
|
199 | 209 |
|
200 | 210 | if _resmon is not None:
|
@@ -258,13 +268,14 @@ def main(argv=None):
|
258 | 268 | config.loggers.cli.info(messages.BIDS_META)
|
259 | 269 | write_derivative_description(config.execution.bids_dir, config.execution.output_dir)
|
260 | 270 | 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 | + |
261 | 276 | config.loggers.cli.log(
|
262 | 277 | 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), |
268 | 279 | )
|
269 | 280 | config.to_filename(
|
270 | 281 | config.execution.log_dir / f'config-{config.execution.run_uuid}.toml',
|
|
0 commit comments