class Database(Context): #,Describable): def __init__(self, schema, langs=None,name=None): #, **kw): self._supportedLangs = [] if langs is None: langs = 'en' for lang_id in langs.split(): self._supportedLangs.append( BabelLang(len(self._supportedLangs), lang_id) ) #Describable.__init__(self,**kw) self._memoParser = TimMemoParser(self) self.schema = schema self._stores = {} self._contexts=[] self._connections=[] self._startupContext=None if name is None: name=self.__class__.__name__ self.name=name def __str__(self): return self.name+"("+str(self.schema)+")" def getSession(self): return self._startupContext def addContext(self,s): self._contexts.append(s) #if len(self._contexts) == 1: # self.startup(s) def removeContext(self,s): self._contexts.remove(s) #if len(self._contexts) == 0: # self.close() def getBabelLangs(self): "implements Context.getBabelLangs()" return self._supportedLangs def getSupportedLangs(self): return " ".join([lng.id for lng in self._supportedLangs]) def getDefaultLanguage(self): return self._supportedLangs[0].id def findBabelLang(self,lang_id): for lang in self._supportedLangs: if lang.id == lang_id: return lang if not lang_id in self.schema._possibleLangs: raise InvalidRequestError( "%r : impossible language (must be one of %r)" % ( lang_id, self.schema._possibleLangs)) """ index -1 means that values in this language should be ignored """ #print self, ":", lang_id, \ # "not found in", self.getSupportedLangs() return BabelLang(-1,lang_id) #raise "%s : no such language code in %s" % (lang_id, repr(self)) def memo2html(self,renderer,txt): if txt is None: return '' txt = txt.strip() self._memoParser.parse(renderer,txt) #return self.memoParser.html def getStore(self,tcl): try: return self._stores[tcl] except KeyError,e: raise InvalidRequestError( "No Store for %s in (%s)" % (tcl,', '.join([str(tcl) for tcl in self._stores.keys()])))
class Database(Context): #,Describable): def __init__(self, schema, langs=None, name=None): #, **kw): self._supportedLangs = [] if langs is None: langs = 'en' for lang_id in langs.split(): self._supportedLangs.append( BabelLang(len(self._supportedLangs), lang_id)) #Describable.__init__(self,**kw) self._memoParser = TimMemoParser(self) self.schema = schema self._stores = {} self._contexts = [] self._connections = [] self._startupContext = None if name is None: name = self.__class__.__name__ self.name = name def __str__(self): return self.name + "(" + str(self.schema) + ")" def getSession(self): return self._startupContext def addContext(self, s): self._contexts.append(s) #if len(self._contexts) == 1: # self.startup(s) def removeContext(self, s): self._contexts.remove(s) #if len(self._contexts) == 0: # self.close() def getBabelLangs(self): "implements Context.getBabelLangs()" return self._supportedLangs def getSupportedLangs(self): return " ".join([lng.id for lng in self._supportedLangs]) def getDefaultLanguage(self): return self._supportedLangs[0].id def findBabelLang(self, lang_id): for lang in self._supportedLangs: if lang.id == lang_id: return lang if not lang_id in self.schema._possibleLangs: raise InvalidRequestError( "%r : impossible language (must be one of %r)" % (lang_id, self.schema._possibleLangs)) """ index -1 means that values in this language should be ignored """ #print self, ":", lang_id, \ # "not found in", self.getSupportedLangs() return BabelLang(-1, lang_id) #raise "%s : no such language code in %s" % (lang_id, repr(self)) def memo2html(self, renderer, txt): if txt is None: return '' txt = txt.strip() self._memoParser.parse(renderer, txt) #return self.memoParser.html def getStore(self, tcl): try: return self._stores[tcl] except KeyError, e: raise InvalidRequestError( "No Store for %s in (%s)" % (tcl, ', '.join([str(tcl) for tcl in self._stores.keys()])))