Skip to content

algorithm_choice

Algorithm selection widget.

AlgorithmSelectionWidget #

Bases: QComboBox

Algorithm selection widget.

Parameters:

Name Type Description Default
training_signal TrainingSignal or None

Training signal holding all parameters to be set by the user.

None
Source code in src/careamics_napari/widgets/algorithm_choice.py
class AlgorithmSelectionWidget(QComboBox):
    """Algorithm selection widget.

    Parameters
    ----------
    training_signal : TrainingSignal or None, default=None
        Training signal holding all parameters to be set by the user.
    """

    def __init__(self, training_signal: Optional[TrainingSignal] = None) -> None:
        """Initialize the widget.

        Parameters
        ----------
        training_signal : TrainingSignal or None, default=None
            Training signal holding all parameters to be set by the user.
        """
        super().__init__()

        self.signal = training_signal

        self.addItems(get_available_algorithms())
        self.setToolTip("Select an algorithm.")

        # Connect the signal
        self.currentIndexChanged.connect(self.algorithm_changed)
        self.current_algorithm = self._get_current_algorithm()

    def _get_current_algorithm(self) -> str:
        """Return the current algorithm name.

        Returns
        -------
        str
            Current algorithm name.
        """
        return get_algorithm(self.currentText())

    def algorithm_changed(self, index: int) -> None:
        """Emit the algorithm signal.

        Parameters
        ----------
        index : int
            Index of the selected algorithm.
        """
        # save SupportedAlgorithm
        self.current_algorithm = self._get_current_algorithm()

        # emit the signal
        if self.signal is not None:
            self.signal.algorithm = self.current_algorithm

__init__(training_signal=None) #

Initialize the widget.

Parameters:

Name Type Description Default
training_signal TrainingSignal or None

Training signal holding all parameters to be set by the user.

None
Source code in src/careamics_napari/widgets/algorithm_choice.py
def __init__(self, training_signal: Optional[TrainingSignal] = None) -> None:
    """Initialize the widget.

    Parameters
    ----------
    training_signal : TrainingSignal or None, default=None
        Training signal holding all parameters to be set by the user.
    """
    super().__init__()

    self.signal = training_signal

    self.addItems(get_available_algorithms())
    self.setToolTip("Select an algorithm.")

    # Connect the signal
    self.currentIndexChanged.connect(self.algorithm_changed)
    self.current_algorithm = self._get_current_algorithm()

algorithm_changed(index) #

Emit the algorithm signal.

Parameters:

Name Type Description Default
index int

Index of the selected algorithm.

required
Source code in src/careamics_napari/widgets/algorithm_choice.py
def algorithm_changed(self, index: int) -> None:
    """Emit the algorithm signal.

    Parameters
    ----------
    index : int
        Index of the selected algorithm.
    """
    # save SupportedAlgorithm
    self.current_algorithm = self._get_current_algorithm()

    # emit the signal
    if self.signal is not None:
        self.signal.algorithm = self.current_algorithm

print_algorithm(name) #

Print the selected algorithm.

Source code in src/careamics_napari/widgets/algorithm_choice.py
@myalgo.events.algorithm.connect
def print_algorithm(name: str):
    """Print the selected algorithm."""
    print(f"Selected algorithm: {name}")