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

1"""Type definitions and exceptions for model management.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass 

6 

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) 

16 

17 

18class ModelManagerError(LLMError): 

19 """Base exception for model manager errors.""" 

20 

21 _code: str = "LEX_ERR_LLM_020" 

22 

23 

24class ModelNotFoundError(ModelManagerError, BaseModelNotFoundError): 

25 """Raised when a requested model is not found.""" 

26 

27 _code: str = "LEX_ERR_LLM_021" 

28 

29 

30class ModelLoadError(ModelManagerError): 

31 """Raised when a model fails to load.""" 

32 

33 _code: str = "LEX_ERR_LLM_022" 

34 

35 

36class ModelUnloadError(ModelManagerError): 

37 """Raised when a model fails to unload.""" 

38 

39 _code: str = "LEX_ERR_LLM_023" 

40 

41 

42class ProviderConnectionError(ModelManagerError, BaseProviderConnectionError): 

43 """Raised when connection to provider fails.""" 

44 

45 _code: str = "LEX_ERR_LLM_024" 

46 

47 

48@dataclass 

49class ModelLoadResult: 

50 """Result of a model load operation.""" 

51 

52 success: bool 

53 model_name: str 

54 error: str | None = None 

55 retryable: bool = False