function

language.param

def param(default: typing.Any, help: str | None = None, name: str | None = None, choices: list[typing.Any] | None = None, validator: typing.Callable[[typing.Any], typing.Any] | None = None) -> typing.Any

Declare a one-off ``laco app`` hyperparameter outside a ``@L.params`` block.

The return value is a :class:`LacoParam` at runtime; ``laco.load`` unwraps it to *default* in the resulting :class:`~omegaconf.DictConfig`.

Parameters

NameTypeDescription
defaulttyping.AnyDefault value (also determines the CLI flag type).
help = Nonestr | NoneShort description shown in ``laco app <dist> <entry> --help``.
name = Nonestr | NoneCustom CLI flag name. Defaults to the variable name.
choices = Nonelist[typing.Any] | NoneRestrict valid values. Validated at parse time.
validator = Nonetyping.Callable[[typing.Any], typing.Any] | NoneCallable (e.g. :class:`Range`, :class:`Choices`) applied after type conversion. Raises :class:`ValueError` on failure.

Examples

::

    seed = L.param(42, help="Random seed for reproducibility")
    lr = L.param(1e-3, help="Learning rate", validator=L.Range(1e-6, 1.0))
    opt = L.param("adam", choices=["adam", "sgd", "adamw"])

Source: laco/language.py:1419