def __init__(self, language, characterDomain=None, databaseUrl=None, dbConnectInst=None, ignoreIllegalSettings=False, **options): dbConnectInst = dbConnectInst or getDBConnector( getDatabaseConfiguration(databaseUrl)) locale = self.LANGUAGE_CHAR_LOCALE_MAPPING[language] CharacterLookup.__init__(self, locale, characterDomain or 'Unicode', dbConnectInst=dbConnectInst) self.language = language # choose a better character domain if non specified if (characterDomain and characterDomain not in self.LANGUAGE_CHAR_DOMAIN_MAPPING[ self.language]): if ignoreIllegalSettings: characterDomain = None else: raise ValueError( "Illegal character domain '%s' for language '%s'" % (characterDomain, self.language)) if not characterDomain: self.setCharacterDomain(self._getCharacterDomain()) if locale != 'T': self._characterLookupTraditional = CharacterLookup('T', dbConnectInst=self.db)
def loadDatabaseBuilder(self): if not self.renderThread.hasObject(build.DatabaseBuilder): options = EclectusCommandLineBuilder.getDefaultOptions() db = getDBConnector(getDatabaseConfiguration(self.databaseUrl)) self.renderThread.setObject(build.DatabaseBuilder, dbConnectInst=db, **options)
def __init__(self, dictionary=None, dbConnectInst=None, databaseUrl=None, strokeOrderType=None, showAlternativeHeadwords=True, **options): self.db = dbConnectInst or getDBConnector( util.getDatabaseConfiguration(databaseUrl)) self.showAlternativeHeadwords = showAlternativeHeadwords self.useExtraReadingInformation = options.get( 'useExtraReadingInformation', False) self.availableDictionaryNames = getAvailableDictionaryNames(self.db) # get ditionary if dictionary in self.availableDictionaryNames: self._dictionary = getDictionary(dictionary, dbConnectInst=self.db, ignoreIllegalSettings=True, **options) else: translationLanguage = getTranslationLanguage() self._dictionary = getDefaultDictionary(translationLanguage, dbConnectInst=self.db, ignoreIllegalSettings=True, **options) self.dictionary = self._dictionary.PROVIDES self.reading = self._dictionary.reading self.language = self._dictionary.language self.characterDomain = self._dictionary.charDB.characterDomain self.compatibleCharacterDomains \ = self._dictionary.charDB.getCompatibleCharacterDomains() # stroke order availableStrokeOrder = self.getAvailableStrokeOrderTypes() if strokeOrderType and strokeOrderType in availableStrokeOrder: self.strokeOrderType = strokeOrderType else: # don't show BIG_STROKE_ORDER_TYPE twice if self.BIG_STROKE_ORDER_TYPE in availableStrokeOrder: index = availableStrokeOrder.index(self.BIG_STROKE_ORDER_TYPE) del availableStrokeOrder[index] originalType = self.BIG_STROKE_ORDER_TYPE.replace('.segment', '') if originalType in availableStrokeOrder: index = availableStrokeOrder.index(originalType) del availableStrokeOrder[index] if availableStrokeOrder: self.strokeOrderType = availableStrokeOrder[0] else: self.strokeOrderType = None
def __init__(self, dbConnectInst=None, databaseUrl=None): self.db = dbConnectInst or getDBConnector( getDatabaseConfiguration(databaseUrl))