Coverage for src / lexigram / contracts / core / constants.py: 0%

52 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-15 18:57 +0800

1"""Entry-point group constants for Lexigram extensibility. 

2 

3These constants define the standard entry-point groups used across the 

4Lexigram ecosystem for provider auto-discovery via ``importlib.metadata``. 

5 

6Usage:: 

7 

8 from importlib.metadata import entry_points 

9 from lexigram.contracts.core.constants import EP_AI_SUBSYSTEMS 

10 

11 for ep in entry_points(group=EP_AI_SUBSYSTEMS): 

12 provider_cls = ep.load() 

13 ... 

14""" 

15 

16from __future__ import annotations 

17 

18import importlib.metadata 

19 

20try: 

21 __version__: str = importlib.metadata.version("lexigram-contracts") 

22except ImportError: 

23 __version__ = "0.0.0" 

24 

25 

26# --------------------------------------------------------------------------- 

27# Configuration Environment Variable Prefix 

28# --------------------------------------------------------------------------- 

29 

30ENV_PREFIX: str = "LEX_CONTRACTS__" 

31"""Environment variable prefix for contracts configuration (minimal usage).""" 

32 

33# --------------------------------------------------------------------------- 

34# General provider / module discovery 

35# --------------------------------------------------------------------------- 

36 

37EP_PROVIDERS = "lexigram.providers" 

38"""Auto-registering general-purpose providers.""" 

39 

40EP_MODULES = "lexigram.modules" 

41"""Core module auto-discovery.""" 

42 

43EP_MIDDLEWARE = "lexigram.middleware" 

44"""HTTP and event middleware auto-registration.""" 

45 

46# --------------------------------------------------------------------------- 

47# AI subsystem discovery 

48# --------------------------------------------------------------------------- 

49 

50EP_AI_SUBSYSTEMS = "lexigram.ai.subsystems" 

51"""AI sub-package providers (LLM, Vector, RAG, Agents, Memory, etc.).""" 

52 

53EP_AI_TOOLS = "lexigram.ai.tools" 

54"""AI tool and skill providers.""" 

55 

56EP_AI_STRATEGIES = "lexigram.ai.strategies" 

57"""Agent reasoning strategy implementations.""" 

58 

59EP_AI_GUARDS = "lexigram.ai.guards" 

60"""AI content safety guard implementations.""" 

61 

62EP_AI_BACKENDS_MEMORY = "lexigram.ai.backends.memory" 

63"""Pluggable memory storage backends.""" 

64 

65EP_AI_BACKENDS_EMBEDDING = "lexigram.ai.backends.embedding" 

66"""Pluggable embedding and chunking backends.""" 

67 

68# --------------------------------------------------------------------------- 

69# Plugin discovery 

70# --------------------------------------------------------------------------- 

71 

72EP_PLUGINS = "lexigram.plugins" 

73"""Metadata-only plugin descriptors for admin-manageable enable/disable.""" 

74 

75# --------------------------------------------------------------------------- 

76# Infrastructure backend discovery 

77# --------------------------------------------------------------------------- 

78 

79EP_CACHE_BACKENDS = "lexigram.cache.backends" 

80"""Cache backend implementations (Redis, Memcached, in-memory, etc.).""" 

81 

82EP_DB_BACKENDS = "lexigram.sql.backends" 

83"""Database client implementations.""" 

84 

85EP_SEARCH_BACKENDS = "lexigram.search.backends" 

86"""Search engine backend implementations.""" 

87 

88EP_MESSAGING_BACKENDS = "lexigram.messaging.backends" 

89"""Message queue backend implementations.""" 

90 

91EP_MONITORING_BACKENDS = "lexigram.monitoring.backends" 

92"""Observability backend implementations.""" 

93 

94EP_TASKS_BACKENDS = "lexigram.tasks.backends" 

95"""Background task queue backend implementations.""" 

96 

97EP_STORAGE_BACKENDS = "lexigram.storage.backends" 

98"""Object storage backend implementations.""" 

99 

100# --------------------------------------------------------------------------- 

101# Strategy discovery 

102# --------------------------------------------------------------------------- 

103 

104EP_CHUNKING_STRATEGIES = "lexigram.chunking.strategies" 

105"""RAG document chunking strategy implementations.""" 

106 

107EP_RETRIEVAL_STRATEGIES = "lexigram.retrieval.strategies" 

108"""RAG retrieval and ranking strategy implementations.""" 

109 

110EP_AGENT_STRATEGIES = "lexigram.agent.strategies" 

111"""Agent reasoning strategy implementations.""" 

112 

113EP_AUTH_STRATEGIES = "lexigram.auth.strategies" 

114"""Authentication method implementations.""" 

115 

116# --------------------------------------------------------------------------- 

117# Catalogue 

118# --------------------------------------------------------------------------- 

119 

120ALL_ENTRY_POINT_GROUPS: dict[str, str] = { 

121 EP_PROVIDERS: "General-purpose auto-registering providers", 

122 EP_MODULES: "Core module auto-discovery", 

123 EP_MIDDLEWARE: "HTTP/event middleware auto-registration", 

124 EP_PLUGINS: "Metadata-only plugin descriptors", 

125 EP_AI_SUBSYSTEMS: "AI sub-package providers", 

126 EP_AI_TOOLS: "AI tools and skills", 

127 EP_AI_STRATEGIES: "Agent reasoning strategies", 

128 EP_AI_GUARDS: "Content safety guards", 

129 EP_AI_BACKENDS_MEMORY: "Memory storage backends", 

130 EP_AI_BACKENDS_EMBEDDING: "Embedding/chunking backends", 

131 EP_CACHE_BACKENDS: "Cache backend implementations", 

132 EP_DB_BACKENDS: "Database client implementations", 

133 EP_SEARCH_BACKENDS: "Search engine backends", 

134 EP_MESSAGING_BACKENDS: "Message queue backends", 

135 EP_MONITORING_BACKENDS: "Observability backends", 

136 EP_TASKS_BACKENDS: "Background task queue backends", 

137 EP_STORAGE_BACKENDS: "Object storage backends", 

138 EP_CHUNKING_STRATEGIES: "RAG chunking strategies", 

139 EP_RETRIEVAL_STRATEGIES: "RAG retrieval strategies", 

140 EP_AGENT_STRATEGIES: "Agent reasoning strategies", 

141 EP_AUTH_STRATEGIES: "Authentication strategies", 

142} 

143 

144__all__ = [ 

145 "ALL_ENTRY_POINT_GROUPS", 

146 "ENV_PREFIX", 

147 "EP_AGENT_STRATEGIES", 

148 "EP_AI_BACKENDS_EMBEDDING", 

149 "EP_AI_BACKENDS_MEMORY", 

150 "EP_AI_GUARDS", 

151 "EP_AI_STRATEGIES", 

152 "EP_AI_SUBSYSTEMS", 

153 "EP_AI_TOOLS", 

154 "EP_AUTH_STRATEGIES", 

155 "EP_CACHE_BACKENDS", 

156 "EP_CHUNKING_STRATEGIES", 

157 "EP_DB_BACKENDS", 

158 "EP_MESSAGING_BACKENDS", 

159 "EP_MIDDLEWARE", 

160 "EP_MODULES", 

161 "EP_MONITORING_BACKENDS", 

162 "EP_PLUGINS", 

163 "EP_PROVIDERS", 

164 "EP_RETRIEVAL_STRATEGIES", 

165 "EP_SEARCH_BACKENDS", 

166 "EP_STORAGE_BACKENDS", 

167 "EP_TASKS_BACKENDS", 

168 "__version__", 

169]