From e05fd51dbcd58d145b35a2acf459f14d2805291c Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 17 Feb 2021 11:54:22 +0000 Subject: [PATCH] more DummyTqdmFile safety --- tqdm/contrib/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tqdm/contrib/__init__.py b/tqdm/contrib/__init__.py index f0b80c2a1..2a8902b91 100644 --- a/tqdm/contrib/__init__.py +++ b/tqdm/contrib/__init__.py @@ -21,15 +21,21 @@ def __init__(self, wrapped): self._buf = [] def write(self, x, nolock=False): - nl = "\n" if isinstance(x, str) else b"\n" + nl = b"\n" if isinstance(x, bytes) else "\n" pre, sep, post = x.rpartition(nl) if sep: - tqdm.write(type(nl)().join(self._buf) + pre, - file=self._wrapped, nolock=nolock) + blank = type(nl)() + tqdm.write(blank.join(self._buf + [pre, sep]), + end=blank, file=self._wrapped, nolock=nolock) self._buf = [post] else: self._buf.append(x) + def __del__(self): + if self._buf: + blank = type(self._buf[0])() + tqdm.write(blank.join(self._buf), end=blank, file=self._wrapped) + def builtin_iterable(func): """Wraps `func()` output in a `list()` in py2"""