@@ -316,7 +316,7 @@ class ResultPrinter(BaseResultHandler):
316
316
SRC_TRANSFER_LOCATION_FORMAT = '{src}'
317
317
318
318
def __init__ (
319
- self , result_recorder , out_file = None , error_file = None , frequency = 0
319
+ self , result_recorder , out_file = None , error_file = None , frequency = 0 , oneline = True
320
320
):
321
321
"""Prints status of ongoing transfer
322
322
@@ -352,19 +352,30 @@ def __init__(
352
352
FinalTotalSubmissionsResult : self ._clear_progress_if_no_more_expected_transfers ,
353
353
}
354
354
self ._now = time .time ()
355
+ self ._oneline = oneline
355
356
356
357
def __call__ (self , result ):
357
358
"""Print the progress of the ongoing transfer based on a result"""
359
+ result_handler = self ._result_handler_map .get (type (result ), self ._print_noop )
360
+ if type (result ) is ProgressResult :
361
+ result_handler = self ._override_progress_result_handler (
362
+ result , result_handler
363
+ )
364
+ result_handler (result = result )
365
+
366
+ def _override_progress_result_handler (self , result , result_handler ):
358
367
if (
359
- self ._first
360
- or (self ._frequency == 0 )
361
- or (time .time () - self ._now >= self ._frequency )
362
- ):
363
- self ._result_handler_map .get (type (result ), self ._print_noop )(
364
- result = result
368
+ type (result ) in [ProgressResult ]
369
+ and (
370
+ self ._first
371
+ or (self ._frequency == 0 )
372
+ or (time .time () - self ._now >= self ._frequency )
365
373
)
374
+ ):
366
375
self ._now = time .time ()
367
376
self ._first = False
377
+ return result_handler
378
+ return self ._print_noop
368
379
369
380
def _print_noop (self , ** kwargs ):
370
381
# If the result does not have a handler, then do nothing with it.
@@ -475,15 +486,19 @@ def _print_progress(self, **kwargs):
475
486
if not self ._result_recorder .expected_totals_are_final ():
476
487
progress_statement += self ._STILL_CALCULATING_TOTALS
477
488
478
- # Make sure that it overrides any previous progress bar.
479
- progress_statement = self ._adjust_statement_padding (
480
- progress_statement , ending_char = '\r '
481
- )
482
- # We do not want to include the carriage return in this calculation
483
- # as progress length is used for determining whitespace padding.
484
- # So we subtract one off of the length.
485
- self ._progress_length = len (progress_statement ) - 1
486
-
489
+ if self ._oneline :
490
+ # Make sure that it overrides any previous progress bar.
491
+ progress_statement = self ._adjust_statement_padding (
492
+ progress_statement , ending_char = '\r '
493
+ )
494
+ # We do not want to include the carriage return in this calculation
495
+ # as progress length is used for determining whitespace padding.
496
+ # So we subtract one off of the length.
497
+ self ._progress_length = len (progress_statement ) - 1
498
+ else :
499
+ progress_statement = self ._adjust_statement_padding (
500
+ progress_statement , ending_char = '\n '
501
+ )
487
502
# Print the progress out.
488
503
self ._print_to_out_file (progress_statement )
489
504
0 commit comments