Coverage for src/somesy/cli/util.py: 100%
13 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-08-10 14:33 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-08-10 14:33 +0000
1"""Utility functions for CLI commands."""
2import logging
3import traceback
5import typer
6import wrapt
8logger = logging.getLogger("somesy")
11@wrapt.decorator
12def wrap_exceptions(wrapped, instance, args, kwargs):
13 """Format and log exceptions for cli commands."""
14 try:
15 return wrapped(*args, **kwargs)
17 except Exception as e:
18 logger.error(f"[bold red]Error: {e}[/bold red]")
19 logger.debug(f"[red]{traceback.format_exc()}[/red]")
20 raise typer.Exit(code=1) from e