Source code for suboptimumg.sweep.sweeper_factory

from collections.abc import Callable

from ..compsim.models import CompetitionData
from .models import SweepParamConfig
from .sweeper_1d import Sweeper1D
from .sweeper_2d import Sweeper2D


[docs] def create_sweeper( comp_data: CompetitionData, var_1: SweepParamConfig, var_2: SweepParamConfig | None = None, dependencies: dict[str, Callable] = {}, ) -> Sweeper1D | Sweeper2D: """ Create the appropriate sweeper based on the number of variables. Parameters ---------- comp_data : CompetitionData Competition configuration data model var_1 : SweepParamConfig First sweep variable configuration var_2 : SweepParamConfig, optional Second sweep variable configuration. If omitted, a 1D sweeper is created. dependencies : dict, optional Mapping of dependent parameter names to functions computing their value from the sweep variable(s) Returns ------- Sweeper1D or Sweeper2D A 1D sweeper if `var_2` is None, otherwise a 2D sweeper """ if var_2 is None: return Sweeper1D(comp_data, var_1, dependencies) return Sweeper2D(comp_data, var_1, var_2, dependencies)