summaryrefslogtreecommitdiffstats
path: root/tqdm/auto.py
blob: cffca206ffe014bea6e758df858a1d640392fe96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""
Enables multiple commonly used features.

Method resolution order:

- `tqdm.autonotebook` without import warnings
- `tqdm.asyncio` on Python3.6+
- `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 as notebook_tqdm
    from .autonotebook import trange as notebook_trange

if sys.version_info[:2] < (3, 6):
    tqdm = notebook_tqdm
    trange = notebook_trange
else:  # Python3.6+
    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):  # pylint: disable=inconsistent-mro
            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"]