def __init__(self, gc): self.tdb = tdb_lite(gc) self.profile_categories = {} TZ = gc.display_tz def _table(metadata): return sa.Table( gc.db_app_name + '_hardcache', metadata, sa.Column('category', sa.String, nullable=False, primary_key=True), sa.Column('ids', sa.String, nullable=False, primary_key=True), sa.Column('value', sa.String, nullable=False), sa.Column('kind', sa.String, nullable=False), sa.Column('expiration', sa.DateTime(timezone=True), nullable=False)) enginenames_by_category = {} all_enginenames = set() for item in gc.hardcache_categories: chunks = item.split(":") if len(chunks) < 2: raise ValueError("Invalid hardcache_overrides") category = chunks.pop(0) enginenames_by_category[category] = [] for c in chunks: if c == '!profile': self.profile_categories[category] = True elif c.startswith("!"): raise ValueError("WTF is [%s] in hardcache_overrides?" % c) else: all_enginenames.add(c) enginenames_by_category[category].append(c) assert ('*' in enginenames_by_category.keys()) engines_by_enginename = {} for enginename in all_enginenames: engine = gc.dbm.get_engine(enginename) md = self.tdb.make_metadata(engine) table = _table(md) indstr = self.tdb.index_str(table, 'expiration', 'expiration') self.tdb.create_table(table, [indstr]) engines_by_enginename[enginename] = table self.mapping = {} for category, enginenames in enginenames_by_category.iteritems(): self.mapping[category] = [ engines_by_enginename[e] for e in enginenames ]
def __init__(self, gc): self.tdb = tdb_lite(gc) self.profile_categories = {} TZ = gc.display_tz def _table(metadata): return sa.Table(gc.db_app_name + '_hardcache', metadata, sa.Column('category', sa.String, nullable = False, primary_key = True), sa.Column('ids', sa.String, nullable = False, primary_key = True), sa.Column('value', sa.String, nullable = False), sa.Column('kind', sa.String, nullable = False), sa.Column('expiration', sa.DateTime(timezone = True), nullable = False) ) enginenames_by_category = {} all_enginenames = set() for item in gc.hardcache_categories: chunks = item.split(":") if len(chunks) < 2: raise ValueError("Invalid hardcache_overrides") category = chunks.pop(0) enginenames_by_category[category] = [] for c in chunks: if c == '!profile': self.profile_categories[category] = True elif c.startswith("!"): raise ValueError("WTF is [%s] in hardcache_overrides?" % c) else: all_enginenames.add(c) enginenames_by_category[category].append(c) assert('*' in enginenames_by_category.keys()) engines_by_enginename = {} for enginename in all_enginenames: engine = gc.dbm.get_engine(enginename) md = self.tdb.make_metadata(engine) table = _table(md) indstr = self.tdb.index_str(table, 'expiration', 'expiration') self.tdb.create_table(table, [ indstr ]) engines_by_enginename[enginename] = table self.mapping = {} for category, enginenames in enginenames_by_category.iteritems(): self.mapping[category] = [ engines_by_enginename[e] for e in enginenames]
def __init__(self, gc): self.tdb = tdb_lite(gc) metadata = self.tdb.make_metadata(gc.dbm.hardcache_db) self.table = sa.Table(gc.db_app_name + '_hardcache', metadata, sa.Column('category', sa.String, nullable = False, primary_key = True), sa.Column('ids', sa.String, nullable = False, primary_key = True), sa.Column('value', sa.String, nullable = False), sa.Column('kind', sa.String, nullable = False), sa.Column('expiration', sa.DateTime(timezone = True), nullable = False) ) indstr = self.tdb.index_str(self.table, 'expiration', 'expiration') self.tdb.create_table(self.table, [ indstr ])