in terranova/utils.py [0:0]
def failure(cls, msgs: str | list[str], err: Exception | None = None) -> None:
"""Log a failure."""
err_console = SharedContext.err_console()
if SharedContext.is_debug_enabled() and err:
err_console.print_exception()
err_console.print(err)
if not isinstance(msgs, list):
msgs = [msgs]
err_console.print(f"[red]x[/red] Failed to {str(msgs[0])}")
for msg in msgs[1:]:
err_console.print(f" {str(msg)}")
# Render explained error
if err:
if isinstance(err, ExplainedError):
err_console.print(f" Cause: {err.cause}")
if err.resolution:
err_console.print(f" Resolution: {err.resolution}")
else:
err_console.print(f" Details: {err}")