File size: 1,544 Bytes
5ee4f7e
 
 
 
 
f11438f
 
 
 
 
 
 
 
41e3c24
54c3e65
e9f83b7
 
 
 
41e3c24
e9f83b7
 
 
5ee4f7e
 
 
 
 
 
 
 
 
 
 
1e41561
54c3e65
5ee4f7e
 
 
 
 
 
 
 
 
54c3e65
 
f11438f
1e41561
41e3c24
 
54c3e65
 
 
 
 
e9f83b7
 
 
1e41561
 
 
41e3c24
e9f83b7
 
54c3e65
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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",
]