# setup model model = sys.argv[1] variable = None if len(sys.argv) > 2: variable = sys.argv[2] mvModel = metric.getModel(model) variableSet = [] if variable: modelVar = util.getSubModuleFromString(mvModel, variable) variableSet = VS.getRelatedVariables(modelVar) else: # no variable parameter, get all vars for the model variableSet, roots = VS.gatherVariables(mvModel.VariableStore) sys.stdout.write("file,class,alias1,alias2,section,option,units,default,dependencies\n") for var in variableSet: filename = inspect.getfile(var).replace('.pyc', '.py') clazz = VS.getClassname(var) alias = VS.getAlias(var) alias1 = "" if not var.aliases or len(var.aliases) < 1 else var.aliases[0] alias2 = "" if not var.aliases or len(var.aliases) < 2 else var.aliases[1] depClasses = [] if var.dependencies != None: depClasses = [VS.getClassname(dep) for dep in var.dependencies] sys.stdout.write("%s,%s,%s,%s,%s,%s,%s,%s,%s\n" % (filename, clazz, alias1, alias2, var.section, var.option, var.units, var.default, ";".join(depClasses)))
import sys, os from signal import signal, SIGPIPE, SIG_DFL signal(SIGPIPE,SIG_DFL) basePath = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(basePath) from np.lib import variable_store as VS from np.lib.variable_store import Variable as V from np.lib import metric def all_subclasses(cls): return cls.__subclasses__() + [g for s in cls.__subclasses__() for g in all_subclasses(s)] if __name__ == '__main__': if(len(sys.argv) < 2): sys.stderr.write("example usage: python write_all_variables.py model\n") sys.exit() # setup model model = sys.argv[1] # import the model so that the subclasses of Variable are found mvModel = metric.getModel(model) for var in all_subclasses(V): print VS.getClassname(var)