ml.utils.timer
Defines a timer context manager for timing code blocks.
This also provides a simple spinner for long-running tasks.
- 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]
- 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