.. _parametertable-py: ################# parametertable.py ################# :: >>> from simo.builder.modelbase.modelbase import ModelbaseDef >>> tdf = open('../../simulator/xml/schemas/Typedefs_SIMO.xsd') >>> typedef = tdf.read() >>> tdf.close() >>> sf = open('../../simulator/xml/schemas/parameter_table.xsd') >>> schema = sf.read() >>> sf.close() >>> xml = u''' ... ... ... ... MAIN_SP ... comp_unit ... ... ... ... ... ... upper_dgm ... comp_unit ... ... ... ... ... upper_age ... comp_unit ... ... ... ... ... 1 32 70 ... 9 21 50 ...
...
...
''' >>> mb = ModelbaseDef(typedef) >>> mb.schema = ('parameter_table', schema) >>> try: ... mb.xml = ('testxml', xml, None, '', 'parameter_table') ... except ValueError, e: ... e.message 'errors in xml to object conversion' >>> mb.errors # doctest: +NORMALIZE_WHITESPACE set(["No lexicon set when adding model for parameter table collection 'testxml'", "No lexicon set when validating variable for parameter table collection 'testxml'"]) >>> class Lexicon(object): ... def __init__(self): ... self.models = {} ... def get_variable_ind(self, level, var, active=False): ... return (1, 1) ... def get_level_ind(self, level): ... return 1 ... def add_model(self, mtype, mname): ... if mtype not in self.models: ... self.models[mtype] = set() ... self.models[mtype].add(mname) >>> mb.xml = ('testxml', xml, Lexicon(), '', 'parameter_table') >>> mb.errors set([]) >>> mb.ok {'testxml': True} >>> mb.xml['parameter_table']['testxml'][:17] u'