Index: wflow-py/wflow/wflow_bmi.py =================================================================== diff -u -rf33154035afcaa101c5a30594b9c86a4fe9f61ef -rec2d3f47f5439af67a0179ee617667d339e3b190 --- wflow-py/wflow/wflow_bmi.py (.../wflow_bmi.py) (revision f33154035afcaa101c5a30594b9c86a4fe9f61ef) +++ wflow-py/wflow/wflow_bmi.py (.../wflow_bmi.py) (revision ec2d3f47f5439af67a0179ee617667d339e3b190) @@ -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