# This file was auto-generated by Fern from our API Definition.

# isort: skip_file

import typing
from importlib import import_module

if typing.TYPE_CHECKING:
    from . import finetuning
    from .finetuning import (
        BaseModel,
        BaseType,
        CreateFinetunedModelResponse,
        DeleteFinetunedModelResponse,
        Event,
        FinetunedModel,
        GetFinetunedModelResponse,
        Hyperparameters,
        ListEventsResponse,
        ListFinetunedModelsResponse,
        ListTrainingStepMetricsResponse,
        LoraTargetModules,
        Settings,
        Status,
        Strategy,
        TrainingStepMetrics,
        UpdateFinetunedModelResponse,
        WandbConfig,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "BaseModel": ".finetuning",
    "BaseType": ".finetuning",
    "CreateFinetunedModelResponse": ".finetuning",
    "DeleteFinetunedModelResponse": ".finetuning",
    "Event": ".finetuning",
    "FinetunedModel": ".finetuning",
    "GetFinetunedModelResponse": ".finetuning",
    "Hyperparameters": ".finetuning",
    "ListEventsResponse": ".finetuning",
    "ListFinetunedModelsResponse": ".finetuning",
    "ListTrainingStepMetricsResponse": ".finetuning",
    "LoraTargetModules": ".finetuning",
    "Settings": ".finetuning",
    "Status": ".finetuning",
    "Strategy": ".finetuning",
    "TrainingStepMetrics": ".finetuning",
    "UpdateFinetunedModelResponse": ".finetuning",
    "WandbConfig": ".finetuning",
    "finetuning": ".finetuning",
}


def __getattr__(attr_name: str) -> typing.Any:
    module_name = _dynamic_imports.get(attr_name)
    if module_name is None:
        raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
    try:
        module = import_module(module_name, __package__)
        if module_name == f".{attr_name}":
            return module
        else:
            return getattr(module, attr_name)
    except ImportError as e:
        raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
    except AttributeError as e:
        raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e


def __dir__():
    lazy_attrs = list(_dynamic_imports.keys())
    return sorted(lazy_attrs)


__all__ = [
    "BaseModel",
    "BaseType",
    "CreateFinetunedModelResponse",
    "DeleteFinetunedModelResponse",
    "Event",
    "FinetunedModel",
    "GetFinetunedModelResponse",
    "Hyperparameters",
    "ListEventsResponse",
    "ListFinetunedModelsResponse",
    "ListTrainingStepMetricsResponse",
    "LoraTargetModules",
    "Settings",
    "Status",
    "Strategy",
    "TrainingStepMetrics",
    "UpdateFinetunedModelResponse",
    "WandbConfig",
    "finetuning",
]
