"""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__))