Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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
Example #4
0
 def __init__(self, dbConnectInst=None, databaseUrl=None):
     self.db = dbConnectInst or getDBConnector(
         getDatabaseConfiguration(databaseUrl))