tools/pydfu: Workaround stdio flush error on Windows with Python 3.6.

There appears to be an issue on Windows with CPython >= 3.6,
sys.stdout.flush() raises an exception:

    OSError: [WinError 87] The parameter is incorrect

It works fine to just catch and ignore the error on the flush line.  Tested
on Windows 10 x64 1803 (Build 17134.228), Python 3.6.4 amd64.
This commit is contained in:
Andrew Leech 2018-09-12 16:42:06 +10:00 committed by Damien George
parent cb3c66e793
commit a2703649ea
1 changed files with 4 additions and 1 deletions

View File

@ -482,7 +482,10 @@ def cli_progress(addr, offset, size):
print("\r0x{:08x} {:7d} [{}{}] {:3d}% " print("\r0x{:08x} {:7d} [{}{}] {:3d}% "
.format(addr, size, '=' * done, ' ' * (width - done), .format(addr, size, '=' * done, ' ' * (width - done),
offset * 100 // size), end="") offset * 100 // size), end="")
sys.stdout.flush() try:
sys.stdout.flush()
except OSError:
pass # Ignore Windows CLI "WinError 87" on Python 3.6
if offset == size: if offset == size:
print("") print("")