Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-prompt/src/lexigram/ai/prompt/exceptions.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Exceptions for the lexigram-ai-prompt package.""" 

2 

3from __future__ import annotations 

4 

5from lexigram.contracts.ai.exceptions import AIError as _ContractsAIError 

6 

7 

8class PromptError(_ContractsAIError): 

9 """Base exception for all prompt-related errors.""" 

10 

11 _code: str = "LEX_ERR_PROMPT_001" 

12 

13 

14class PromptRenderError(PromptError): 

15 """Raised when a template cannot be rendered. 

16 

17 Common causes: missing required variable, type mismatch, Jinja2 syntax error. 

18 """ 

19 

20 _code: str = "LEX_ERR_PROMPT_002" 

21 

22 

23class PromptValidationError(PromptError): 

24 """Raised when a variable fails validation (type, length, allowed values).""" 

25 

26 _code: str = "LEX_ERR_PROMPT_003" 

27 

28 

29class PromptNotFoundError(PromptError): 

30 """Raised when a named template is not found in the registry.""" 

31 

32 _code: str = "LEX_ERR_PROMPT_004" 

33 

34 

35class PromptVersionError(PromptError): 

36 """Raised on version conflicts or invalid rollback targets.""" 

37 

38 _code: str = "LEX_ERR_PROMPT_005" 

39 

40 

41class PromptConfigError(PromptError): 

42 """Raised when the prompt configuration is invalid.""" 

43 

44 _code: str = "LEX_ERR_PROMPT_006" 

45 

46 

47class OptimizationError(PromptError): 

48 """Raised when prompt optimization fails.""" 

49 

50 _code: str = "LEX_ERR_PROMPT_007" 

51 

52 

53__all__ = [ 

54 "OptimizationError", 

55 "PromptConfigError", 

56 "PromptError", 

57 "PromptNotFoundError", 

58 "PromptRenderError", 

59 "PromptValidationError", 

60 "PromptVersionError", 

61]