From 25534304de2b94d2657d0f3102eea79b96c410f3 Mon Sep 17 00:00:00 2001 From: Nathan Painchaud <23144457+nathanpainchaud@users.noreply.github.com> Date: Tue, 3 Oct 2023 15:49:50 +0200 Subject: [PATCH] Add misc. custom `OmegaConfg` resolvers (#173) New resolvers: - Modulo math operator - List indexing (using the C++ inspired name `at`) --- vital/utils/config.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vital/utils/config.py b/vital/utils/config.py index e654b117..d178f798 100644 --- a/vital/utils/config.py +++ b/vital/utils/config.py @@ -34,6 +34,7 @@ def _cast_op(op, x, y, type_of: str = None) -> Any: OmegaConf.register_new_resolver("op.add", lambda x, y, type_of=None: _cast_op(operator.add, x, y, type_of=type_of)) OmegaConf.register_new_resolver("op.sub", lambda x, y, type_of=None: _cast_op(operator.sub, x, y, type_of=type_of)) OmegaConf.register_new_resolver("op.mul", lambda x, y, type_of=None: _cast_op(operator.mul, x, y, type_of=type_of)) + OmegaConf.register_new_resolver("op.mod", lambda x, y, type_of=None: _cast_op(operator.mod, x, y, type_of=type_of)) OmegaConf.register_new_resolver("builtin.len", lambda cfg: len(cfg)) OmegaConf.register_new_resolver("builtin.range", lambda start, stop, step=1: list(range(start, stop, step))) @@ -47,6 +48,7 @@ def _cast_op(op, x, y, type_of: str = None) -> Any: ] ), ) + OmegaConf.register_new_resolver("list.at", lambda cfg, idx: cfg[idx]) def read_ini_config(ini_config: Path) -> ConfigParser: