/usr/local/lib/python3.6/site-packages/tqdm
NameSizeModeActions
contrib/-0755rm
__pycache__/-0755rm
asyncio.py27890644editdlrm
auto.py11060644editdlrm
autonotebook.py9560644editdlrm
cli.py108710644editdlrm
completion.sh9460755editdlrm
dask.py13770644editdlrm
gui.py59430644editdlrm
keras.py44090644editdlrm
notebook.py113170644editdlrm
rich.py51520644editdlrm
std.py583410644editdlrm
tk.py69480644editdlrm
tqdm.179970644editdlrm
utils.py98030644editdlrm
version.py3330644editdlrm
_dist_ver.py230644editdlrm
_main.py2830644editdlrm
_monitor.py36990644editdlrm
_tqdm.py2830644editdlrm
_tqdm_gui.py2870644editdlrm
_tqdm_notebook.py3070644editdlrm
_tqdm_pandas.py8880644editdlrm
_utils.py5960644editdlrm
__init__.py16390644editdlrm
__main__.py300644editdlrm
Edit: /usr/local/lib/python3.6/site-packages/tqdm/asyncio.py (2789B)
""" Asynchronous progressbar decorator for iterators. Includes a default `range` iterator printing to `stderr`. Usage: >>> from tqdm.asyncio import trange, tqdm >>> async for i in trange(10): ... ... """ import asyncio from sys import version_info from .std import tqdm as std_tqdm __author__ = {"github.com/": ["casperdcl"]} __all__ = ['tqdm_asyncio', 'tarange', 'tqdm', 'trange'] class tqdm_asyncio(std_tqdm): """ Asynchronous-friendly version of tqdm (Python 3.6+). """ def __init__(self, iterable=None, *args, **kwargs): super(tqdm_asyncio, self).__init__(iterable, *args, **kwargs) self.iterable_awaitable = False if iterable is not None: if hasattr(iterable, "__anext__"): self.iterable_next = iterable.__anext__ self.iterable_awaitable = True elif hasattr(iterable, "__next__"): self.iterable_next = iterable.__next__ else: self.iterable_iterator = iter(iterable) self.iterable_next = self.iterable_iterator.__next__ def __aiter__(self): return self async def __anext__(self): try: if self.iterable_awaitable: res = await self.iterable_next() else: res = self.iterable_next() self.update() return res except StopIteration: self.close() raise StopAsyncIteration except BaseException: self.close() raise def send(self, *args, **kwargs): return self.iterable.send(*args, **kwargs) @classmethod def as_completed(cls, fs, *, loop=None, timeout=None, total=None, **tqdm_kwargs): """ Wrapper for `asyncio.as_completed`. """ if total is None: total = len(fs) kwargs = {} if version_info[:2] < (3, 10): kwargs['loop'] = loop yield from cls(asyncio.as_completed(fs, timeout=timeout, **kwargs), total=total, **tqdm_kwargs) @classmethod async def gather(cls, *fs, loop=None, timeout=None, total=None, **tqdm_kwargs): """ Wrapper for `asyncio.gather`. """ async def wrap_awaitable(i, f): return i, await f ifs = [wrap_awaitable(i, f) for i, f in enumerate(fs)] res = [await f for f in cls.as_completed(ifs, loop=loop, timeout=timeout, total=total, **tqdm_kwargs)] return [i for _, i in sorted(res)] def tarange(*args, **kwargs): """ A shortcut for `tqdm.asyncio.tqdm(range(*args), **kwargs)`. """ return tqdm_asyncio(range(*args), **kwargs) # Aliases tqdm = tqdm_asyncio trange = tarange