Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-llm/src/lexigram/ai/llm/model_manager/types.py: 100%
21 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""Type definitions and exceptions for model management."""
3from __future__ import annotations
5from dataclasses import dataclass
7from lexigram.ai.llm.exceptions import (
8 LLMError,
9)
10from lexigram.ai.llm.exceptions import (
11 ModelNotFoundError as BaseModelNotFoundError,
12)
13from lexigram.ai.llm.exceptions import (
14 ProviderConnectionError as BaseProviderConnectionError,
15)
18class ModelManagerError(LLMError):
19 """Base exception for model manager errors."""
21 _code: str = "LEX_ERR_LLM_020"
24class ModelNotFoundError(ModelManagerError, BaseModelNotFoundError):
25 """Raised when a requested model is not found."""
27 _code: str = "LEX_ERR_LLM_021"
30class ModelLoadError(ModelManagerError):
31 """Raised when a model fails to load."""
33 _code: str = "LEX_ERR_LLM_022"
36class ModelUnloadError(ModelManagerError):
37 """Raised when a model fails to unload."""
39 _code: str = "LEX_ERR_LLM_023"
42class ProviderConnectionError(ModelManagerError, BaseProviderConnectionError):
43 """Raised when connection to provider fails."""
45 _code: str = "LEX_ERR_LLM_024"
48@dataclass
49class ModelLoadResult:
50 """Result of a model load operation."""
52 success: bool
53 model_name: str
54 error: str | None = None
55 retryable: bool = False