ml.utils.timer

Defines a timer context manager for timing code blocks.

This also provides a simple spinner for long-running tasks.

ml.utils.timer.allow_spinners() bool[source]
class ml.utils.timer.Spinner(text: str | None = None)[source]

Bases: object

set_text(text: str) Spinner[source]
start() None[source]
stop() None[source]
close() None[source]
ml.utils.timer.spinner() Spinner[source]
class ml.utils.timer.Timer(description: str, min_seconds_to_print: float = 5.0, logger: Logger | None = None, spinner: bool = False)[source]

Bases: ContextManager

Defines a simple timer for logging an event.

property elapsed_time: float
class ml.utils.timer.spinnerator(items: Sequence[T] | Iterable[T], desc: str | None = None, total: int | None = None, logger: Logger | None = None)[source]

Bases: Generic[T]

Defines a spinning iterator which uses the built-in spinner.

property desc: str
classmethod range(start: int | None, stop: int | None = None, step: int = 1, desc: str | None = None, logger: Logger | None = None) spinnerator[int][source]
update(n: int = 1) None[source]
ml.utils.timer.timeout(seconds: int, error_message: str = 'Timer expired') Callable[[Callable[[P], T]], Callable[[P], T]][source]

Decorator for timing out long-running functions.

Note that this function won’t work on Windows.

Parameters:
  • seconds – Timeout after this many seconds

  • error_message – Error message to pass to TimeoutError

Returns:

Decorator function