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
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)
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