Skip to content

Commit b5fef4e

Browse files
committed
first attempt to limit output frequency
1 parent c522dbd commit b5fef4e

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

awscli/customizations/s3/results.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ class ResultPrinter(BaseResultHandler):
315315
SRC_DEST_TRANSFER_LOCATION_FORMAT = '{src} to {dest}'
316316
SRC_TRANSFER_LOCATION_FORMAT = '{src}'
317317

318-
def __init__(self, result_recorder, out_file=None, error_file=None):
318+
def __init__(self, result_recorder, out_file=None, error_file=None, frequency=None):
319319
"""Prints status of ongoing transfer
320320
321321
:type result_recorder: ResultRecorder
@@ -331,6 +331,8 @@ def __init__(self, result_recorder, out_file=None, error_file=None):
331331
"""
332332
self._result_recorder = result_recorder
333333
self._out_file = out_file
334+
self._frequency = frequency
335+
self._first = True
334336
if self._out_file is None:
335337
self._out_file = sys.stdout
336338
self._error_file = error_file
@@ -347,12 +349,16 @@ def __init__(self, result_recorder, out_file=None, error_file=None):
347349
DryRunResult: self._print_dry_run,
348350
FinalTotalSubmissionsResult: self._clear_progress_if_no_more_expected_transfers,
349351
}
352+
self._now = time.time()
350353

351354
def __call__(self, result):
352355
"""Print the progress of the ongoing transfer based on a result"""
353-
self._result_handler_map.get(type(result), self._print_noop)(
354-
result=result
355-
)
356+
if self._first or (self._frequency is None) or (time.time() - self._now >= self._frequency):
357+
self._result_handler_map.get(type(result), self._print_noop)(
358+
result=result
359+
)
360+
self._now = time.time()
361+
self._first = False
356362

357363
def _print_noop(self, **kwargs):
358364
# If the result does not have a handler, then do nothing with it.

awscli/customizations/s3/s3handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def _add_result_printer(self, result_recorder, result_processor_handlers):
104104
elif not self._cli_params.get('progress'):
105105
result_printer = NoProgressResultPrinter(result_recorder)
106106
else:
107-
result_printer = ResultPrinter(result_recorder)
107+
result_printer = ResultPrinter(result_recorder, frequency=5)
108108
result_processor_handlers.append(result_printer)
109109

110110

0 commit comments

Comments
 (0)