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
« 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"""
5try:
6 from importlib.metadata import version
8 __version__ = version("qdrant-loader")
9except ImportError:
10 # Provide fallback for older Python versions or when package is not installed.
11 __version__ = "unknown"
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
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 try:
47 import importlib
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
56__all__ = [
57 "__version__",
58 "Document",
59 "EmbeddingService",
60 "QdrantManager",
61 "Settings",
62 "GlobalConfig",
63 "SemanticAnalysisConfig",
64 "ChunkingConfig",
65]