Source code for metaheuristic_designer.operators.factories.debug

"""
Debug operator registry and factory.
"""

from typing import Optional

from ...encoding import Encoding
from ...operator import OperatorFromLambda
from ..operator_functions.utils import OperatorFnDef, dummy_op

debug_ops_map = {
    "debug": OperatorFnDef(dummy_op),
    "dummy": OperatorFnDef(dummy_op),
    "constant": OperatorFnDef(dummy_op),
    "set_to_value": OperatorFnDef(dummy_op),
    "zeros": OperatorFnDef(dummy_op, forced_params={"f": 0}),
    "ones": OperatorFnDef(dummy_op, forced_params={"f": 1}),
}


[docs] def create_debug_operator( method: str, encoding: Optional[Encoding] = None, name: Optional[str] = None, **kwargs ) -> OperatorFromLambda: """ Create a debug operator by name. Parameters ---------- method : str Key into :data:`debug_ops_map`. encoding : Encoding, optional Encoding applied to the genotype. name : str, optional Display name; defaults to *method*. **kwargs Forwarded to the operator function. Returns ------- OperatorFromLambda The wrapped debug operator. """ if name is None: name = method return OperatorFromLambda(operator_fn=debug_ops_map[method.lower()], name=name, encoding=encoding, **kwargs)