2026-10-20 12:09:42 +08:00

50 lines
2.0 KiB
Python

"""Public HF integration API, imported lazily from its implementations.
Callers outside this package import from here; package internals import directly
from their sibling modules.
"""
from importlib import import_module
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
from deepinfer.hugging_face.config import load_hf_model_config as load_hf_model_config
from deepinfer.hugging_face.loading import cover_tied_parameters as cover_tied_parameters
from deepinfer.hugging_face.loading import prepare_hf_coverage as prepare_hf_coverage
from deepinfer.hugging_face.loading import validate_hf_shapes as validate_hf_shapes
from deepinfer.hugging_face.parameters import model_params as model_params
from deepinfer.hugging_face.processor import build_mm_processor as build_mm_processor
from deepinfer.hugging_face.processor import load_processor_config as load_processor_config
from deepinfer.hugging_face.tokenizer import get_hf_tokenizer as get_hf_tokenizer
from deepinfer.hugging_face.weights import HFCoverage as HFCoverage
from deepinfer.hugging_face.weights import load_covered_params as load_covered_params
from deepinfer.hugging_face.weights import log_load_phase as log_load_phase
_EXPORTS = {
"HFCoverage": "weights",
"build_mm_processor": "processor",
"cover_tied_parameters": "loading",
"get_hf_tokenizer": "tokenizer",
"load_covered_params": "weights",
"load_hf_model_config": "config",
"load_processor_config": "processor",
"log_load_phase": "weights",
"model_params": "parameters",
"prepare_hf_coverage": "loading",
"validate_hf_shapes": "loading",
}
__all__ = list(_EXPORTS)
def __getattr__(name: str) -> Any:
if name not in _EXPORTS:
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
value = getattr(import_module(f"{__name__}.{_EXPORTS[name]}"), name)
globals()[name] = value
return value
def __dir__() -> list[str]:
return sorted(set(globals()) | set(__all__))