Source code for gama.genetic_programming.components.terminal

from typing import NamedTuple

DATA_TERMINAL = "data"


[docs]class Terminal(NamedTuple): """ Specifies a specific value for a specific type or input. E.g. a value for a hyperparameter for an algorithm. """ value: object output: str identifier: str def __str__(self): """ str: e.g. "tol=0.5" """ return f"{self.output}={format_hyperparameter_value(self.value)}" def __repr__(self): """ str: e.g. "FastICA.tol=0.5". If the hyperparameter is shared across primitives, there is no prefix. """ return f"{self.identifier}={format_hyperparameter_value(self.value)}"
def format_hyperparameter_value(value: object) -> str: if isinstance(value, str): return f"'{value}'" # Quoted elif callable(value) and hasattr(value, "__name__"): return f"{value.__name__}" # type: ignore else: return str(value)