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
« 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"""
5try:
6 from importlib.metadata import version
8 __version__ = version("qdrant-loader")
9except ImportError:
10 # Fallback for older Python versions or if package not installed
11 __version__ = "unknown"
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
20 return ChunkingConfig
21 elif name == "GlobalConfig":
22 from qdrant_loader.config import GlobalConfig
24 return GlobalConfig
25 elif name == "SemanticAnalysisConfig":
26 from qdrant_loader.config import SemanticAnalysisConfig
28 return SemanticAnalysisConfig
29 elif name == "Settings":
30 from qdrant_loader.config import Settings
32 return Settings
33 elif name == "Document":
34 from qdrant_loader.core import Document
36 return Document
37 elif name == "EmbeddingService":
38 from qdrant_loader.core.embedding import EmbeddingService
40 return EmbeddingService
41 elif name == "QdrantManager":
42 from qdrant_loader.core.qdrant_manager import QdrantManager
44 return QdrantManager
45 else:
46 raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
49__all__ = [
50 "__version__",
51 "Document",
52 "EmbeddingService",
53 "QdrantManager",
54 "Settings",
55 "GlobalConfig",
56 "SemanticAnalysisConfig",
57 "ChunkingConfig",
58]