40 lines
831 B
Python
40 lines
831 B
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
from collections.abc import Callable, Iterable, Sequence
|
|
from typing import Any, TypeVar, overload
|
|
|
|
from tqdm.auto import tqdm
|
|
|
|
_T = TypeVar("_T", bound=Iterable)
|
|
|
|
|
|
@overload
|
|
def maybe_tqdm(
|
|
it: Sequence[_T],
|
|
*,
|
|
use_tqdm: bool | Callable[..., tqdm],
|
|
**tqdm_kwargs: Any,
|
|
) -> Sequence[_T]: ...
|
|
|
|
|
|
@overload
|
|
def maybe_tqdm(
|
|
it: Iterable[_T],
|
|
*,
|
|
use_tqdm: bool | Callable[..., tqdm],
|
|
**tqdm_kwargs: Any,
|
|
) -> Iterable[_T]: ...
|
|
|
|
|
|
def maybe_tqdm(
|
|
it: Iterable[_T],
|
|
*,
|
|
use_tqdm: bool | Callable[..., tqdm],
|
|
**tqdm_kwargs: Any,
|
|
) -> Iterable[_T]:
|
|
if not use_tqdm:
|
|
return it
|
|
|
|
tqdm_func = use_tqdm if callable(use_tqdm) else tqdm
|
|
return tqdm_func(it, **tqdm_kwargs)
|