diff --git a/.meta/.readme.rst b/.meta/.readme.rst index 628780f5..4826a0c1 100644 --- a/.meta/.readme.rst +++ b/.meta/.readme.rst @@ -769,7 +769,7 @@ A reusable canonical example is given below: import contextlib import sys from tqdm import tqdm - from tqdm.utils import DummyTqdmFile # write to tqdm + from tqdm.contrib import DummyTqdmFile @contextlib.contextmanager diff --git a/MANIFEST.in b/MANIFEST.in index 7c1a62c7..e4349482 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,6 +7,9 @@ include logo.png include Makefile include tox.ini +# Non-std submodules +recursive-include tqdm/contrib *.py + # Test suite recursive-include tqdm/tests *.py include requirements-dev.txt diff --git a/README.rst b/README.rst index d95cd8b1..91046079 100644 --- a/README.rst +++ b/README.rst @@ -949,7 +949,7 @@ A reusable canonical example is given below: import contextlib import sys from tqdm import tqdm - from tqdm.utils import DummyTqdmFile # write to tqdm + from tqdm.contrib import DummyTqdmFile @contextlib.contextmanager diff --git a/examples/redirect_print.py b/examples/redirect_print.py index 0748ed12..a33e2350 100644 --- a/examples/redirect_print.py +++ b/examples/redirect_print.py @@ -15,7 +15,7 @@ from time import sleep import contextlib import sys from tqdm import tqdm -from tqdm.utils import DummyTqdmFile +from tqdm.contrib import DummyTqdmFile @contextlib.contextmanager diff --git a/tqdm/contrib/__init__.py b/tqdm/contrib/__init__.py new file mode 100644 index 00000000..380a18d8 --- /dev/null +++ b/tqdm/contrib/__init__.py @@ -0,0 +1,10 @@ +from tqdm import tqdm +from tqdm.utils import ObjectWrapper + + +class DummyTqdmFile(ObjectWrapper): + """Dummy file-like that will write to tqdm""" + def write(self, x, nolock=False): + # Avoid print() second call (useless \n) + if len(x.rstrip()) > 0: + tqdm.write(x, file=self._wrapped, nolock=nolock) diff --git a/tqdm/tests/tests_tqdm.py b/tqdm/tests/tests_tqdm.py index 19f1fe2f..1365e059 100644 --- a/tqdm/tests/tests_tqdm.py +++ b/tqdm/tests/tests_tqdm.py @@ -15,7 +15,7 @@ from tqdm import tqdm from tqdm import trange from tqdm import TqdmDeprecationWarning from tqdm.std import Bar -from tqdm.utils import DummyTqdmFile +from tqdm.contrib import DummyTqdmFile try: from StringIO import StringIO diff --git a/tqdm/utils.py b/tqdm/utils.py index b5196f7f..df7848cd 100644 --- a/tqdm/utils.py +++ b/tqdm/utils.py @@ -187,15 +187,6 @@ class ObjectWrapper(object): self.wrapper_setattr('_wrapped', wrapped) -class DummyTqdmFile(ObjectWrapper): - """Dummy file-like that will write to tqdm""" - def write(self, x, nolock=False): - from tqdm import tqdm - # Avoid print() second call (useless \n) - if len(x.rstrip()) > 0: - tqdm.write(x, file=self._wrapped, nolock=nolock) - - class SimpleTextIOWrapper(ObjectWrapper): """ Change only `.write()` of the wrapped object by encoding the passed