Spaces:
Paused
Paused
File size: 1,174 Bytes
a42743f 79a70b2 a42743f c4e297f 79a70b2 a42743f b6a47c9 a42743f c4e297f a42743f b6a47c9 c4e297f b6a47c9 c4e297f b6a47c9 c4e297f a42743f | 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 | 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}")
|