From 5b41cecb4498398e2264cfda4f8fa129f9094ed3 Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Mon, 4 Mar 2024 10:09:27 +0100 Subject: [PATCH] enable lazy eval in config Signed-off-by: Csaba Kiraly # Conflicts: # DAS/validator.py --- smallConf.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/smallConf.py b/smallConf.py index a166cec..065561c 100644 --- a/smallConf.py +++ b/smallConf.py @@ -111,3 +111,18 @@ def nextShape(): chiR = chiC = chi shape = Shape(blockSizeR, blockSizeRK, blockSizeC, blockSizeCK, nn, fm, fr, class1ratio, chiR, chiC, vpn1, vpn2, netDegree, bwUplinkProd, bwUplink1, bwUplink2, run) yield shape + +def evalConf(self, param, shape = None): + '''Allow lazy evaluation of params in various forms + + Examples: + sendLineUntilR = "shape.blockSizeRK" + sendLineUntilC = lambda shape : shape.blockSizeCK + perNodeQueue = "self.amIproposer" + ''' + if callable(param): + return param(shape) + elif isinstance(param, str): + return eval(param) + else: + return param