In the middle of the desert you can say anything you want

04 May 2022

Use tqdm only if the list is large

Wrote this small wrapper script that (if a global USE_TQDM parameter is set) uses pretty tqdm lists on lists that have enough elements where it matters. I think I’ll be reusing it.

So when enabled, it will tqdm a list of 150 elements but won’t tqdm a list of 99 elements.

To use:

for el in _tqdm(whatever_list_thing):


def _tqdm(list_like: Sequence, iflarge: bool = False, lsize: int = 100):
    """Use tqdm if it's on, optionally based on length of list.
        list_like: thing to iterate.
        iflarge (bool): If on, will use tqdm only for large lists
        lsize (int): anything more than this is 'large'
    if USE_TQDM:
        if not iflarge:
            return tqdm(list_like)
            # Count size only if it doesn't mean iterating an iterator
            if isinstance(list_like, Sequence) and len(list_like) > lsize:
                return tqdm(list_like)
    return list_like
Nel mezzo del deserto posso dire tutto quello che voglio.