| 123456789101112131415161718192021222324252627282930313233 |
- """
- Thin wrappers around `itertools`.
- """
- from __future__ import absolute_import
- from tqdm.auto import tqdm as tqdm_auto
- import itertools
- __author__ = {"github.com/": ["casperdcl"]}
- __all__ = ['product']
- def product(*iterables, **tqdm_kwargs):
- """
- Equivalent of `itertools.product`.
- Parameters
- ----------
- tqdm_class : [default: tqdm.auto.tqdm].
- """
- kwargs = tqdm_kwargs.copy()
- tqdm_class = kwargs.pop("tqdm_class", tqdm_auto)
- try:
- lens = list(map(len, iterables))
- except TypeError:
- total = None
- else:
- total = 1
- for i in lens:
- total *= i
- kwargs.setdefault("total", total)
- with tqdm_class(**kwargs) as t:
- for i in itertools.product(*iterables):
- yield i
- t.update()
|