Hello community,

here is the log from the commit of package python-tqdm for openSUSE:Factory 
checked in at 2020-08-25 12:36:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-tqdm (Old)
 and      /work/SRC/openSUSE:Factory/.python-tqdm.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-tqdm"

Tue Aug 25 12:36:55 2020 rev:36 rq:826985 version:4.48.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-tqdm/python-tqdm.changes  2020-08-01 
12:28:21.450298371 +0200
+++ /work/SRC/openSUSE:Factory/.python-tqdm.new.3399/python-tqdm.changes        
2020-08-25 12:36:59.081383199 +0200
@@ -1,0 +2,21 @@
+Sat Aug 15 16:43:55 UTC 2020 - Arun Persaud <[email protected]>
+
+- update to version 4.48.2:
+  * fix notebook formatting
+
+- changes from version 4.48.1:
+  * fix ANSI escape codes breaking tqdm.write (#692, #777)
+  * fix long-lived strongref (#1007,
+    https://bugs.python.org/issue39093)
+  * fix cli --version crash on missing git/refs/heads (#635)
+  * fix contrib.tenumerate ignoring total (#1017)
+  * fix potential deep => shallow kwargs copy issues
+  * improve notebook display for unknown total (#1015)
+  * make asyncio inherit from std rather than auto
+  * make auto multi-inherit from autonotebook, asyncio on Python3.5+
+  * misc documentation & examples updates
+    + mention docker-compose requirements (#771)
+  * misc linting & tidy
+  * misc minor testing framework updates
+
+-------------------------------------------------------------------

Old:
----
  tqdm-4.48.0.tar.gz

New:
----
  tqdm-4.48.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-tqdm.spec ++++++
--- /var/tmp/diff_new_pack.or7h0Y/_old  2020-08-25 12:37:00.893384093 +0200
+++ /var/tmp/diff_new_pack.or7h0Y/_new  2020-08-25 12:37:00.897384094 +0200
@@ -28,7 +28,7 @@
 %bcond_with test
 %endif
 Name:           python-tqdm%{pkg_suffix}
-Version:        4.48.0
+Version:        4.48.2
 Release:        0
 Summary:        An extensible progress meter
 License:        MPL-2.0 AND MIT

++++++ tqdm-4.48.0.tar.gz -> tqdm-4.48.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/PKG-INFO new/tqdm-4.48.2/PKG-INFO
--- old/tqdm-4.48.0/PKG-INFO    2020-07-17 00:04:14.000000000 +0200
+++ new/tqdm-4.48.2/PKG-INFO    2020-08-03 18:37:15.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: tqdm
-Version: 4.48.0
+Version: 4.48.2
 Summary: Fast, Extensible Progress Meter
 Home-page: https://github.com/tqdm/tqdm
 Maintainer: tqdm developers
@@ -15,7 +15,7 @@
         
         |Build-Status| |Coverage-Status| |Branch-Coverage-Status| 
|Codacy-Grade| |Libraries-Rank| |PyPI-Downloads|
         
-        |DOI| |LICENCE| |OpenHub-Status| |binder-demo| |notebook-demo| 
|awesome-python|
+        |LICENCE| |OpenHub-Status| |binder-demo| |notebook-demo| 
|awesome-python|
         
         ``tqdm`` derives from the Arabic word *taqaddum* (تقدّم) which can 
mean "progress,"
         and is an abbreviation for "I love you so much" in Spanish (*te quiero 
demasiado*).
@@ -328,6 +328,8 @@
         - `Hanging pipes in python2 
<https://github.com/tqdm/tqdm/issues/359>`__:
           when using ``tqdm`` on the CLI, you may need to use Python 3.5+ for 
correct
           buffering.
+        - `No intermediate output in docker-compose 
<https://github.com/tqdm/tqdm/issues/771>`__:
+          use ``docker-compose run`` instead of ``docker-compose up`` and 
``tty: true``.
         
         If you come across any other difficulties, browse and file 
|GitHub-Issues|.
         
@@ -1262,7 +1264,7 @@
         
         Open Source (OSI approved): |LICENCE|
         
-        Citation information: |DOI| (publication), |DOI-code| (code)
+        Citation information: |DOI|
         
         |README-Hits| (Since 19 May 2016)
         
@@ -1322,9 +1324,7 @@
            :target: https://github.com/vinta/awesome-python
         .. |LICENCE| image:: https://img.shields.io/pypi/l/tqdm.svg
            :target: https://raw.githubusercontent.com/tqdm/tqdm/master/LICENCE
-        .. |DOI| image:: 
https://img.shields.io/badge/DOI-10.21105/joss.01277-green.svg
-           :target: https://doi.org/10.21105/joss.01277
-        .. |DOI-code| image:: 
https://img.shields.io/badge/DOI-10.5281/zenodo.595120-blue.svg
+        .. |DOI| image:: 
https://img.shields.io/badge/DOI-10.5281/zenodo.595120-blue.svg
            :target: https://doi.org/10.5281/zenodo.595120
         .. |notebook-demo| image:: 
https://img.shields.io/badge/launch-notebook-orange.svg?logo=jupyter
            :target: https://notebooks.ai/demo/gh/tqdm/tqdm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/README.rst new/tqdm-4.48.2/README.rst
--- old/tqdm-4.48.0/README.rst  2020-07-17 00:04:13.000000000 +0200
+++ new/tqdm-4.48.2/README.rst  2020-08-03 18:37:13.000000000 +0200
@@ -7,7 +7,7 @@
 
 |Build-Status| |Coverage-Status| |Branch-Coverage-Status| |Codacy-Grade| 
|Libraries-Rank| |PyPI-Downloads|
 
-|DOI| |LICENCE| |OpenHub-Status| |binder-demo| |notebook-demo| |awesome-python|
+|LICENCE| |OpenHub-Status| |binder-demo| |notebook-demo| |awesome-python|
 
 ``tqdm`` derives from the Arabic word *taqaddum* (تقدّم) which can mean 
"progress,"
 and is an abbreviation for "I love you so much" in Spanish (*te quiero 
demasiado*).
@@ -320,6 +320,8 @@
 - `Hanging pipes in python2 <https://github.com/tqdm/tqdm/issues/359>`__:
   when using ``tqdm`` on the CLI, you may need to use Python 3.5+ for correct
   buffering.
+- `No intermediate output in docker-compose 
<https://github.com/tqdm/tqdm/issues/771>`__:
+  use ``docker-compose run`` instead of ``docker-compose up`` and ``tty: 
true``.
 
 If you come across any other difficulties, browse and file |GitHub-Issues|.
 
@@ -1254,7 +1256,7 @@
 
 Open Source (OSI approved): |LICENCE|
 
-Citation information: |DOI| (publication), |DOI-code| (code)
+Citation information: |DOI|
 
 |README-Hits| (Since 19 May 2016)
 
@@ -1314,9 +1316,7 @@
    :target: https://github.com/vinta/awesome-python
 .. |LICENCE| image:: https://img.shields.io/pypi/l/tqdm.svg
    :target: https://raw.githubusercontent.com/tqdm/tqdm/master/LICENCE
-.. |DOI| image:: https://img.shields.io/badge/DOI-10.21105/joss.01277-green.svg
-   :target: https://doi.org/10.21105/joss.01277
-.. |DOI-code| image:: 
https://img.shields.io/badge/DOI-10.5281/zenodo.595120-blue.svg
+.. |DOI| image:: 
https://img.shields.io/badge/DOI-10.5281/zenodo.595120-blue.svg
    :target: https://doi.org/10.5281/zenodo.595120
 .. |notebook-demo| image:: 
https://img.shields.io/badge/launch-notebook-orange.svg?logo=jupyter
    :target: https://notebooks.ai/demo/gh/tqdm/tqdm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/examples/async_coroutines.py 
new/tqdm-4.48.2/examples/async_coroutines.py
--- old/tqdm-4.48.0/examples/async_coroutines.py        2020-07-17 
00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/examples/async_coroutines.py        2020-08-03 
18:36:57.000000000 +0200
@@ -27,8 +27,9 @@
             elif row < 0:
                 assert row == -9
                 break
-    # should be under 10 seconds
-    for i in tqdm.as_completed(list(map(asyncio.sleep, [1] * 10)),
+    # should be ~1sec rather than ~50s due to async scheduling
+    for i in tqdm.as_completed([asyncio.sleep(0.01 * i)
+                                for i in range(100, 0, -1)],
                                desc="as_completed"):
         await i
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/_monitor.py 
new/tqdm-4.48.2/tqdm/_monitor.py
--- old/tqdm-4.48.0/tqdm/_monitor.py    2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/_monitor.py    2020-08-03 18:36:57.000000000 +0200
@@ -90,10 +90,14 @@
                         instance.miniters = 1
                         # Refresh now! (works only for manual tqdm)
                         instance.refresh(nolock=True)
+                    # Remove accidental long-lived strong reference
+                    del instance
                 if instances != self.get_instances():  # pragma: nocover
                     warn("Set changed size during iteration" +
                          " (see https://github.com/tqdm/tqdm/issues/481)",
                          TqdmSynchronisationWarning, stacklevel=2)
+                # Remove accidental long-lived strong references
+                del instances
 
     def report(self):
         return not self.was_killed.is_set()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/_version.py 
new/tqdm-4.48.2/tqdm/_version.py
--- old/tqdm-4.48.0/tqdm/_version.py    2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/_version.py    2020-08-03 18:36:57.000000000 +0200
@@ -5,7 +5,7 @@
 __all__ = ["__version__"]
 
 # major, minor, patch, -extra
-version_info = 4, 48, 0
+version_info = 4, 48, 2
 
 # Nice string for the version
 __version__ = '.'.join(map(str, version_info))
@@ -15,45 +15,48 @@
 scriptdir = os.path.dirname(__file__)
 gitdir = os.path.abspath(os.path.join(scriptdir, "..", ".git"))
 if os.path.isdir(gitdir):  # pragma: nocover
-    extra = None
-    # Open config file to check if we are in tqdm project
-    with io_open(os.path.join(gitdir, "config"), 'r') as fh_config:
-        if 'tqdm' in fh_config.read():
-            # Open the HEAD file
-            with io_open(os.path.join(gitdir, "HEAD"), 'r') as fh_head:
-                extra = fh_head.readline().strip()
-            # in a branch => HEAD points to file containing last commit
-            if 'ref:' in extra:
-                # reference file path
-                ref_file = extra[5:]
-                branch_name = ref_file.rsplit('/', 1)[-1]
-
-                ref_file_path = os.path.abspath(os.path.join(gitdir, ref_file))
-                # check that we are in git folder
-                # (by stripping the git folder from the ref file path)
-                if os.path.relpath(
-                        ref_file_path, gitdir).replace('\\', '/') != ref_file:
-                    # out of git folder
-                    extra = None
+    try:
+        extra = None
+        # Open config file to check if we are in tqdm project
+        with io_open(os.path.join(gitdir, "config"), 'r') as fh_config:
+            if 'tqdm' in fh_config.read():
+                # Open the HEAD file
+                with io_open(os.path.join(gitdir, "HEAD"), 'r') as fh_head:
+                    extra = fh_head.readline().strip()
+                # in a branch => HEAD points to file containing last commit
+                if 'ref:' in extra:
+                    # reference file path
+                    ref_file = extra[5:]
+                    branch_name = ref_file.rsplit('/', 1)[-1]
+
+                    ref_file_path = os.path.abspath(os.path.join(
+                        gitdir, ref_file))
+                    # check that we are in git folder
+                    # (by stripping the git folder from the ref file path)
+                    if os.path.relpath(ref_file_path, gitdir).replace(
+                            '\\', '/') != ref_file:
+                        # out of git folder
+                        extra = None
+                    else:
+                        # open the ref file
+                        with io_open(ref_file_path, 'r') as fh_branch:
+                            commit_hash = fh_branch.readline().strip()
+                            extra = commit_hash[:8]
+                            if branch_name != "master":
+                                extra += '.' + branch_name
+
+                # detached HEAD mode, already have commit hash
                 else:
-                    # open the ref file
-                    with io_open(ref_file_path, 'r') as fh_branch:
-                        commit_hash = fh_branch.readline().strip()
-                        extra = commit_hash[:8]
-                        if branch_name != "master":
-                            extra += '.' + branch_name
-
-            # detached HEAD mode, already have commit hash
-            else:
-                extra = extra[:8]
-
-    # Append commit hash (and branch) to version string if not tagged
-    if extra is not None:
-        try:
+                    extra = extra[:8]
+
+        # Append commit hash (and branch) to version string if not tagged
+        if extra is not None:
             with io_open(os.path.join(gitdir, "refs", "tags",
                                       'v' + __version__)) as fdv:
                 if fdv.readline().strip()[:8] != extra[:8]:
                     __version__ += '-' + extra
-        except Exception as e:
-            if "No such file" not in str(e):
-                raise
+    except Exception as e:
+        if "No such file" in str(e):
+            __version__ += "-git.UNKNOWN"
+        else:
+            raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/asyncio.py 
new/tqdm-4.48.2/tqdm/asyncio.py
--- old/tqdm-4.48.0/tqdm/asyncio.py     2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/asyncio.py     2020-08-03 18:36:57.000000000 +0200
@@ -7,13 +7,16 @@
 >>> async for i in trange(10):
 ...     ...
 """
-from .auto import tqdm as tqdm_auto
+from .std import tqdm as std_tqdm
 import asyncio
 __author__ = {"github.com/": ["casperdcl"]}
 __all__ = ['tqdm_asyncio', 'tarange', 'tqdm', 'trange']
 
 
-class tqdm_asyncio(tqdm_auto):
+class tqdm_asyncio(std_tqdm):
+    """
+    Asynchronous-friendly version of tqdm (Python 3.5+).
+    """
     def __init__(self, iterable=None, *args, **kwargs):
         super(tqdm_asyncio, self).__init__(iterable, *args, **kwargs)
         self.iterable_awaitable = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/auto.py new/tqdm-4.48.2/tqdm/auto.py
--- old/tqdm-4.48.0/tqdm/auto.py        2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/auto.py        2020-08-03 18:36:57.000000000 +0200
@@ -1,14 +1,42 @@
 """
-`tqdm.autonotebook` but without import warnings.
+Enables multiple commonly used features.
+
+Method resolution order:
+
+- `tqdm.autonotebook` without import warnings
+- `tqdm.asyncio` on Python3.5+
+- `tqdm.std` base class
 
 Usage:
 >>> from tqdm.auto import trange, tqdm
 >>> for i in trange(10):
 ...     ...
 """
+import sys
 import warnings
 from .std import TqdmExperimentalWarning
 with warnings.catch_warnings():
     warnings.simplefilter("ignore", category=TqdmExperimentalWarning)
-    from .autonotebook import tqdm, trange
+    from .autonotebook import tqdm as notebook_tqdm
+    from .autonotebook import trange as notebook_trange
+
+if sys.version_info[:1] < (3, 4):
+    tqdm = notebook_tqdm
+    trange = notebook_trange
+else:  # Python3.5+
+    from .asyncio import tqdm as asyncio_tqdm
+    from .std import tqdm as std_tqdm
+
+    if notebook_tqdm != std_tqdm:
+        class tqdm(notebook_tqdm, asyncio_tqdm):
+            pass
+    else:
+        tqdm = asyncio_tqdm
+
+    def trange(*args, **kwargs):
+        """
+        A shortcut for `tqdm.auto.tqdm(range(*args), **kwargs)`.
+        """
+        return tqdm(range(*args), **kwargs)
+
 __all__ = ["tqdm", "trange"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/contrib/__init__.py 
new/tqdm-4.48.2/tqdm/contrib/__init__.py
--- old/tqdm-4.48.0/tqdm/contrib/__init__.py    2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/contrib/__init__.py    2020-08-03 18:36:57.000000000 
+0200
@@ -6,8 +6,7 @@
 from tqdm import tqdm
 from tqdm.auto import tqdm as tqdm_auto
 from tqdm.utils import ObjectWrapper
-from copy import deepcopy
-import functools
+from functools import wraps
 import sys
 __author__ = {"github.com/": ["casperdcl"]}
 __all__ = ['tenumerate', 'tzip', 'tmap']
@@ -21,6 +20,16 @@
             tqdm.write(x, file=self._wrapped, nolock=nolock)
 
 
+def builtin_iterable(func):
+    """Wraps `func()` output in a `list()` in py2"""
+    if sys.version_info[:1] < (3,):
+        @wraps(func)
+        def inner(*args, **kwargs):
+            return list(func(*args, **kwargs))
+        return inner
+    return func
+
+
 def tenumerate(iterable, start=0, total=None, tqdm_class=tqdm_auto,
                **tqdm_kwargs):
     """
@@ -38,10 +47,11 @@
         if isinstance(iterable, np.ndarray):
             return tqdm_class(np.ndenumerate(iterable),
                               total=total or iterable.size, **tqdm_kwargs)
-    return enumerate(tqdm_class(iterable, **tqdm_kwargs), start)
+    return enumerate(tqdm_class(iterable, total=total, **tqdm_kwargs), start)
 
 
-def _tzip(iter1, *iter2plus, **tqdm_kwargs):
+@builtin_iterable
+def tzip(iter1, *iter2plus, **tqdm_kwargs):
     """
     Equivalent of builtin `zip`.
 
@@ -49,13 +59,14 @@
     ----------
     tqdm_class  : [default: tqdm.auto.tqdm].
     """
-    kwargs = deepcopy(tqdm_kwargs)
+    kwargs = tqdm_kwargs.copy()
     tqdm_class = kwargs.pop("tqdm_class", tqdm_auto)
     for i in zip(tqdm_class(iter1, **tqdm_kwargs), *iter2plus):
         yield i
 
 
-def _tmap(function, *sequences, **tqdm_kwargs):
+@builtin_iterable
+def tmap(function, *sequences, **tqdm_kwargs):
     """
     Equivalent of builtin `map`.
 
@@ -63,18 +74,5 @@
     ----------
     tqdm_class  : [default: tqdm.auto.tqdm].
     """
-    for i in _tzip(*sequences, **tqdm_kwargs):
+    for i in tzip(*sequences, **tqdm_kwargs):
         yield function(*i)
-
-
-if sys.version_info[:1] < (3,):
-    @functools.wraps(_tzip)
-    def tzip(*args, **kwargs):
-        return list(_tzip(*args, **kwargs))
-
-    @functools.wraps(_tmap)
-    def tmap(*args, **kwargs):
-        return list(_tmap(*args, **kwargs))
-else:
-    tzip = _tzip
-    tmap = _tmap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/contrib/bells.py 
new/tqdm-4.48.2/tqdm/contrib/bells.py
--- old/tqdm-4.48.0/tqdm/contrib/bells.py       2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/contrib/bells.py       2020-08-03 18:36:57.000000000 
+0200
@@ -1,5 +1,5 @@
 """
-All the bells & whistles:
+Even more features than `tqdm.auto` (all the bells & whistles):
 
 - `tqdm.auto`
 - `tqdm.tqdm.pandas`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/contrib/concurrent.py 
new/tqdm-4.48.2/tqdm/contrib/concurrent.py
--- old/tqdm-4.48.0/tqdm/contrib/concurrent.py  2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/contrib/concurrent.py  2020-08-03 18:36:57.000000000 
+0200
@@ -4,7 +4,6 @@
 from __future__ import absolute_import
 from tqdm import TqdmWarning
 from tqdm.auto import tqdm as tqdm_auto
-from copy import deepcopy
 try:
     from operator import length_hint
 except ImportError:
@@ -37,7 +36,7 @@
     max_workers  : [default: min(32, cpu_count() + 4)].
     chunksize  : [default: 1].
     """
-    kwargs = deepcopy(tqdm_kwargs)
+    kwargs = tqdm_kwargs.copy()
     if "total" not in kwargs:
         kwargs["total"] = len(iterables[0])
     tqdm_class = kwargs.pop("tqdm_class", tqdm_auto)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/contrib/discord.py 
new/tqdm-4.48.2/tqdm/contrib/discord.py
--- old/tqdm-4.48.0/tqdm/contrib/discord.py     2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/contrib/discord.py     2020-08-03 18:36:57.000000000 
+0200
@@ -10,7 +10,6 @@
 https://raw.githubusercontent.com/tqdm/img/src/screenshot-discord.png)
 """
 from __future__ import absolute_import
-from copy import deepcopy
 import logging
 from os import getenv
 
@@ -84,7 +83,7 @@
 
         See `tqdm.auto.tqdm.__init__` for other parameters.
         """
-        kwargs = deepcopy(kwargs)
+        kwargs = kwargs.copy()
         logging.getLogger("HTTPClient").setLevel(logging.WARNING)
         self.dio = DiscordIO(
             kwargs.pop('token', getenv("TQDM_DISCORD_TOKEN")),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/contrib/itertools.py 
new/tqdm-4.48.2/tqdm/contrib/itertools.py
--- old/tqdm-4.48.0/tqdm/contrib/itertools.py   2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/contrib/itertools.py   2020-08-03 18:36:57.000000000 
+0200
@@ -3,7 +3,6 @@
 """
 from __future__ import absolute_import
 from tqdm.auto import tqdm as tqdm_auto
-from copy import deepcopy
 import itertools
 __author__ = {"github.com/": ["casperdcl"]}
 __all__ = ['product']
@@ -17,7 +16,7 @@
     ----------
     tqdm_class  : [default: tqdm.auto.tqdm].
     """
-    kwargs = deepcopy(tqdm_kwargs)
+    kwargs = tqdm_kwargs.copy()
     tqdm_class = kwargs.pop("tqdm_class", tqdm_auto)
     try:
         lens = list(map(len, iterables))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/contrib/telegram.py 
new/tqdm-4.48.2/tqdm/contrib/telegram.py
--- old/tqdm-4.48.0/tqdm/contrib/telegram.py    2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/contrib/telegram.py    2020-08-03 18:36:57.000000000 
+0200
@@ -10,7 +10,6 @@
 https://raw.githubusercontent.com/tqdm/img/src/screenshot-telegram.gif)
 """
 from __future__ import absolute_import
-from copy import deepcopy
 from os import getenv
 
 from requests import Session
@@ -91,7 +90,7 @@
 
         See `tqdm.auto.tqdm.__init__` for other parameters.
         """
-        kwargs = deepcopy(kwargs)
+        kwargs = kwargs.copy()
         self.tgio = TelegramIO(
             kwargs.pop('token', getenv('TQDM_TELEGRAM_TOKEN')),
             kwargs.pop('chat_id', getenv('TQDM_TELEGRAM_CHAT_ID')))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/keras.py 
new/tqdm-4.48.2/tqdm/keras.py
--- old/tqdm-4.48.0/tqdm/keras.py       2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/keras.py       2020-08-03 18:36:57.000000000 +0200
@@ -1,6 +1,6 @@
 from __future__ import absolute_import, division
 from .auto import tqdm as tqdm_auto
-from copy import deepcopy
+from copy import copy
 try:
     import keras
 except ImportError as e:
@@ -20,7 +20,7 @@
             n = delta(logs)
             if logs:
                 if pop:
-                    logs = deepcopy(logs)
+                    logs = copy(logs)
                     [logs.pop(i, 0) for i in pop]
                 bar.set_postfix(logs, refresh=False)
             bar.update(n)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/notebook.py 
new/tqdm-4.48.2/tqdm/notebook.py
--- old/tqdm-4.48.0/tqdm/notebook.py    2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/notebook.py    2020-08-03 18:36:57.000000000 +0200
@@ -103,6 +103,8 @@
             pbar = IProgress(min=0, max=1)
             pbar.value = 1
             pbar.bar_style = 'info'
+            if ncols is None:
+                pbar.layout.width = "20px"
 
         if desc:
             pbar.description = desc
@@ -129,6 +131,13 @@
 
         return container
 
+    @staticmethod
+    def format_meter(n, total, *args, **kwargs):
+        if total and kwargs.get('bar_format', None) is None:
+            kwargs = kwargs.copy()
+            kwargs['bar_format'] = "{l_bar}<bar/>{r_bar}"
+        return std_tqdm.format_meter(n, total, *args, **kwargs)
+
     def display(self, msg=None, pos=None,
                 # additional signals
                 close=False, bar_style=None):
@@ -182,6 +191,7 @@
                 self.container.visible = False
 
     def __init__(self, *args, **kwargs):
+        kwargs = kwargs.copy()
         # Setup default output
         file_kwarg = kwargs.get('file', sys.stderr)
         if file_kwarg is sys.stderr or file_kwarg is None:
@@ -189,8 +199,9 @@
 
         # Initialize parent class + avoid printing by using gui=True
         kwargs['gui'] = True
-        kwargs.setdefault('bar_format', '{l_bar}{bar}{r_bar}')
-        kwargs['bar_format'] = kwargs['bar_format'].replace('{bar}', '<bar/>')
+        if 'bar_format' in kwargs:
+            kwargs['bar_format'] = kwargs['bar_format'].replace(
+                '{bar}', '<bar/>')
         # convert disable = None to False
         kwargs['disable'] = bool(kwargs.get('disable', False))
         super(tqdm_notebook, self).__init__(*args, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/std.py new/tqdm-4.48.2/tqdm/std.py
--- old/tqdm-4.48.0/tqdm/std.py 2020-07-17 00:03:58.000000000 +0200
+++ new/tqdm-4.48.2/tqdm/std.py 2020-08-03 18:36:57.000000000 +0200
@@ -301,7 +301,7 @@
         last_len = [0]
 
         def print_status(s):
-            len_s = len(s)
+            len_s = disp_len(s)
             fp_write('\r' + s + (' ' * max(last_len[0] - len_s, 0)))
             last_len[0] = len_s
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/tests/py37_asyncio.py 
new/tqdm-4.48.2/tqdm/tests/py37_asyncio.py
--- old/tqdm-4.48.0/tqdm/tests/py37_asyncio.py  2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/tests/py37_asyncio.py  2020-08-03 18:36:57.000000000 
+0200
@@ -37,15 +37,15 @@
 async def test_generators():
     """Test asyncio generators"""
     with closing(StringIO()) as our_file:
-        async for row in tqdm(count(), desc="counter", file=our_file):
-            if row >= 8:
+        async for i in tqdm(count(), desc="counter", file=our_file):
+            if i >= 8:
                 break
         assert '9it' in our_file.getvalue()
         our_file.seek(0)
         our_file.truncate()
 
-        async for row in tqdm(acount(), desc="async_counter", file=our_file):
-            if row >= 8:
+        async for i in tqdm(acount(), desc="async_counter", file=our_file):
+            if i >= 8:
                 break
         assert '9it' in our_file.getvalue()
 
@@ -54,13 +54,13 @@
 async def test_range():
     """Test asyncio range"""
     with closing(StringIO()) as our_file:
-        async for row in tqdm(range(9), desc="range", file=our_file):
+        async for _ in tqdm(range(9), desc="range", file=our_file):
             pass
         assert '9/9' in our_file.getvalue()
         our_file.seek(0)
         our_file.truncate()
 
-        async for row in trange(9, desc="trange", file=our_file):
+        async for _ in trange(9, desc="trange", file=our_file):
             pass
         assert '9/9' in our_file.getvalue()
 
@@ -69,8 +69,8 @@
 async def test_nested():
     """Test asyncio nested"""
     with closing(StringIO()) as our_file:
-        async for row in tqdm(trange(9, desc="inner", file=our_file),
-                              desc="outer", file=our_file):
+        async for _ in tqdm(trange(9, desc="inner", file=our_file),
+                            desc="outer", file=our_file):
             pass
         assert 'inner: 100%' in our_file.getvalue()
         assert 'outer: 100%' in our_file.getvalue()
@@ -81,11 +81,11 @@
     """Test asyncio coroutine.send"""
     with closing(StringIO()) as our_file:
         with tqdm(count(), file=our_file) as pbar:
-            async for row in pbar:
-                if row == 9:
+            async for i in pbar:
+                if i == 9:
                     pbar.send(-10)
-                elif row < 0:
-                    assert row == -9
+                elif i < 0:
+                    assert i == -9
                     break
         assert '10it' in our_file.getvalue()
 
@@ -96,8 +96,8 @@
     with closing(StringIO()) as our_file:
         t = time()
         skew = time() - t
-        for i in as_completed([asyncio.sleep(0.01) for _ in range(100)],
-                              file=our_file):
+        for i in as_completed([asyncio.sleep(0.01 * i)
+                               for i in range(30, 0, -1)], file=our_file):
             await i
-        assert time() - t - 2 * skew < (0.01 * 100) / 2, "Assuming >= 2 cores"
-        assert '100/100' in our_file.getvalue()
+        assert 0.29 < time() - t - 2 * skew < 0.31
+        assert '30/30' in our_file.getvalue()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/tests/tests_contrib.py 
new/tqdm-4.48.2/tqdm/tests/tests_contrib.py
--- old/tqdm-4.48.0/tqdm/tests/tests_contrib.py 2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/tests/tests_contrib.py 2020-08-03 18:36:57.000000000 
+0200
@@ -19,6 +19,12 @@
         a = range(9)
         assert list(tenumerate(a, file=our_file)) == list(enumerate(a))
         assert list(tenumerate(a, 42, file=our_file)) == list(enumerate(a, 42))
+    with closing(StringIO()) as our_file:
+        _ = list(tenumerate((i for i in a), file=our_file))
+        assert "100%" not in our_file.getvalue()
+    with closing(StringIO()) as our_file:
+        _ = list(tenumerate((i for i in a), file=our_file, total=len(a)))
+        assert "100%" in our_file.getvalue()
 
 
 @with_setup(pretest, posttest)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/tests/tests_perf.py 
new/tqdm-4.48.2/tqdm/tests/tests_perf.py
--- old/tqdm-4.48.0/tqdm/tests/tests_perf.py    2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/tests/tests_perf.py    2020-08-03 18:36:57.000000000 
+0200
@@ -240,7 +240,6 @@
         from threading import RLock
     except ImportError:
         raise SkipTest
-    import sys
 
     total = 8
     subtotal = 1000
@@ -283,7 +282,7 @@
                 a += i
                 our_file.write(("%i" % a) * 40)
 
-    assert_performance(85, 'trange', time_tqdm(), 'range', time_bench())
+    assert_performance(125, 'trange', time_tqdm(), 'range', time_bench())
 
 
 @with_setup(pretest, posttest)
@@ -308,7 +307,7 @@
                 a += i
                 our_file.write(("%i" % a) * 40)
 
-    assert_performance(85, 'tqdm', time_tqdm(), 'range', time_bench())
+    assert_performance(125, 'tqdm', time_tqdm(), 'range', time_bench())
 
 
 @with_setup(pretest, posttest)
@@ -335,7 +334,7 @@
                 a += i
 
     assert_performance(
-        5, 'trange', time_tqdm(), 'simple_progress', time_bench())
+        7.5, 'trange', time_tqdm(), 'simple_progress', time_bench())
 
 
 @with_setup(pretest, posttest)
@@ -364,4 +363,4 @@
                 simplebar_update(10)
 
     assert_performance(
-        5, 'tqdm', time_tqdm(), 'simple_progress', time_bench())
+        7.5, 'tqdm', time_tqdm(), 'simple_progress', time_bench())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm/tests/tests_tqdm.py 
new/tqdm-4.48.2/tqdm/tests/tests_tqdm.py
--- old/tqdm-4.48.0/tqdm/tests/tests_tqdm.py    2020-07-17 00:03:58.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm/tests/tests_tqdm.py    2020-08-03 18:36:57.000000000 
+0200
@@ -920,12 +920,12 @@
 def test_nototal():
     """Test unknown total length"""
     with closing(StringIO()) as our_file:
-        for i in tqdm((i for i in range(10)), file=our_file, unit_scale=10):
+        for _ in tqdm((i for i in range(10)), file=our_file, unit_scale=10):
             pass
         assert "100it" in our_file.getvalue()
 
     with closing(StringIO()) as our_file:
-        for i in tqdm((i for i in range(10)), file=our_file,
+        for _ in tqdm((i for i in range(10)), file=our_file,
                       bar_format="{l_bar}{bar}{r_bar}"):
             pass
         assert "10/?" in our_file.getvalue()
@@ -1196,7 +1196,7 @@
             return d
 
     with closing(StringIO()) as our_file:
-        for i in TqdmExtraFormat(
+        for _ in TqdmExtraFormat(
                 range(10), file=our_file,
                 bar_format="{total_time}: {percentage:.0f}%|{bar}{r_bar}"):
             pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tqdm-4.48.0/tqdm.egg-info/PKG-INFO 
new/tqdm-4.48.2/tqdm.egg-info/PKG-INFO
--- old/tqdm-4.48.0/tqdm.egg-info/PKG-INFO      2020-07-17 00:04:14.000000000 
+0200
+++ new/tqdm-4.48.2/tqdm.egg-info/PKG-INFO      2020-08-03 18:37:15.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: tqdm
-Version: 4.48.0
+Version: 4.48.2
 Summary: Fast, Extensible Progress Meter
 Home-page: https://github.com/tqdm/tqdm
 Maintainer: tqdm developers
@@ -15,7 +15,7 @@
         
         |Build-Status| |Coverage-Status| |Branch-Coverage-Status| 
|Codacy-Grade| |Libraries-Rank| |PyPI-Downloads|
         
-        |DOI| |LICENCE| |OpenHub-Status| |binder-demo| |notebook-demo| 
|awesome-python|
+        |LICENCE| |OpenHub-Status| |binder-demo| |notebook-demo| 
|awesome-python|
         
         ``tqdm`` derives from the Arabic word *taqaddum* (تقدّم) which can 
mean "progress,"
         and is an abbreviation for "I love you so much" in Spanish (*te quiero 
demasiado*).
@@ -328,6 +328,8 @@
         - `Hanging pipes in python2 
<https://github.com/tqdm/tqdm/issues/359>`__:
           when using ``tqdm`` on the CLI, you may need to use Python 3.5+ for 
correct
           buffering.
+        - `No intermediate output in docker-compose 
<https://github.com/tqdm/tqdm/issues/771>`__:
+          use ``docker-compose run`` instead of ``docker-compose up`` and 
``tty: true``.
         
         If you come across any other difficulties, browse and file 
|GitHub-Issues|.
         
@@ -1262,7 +1264,7 @@
         
         Open Source (OSI approved): |LICENCE|
         
-        Citation information: |DOI| (publication), |DOI-code| (code)
+        Citation information: |DOI|
         
         |README-Hits| (Since 19 May 2016)
         
@@ -1322,9 +1324,7 @@
            :target: https://github.com/vinta/awesome-python
         .. |LICENCE| image:: https://img.shields.io/pypi/l/tqdm.svg
            :target: https://raw.githubusercontent.com/tqdm/tqdm/master/LICENCE
-        .. |DOI| image:: 
https://img.shields.io/badge/DOI-10.21105/joss.01277-green.svg
-           :target: https://doi.org/10.21105/joss.01277
-        .. |DOI-code| image:: 
https://img.shields.io/badge/DOI-10.5281/zenodo.595120-blue.svg
+        .. |DOI| image:: 
https://img.shields.io/badge/DOI-10.5281/zenodo.595120-blue.svg
            :target: https://doi.org/10.5281/zenodo.595120
         .. |notebook-demo| image:: 
https://img.shields.io/badge/launch-notebook-orange.svg?logo=jupyter
            :target: https://notebooks.ai/demo/gh/tqdm/tqdm


Reply via email to