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

33 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-06-11 09:38 +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 # Provide fallback for older Python versions or when package is not installed. 

11 __version__ = "unknown" 

12 

13 

14# Use lazy imports to avoid slow package loading at startup. 

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 try: 

47 import importlib 

48 

49 return importlib.import_module(f"{__name__}.{name}") 

50 except ImportError as err: 

51 raise AttributeError( 

52 f"module '{__name__}' has no attribute '{name}'" 

53 ) from err 

54 

55 

56__all__ = [ 

57 "__version__", 

58 "Document", 

59 "EmbeddingService", 

60 "QdrantManager", 

61 "Settings", 

62 "GlobalConfig", 

63 "SemanticAnalysisConfig", 

64 "ChunkingConfig", 

65]