def removeSchema(self, sch): sch = getSchema(sch) if sch.name not in self.schemas: raise KeyError(sch.spec) self.schemas.remove(sch.name) if hasattr(self, '_v__providedBy'): del self._v__providedBy
def __init__(self, context, relation=None): self.__context__ = context self.__relation__ = relation if self.__behavior__.schema: if self.__wrapper__: from registry import getSchema self.__datasheet__ = getSchema( self.__behavior__.schema).getDatasheet(self.__context__.oid) else: self.__datasheet__ = self.__context__.getDatasheet( self.__behavior__.schema)
def applySchema(self, sch): if not self._completed: self._completion.append((2, (sch,))) return name = None if isinstance(sch, InterfaceClass): name = sch.queryTaggedValue('__sch_name__') if not name: raise SchemaNotFound(sch) else: name = getSchema(sch).name if name not in self.schemas: self.schemas.append(name) if hasattr(self, '_v__providedBy'): del self._v__providedBy
def getDatasheet(self, name): sch = getSchema(name) if sch.name in self.__type__.schemas: return sch(self) else: raise KeyError(name)