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.
pull/4070/merge
Andrew Leech 2018-09-12 16:42:06 +10:00 zatwierdzone przez Damien George
rodzic cb3c66e793
commit a2703649ea
1 zmienionych plików z 4 dodań i 1 usunięć

Wyświetl plik

@ -482,7 +482,10 @@ def cli_progress(addr, offset, size):
print("\r0x{:08x} {:7d} [{}{}] {:3d}% "
.format(addr, size, '=' * done, ' ' * (width - done),
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:
print("")