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

1"""Utility functions for CLI commands.""" 

2import logging 

3import traceback 

4 

5import typer 

6import wrapt 

7 

8logger = logging.getLogger("somesy") 

9 

10 

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) 

16 

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