limoXD's picture
Release v0.11 finite-selection hardening
5ee4f7e verified
Raw
History Blame Contribute Delete
1.54 kB
from __future__ import annotations
from importlib import import_module
from typing import TYPE_CHECKING, Any
from .domain import (
Candidate,
CandidateScoringError,
RankedCandidate,
RerankConfig,
RerankRequest,
RerankResult,
)
from .keyboard_typo import KeyboardTypoConfig, KeyboardTypoCorrector
from .reranker import Reranker
from .romaji_ime import (
RomajiImeEngine,
RomajiImeResult,
RomajiInputError,
TypoCorrection,
WindowsImeBestOneProvider,
WindowsImeProviderError,
)
if TYPE_CHECKING:
from .sidecar_client import (
CandidateSource,
SidecarClient,
SidecarControlResult,
SidecarResult,
)
_LAZY_SIDECAR_EXPORTS = frozenset(
{"CandidateSource", "SidecarClient", "SidecarControlResult", "SidecarResult"}
)
def __getattr__(name: str) -> Any:
if name not in _LAZY_SIDECAR_EXPORTS:
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
value = getattr(import_module(".sidecar_client", __name__), name)
globals()[name] = value
return value
__all__ = [
"Candidate",
"CandidateScoringError",
"CandidateSource",
"KeyboardTypoConfig",
"KeyboardTypoCorrector",
"RankedCandidate",
"RerankConfig",
"RerankRequest",
"RerankResult",
"Reranker",
"RomajiImeEngine",
"RomajiImeResult",
"RomajiInputError",
"SidecarClient",
"SidecarControlResult",
"SidecarResult",
"TypoCorrection",
"WindowsImeBestOneProvider",
"WindowsImeProviderError",
]