Index: wflow-py/wflow/wflow_bmi.py =================================================================== diff -u -r3e39e84af48f1bcb5ec0d243748147be223674f2 -r2b3c0c4f2d96ed7778f0a18a472f2a2fe3d1c8f4 --- wflow-py/wflow/wflow_bmi.py (.../wflow_bmi.py) (revision 3e39e84af48f1bcb5ec0d243748147be223674f2) +++ wflow-py/wflow/wflow_bmi.py (.../wflow_bmi.py) (revision 2b3c0c4f2d96ed7778f0a18a472f2a2fe3d1c8f4) @@ -10,25 +10,35 @@ import numpy as np from wflow.pcrut import setlogger -# wflow models we want to support, keep up to date with wflow_modeldict +# wflow models we want to support, keep up to date with wflow_model import wflow.wflow_sbm import wflow.wflow_hbv import wflow.wflow_routing import wflow.wflow_floodmap import wflow.wflow_lintul +import wflow.wflow_sceleton from pcraster import * import configparser -wflow_modeldict = { - "wflow_sbm": wflow.wflow_sbm, - "wflow_hbv": wflow.wflow_hbv, - "wflow_routing": wflow.wflow_routing, - "wflow_floodmap": wflow.wflow_floodmap, - "wflow_lintul": wflow.wflow_lintul, -} +wflow_models = [ + wflow.wflow_sbm, + wflow.wflow_hbv, + wflow.wflow_routing, + wflow.wflow_floodmap, + wflow.wflow_lintul, + wflow.wflow_sceleton, +] +def wflow_model(name): + for model in wflow_models: + if name in model.__name__: + return model + model_names = [model.__name__ for model in wflow_models] + raise ValueError("Model {} not recognized as one of {}".format(name, model_names)) + + def iniFileSetUp(configfile): """ Reads .ini file and returns a config object. @@ -185,7 +195,7 @@ maxNrSteps = 10000 maxNrSteps = 0 - wf = wflow_modeldict[self.name] + wf = wflow_model(self.name) self.bmilogger.info( "initialize: Initialising wflow bmi with ini: " + configfile ) @@ -603,7 +613,7 @@ ) self.bmilogger.warning("Assuming " + self.name + " as model type.") - wf = wflow_modeldict[self.name] + wf = wflow_model(self.name) self.bmilogger.info( "initialize_config: Initialising wflow bmi with ini: " + filename