"""Trainer exports loaded on demand. Keeping this package initializer dependency-free lets the standalone Predictor-v4 path run without importing the legacy wandb-based trainers. """ from __future__ import annotations from importlib import import_module _EXPORTS = { "DiffusionTrainer": ("trainer.diffusion", "Trainer"), "GANTrainer": ("trainer.gan", "Trainer"), "ODETrainer": ("trainer.ode", "Trainer"), "ScoreDistillationTrainer": ("trainer.distillation", "Trainer"), "PredictorV4Trainer": ("trainer.predictor_v4", "Trainer"), "PredictorV4RolloutTrainer": ("trainer.predictor_v4_rollout", "Trainer"), "PredictorV4DMDTrainer": ("trainer.predictor_v4_dmd", "Trainer"), } __all__ = list(_EXPORTS) def __getattr__(name: str): if name not in _EXPORTS: raise AttributeError(name) module_name, attribute = _EXPORTS[name] value = getattr(import_module(module_name), attribute) globals()[name] = value return value