Coverage for src/qdrant_loader/__init__.py: 93%

29 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-04 05:50 +0000

1""" 

2QDrant Loader - A tool for collecting and vectorizing technical content. 

3""" 

4 

5try: 

6 from importlib.metadata import version 

7 

8 __version__ = version("qdrant-loader") 

9except ImportError: 

10 # Fallback for older Python versions or if package not installed 

11 __version__ = "unknown" 

12 

13 

14# Lazy imports to avoid slow package loading 

15def __getattr__(name): 

16 """Lazy import heavy modules only when accessed.""" 

17 if name == "ChunkingConfig": 

18 from qdrant_loader.config import ChunkingConfig 

19 

20 return ChunkingConfig 

21 elif name == "GlobalConfig": 

22 from qdrant_loader.config import GlobalConfig 

23 

24 return GlobalConfig 

25 elif name == "SemanticAnalysisConfig": 

26 from qdrant_loader.config import SemanticAnalysisConfig 

27 

28 return SemanticAnalysisConfig 

29 elif name == "Settings": 

30 from qdrant_loader.config import Settings 

31 

32 return Settings 

33 elif name == "Document": 

34 from qdrant_loader.core import Document 

35 

36 return Document 

37 elif name == "EmbeddingService": 

38 from qdrant_loader.core.embedding import EmbeddingService 

39 

40 return EmbeddingService 

41 elif name == "QdrantManager": 

42 from qdrant_loader.core.qdrant_manager import QdrantManager 

43 

44 return QdrantManager 

45 else: 

46 raise AttributeError(f"module '{__name__}' has no attribute '{name}'") 

47 

48 

49__all__ = [ 

50 "__version__", 

51 "Document", 

52 "EmbeddingService", 

53 "QdrantManager", 

54 "Settings", 

55 "GlobalConfig", 

56 "SemanticAnalysisConfig", 

57 "ChunkingConfig", 

58]