Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-rag/src/lexigram/ai/rag/query/__init__.py: 87%
15 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1from __future__ import annotations
3from typing import TYPE_CHECKING, Any
5if TYPE_CHECKING:
6 from lexigram.ai.rag.query.base import (
7 AbstractQueryTransformer,
8 TransformationConfig,
9 TransformationStrategy,
10 TransformedQuery,
11 )
12 from lexigram.ai.rag.query.pipeline import TransformationPipeline
13 from lexigram.ai.rag.query.transformers import (
14 CustomQueryTransformer,
15 HyDEGenerator,
16 MultiQueryGenerator,
17 QueryExpander,
18 QueryRewriter,
19 create_transformer,
20 )
22_LAZY_IMPORTS = {
23 "TransformationStrategy": ".base",
24 "TransformedQuery": ".base",
25 "QueryTransformer": ".base",
26 "TransformationConfig": ".base",
27 "QueryExpander": ".transformers",
28 "MultiQueryGenerator": ".transformers",
29 "HyDEGenerator": ".transformers",
30 "QueryRewriter": ".transformers",
31 "CustomQueryTransformer": ".transformers",
32 "create_transformer": ".transformers",
33 "TransformationPipeline": ".pipeline",
34}
37def __getattr__(name: str) -> Any:
38 if name in _LAZY_IMPORTS:
39 import importlib
41 module_path = _LAZY_IMPORTS[name]
42 module = importlib.import_module(module_path, __package__)
43 value = getattr(module, name)
44 globals()[name] = value
45 return value
46 raise AttributeError(f"module {__name__} has no attribute {name}")
49def __dir__() -> list[str]:
50 return list(_LAZY_IMPORTS.keys())
53__all__ = list(_LAZY_IMPORTS.keys())