Coverage for src / qdrant_loader_mcp_server / search / engine / __init__.py: 92%

12 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-18 04:51 +0000

1""" 

2Search Engine Package - Modular Search Architecture. 

3 

4This package provides a comprehensive search engine through modular components: 

5- core: Core engine lifecycle and configuration management 

6- search: Main search operations and query processing 

7- topic_chain: Topic-driven search chain functionality 

8- faceted: Faceted search and suggestion capabilities 

9- intelligence: Cross-document intelligence and analysis 

10- strategies: Search strategy selection and optimization 

11""" 

12 

13from __future__ import annotations 

14 

15from typing import TYPE_CHECKING 

16 

17# Re-export the main SearchEngine class for backward compatibility 

18from ..hybrid_search import HybridSearchEngine 

19from .core import SearchEngine 

20 

21# Lazy re-exports for backward compatibility (only imported when accessed) 

22if TYPE_CHECKING: 

23 from qdrant_client import AsyncQdrantClient 

24 

25 AsyncOpenAI = None # type: ignore[assignment] 

26 

27__all__ = [ 

28 "SearchEngine", 

29 "HybridSearchEngine", 

30] 

31 

32 

33def __getattr__(name: str): 

34 """Lazy import for backward compatibility.""" 

35 if name == "AsyncQdrantClient": 

36 from qdrant_client import AsyncQdrantClient 

37 

38 return AsyncQdrantClient 

39 if name == "AsyncOpenAI": 

40 # Return None as it was in core.py 

41 return None 

42 raise AttributeError(f"module {__name__!r} has no attribute {name!r}")