App deps check

This commit is contained in:
2025-09-21 20:11:38 +02:00
parent eceff6128b
commit 073b35f71a
13 changed files with 147 additions and 22 deletions

View File

@@ -130,7 +130,7 @@ class Configuration:
key_name = key.__name__ if inspect.isclass(key) else key
result = cls._config.get(key_name, default)
if issubclass(key, ConfigurationModelABC) and result == default:
if isclass(key) and issubclass(key, ConfigurationModelABC) and result == default:
result = key()
cls.set(key, result)

View File

@@ -68,7 +68,7 @@ class ConfigurationModelABC(ABC):
value = cast(Environment.get(env_field, str), cast_type)
if value is None and required:
raise ValueError(f"{field} is required")
raise ValueError(f"{type(self).__name__}.{field} is required")
elif value is None:
self._options[field] = default
return

View File

@@ -0,0 +1,15 @@
import traceback
from cpl.core.console import Console
def dependency_error(package_name: str, e: ImportError) -> None:
Console.error(f"'{package_name}' is required to use this feature. Please install it and try again.")
tb = traceback.format_exc()
if not tb.startswith("NoneType: None"):
Console.write_line("->", tb)
elif e is not None:
Console.write_line("->", str(e))
exit(1)