| from typing import Any | |
| from ...misc.step_tracker import StepTracker | |
| from ..types import Stage | |
| from .view_sampler import ViewSampler | |
| from .view_sampler_all import ViewSamplerAll, ViewSamplerAllCfg | |
| from .view_sampler_arbitrary import ViewSamplerArbitrary, ViewSamplerArbitraryCfg | |
| from .view_sampler_bounded import ViewSamplerBounded, ViewSamplerBoundedCfg | |
| from .view_sampler_evaluation import ViewSamplerEvaluation, ViewSamplerEvaluationCfg | |
| from .view_sampler_rank import ViewSamplerRank, ViewSamplerRankCfg | |
| VIEW_SAMPLERS: dict[str, ViewSampler[Any]] = { | |
| "all": ViewSamplerAll, | |
| "arbitrary": ViewSamplerArbitrary, | |
| "bounded": ViewSamplerBounded, | |
| "evaluation": ViewSamplerEvaluation, | |
| "rank": ViewSamplerRank, | |
| } | |
| ViewSamplerCfg = ( | |
| ViewSamplerArbitraryCfg | |
| | ViewSamplerBoundedCfg | |
| | ViewSamplerEvaluationCfg | |
| | ViewSamplerAllCfg | |
| | ViewSamplerRankCfg | |
| ) | |
| def get_view_sampler( | |
| cfg: ViewSamplerCfg, | |
| stage: Stage, | |
| overfit: bool, | |
| cameras_are_circular: bool, | |
| step_tracker: StepTracker | None, | |
| ) -> ViewSampler[Any]: | |
| return VIEW_SAMPLERS[cfg.name]( | |
| cfg, | |
| stage, | |
| overfit, | |
| cameras_are_circular, | |
| step_tracker, | |
| ) | |