| from typing import Optional, Union | |
| from .encoder import Encoder | |
| from .visualization.encoder_visualizer import EncoderVisualizer | |
| from .anysplat import EncoderAnySplat, EncoderAnySplatCfg | |
| ENCODERS = { | |
| "anysplat": (EncoderAnySplat, None), | |
| } | |
| EncoderCfg = Union[EncoderAnySplatCfg] | |
| def get_encoder(cfg: EncoderCfg) -> tuple[Encoder, Optional[EncoderVisualizer]]: | |
| encoder, visualizer = ENCODERS[cfg.name] | |
| encoder = encoder(cfg) | |
| if visualizer is not None: | |
| visualizer = visualizer(cfg.visualizer, encoder) | |
| return encoder, visualizer | |