コード例 #1
0
 def do_create_engine(
         self, engine_name: str) -> hunspell_table.TypingBoosterEngine:
     if DEBUG_LEVEL > 1:
         LOGGER.debug('EngineFactory.do_create_engine(engine_name=%s)\n',
                      engine_name)
     engine_base_path = "/com/redhat/IBus/engines/table/%s/engine/"
     engine_path = engine_base_path % re.sub(r'[^a-zA-Z0-9_/]', '_',
                                             engine_name)
     try:
         if engine_name in self.database_dict:
             self.database = self.database_dict[engine_name]
         else:
             self.database = tabsqlitedb.TabSqliteDb()
             self.database_dict[engine_name] = self.database
         if engine_name in self.enginedict:
             engine = self.enginedict[engine_name]
         else:
             engine = hunspell_table.TypingBoosterEngine(
                 self.bus, engine_path + str(self.engine_id), self.database)
             self.enginedict[engine_name] = engine
             self.engine_id += 1
         return engine
     except Exception as error:
         print(f'failed to create engine {engine_name}: '
               f'{error.__class__.__name__}: {error}')
         import traceback
         traceback.print_exc()
         raise Exception from error
コード例 #2
0
 def do_create_engine(self, engine_name):
     if DEBUG_LEVEL > 1:
         sys.stderr.write(
             "EngineFactory.do_create_engine(engine_name=%s)\n" %
             engine_name)
     engine_base_path = "/com/redhat/IBus/engines/table/%s/engine/"
     engine_path = engine_base_path % re.sub(r'[^a-zA-Z0-9_/]', '_',
                                             engine_name)
     try:
         if engine_name in self.dbdict:
             self.db = self.dbdict[engine_name]
         else:
             self.db = tabsqlitedb.TabSqliteDb()
             self.dbdict[engine_name] = self.db
         if engine_name in self.enginedict:
             engine = self.enginedict[engine_name]
         else:
             engine = hunspell_table.TypingBoosterEngine(
                 self.bus, engine_path + str(self.engine_id), self.db)
             self.enginedict[engine_name] = engine
             self.engine_id += 1
         return engine
     except:
         print("failed to create engine %s" % engine_name)
         import traceback
         traceback.print_exc()
         raise Exception("Cannot create engine %s" % engine_name)
コード例 #3
0
 def __create_engine_cb(self, factory, engine_name):
     if engine_name != 'testTyping-booster':
         return None
     if (not IMPORT_HUNSPELL_SUCCESSFUL
         or not IMPORT_TABSQLITEDB_SUCCESSFUL):
         with self.subTest(i='create-engine'):
             self.fail('NG: ibus-typing-booster not installed?')
         Gtk.main_quit()
         return None
     self.__id += 1
     object_path = '%s/%d' % (self.ENGINE_PATH, self.__id)
     database = tabsqlitedb.TabSqliteDb(user_db_file=':memory:')
     self.__engine = hunspell_table.TypingBoosterEngine(
         self.__bus,
         object_path,
         database)
     self.__engine.connect('focus-in', self.__engine_focus_in)
     self.__engine.connect('focus-out', self.__engine_focus_out)
     # Need to connect 'reset' after TypingBoosterEngine._clear_input()
     # is called.
     self.__engine.connect_after('reset', self.__engine_reset)
     self.__bus.get_connection().signal_subscribe(
         None,
         IBus.INTERFACE_ENGINE,
         'UpdateLookupTable',
         object_path,
         None,
         0,
         self.__bus_signal_cb,
         self.__bus)
     return self.__engine