Coverage for node / src / stigmem_node / plugins / errors.py: 85%

13 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-05-25 01:49 +0000

1"""Plugin registry exception types.""" 

2 

3from __future__ import annotations 

4 

5 

6class PluginExecutionError(RuntimeError): 

7 """Raised when a plugin handler violates a hook contract.""" 

8 

9 

10class CapabilityError(PermissionError): 

11 """Raised when a plugin attempts to access an undeclared capability.""" 

12 

13 

14class ManifestError(ValueError): 

15 """Raised when a plugin manifest is invalid for this registry.""" 

16 

17 

18class PluginDiscoveryError(RuntimeError): 

19 """Raised when package entry-point plugin discovery fails.""" 

20 

21 

22class PluginDependencyError(RuntimeError): 

23 """Raised when discovered plugin dependencies cannot be resolved.""" 

24 

25 

26class PluginMigrationError(RuntimeError): 

27 """Raised when plugin migration lifecycle checks fail.""" 

28 

29 

30class PluginSignatureError(RuntimeError): 

31 """Raised when a discovered plugin fails signing verification.""" 

32 

33 

34class RegistryFrozenError(RuntimeError): 

35 """Raised when startup-only registry mutation is attempted after freeze.""" 

36 

37 

38class RejectError(RuntimeError): 

39 """Handler-level shortcut for a voting denial.""" 

40 

41 def __init__(self, reason: str) -> None: 

42 super().__init__(reason) 

43 self.reason = reason