From abf0efb5ba1529103d83e9adf77567c3a896dc7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ara=C3=BAjo?= <35893602+andrearaujo1988@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:17:14 -0300 Subject: [PATCH 1/2] Added support to display progress bar without cleaning the screen Added support to display progress bar without cleaning the screen. Now it should only shows the percentange and not the progress bar char ">". --- netmiko/scp_functions.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/netmiko/scp_functions.py b/netmiko/scp_functions.py index 72aa76813..9cd2ce4c5 100644 --- a/netmiko/scp_functions.py +++ b/netmiko/scp_functions.py @@ -10,7 +10,7 @@ from netmiko.scp_handler import BaseFileTransfer from netmiko.ssh_dispatcher import FileTransfer from netmiko.cisco.cisco_ios import InLineTransfer - +import sys if TYPE_CHECKING: from netmiko.base_connection import BaseConnection @@ -29,19 +29,15 @@ def progress_bar( # Percentage done percent_complete = sent / size percent_str = f"{percent_complete*100:.2f}%" - hash_count = int(percent_complete * max_width) - progress = hash_count * ">" + if peername is None: - header_msg = f"Transferring file: {filename_str}\n" + header_msg = f"Transferring file: {filename_str}" else: - header_msg = f"Transferring file to {peername}: {filename_str}\n" - - msg = f"{progress:<50}{terminating_char:1} ({percent_str})" - print(clear_screen) - print(header_msg) - print(msg) + header_msg = f"Transferring file to {peername}: {filename_str}" + msg = f"({percent_str})" + sys.stdout.writelines(f"%s %s\r" % (header_msg, msg)) def verifyspace_and_transferfile(scp_transfer: BaseFileTransfer) -> None: """Verify space and transfer file.""" From 5e96957be8c38dfda9be23ec3311eb3f27e56569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ara=C3=BAjo?= <35893602+andrearaujo1988@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:21:15 -0300 Subject: [PATCH 2/2] Update scp_functions.py | Added support to display progress bar without cleaning the screen Added support to display progress bar without cleaning the screen. Now it should only shows the percentange and not the progress bar char ">". Also removed unused vars on the progress_bar function due to this update. --- netmiko/scp_functions.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/netmiko/scp_functions.py b/netmiko/scp_functions.py index 9cd2ce4c5..9740c5cfe 100644 --- a/netmiko/scp_functions.py +++ b/netmiko/scp_functions.py @@ -18,19 +18,15 @@ def progress_bar( filename: AnyStr, size: int, sent: int, peername: Optional[str] = None ) -> None: - max_width = 50 if isinstance(filename, bytes): filename_str = filename.decode() else: filename_str = filename - clear_screen = chr(27) + "[2J" - terminating_char = "|" # Percentage done percent_complete = sent / size percent_str = f"{percent_complete*100:.2f}%" - if peername is None: header_msg = f"Transferring file: {filename_str}" else: