def apply(self, oid): session = getSession() ob = session.query(SQLSchema).filter( sqlalchemy.and_( SQLSchema.oid == oid, SQLSchema.name == self.name)).first() if ob is not None: return session.add(SQLSchema(oid, self.name)) session.flush()
def remove(self, oid): session = getSession() ob = session.query(SQLSchema).filter(SQLSchema.oid == oid).first() if ob is None: raise KeyError(oid) session.delete(ob) ob = session.query(self.Type).filter(self.Type.oid == oid).first() if ob is not None: session.delete(ob) hooks.cache.delDatasheet(oid, self.Type) session.flush()
def getDatasheet(self, oid, create=True): klass = self.Type ds = hooks.cache.getDatasheet(oid, klass) if ds is not None: return ds session = getSession() ds = session.query(klass).filter(klass.oid == oid).first() if ds is None: if create: ds = klass(oid) session.add(ds) session.flush() else: return None #ds = session.query(klass).filter(klass.oid == oid).first() hooks.cache.setDatasheet(oid, klass, ds) return ds
def query(self, *args): session = getSession() if args: return session.query(self.Type).filter(*args) else: return session.query(self.Type)
def getSchemaOIDs(self): for r in getSession().query(SQLSchema.oid).filter( SQLSchema.name == self.name): yield r[0]