from typing import TYPE_CHECKING, Dict, Type from .client import RotatingClient # For type checkers (Pylint, mypy), import PROVIDER_PLUGINS statically # At runtime, it's lazy-loaded via __getattr__ if TYPE_CHECKING: from .providers import PROVIDER_PLUGINS from .providers.provider_interface import ProviderInterface from .model_info_service import ModelInfoService, ModelInfo, ModelMetadata __all__ = [ "RotatingClient", "PROVIDER_PLUGINS", "ModelInfoService", "ModelInfo", "ModelMetadata", ] def __getattr__(name): """Lazy-load PROVIDER_PLUGINS and ModelInfoService to speed up module import.""" if name == "PROVIDER_PLUGINS": from .providers import PROVIDER_PLUGINS return PROVIDER_PLUGINS if name == "ModelInfoService": from .model_info_service import ModelInfoService return ModelInfoService if name == "ModelInfo": from .model_info_service import ModelInfo return ModelInfo if name == "ModelMetadata": from .model_info_service import ModelMetadata return ModelMetadata raise AttributeError(f"module {__name__!r} has no attribute {name!r}")