Add the exceptions and helpers.

This commit is contained in:
2025-01-26 14:27:46 +02:00
parent a4a0f32f52
commit 769edabbd3
5 changed files with 34 additions and 0 deletions
@@ -0,0 +1,4 @@
from .app_exception import AppException
from .command_exception import CommandException
__all__ = ['AppException', 'CommandException']
@@ -0,0 +1,3 @@
class AppException(Exception):
pass
@@ -0,0 +1,6 @@
from . import AppException
class CommandException(AppException):
"""Command failed to change persistence data."""
pass
@@ -0,0 +1,3 @@
from .exception_helpers import catch_exception
__all__ = ['catch_exception']
@@ -0,0 +1,18 @@
from functools import wraps
import typer
from rich.console import Console
def catch_exception(which_exception, exit_code=1):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except which_exception as e:
console = Console()
console.print(f'[red b][ERROR] {str(e)}[/]')
raise typer.Exit(code=exit_code)
return wrapper
return decorator