def __init__(self, conn): Element.__init__(self, 'profiles') self.conn = conn self.stmt = StatementCursor(self.conn) self.env = ProfileEnvironment(self.conn) self.profiletraits = ProfileTrait(self.conn) self._profiles = {} self._profile = Profile(self.conn) for row in self.stmt.select(table='profiles', order='profile'): self._append_profile(row.profile, row.suite)
class PaellaProfiles(Element): def __init__(self, conn): Element.__init__(self, 'profiles') self.conn = conn self.stmt = StatementCursor(self.conn) self.env = ProfileEnvironment(self.conn) self.profiletraits = ProfileTrait(self.conn) self._profiles = {} self._profile = Profile(self.conn) for row in self.stmt.select(table='profiles', order='profile'): self._append_profile(row.profile, row.suite) def _append_profile(self, profile, suite): element = self.export_profile(profile, suite) self._profiles[profile] = element self.appendChild(self._profiles[profile]) def export_profile(self, profile, suite=None): if suite is None: row = self.stmt.select_row(table='profiles',clause=Eq('profile', profile)) suite = row['suite'] suite = str(suite) profile = str(profile) self.env.set_profile(profile) element = ProfileElement(profile, suite) element.append_traits(self.profiletraits.trait_rows(profile)) element.append_families(self._profile.family_rows(profile)) element.append_variables(self.env.get_rows()) return element def insert_profile(self, profile): idata = {'profile' : profile.name, 'suite' : profile.suite} self.stmt.insert(table='profiles', data=idata) idata = {'profile' : profile.name, 'trait' : None, 'ord' : 0} for trait, ord in profile.traits: print trait, ord idata['trait'] = trait idata['ord'] = ord #str(ord) self.stmt.insert(table='profile_trait', data=idata) idata = {'profile' : profile.name, 'trait' : None, 'name' : None, 'value': None} idata = dict(profile=profile.name) for family in profile.families: idata['family'] = family self.stmt.insert(table='profile_family', data=idata) idata = dict(profile=profile.name) for trait, name, value in profile.vars: idata['trait'] = trait idata['name'] = name idata['value'] = value self.stmt.insert(table='profile_variables', data=idata) def export_profiles(self, path): rows = self.stmt.select(fields='profile', table='profiles', clause=None) for row in rows: self.write_profile(row.profile, path) def write_profile(self, profile, path): xmlfile = file(join(path, '%s.xml' % profile), 'w') data = self.export_profile(profile) data.writexml(xmlfile, indent='\t', newl='\n', addindent='\t') xmlfile.close()
class PaellaProfiles(Element): def __init__(self, conn): Element.__init__(self, 'profiles') self.conn = conn self.stmt = StatementCursor(self.conn) self.env = ProfileEnvironment(self.conn) self.profiletraits = ProfileTrait(self.conn) self._profiles = {} self._profile = Profile(self.conn) for row in self.stmt.select(table='profiles', order='profile'): self._append_profile(row.profile, row.suite) def _append_profile(self, profile, suite): element = self.export_profile(profile, suite) self._profiles[profile] = element self.appendChild(self._profiles[profile]) def export_profile(self, profile, suite=None): if suite is None: row = self.stmt.select_row(table='profiles', clause=Eq('profile', profile)) suite = row['suite'] suite = str(suite) profile = str(profile) self.env.set_profile(profile) element = ProfileElement(profile, suite) element.append_traits(self.profiletraits.trait_rows(profile)) element.append_families(self._profile.family_rows(profile)) element.append_variables(self.env.get_rows()) return element def insert_profile(self, profile): idata = {'profile': profile.name, 'suite': profile.suite} self.stmt.insert(table='profiles', data=idata) idata = {'profile': profile.name, 'trait': None, 'ord': 0} for trait, ord in profile.traits: print trait, ord idata['trait'] = trait idata['ord'] = ord #str(ord) self.stmt.insert(table='profile_trait', data=idata) idata = { 'profile': profile.name, 'trait': None, 'name': None, 'value': None } idata = dict(profile=profile.name) for family in profile.families: idata['family'] = family self.stmt.insert(table='profile_family', data=idata) idata = dict(profile=profile.name) for trait, name, value in profile.vars: idata['trait'] = trait idata['name'] = name idata['value'] = value self.stmt.insert(table='profile_variables', data=idata) def export_profiles(self, path): rows = self.stmt.select(fields='profile', table='profiles', clause=None) for row in rows: self.write_profile(row.profile, path) def write_profile(self, profile, path): xmlfile = file(join(path, '%s.xml' % profile), 'w') data = self.export_profile(profile) data.writexml(xmlfile, indent='\t', newl='\n', addindent='\t') xmlfile.close()