def get_config(self, site, name): curs = self._db.cursor() curs.execute( 'SELECT value FROM config_values WHERE site_name IS ? AND name = ?', (site, name)) results = curs.fetchall() if not results: raise ValueError('there is no config %r for %r' % (name, site)) return jloads(results[0][0])
def get_all_sites(self): curs = self._db.cursor() curs.execute( 'SELECT site_name, name, value FROM config_values WHERE site_name IS NOT NULL') sites = collections.defaultdict(self.defaults.copy) for site, k, v in curs: sites[site][k] = jloads(v) curs.execute( 'SELECT site_name, name, value FROM sites JOIN schemata USING (schema_id) WHERE site_name IS NOT NULL') for site, schema_name, schema in curs: sites[site]['schema-name'] = schema_name sites[site]['schema'] = json.loads(schema) for config in sites.values(): self.fill_out_config(config) return dict(sites)
def get_all_sites(self): curs = self._db.cursor() curs.execute( 'SELECT site_name, name, value FROM config_values WHERE site_name IS NOT NULL' ) sites = collections.defaultdict(self.defaults.copy) for site, k, v in curs: sites[site][k] = jloads(v) curs.execute( 'SELECT site_name, name, value FROM sites JOIN schemata USING (schema_id) WHERE site_name IS NOT NULL' ) for site, schema_name, schema in curs: sites[site]['schema-name'] = schema_name sites[site]['schema'] = json.loads(schema) for config in sites.values(): self.fill_out_config(config) return dict(sites)
def jsonmini_dict(pairs): return dict((k, jloads(v)) for k, v in pairs)
def maybe_load_json(val): try: return jloads(val) except ValueError: return val