summaryrefslogtreecommitdiffstats
path: root/anta/logger.py
diff options
context:
space:
mode:
Diffstat (limited to 'anta/logger.py')
-rw-r--r--anta/logger.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/anta/logger.py b/anta/logger.py
index e53c93a..e532ace 100644
--- a/anta/logger.py
+++ b/anta/logger.py
@@ -7,6 +7,7 @@ from __future__ import annotations
import logging
import traceback
+from datetime import timedelta
from enum import Enum
from typing import TYPE_CHECKING, Literal
@@ -87,6 +88,12 @@ def setup_logging(level: LogLevel = Log.INFO, file: Path | None = None) -> None:
logger.debug("ANTA Debug Mode enabled")
+def format_td(seconds: float, digits: int = 3) -> str:
+ """Return a formatted string from a float number representing seconds and a number of digits."""
+ isec, fsec = divmod(round(seconds * 10**digits), 10**digits)
+ return f"{timedelta(seconds=isec)}.{fsec:0{digits}.0f}"
+
+
def exc_to_str(exception: BaseException) -> str:
"""Return a human readable string from an BaseException object."""
return f"{type(exception).__name__}{f': {exception}' if str(exception) else ''}"