Mock Version: 1.3.2 Mock Version: 1.3.2 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/ibus-typing-booster.spec'], logger=uid=1000timeout=172800gid=425chrootPath='/var/lib/mock/f25-build-7327589-685158/root'shell=Falseuser='mockbuild'env={'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'PS1': ' \\s-\\v\\$ ', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"'}printOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/ibus-typing-booster.spec'] with env {'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'PS1': ' \\s-\\v\\$ ', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"'} and shell False Building target platforms: noarch Building for target noarch Wrote: /builddir/build/SRPMS/ibus-typing-booster-1.5.17-1.fc25.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/ibus-typing-booster.spec'], private_network=Truelogger=uid=1000timeout=172800gid=425chrootPath='/var/lib/mock/f25-build-7327589-685158/root'shell=Falseuser='mockbuild'env={'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'PS1': ' \\s-\\v\\$ ', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"'}printOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/ibus-typing-booster.spec'] with env {'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'PS1': ' \\s-\\v\\$ ', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.2A8W6w + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ibus-typing-booster-1.5.17 + /usr/bin/gzip -dc /builddir/build/SOURCES/ibus-typing-booster-1.5.17.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ibus-typing-booster-1.5.17 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.eYSq2n + umask 022 + cd /builddir/build/BUILD + cd ibus-typing-booster-1.5.17 + export PYTHON=/usr/bin/python3 + PYTHON=/usr/bin/python3 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' + export CFLAGS + CXXFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' + export CXXFLAGS + FFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + export LDFLAGS + '[' 1 = 1 ']' +++ dirname ./configure ++ find . -name config.guess -o -name config.sub + for i in '$(find $(dirname ./configure) -name config.guess -o -name config.sub)' ++ basename ./config.guess + '[' -f /usr/lib/rpm/redhat/config.guess ']' + /usr/bin/rm -f ./config.guess ++ basename ./config.guess + /usr/bin/cp -fv /usr/lib/rpm/redhat/config.guess ./config.guess '/usr/lib/rpm/redhat/config.guess' -> './config.guess' + for i in '$(find $(dirname ./configure) -name config.guess -o -name config.sub)' ++ basename ./config.sub + '[' -f /usr/lib/rpm/redhat/config.sub ']' + /usr/bin/rm -f ./config.sub ++ basename ./config.sub + /usr/bin/cp -fv /usr/lib/rpm/redhat/config.sub ./config.sub '/usr/lib/rpm/redhat/config.sub' -> './config.sub' + '[' 1 = 1 ']' + '[' x '!=' x-specs=/usr/lib/rpm/redhat/redhat-hardened-ld ']' ++ find . -name ltmain.sh + ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-static --disable-additional configure: WARNING: unrecognized options: --disable-static checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking whether /usr/bin/python3 version is >= 3.3... yes checking for /usr/bin/python3 version... 3.5 checking for /usr/bin/python3 platform... linux checking for /usr/bin/python3 script directory... ${prefix}/lib/python3.5/site-packages checking for /usr/bin/python3 extension module directory... ${exec_prefix}/lib64/python3.5/site-packages checking for x86_64-redhat-linux-gnu-pkg-config... /usr/bin/x86_64-redhat-linux-gnu-pkg-config checking pkg-config is at least version 0.9.0... yes checking for IBUS... yes checking whether NLS is requested... yes checking for msgfmt... no checking for gmsgfmt... : checking for xgettext... no checking for msgmerge... no checking for style of include used by make... GNU checking for x86_64-redhat-linux-gnu-gcc... no checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... none checking build system type... x86_64-redhat-linux-gnu checking host system type... x86_64-redhat-linux-gnu checking for ld used by GCC... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for shared library run path origin... done checking for CFPreferencesCopyAppValue... no checking for CFLocaleCopyCurrent... no checking for GNU gettext in libc... yes checking whether to use NLS... yes checking where the gettext function comes from... libc checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating po/Makefile.in config.status: creating Makefile config.status: creating engine/Makefile config.status: creating engine/typing-booster.xml.in config.status: creating engine/ibus-engine-typing-booster config.status: creating setup/Makefile config.status: creating setup/ibus-setup-typing-booster config.status: creating setup/version.py config.status: creating tests/Makefile config.status: creating data/Makefile config.status: creating icons/Makefile config.status: creating icons/additional/Makefile config.status: creating hunspell-tables/Makefile config.status: creating m4/Makefile config.status: creating ibus-typing-booster.spec config.status: creating ibus-typing-booster.pc config.status: executing po-directories commands config.status: creating po/POTFILES config.status: creating po/Makefile config.status: executing depfiles commands configure: WARNING: unrecognized options: --disable-static Build options: Version 1.5.17 Install prefix /usr Build Additional no + make -j6 Making all in engine make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' ( \ libexecdir=/usr/libexec; \ pkgdatadir=/usr/share/ibus-typing-booster; \ s=`cat typing-booster.xml.in`; \ eval "echo \"${s}\""; \ ) > typing-booster.xml make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' Making all in icons make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' Making all in additional make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' Making all in m4 make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' Making all in hunspell-tables make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' Making all in data make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' Making all in po make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/po' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/po' Making all in setup make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' ( \ PKGDATADIR=/usr/share/ibus-typing-booster; \ LIBEXECDIR=/usr/libexec; \ s=`cat ibus-setup-typing-booster.desktop.in.in`; \ eval "echo \"${s}\""; \ ) > ibus-setup-typing-booster.desktop make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' Making all in tests make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17' make[1]: Nothing to be done for 'all-am'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17' + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.QGpmGi + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch ++ dirname /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch + cd ibus-typing-booster-1.5.17 + export PYTHON=/usr/bin/python3 + PYTHON=/usr/bin/python3 + make install DESTDIR=/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch NO_INDEX=true 'INSTALL=install -p' pkgconfigdir=/usr/share/pkgconfig Making install in engine make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/libexec' install -p ibus-engine-typing-booster '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/libexec' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus/component' install -p -m 644 typing-booster.xml '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus/component' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/engine' install -p -m 644 factory.py main.py hunspell_table.py hunspell_suggest.py tabsqlitedb.py itb_util.py itb_emoji.py itb_nltk.py m17n_translit.py '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/engine' Byte-compiling python modules... factory.pymain.pyhunspell_table.pyhunspell_suggest.pytabsqlitedb.pyitb_util.pyitb_emoji.pyitb_nltk.pym17n_translit.py Byte-compiling python modules (optimized versions) ... factory.pymain.pyhunspell_table.pyhunspell_suggest.pytabsqlitedb.pyitb_util.pyitb_emoji.pyitb_nltk.pym17n_translit.py make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' Making install in icons make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' Making install in additional make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[3]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[3]: Nothing to be done for 'install-exec-am'. make[3]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[3]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[3]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/icons' install -p -m 644 ar_TN.svg as_IN.svg be_BY.svg bg_BG.svg bn_IN.svg cs_CZ.svg da_DK.svg de_AT.svg de_CH.svg de_DE.svg el_GR.svg en_AG.svg en_AU.svg en_BS.svg en_BW.svg en_BZ.svg en_DK.svg en_GB.svg en_GH.svg en_HK.svg en_IE.svg en_IN.svg en_JM.svg en_NA.svg en_NG.svg en_NZ.svg en_PH.svg en_SG.svg en_TT.svg en_US.svg en_ZA.svg en_ZW.svg es_ES.svg fa_IR.svg fr_BE.svg fr_CA.svg fr_CH.svg fr_FR.svg fr_LU.svg fr_MC.svg '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/icons' install -p -m 644 gu_IN.svg he_IL.svg hi_IN.svg hu_HU.svg hy_AM.svg ibus-hunspell-table.svg is_IS.svg it_IT.svg ko_KR.svg km_KH.svg kn_IN.svg ku_TR.svg mai_IN.svg ml_IN.svg mr_IN.svg nb_NO.svg ne_IN.svg ne_NP.svg nl_NL.svg nn_NO.svg or_IN.svg pa_IN.svg pl_PL.svg pt_BR.svg pt_PT.svg ro_RO.svg ru_RU.svg si_LK.svg sv_SE.svg ta_IN.svg te_IN.svg th_TH.svg uk_UA.svg ur_PK.svg yi_US.svg ca_ES.svg '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/icons' make[3]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' Making install in m4 make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' Making install in hunspell-tables make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' make[2]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/hunspell-tables /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/hunspell-tables' install -p -m 644 en_US.conf en_HK.conf en_JM.conf en_AG.conf en_AU.conf en_BS.conf en_BW.conf en_BZ.conf en_DK.conf en_GH.conf en_IE.conf en_IN.conf en_NA.conf en_NG.conf en_NZ.conf en_PH.conf en_SG.conf en_TT.conf en_ZA.conf en_ZW.conf fr_CA.conf fr_BE.conf fr_CH.conf fr_FR.conf fr_LU.conf fr_MC.conf da_DK.conf hi_IN.conf gu_IN.conf ml_IN.conf bn_IN.conf kn_IN.conf pa_IN.conf as_IN.conf ta_IN.conf mr_IN.conf te_IN.conf ur_PK.conf fa_IR.conf or_IN.conf '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/hunspell-tables' install -p -m 644 mai_IN.conf ne_IN.conf ne_NP.conf en_GB.conf el_GR.conf ro_RO.conf ar_TN.conf de_AT.conf de_CH.conf de_DE.conf he_IL.conf yi_US.conf hy_AM.conf ko_KR.conf km_KH.conf th_TH.conf ku_TR.conf si_LK.conf be_BY.conf uk_UA.conf bg_BG.conf cs_CZ.conf es_ES.conf hu_HU.conf is_IS.conf it_IT.conf nb_NO.conf nl_NL.conf nn_NO.conf pl_PL.conf pt_BR.conf pt_PT.conf sv_SE.conf ru_RU.conf ca_ES.conf '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/hunspell-tables' make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' Making install in data make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' make[2]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/data' install -p -m 644 emojione.json UnicodeData.txt af.xml am.xml ar.xml as.xml az.xml be.xml bg.xml bn.xml bs.xml ca.xml cs.xml da.xml de.xml de_CH.xml el.xml en.xml en_001.xml en_GB.xml es.xml es_419.xml et.xml eu.xml fa.xml fi.xml fil.xml fr.xml ga.xml gl.xml gu.xml he.xml hi.xml hr.xml hu.xml hy.xml id.xml is.xml it.xml ja.xml '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/data' install -p -m 644 ka.xml kk.xml km.xml kn.xml ko.xml ky.xml lo.xml lt.xml lv.xml mk.xml ml.xml mn.xml mr.xml ms.xml my.xml nb.xml ne.xml nl.xml or.xml pa.xml pl.xml pt.xml pt_PT.xml ro.xml root.xml ru.xml si.xml sk.xml sl.xml sq.xml sr.xml sr_Latn.xml sv.xml sw.xml ta.xml te.xml th.xml tr.xml uk.xml ur.xml '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/data' install -p -m 644 uz.xml vi.xml zh.xml zh_Hant.xml zu.xml '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/data' make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' Making install in po make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/po' /usr/bin/mkdir -p /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share installing ca.gmo as /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/locale/ca/LC_MESSAGES/ibus-typing-booster.mo installing de.gmo as /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/locale/de/LC_MESSAGES/ibus-typing-booster.mo installing fr.gmo as /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/locale/fr/LC_MESSAGES/ibus-typing-booster.mo installing pl.gmo as /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/locale/pl/LC_MESSAGES/ibus-typing-booster.mo installing pt_BR.gmo as /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/locale/pt_BR/LC_MESSAGES/ibus-typing-booster.mo installing uk.gmo as /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/locale/uk/LC_MESSAGES/ibus-typing-booster.mo if test "ibus-typing-booster" = "gettext-tools"; then \ /usr/bin/mkdir -p /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/gettext/po; \ for file in Makefile.in.in remove-potcdate.sin quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot Makevars.template; do \ install -p -m 644 ./$file \ /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/gettext/po/$file; \ done; \ for file in Makevars; do \ rm -f /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/gettext/po/$file; \ done; \ else \ : ; \ fi make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/po' Making install in setup make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/libexec' install -p ibus-setup-typing-booster '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/libexec' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/applications' install -p -m 644 ibus-setup-typing-booster.desktop '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/applications' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/setup' install -p -m 644 i18n.py main.py version.py pkginstall.py setup.glade '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/ibus-typing-booster/setup' Byte-compiling python modules... i18n.pymain.pyversion.pypkginstall.py Byte-compiling python modules (optimized versions) ... i18n.pymain.pyversion.pypkginstall.py make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' Making install in tests make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17' make[2]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/appdata' install -p -m 644 typing-booster.appdata.xml '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/appdata' /usr/bin/mkdir -p '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/pkgconfig' install -p -m 644 ibus-typing-booster.pc '/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/pkgconfig' make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17' + gzip --force --best /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/af.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/am.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ar.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/as.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/az.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/be.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/bg.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/bn.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/bs.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ca.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/cs.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/da.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/de.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/de_CH.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/el.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/en.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/en_001.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/en_GB.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/es.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/es_419.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/et.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/eu.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/fa.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/fi.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/fil.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/fr.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ga.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/gl.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/gu.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/he.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/hi.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/hr.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/hu.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/hy.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/id.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/is.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/it.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ja.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ka.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/kk.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/km.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/kn.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ko.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ky.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/lo.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/lt.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/lv.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/mk.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ml.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/mn.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/mr.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ms.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/my.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/nb.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ne.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/nl.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/or.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/pa.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/pl.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/pt.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/pt_PT.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ro.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/root.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ru.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/si.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sk.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sl.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sq.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sr.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sr_Latn.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sv.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/sw.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ta.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/te.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/th.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/tr.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/uk.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/ur.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/uz.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/vi.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/zh.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/zh_Hant.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/zu.xml /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/UnicodeData.txt /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch//usr/share/ibus-typing-booster/data/emojione.json + /usr/lib/rpm/find-lang.sh /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch ibus-typing-booster + /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 /builddir/build/BUILD/ibus-typing-booster-1.5.17 + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.H1CFVl + umask 022 + cd /builddir/build/BUILD + cd ibus-typing-booster-1.5.17 + export LC_ALL=en_US.UTF-8 + LC_ALL=en_US.UTF-8 + desktop-file-validate /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/applications/ibus-setup-typing-booster.desktop + pushd engine ~/build/BUILD/ibus-typing-booster-1.5.17/engine ~/build/BUILD/ibus-typing-booster-1.5.17 + python3 hunspell_suggest.py get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. get_hunspell_dictionary_wordlist(): /usr/share/myspell/cs_CZ.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-2 found in /usr/share/myspell/cs_CZ.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/cs_CZ.dic using ISO8859-2 encoding. get_hunspell_dictionary_wordlist(): /usr/share/myspell/it_IT.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-15 found in /usr/share/myspell/it_IT.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/it_IT.dic using ISO8859-15 encoding. get_hunspell_dictionary_wordlist(): /usr/share/myspell/es_ES.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/es_ES.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/es_ES.dic using ISO8859-1 encoding. 8572884 function calls (8572463 primitive calls) in 6.623 seconds Ordered by: cumulative time List reduced from 573 to 11 due to restriction <'hunspell'> ncalls tottime percall cumtime percall filename:lineno(function) 3 0.000 0.000 5.110 1.703 hunspell_suggest.py:106(__init__) 3 0.000 0.000 5.110 1.703 hunspell_suggest.py:121(init_dictionaries) 4 0.000 0.000 5.110 1.277 hunspell_suggest.py:59(__init__) 4 0.012 0.003 5.110 1.277 hunspell_suggest.py:71(load_dictionary) 4 0.132 0.033 3.350 0.837 hunspell_suggest.py:94() 4 0.001 0.000 1.527 0.382 itb_util.py:345(get_hunspell_dictionary_wordlist) 4 0.000 0.000 1.319 0.330 hunspell_suggest.py:150(suggest) 6 0.139 0.023 0.370 0.062 hunspell_suggest.py:225() 6 0.000 0.000 0.000 0.000 hunspell_suggest.py:257() 6 0.000 0.000 0.000 0.000 hunspell_suggest.py:263() 19 0.000 0.000 0.000 0.000 hunspell_suggest.py:320() 8572884 function calls (8572463 primitive calls) in 6.623 seconds Ordered by: cumulative time List reduced from 573 to 4 due to restriction <'enchant'> ncalls tottime percall cumtime percall filename:lineno(function) 6 0.945 0.158 0.945 0.158 _enchant.py:258(dict_suggest) 6 0.001 0.000 0.001 0.000 _enchant.py:252(dict_check) 4 0.000 0.000 0.001 0.000 _enchant.py:335(dict_describe) 4 0.000 0.000 0.000 0.000 _enchant.py:336(cbfunc1) + python3 m17n_translit.py + python3 itb_emoji.py 66056479 function calls (66055989 primitive calls) in 63.291 seconds Ordered by: cumulative time List reduced from 699 to 23 due to restriction <'itb_emoji'> ncalls tottime percall cumtime percall filename:lineno(function) 84 4.456 0.053 55.043 0.655 itb_emoji.py:620(candidates) 3897045 15.559 0.000 47.634 0.000 itb_emoji.py:505(_match) 20 0.018 0.001 6.332 0.317 itb_emoji.py:221(__init__) 20 1.350 0.067 2.863 0.143 itb_emoji.py:315(_load_unicode_data) 3897045 1.784 0.000 2.743 0.000 itb_emoji.py:455(_set_seq1) 81 0.003 0.000 2.572 0.032 itb_emoji.py:466(_set_seq2) 211 0.623 0.003 1.930 0.009 itb_emoji.py:411(_load_cldr_annotation_data) 20 0.299 0.015 0.888 0.044 itb_emoji.py:341(_load_emojione_data) 11 0.478 0.043 0.723 0.066 itb_emoji.py:1061(similar) 706039 0.688 0.000 0.688 0.000 itb_emoji.py:302(_add_to_emoji_dict) 131196 0.136 0.000 0.197 0.000 itb_emoji.py:451() 5391 0.018 0.000 0.111 0.000 itb_emoji.py:994(name) 5423 0.071 0.000 0.094 0.000 itb_emoji.py:159(_expand_languages) 56733 0.063 0.000 0.087 0.000 itb_emoji.py:1151() 62167 0.050 0.000 0.056 0.000 itb_emoji.py:985() 36400 0.041 0.000 0.051 0.000 itb_emoji.py:365() 36400 0.013 0.000 0.019 0.000 itb_emoji.py:382() 251 0.002 0.000 0.010 0.000 itb_emoji.py:187(_find_path_and_open_function) 55 0.000 0.000 0.000 0.000 itb_emoji.py:491() 174 0.000 0.000 0.000 0.000 itb_emoji.py:496() 5 0.000 0.000 0.000 0.000 itb_emoji.py:124(_in_range) 5 0.000 0.000 0.000 0.000 itb_emoji.py:151() 1 0.000 0.000 0.000 0.000 itb_emoji.py:276(get_languages) 66056479 function calls (66055989 primitive calls) in 63.291 seconds Ordered by: cumulative time List reduced from 699 to 5 due to restriction <'difflib'> ncalls tottime percall cumtime percall filename:lineno(function) 20 0.000 0.000 0.000 0.000 difflib.py:151(__init__) 20 0.000 0.000 0.000 0.000 difflib.py:215(set_seqs) 20 0.000 0.000 0.000 0.000 difflib.py:253(set_seq2) 20 0.000 0.000 0.000 0.000 difflib.py:297(__chain_b) 20 0.000 0.000 0.000 0.000 difflib.py:227(set_seq1) 66056479 function calls (66055989 primitive calls) in 63.291 seconds Ordered by: cumulative time List reduced from 699 to 4 due to restriction <'enchant'> ncalls tottime percall cumtime percall filename:lineno(function) 55 2.526 0.046 2.526 0.046 _enchant.py:258(dict_suggest) 697 0.025 0.000 0.025 0.000 _enchant.py:252(dict_check) 70 0.001 0.000 0.002 0.000 _enchant.py:335(dict_describe) 70 0.000 0.000 0.001 0.000 _enchant.py:336(cbfunc1) + python3 itb_util.py + popd ~/build/BUILD/ibus-typing-booster-1.5.17 ++ dbus-launch --sh-syntax + eval 'DBUS_SESSION_BUS_ADDRESS='\''unix:abstract=/tmp/dbus-iwmtbz2vkB,guid=a29fe8acb37eb1d1b8e713d85878fc30'\'';' export 'DBUS_SESSION_BUS_ADDRESS;' 'DBUS_SESSION_BUS_PID=13568;' ++ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iwmtbz2vkB,guid=a29fe8acb37eb1d1b8e713d85878fc30 ++ export DBUS_SESSION_BUS_ADDRESS ++ DBUS_SESSION_BUS_PID=13568 + dconf dump / + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/offtherecord false + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/usedigitsasselectkeys true + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/tabenable false + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/inputmethod ''\''NoIme'\''' + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/adddirectinput false + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/rememberlastusedpreeditime true + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/mincharcomplete 1 + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/dictionary ''\''en_US'\''' + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/emojipredictions true + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/autocommitcharacters ''\'''\''' + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/pagesize 6 + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/shownumberofcandidates true + dconf write /desktop/ibus/engine/typing-booster/typing-booster-de-de/showstatusinfoinaux true + dconf dump / [desktop/ibus/engine/typing-booster/typing-booster-de-de] tabenable=false offtherecord=false usedigitsasselectkeys=true inputmethod='NoIme' pagesize=6 adddirectinput=false rememberlastusedpreeditime=true mincharcomplete=1 dictionary='en_US' showstatusinfoinaux=true emojipredictions=true autocommitcharacters='' shownumberofcandidates=true + ibus-daemon -drx + make check Making check in engine make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/engine' Making check in icons make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' Making check in additional make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons/additional' make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/icons' Making check in m4 make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/m4' Making check in hunspell-tables make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/hunspell-tables' Making check in data make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/data' Making check in po make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/po' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/po' Making check in setup make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/setup' Making check in tests make[1]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make check-TESTS make[2]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[3]: Entering directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' sed -e 's&@PYTHON_BIN@&/usr/bin/python3&g' \ -e 's&@SRCDIR@&.&g' run_tests.in > run_tests chmod +x run_tests FAIL: run_tests ============================================================================ Testsuite summary for ibus-typing-booster 1.5.17 ============================================================================ # TOTAL: 1 # PASS: 0 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See tests/test-suite.log Please report to https://github.com/mike-fabian/ibus-typing-booster/issues ============================================================================ Makefile:541: recipe for target 'test-suite.log' failed make[3]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[3]: *** [test-suite.log] Error 1 Makefile:647: recipe for target 'check-TESTS' failed make[2]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[2]: *** [check-TESTS] Error 2 Makefile:720: recipe for target 'check-am' failed make[1]: Leaving directory '/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests' make[1]: *** [check-am] Error 2 Makefile:522: recipe for target 'check-recursive' failed make: *** [check-recursive] Error 1 + cat ./tests/test-suite.log ====================================================== ibus-typing-booster 1.5.17: tests/test-suite.log ====================================================== # TOTAL: 1 # PASS: 0 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: run_tests =============== test_accent_insensitive_matching_french_dictionary (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:11:29 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) instantiating Transliterator(t-latn-post) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} Hunspell.init_dictionaries() dictionary_names=['fr_FR'] Dictionary.__init__(name=fr_FR) load_dictionary() ... get_hunspell_dictionary_wordlist(): No file fr_FR.dic found in ['/usr/share/hunspell', '/usr/share/myspell', '/usr/share/myspell/dicts'] process_key_event() KeyEvent object: val=100 code=0 state=0x00000000 name='d' unicode='d' msymbol='d' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=100 code=0 state=0x00000000 name='d' unicode='d' msymbol='d' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['d'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['d'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'd', 't-latn-post': 'd'} _update_candidates() self._typed_string=['d'] tabsqlitedb.select_words() input_phrase=b'd' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'd' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'd' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'd' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=105 code=0 state=0x00000000 name='i' unicode='i' msymbol='i' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['i'] _insert_string_at_cursor() self._typed_string=['d'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['d', 'i'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'di', 't-latn-post': 'di'} _update_candidates() self._typed_string=['d', 'i'] tabsqlitedb.select_words() input_phrase=b'di' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'di' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'di' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'di' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=102 code=0 state=0x00000000 name='f' unicode='f' msymbol='f' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['f'] _insert_string_at_cursor() self._typed_string=['d', 'i'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['d', 'i', 'f'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'dif', 't-latn-post': 'dif'} _update_candidates() self._typed_string=['d', 'i', 'f'] tabsqlitedb.select_words() input_phrase=b'dif' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'dif' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'dif' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'dif' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=102 code=0 state=0x00000000 name='f' unicode='f' msymbol='f' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['f'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'diff', 't-latn-post': 'diff'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f'] tabsqlitedb.select_words() input_phrase=b'diff' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'diff' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'diff' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'diff' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'diffe', 't-latn-post': 'diffe'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e'] tabsqlitedb.select_words() input_phrase=b'diffe' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'diffe' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'diffe' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'diffe' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f', 'e'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'differ', 't-latn-post': 'differ'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r'] tabsqlitedb.select_words() input_phrase=b'differ' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differ' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'differ' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differ' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'differe', 't-latn-post': 'differe'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e'] tabsqlitedb.select_words() input_phrase=b'differe' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differe' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'differe' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differe' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'differem', 't-latn-post': 'differem'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm'] tabsqlitedb.select_words() input_phrase=b'differem' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differem' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'differem' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differem' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'differemm', 't-latn-post': 'differemm'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm'] tabsqlitedb.select_words() input_phrase=b'differemm' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differemm' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'differemm' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differemm' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'differemme', 't-latn-post': 'differemme'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm', 'e'] tabsqlitedb.select_words() input_phrase=b'differemme' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differemme' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'differemme' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differemme' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm', 'e'] _insert_string_at_cursor() self._typed_string_cursor=10 _update_transliterated_strings() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm', 'e', 'n'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'differemmen', 't-latn-post': 'differemmen'} _update_candidates() self._typed_string=['d', 'i', 'f', 'f', 'e', 'r', 'e', 'm', 'm', 'e', 'n'] tabsqlitedb.select_words() input_phrase=b'differemmen' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differemmen' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'differemmen' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'differemmen' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. ERROR test_accent_insensitive_matching_german_database (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:11:33 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(t-latn-post) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. process_key_event() KeyEvent object: val=71 code=0 state=0x00000000 name='G' unicode='G' msymbol='G' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=71 code=0 state=0x00000000 name='G' unicode='G' msymbol='G' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['G'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['G'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'G', 't-latn-post': 'G'} _update_candidates() self._typed_string=['G'] tabsqlitedb.select_words() input_phrase=b'G' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'G' tabsqlitedb.select_words() hunspell: best_candidates=[('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0), ('GBit', 0)] tabsqlitedb.select_words() input_phrase=b'G' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0), ('GBit', 0)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['G'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['G', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gl', 't-latn-post': 'Gl'} _update_candidates() self._typed_string=['G', 'l'] tabsqlitedb.select_words() input_phrase=b'Gl' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Gl' tabsqlitedb.select_words() hunspell: best_candidates=[('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0), ('Glykol', 0)] tabsqlitedb.select_words() input_phrase=b'Gl' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0), ('Glykol', 0)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['G', 'l'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['G', 'l', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu', 't-latn-post': 'Glu'} _update_candidates() self._typed_string=['G', 'l', 'u'] tabsqlitedb.select_words() input_phrase=b'Glu' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() input_phrase=b'Glu' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] process_key_event() KeyEvent object: val=34 code=0 state=0x00000000 name='quotedbl' unicode='"' msymbol='"' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['"'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"', 't-latn-post': 'Glü'} _update_candidates() self._typed_string=['G', 'l', 'u', '"'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"h', 't-latn-post': 'Glüh'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88h' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88h' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', 0), ('Glüh-', -1), ('Glühe', -1), ('Glüht', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"h' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"h' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] process_key_event() KeyEvent object: val=119 code=0 state=0x00000000 name='w' unicode='w' msymbol='w' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['w'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hw', 't-latn-post': 'Glühw'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hw' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hw' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1), ('Glüh-', -1), ('Glühe', -1), ('Glüht', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hw' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hw' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu', 't-latn-post': 'Glühwu'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1), ('Glühau', -1), ('Glühwut', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu' tabsqlitedb.select_words() hunspell: best_candidates=[('Glutäugig', -1)] process_key_event() KeyEvent object: val=34 code=0 state=0x00000000 name='quotedbl' unicode='"' msymbol='"' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['"'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"', 't-latn-post': 'Glühwü'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"' tabsqlitedb.select_words() hunspell: best_candidates=[('Glutäugig', -1)] process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"r', 't-latn-post': 'Glühwür'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88r' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88r' tabsqlitedb.select_words() hunspell: best_candidates=[('Geschwür', -1), ('Glühkür', -1), ('Glühtür', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"r' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"r' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rm', 't-latn-post': 'Glühwürm'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rm' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rm' tabsqlitedb.select_words() hunspell: best_candidates=[('Glühwurm', 0), ('Geschwür', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rm' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"rm' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm'] _insert_string_at_cursor() self._typed_string_cursor=10 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmc', 't-latn-post': 'Glühwürmc'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmc' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmc' tabsqlitedb.select_words() hunspell: best_candidates=[('Würmchen', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmc' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"rmc' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c'] _insert_string_at_cursor() self._typed_string_cursor=11 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmch', 't-latn-post': 'Glühwürmch'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmch' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmch' tabsqlitedb.select_words() hunspell: best_candidates=[('Würmchen', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmch' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"rmch' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h'] _insert_string_at_cursor() self._typed_string_cursor=12 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmche', 't-latn-post': 'Glühwürmche'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmche' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmche' tabsqlitedb.select_words() hunspell: best_candidates=[('Würmchen', -1), ('Glühwürmchen', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmche' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"rmche' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e'] _insert_string_at_cursor() self._typed_string_cursor=13 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e', 'n'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmchen', 't-latn-post': 'Glühwürmchen'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e', 'n'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glühwürmchen', 0), ('Würmchen', -1), ('Glühtürmchen', -1), ('-glühwürmchen', -1), ('Glühwürmchens', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmchen' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Glu"hwu"rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=65470 code=0 state=0x00000000 name='F1' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen', input_phrase=b'Gluhwurmchen' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'Glühwürmchen', 'input_phrase': 'Gluhwurmchen', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'Gluhwurmchen' phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323904.8221328, 'phrase': 'Glühwürmchen', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'Gluhwurmchen', 'p_phrase': ''} process_key_event() KeyEvent object: val=71 code=0 state=0x00000000 name='G' unicode='G' msymbol='G' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=71 code=0 state=0x00000000 name='G' unicode='G' msymbol='G' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['G'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['G'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'G', 't-latn-post': 'G'} _update_candidates() self._typed_string=['G'] tabsqlitedb.select_words() input_phrase=b'G' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0), ('GBit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0)] tabsqlitedb.select_words() input_phrase=b'G' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0), ('GBit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['G'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['G', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gl', 't-latn-post': 'Gl'} _update_candidates() self._typed_string=['G', 'l'] tabsqlitedb.select_words() input_phrase=b'Gl' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0), ('Glykol', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0)] tabsqlitedb.select_words() input_phrase=b'Gl' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0), ('Glykol', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['G', 'l'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['G', 'l', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu', 't-latn-post': 'Glu'} _update_candidates() self._typed_string=['G', 'l', 'u'] tabsqlitedb.select_words() input_phrase=b'Glu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() input_phrase=b'Glu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] process_key_event() KeyEvent object: val=34 code=0 state=0x00000000 name='quotedbl' unicode='"' msymbol='"' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['"'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"', 't-latn-post': 'Glü'} _update_candidates() self._typed_string=['G', 'l', 'u', '"'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"h', 't-latn-post': 'Glüh'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88h' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', 0), ('Glüh-', -1), ('Glühe', -1), ('Glüht', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', 0), ('Glüh-', -1), ('Glühe', -1), ('Glüht', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"h' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] process_key_event() KeyEvent object: val=119 code=0 state=0x00000000 name='w' unicode='w' msymbol='w' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['w'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hw', 't-latn-post': 'Glühw'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hw' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1), ('Glüh-', -1), ('Glühe', -1), ('Glüht', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', -1), ('Glüh-', -1), ('Glühe', -1), ('Glüht', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hw' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu', 't-latn-post': 'Glühwu'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1), ('Glühau', -1), ('Glühwut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', -1), ('Glühau', -1), ('Glühwut', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glutäugig', -1)] process_key_event() KeyEvent object: val=34 code=0 state=0x00000000 name='quotedbl' unicode='"' msymbol='"' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['"'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"', 't-latn-post': 'Glühwü'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glutäugig', -1)] process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"r', 't-latn-post': 'Glühwür'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88r' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Geschwür', -1), ('Glühkür', -1), ('Glühtür', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Geschwür', -1), ('Glühkür', -1), ('Glühtür', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"r' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rm', 't-latn-post': 'Glühwürm'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rm' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glühwurm', 0), ('Geschwür', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glühwurm', 0), ('Geschwür', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rm' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm'] _insert_string_at_cursor() self._typed_string_cursor=10 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmc', 't-latn-post': 'Glühwürmc'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmc' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Würmchen', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Würmchen', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmc' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c'] _insert_string_at_cursor() self._typed_string_cursor=11 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmch', 't-latn-post': 'Glühwürmch'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmch' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Würmchen', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Würmchen', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmch' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h'] _insert_string_at_cursor() self._typed_string_cursor=12 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmche', 't-latn-post': 'Glühwürmche'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmche' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Würmchen', -1), ('Glühwürmchen', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Würmchen', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmche' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e'] _insert_string_at_cursor() self._typed_string_cursor=13 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e', 'n'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu"hwu"rmchen', 't-latn-post': 'Glühwürmchen'} _update_candidates() self._typed_string=['G', 'l', 'u', '"', 'h', 'w', 'u', '"', 'r', 'm', 'c', 'h', 'e', 'n'] tabsqlitedb.select_words() input_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Glühwürmchen', 0), ('Würmchen', -1), ('Glühtürmchen', -1), ('-glühwürmchen', -1), ('Glühwürmchens', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Würmchen', -1), ('Glühtürmchen', -1), ('-glühwürmchen', -1), ('Glühwürmchens', -1)] tabsqlitedb.select_words() input_phrase=b'Glu"hwu"rmchen' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=65470 code=0 state=0x00000000 name='F1' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen', input_phrase=b'Gluhwurmchen' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'Glühwürmchen', 'input_phrase': 'Gluhwurmchen', 'p_phrase': 'Glühwürmchen'} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'Gluhwurmchen' phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323904.8549113, 'phrase': 'Glühwürmchen', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'Gluhwurmchen', 'p_phrase': 'Glühwürmchen'} process_key_event() KeyEvent object: val=71 code=0 state=0x00000000 name='G' unicode='G' msymbol='G' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=71 code=0 state=0x00000000 name='G' unicode='G' msymbol='G' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['G'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['G'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'G', 't-latn-post': 'G'} _update_candidates() self._typed_string=['G'] tabsqlitedb.select_words() input_phrase=b'G' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0), ('GBit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0)] tabsqlitedb.select_words() input_phrase=b'G' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0), ('GBit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('GB', 0), ('GI', 0), ('GAU', 0), ('GEW', 0), ('GEZ', 0), ('GHz', 0), ('GMT', 0), ('GPL', 0), ('GPS', 0), ('GUS', 0), ('Gag', 0), ('Gas', 0), ('GbR', 0), ('Gel', 0), ('Gen', 0), ('Gnu', 0), ('Gst', 0), ('Gut', 0), ('GATT', 0)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['G'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['G', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gl', 't-latn-post': 'Gl'} _update_candidates() self._typed_string=['G', 'l'] tabsqlitedb.select_words() input_phrase=b'Gl' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0), ('Glykol', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0)] tabsqlitedb.select_words() input_phrase=b'Gl' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0), ('Glykol', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glas', 0), ('Glut', 0), ('Glanz', 0), ('Gleis', 0), ('Gleit', 0), ('Glied', 0), ('Glimm', 0), ('Glüh', 0), ('Glaser', 0), ('Glasur', 0), ('Glatze', 0), ('Glaube', 0), ('Gleich', 0), ('Global', 0), ('Globus', 0), ('Glocke', 0), ('Gloria', 0), ('Glosse', 0), ('Glück', 0)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['G', 'l'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['G', 'l', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Glu', 't-latn-post': 'Glu'} _update_candidates() self._typed_string=['G', 'l', 'u'] tabsqlitedb.select_words() input_phrase=b'Glu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() input_phrase=b'Glu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', 0), ('Glüh', 0), ('Glück', 0), ('Glücks', 0), ('Glutamat', 0), ('Gluthitze', 0), ('Glückauf', 0), ('Glücksache', 0), ('Glückwunsch', 0), ('Glückswunsch', 0), ('Glutaminsäure', 0), ('Glücklichsein', 0), ('Glückwünsche', 0), ('Glückseligkeit', 0)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluh', 't-latn-post': 'Gluh'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h'] tabsqlitedb.select_words() input_phrase=b'Gluh' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluh' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', 0), ('Glut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', 0), ('Glut', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', 0), ('Glut', -1)] tabsqlitedb.select_words() input_phrase=b'Gluh' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glüh', 0), ('Glut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', 0), ('Glut', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glüh', 0), ('Glut', -1)] process_key_event() KeyEvent object: val=119 code=0 state=0x00000000 name='w' unicode='w' msymbol='w' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['w'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhw', 't-latn-post': 'Gluhw'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w'] tabsqlitedb.select_words() input_phrase=b'Gluhw' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhw' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhw' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwu', 't-latn-post': 'Gluhwu'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u'] tabsqlitedb.select_words() input_phrase=b'Gluhwu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwu' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwu' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glut', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glut', -1)] process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwur', 't-latn-post': 'Gluhwur'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r'] tabsqlitedb.select_words() input_phrase=b'Gluhwur' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwur' tabsqlitedb.select_words() hunspell: best_candidates=[('Schwur', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Schwur', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Schwur', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwur' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Schwur', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Schwur', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Schwur', -1)] process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwurm', 't-latn-post': 'Gluhwurm'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm'] tabsqlitedb.select_words() input_phrase=b'Gluhwurm' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwurm' tabsqlitedb.select_words() hunspell: best_candidates=[('Glühwurm', 0), ('Gewurmt', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glühwurm', 0), ('Gewurmt', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glühwurm', 0), ('Gewurmt', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwurm' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Glühwurm', 0), ('Gewurmt', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Glühwurm', 0), ('Gewurmt', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Glühwurm', 0), ('Gewurmt', -1)] process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwurmc', 't-latn-post': 'Gluhwurmc'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c'] tabsqlitedb.select_words() input_phrase=b'Gluhwurmc' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwurmc' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichig', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwurmc' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichig', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwurmch', 't-latn-post': 'Gluhwurmch'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h'] tabsqlitedb.select_words() input_phrase=b'Gluhwurmch' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwurmch' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichig', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwurmch' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichig', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichig', -1)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h'] _insert_string_at_cursor() self._typed_string_cursor=10 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwurmche', 't-latn-post': 'Gluhwurmche'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h', 'e'] tabsqlitedb.select_words() input_phrase=b'Gluhwurmche' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwurmche' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichige', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichige', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichige', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwurmche' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichige', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichige', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichige', -1)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h', 'e'] _insert_string_at_cursor() self._typed_string_cursor=11 _update_transliterated_strings() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h', 'e', 'n'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Gluhwurmchen', 't-latn-post': 'Gluhwurmchen'} _update_candidates() self._typed_string=['G', 'l', 'u', 'h', 'w', 'u', 'r', 'm', 'c', 'h', 'e', 'n'] tabsqlitedb.select_words() input_phrase=b'Gluhwurmchen' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' Hunspell.suggest() input_phrase=b'Gluhwurmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichigen', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichigen', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichigen', -1)] tabsqlitedb.select_words() input_phrase=b'Gluhwurmchen' p_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' pp_phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' tabsqlitedb.select_words() hunspell: best_candidates=[('Wurmstichigen', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichigen', -1)] tabsqlitedb.select_words() Bigram best_candidates=[('Glühwürmchen', 1.0), ('Wurmstichigen', -1)] process_key_event() KeyEvent object: val=65470 code=0 state=0x00000000 name='F1' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen', input_phrase=b'Gluhwurmchen' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': 'Glühwürmchen', 'phrase': 'Glühwürmchen', 'input_phrase': 'Gluhwurmchen', 'p_phrase': 'Glühwürmchen'} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'Gluhwurmchen' phrase=b'Glu\xcc\x88hwu\xcc\x88rmchen' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323909.0089521, 'phrase': 'Glühwürmchen', 'user_freq': 1, 'pp_phrase': 'Glühwürmchen', 'input_phrase': 'Gluhwurmchen', 'p_phrase': 'Glühwürmchen'} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. ok test_accent_insensitive_matching_german_dictionary (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:11:51 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) instantiating Transliterator(t-latn-post) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. process_key_event() KeyEvent object: val=65 code=0 state=0x00000000 name='A' unicode='A' msymbol='A' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=65 code=0 state=0x00000000 name='A' unicode='A' msymbol='A' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['A'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['A'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'A', 't-latn-post': 'A'} _update_candidates() self._typed_string=['A'] tabsqlitedb.select_words() input_phrase=b'A' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'A' tabsqlitedb.select_words() hunspell: best_candidates=[('AG', 0), ('AI', 0), ('AT', 0), ('Ar', 0), ('Au', 0), ('ABC', 0), ('ABM', 0), ('ACL', 0), ('AEG', 0), ('AGB', 0), ('AGP', 0), ('AGs', 0), ('AIX', 0), ('AKW', 0), ('AMD', 0), ('AOK', 0), ('AOL', 0), ('API', 0), ('ARD', 0), ('ATM', 0)] tabsqlitedb.select_words() input_phrase=b'A' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('AG', 0), ('AI', 0), ('AT', 0), ('Ar', 0), ('Au', 0), ('ABC', 0), ('ABM', 0), ('ACL', 0), ('AEG', 0), ('AGB', 0), ('AGP', 0), ('AGs', 0), ('AIX', 0), ('AKW', 0), ('AMD', 0), ('AOK', 0), ('AOL', 0), ('API', 0), ('ARD', 0), ('ATM', 0)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['A'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['A', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Al', 't-latn-post': 'Al'} _update_candidates() self._typed_string=['A', 'l'] tabsqlitedb.select_words() input_phrase=b'Al' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Al' tabsqlitedb.select_words() hunspell: best_candidates=[('Alb', 0), ('Alf', 0), ('All', 0), ('Alm', 0), ('Alp', 0), ('Alt', 0), ('Alu', 0), ('Alba', 0), ('Aldi', 0), ('Alex', 0), ('Alfa', 0), ('Alge', 0), ('Alarm', 0), ('Alben', 0), ('Album', 0), ('Alias', 0), ('Alibi', 0), ('Alice', 0), ('Allah', 0), ('Allee', 0)] tabsqlitedb.select_words() input_phrase=b'Al' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alb', 0), ('Alf', 0), ('All', 0), ('Alm', 0), ('Alp', 0), ('Alt', 0), ('Alu', 0), ('Alba', 0), ('Aldi', 0), ('Alex', 0), ('Alfa', 0), ('Alge', 0), ('Alarm', 0), ('Alben', 0), ('Album', 0), ('Alias', 0), ('Alibi', 0), ('Alice', 0), ('Allah', 0), ('Allee', 0)] process_key_event() KeyEvent object: val=112 code=0 state=0x00000000 name='p' unicode='p' msymbol='p' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['p'] _insert_string_at_cursor() self._typed_string=['A', 'l'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['A', 'l', 'p'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alp', 't-latn-post': 'Alp'} _update_candidates() self._typed_string=['A', 'l', 'p'] tabsqlitedb.select_words() input_phrase=b'Alp' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alp' tabsqlitedb.select_words() hunspell: best_candidates=[('Alp', 0), ('Alpen', 0), ('Alpha', 0), ('Alpdruck', 0), ('Alpencup', 0), ('Alphabet', 0), ('Alpinist', 0), ('Alptraum', 0), ('Alpenglühen', 0)] tabsqlitedb.select_words() input_phrase=b'Alp' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alp', 0), ('Alpen', 0), ('Alpha', 0), ('Alpdruck', 0), ('Alpencup', 0), ('Alphabet', 0), ('Alpinist', 0), ('Alptraum', 0), ('Alpenglühen', 0)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpe', 't-latn-post': 'Alpe'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e'] tabsqlitedb.select_words() input_phrase=b'Alpe' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpe' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpen', 0), ('Alpencup', 0), ('Alpenglühen', 0), ('Alp', -1), ('Alge', -1), ('Alle', -1), ('Alte', -1), ('Alpine', -1)] tabsqlitedb.select_words() input_phrase=b'Alpe' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpen', 0), ('Alpencup', 0), ('Alpenglühen', 0), ('Alp', -1), ('Alge', -1), ('Alle', -1), ('Alte', -1), ('Alpine', -1)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpen', 't-latn-post': 'Alpen'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n'] tabsqlitedb.select_words() input_phrase=b'Alpen' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpen' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpen', 0), ('Alpencup', 0), ('Alpenglühen', 0), ('Alben', -1), ('Algen', -1), ('Allen', -1), ('Almen', -1), ('Alpin', -1), ('Alten', -1), ('-alpen', -1), ('Alpen-', -1)] tabsqlitedb.select_words() input_phrase=b'Alpen' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpen', 0), ('Alpencup', 0), ('Alpenglühen', 0), ('Alben', -1), ('Algen', -1), ('Allen', -1), ('Almen', -1), ('Alpin', -1), ('Alten', -1), ('-alpen', -1), ('Alpen-', -1)] process_key_event() KeyEvent object: val=103 code=0 state=0x00000000 name='g' unicode='g' msymbol='g' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['g'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e', 'n'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpeng', 't-latn-post': 'Alpeng'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g'] tabsqlitedb.select_words() input_phrase=b'Alpeng' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpeng' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpen', -1), ('Alpen-', -1), ('Alp eng', -1), ('Alp-eng', -1)] tabsqlitedb.select_words() input_phrase=b'Alpeng' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpen', -1), ('Alpen-', -1), ('Alp eng', -1), ('Alp-eng', -1)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpengl', 't-latn-post': 'Alpengl'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l'] tabsqlitedb.select_words() input_phrase=b'Alpengl' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpengl' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpen', -1), ('Alpengel', -1), ('Alpenöl', -1)] tabsqlitedb.select_words() input_phrase=b'Alpengl' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpen', -1), ('Alpengel', -1), ('Alpenöl', -1)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpenglu', 't-latn-post': 'Alpenglu'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u'] tabsqlitedb.select_words() input_phrase=b'Alpenglu' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpenglu' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpenlug', -1), ('Alpenglut', -1)] tabsqlitedb.select_words() input_phrase=b'Alpenglu' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpenlug', -1), ('Alpenglut', -1)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpengluh', 't-latn-post': 'Alpengluh'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h'] tabsqlitedb.select_words() input_phrase=b'Alpengluh' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpengluh' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpenglut', -1)] tabsqlitedb.select_words() input_phrase=b'Alpengluh' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpenglut', -1)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpengluhe', 't-latn-post': 'Alpengluhe'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h', 'e'] tabsqlitedb.select_words() input_phrase=b'Alpengluhe' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpengluhe' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0)] tabsqlitedb.select_words() input_phrase=b'Alpengluhe' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h', 'e'] _insert_string_at_cursor() self._typed_string_cursor=10 _update_transliterated_strings() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h', 'e', 'n'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'Alpengluhen', 't-latn-post': 'Alpengluhen'} _update_candidates() self._typed_string=['A', 'l', 'p', 'e', 'n', 'g', 'l', 'u', 'h', 'e', 'n'] tabsqlitedb.select_words() input_phrase=b'Alpengluhen' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'Alpengluhen' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpengluten', -1), ('Alpenländischen', -1)] tabsqlitedb.select_words() input_phrase=b'Alpengluhen' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('Alpenglühen', 0), ('Alpengluten', -1), ('Alpenländischen', -1)] process_key_event() KeyEvent object: val=65470 code=0 state=0x00000000 name='F1' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'Alpenglu\xcc\x88hen', input_phrase=b'Alpengluhen' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'Alpenglühen', 'input_phrase': 'Alpengluhen', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'Alpengluhen' phrase=b'Alpenglu\xcc\x88hen' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323916.4475236, 'phrase': 'Alpenglühen', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'Alpengluhen', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. ok test_autocommit_characters (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:11:58 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) instantiating Transliterator(t-latn-post) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} set_auto_commit_characters(., update_dconf = True) process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a', 't-latn-post': 'a'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] process_key_event() KeyEvent object: val=59 code=0 state=0x00000000 name='semicolon' unicode=';' msymbol=';' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=[';'] _insert_string_at_cursor() self._typed_string=['a'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['a', ';'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a;', 't-latn-post': 'a;'} _update_candidates() self._typed_string=['a', ';'] tabsqlitedb.select_words() input_phrase=b'a;' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a;' tabsqlitedb.select_words() hunspell: best_candidates=[] tabsqlitedb.select_words() input_phrase=b'a;' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=46 code=0 state=0x00000000 name='period' unicode='.' msymbol='.' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['.'] _insert_string_at_cursor() self._typed_string=['a', ';'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['a', ';', '.'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a;.', 't-latn-post': 'a;.'} auto committing because of key.msymbol = .tabsqlitedb.check_phrase_and_update_frequency() phrase=b'a', input_phrase=b'a' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'a', 'input_phrase': 'a', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'a' phrase=b'a' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323918.6623318, 'phrase': 'a', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'a', 'p_phrase': ''} process_key_event() KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['b'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['b'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'b', 't-latn-post': 'b'} _update_candidates() self._typed_string=['b'] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'a' pp_phrase=b'' Hunspell.suggest() input_phrase=b'b' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'a' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'b', input_phrase=b'b' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'b', 'input_phrase': 'b', 'p_phrase': 'a'} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'b' phrase=b'b' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323918.86847, 'phrase': 'b', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'b', 'p_phrase': 'a'} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} ok test_char_space_period_space (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:00 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'a', input_phrase=b'a' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'a', 'input_phrase': 'a', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'a' phrase=b'a' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323920.3024464, 'phrase': 'a', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'a', 'p_phrase': ''} process_key_event() KeyEvent object: val=46 code=0 state=0x00000000 name='period' unicode='.' msymbol='.' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=46 code=0 state=0x00000000 name='period' unicode='.' msymbol='.' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['.'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['.'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '.'} _update_candidates() self._typed_string=['.'] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok test_commit_with_arrows (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:01 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) instantiating Transliterator(t-latn-post) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} process_key_event() KeyEvent object: val=102 code=0 state=0x00000000 name='f' unicode='f' msymbol='f' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=102 code=0 state=0x00000000 name='f' unicode='f' msymbol='f' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['f'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['f'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'f', 't-latn-post': 'f'} _update_candidates() self._typed_string=['f'] tabsqlitedb.select_words() input_phrase=b'f' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'f' tabsqlitedb.select_words() hunspell: best_candidates=[('f', 0), ('fa', 0), ('ff', 0), ('fl', 0), ('fr', 0), ('ft', 0), ('fab', 0), ('fad', 0), ('fag', 0), ('fan', 0), ('far', 0), ('fat', 0), ('fax', 0), ('fay', 0), ('fed', 0), ('fee', 0), ('fem', 0), ('fen', 0), ('few', 0), ('fey', 0)] tabsqlitedb.select_words() input_phrase=b'f' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('f', 0), ('fa', 0), ('ff', 0), ('fl', 0), ('fr', 0), ('ft', 0), ('fab', 0), ('fad', 0), ('fag', 0), ('fan', 0), ('far', 0), ('fat', 0), ('fax', 0), ('fay', 0), ('fed', 0), ('fee', 0), ('fem', 0), ('fen', 0), ('few', 0), ('fey', 0)] process_key_event() KeyEvent object: val=111 code=0 state=0x00000000 name='o' unicode='o' msymbol='o' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['o'] _insert_string_at_cursor() self._typed_string=['f'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['f', 'o'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'fo', 't-latn-post': 'fo'} _update_candidates() self._typed_string=['f', 'o'] tabsqlitedb.select_words() input_phrase=b'fo' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'fo' tabsqlitedb.select_words() hunspell: best_candidates=[('fob', 0), ('foe', 0), ('fog', 0), ('fol', 0), ('foo', 0), ('fop', 0), ('for', 0), ('fox', 0), ('foal', 0), ('foam', 0), ('fogy', 0), ('foil', 0), ('fold', 0), ('folk', 0), ('foll', 0), ('fond', 0), ('font', 0), ('food', 0), ('fool', 0), ('foot', 0)] tabsqlitedb.select_words() input_phrase=b'fo' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('fob', 0), ('foe', 0), ('fog', 0), ('fol', 0), ('foo', 0), ('fop', 0), ('for', 0), ('fox', 0), ('foal', 0), ('foam', 0), ('fogy', 0), ('foil', 0), ('fold', 0), ('folk', 0), ('foll', 0), ('fond', 0), ('font', 0), ('food', 0), ('fool', 0), ('foot', 0)] process_key_event() KeyEvent object: val=111 code=0 state=0x00000000 name='o' unicode='o' msymbol='o' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['o'] _insert_string_at_cursor() self._typed_string=['f', 'o'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['f', 'o', 'o'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'foo', 't-latn-post': 'foo'} _update_candidates() self._typed_string=['f', 'o', 'o'] tabsqlitedb.select_words() input_phrase=b'foo' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'foo' tabsqlitedb.select_words() hunspell: best_candidates=[('foo', 0), ('food', 0), ('fool', 0), ('foot', 0), ('footy', 0), ('foobar', 0), ('foodie', 0), ('footie', 0), ('foolery', 0), ('foolish', 0), ('footage', 0), ('footing', 0), ('footman', 0), ('footmen', 0), ('footsie', 0), ('foolscap', 0), ('football', 0), ('footfall', 0), ('foothill', 0), ('foothold', 0)] tabsqlitedb.select_words() input_phrase=b'foo' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('foo', 0), ('food', 0), ('fool', 0), ('foot', 0), ('footy', 0), ('foobar', 0), ('foodie', 0), ('footie', 0), ('foolery', 0), ('foolish', 0), ('footage', 0), ('footing', 0), ('footman', 0), ('footmen', 0), ('footsie', 0), ('foolscap', 0), ('football', 0), ('footfall', 0), ('foothill', 0), ('foothold', 0)] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'foo', input_phrase=b'foo' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'foo', 'input_phrase': 'foo', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'foo' phrase=b'foo' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323922.2513778, 'phrase': 'foo', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'foo', 'p_phrase': ''} process_key_event() KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['b'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['b'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'b', 't-latn-post': 'b'} _update_candidates() self._typed_string=['b'] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'foo' pp_phrase=b'' Hunspell.suggest() input_phrase=b'b' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'foo' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['b'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['b', 'a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'ba', 't-latn-post': 'ba'} _update_candidates() self._typed_string=['b', 'a'] tabsqlitedb.select_words() input_phrase=b'ba' p_phrase=b'foo' pp_phrase=b'' Hunspell.suggest() input_phrase=b'ba' tabsqlitedb.select_words() hunspell: best_candidates=[('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('babe', 0), ('baby', 0), ('back', 0), ('bade', 0), ('baht', 0), ('bail', 0), ('bait', 0), ('bake', 0), ('bald', 0), ('bale', 0), ('balk', 0)] tabsqlitedb.select_words() input_phrase=b'ba' p_phrase=b'foo' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('babe', 0), ('baby', 0), ('back', 0), ('bade', 0), ('baht', 0), ('bail', 0), ('bait', 0), ('bake', 0), ('bald', 0), ('bale', 0), ('balk', 0)] process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['b', 'a'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['b', 'a', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'bar', 't-latn-post': 'bar'} _update_candidates() self._typed_string=['b', 'a', 'r'] tabsqlitedb.select_words() input_phrase=b'bar' p_phrase=b'foo' pp_phrase=b'' Hunspell.suggest() input_phrase=b'bar' tabsqlitedb.select_words() hunspell: best_candidates=[('bar', 0), ('barb', 0), ('bard', 0), ('bare', 0), ('barf', 0), ('bark', 0), ('barn', 0), ("bar's", 0), ('barge', 0), ('barmy', 0), ('baron', 0), ('barre', 0), ('barbel', 0), ('barber', 0), ('barbie', 0), ('bardic', 0), ('barfly', 0), ('barhop', 0), ('barium', 0), ("bark's", 0)] tabsqlitedb.select_words() input_phrase=b'bar' p_phrase=b'foo' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('bar', 0), ('barb', 0), ('bard', 0), ('bare', 0), ('barf', 0), ('bark', 0), ('barn', 0), ("bar's", 0), ('barge', 0), ('barmy', 0), ('baron', 0), ('barre', 0), ('barbel', 0), ('barber', 0), ('barbie', 0), ('bardic', 0), ('barfly', 0), ('barhop', 0), ('barium', 0), ("bark's", 0)] process_key_event() KeyEvent object: val=65361 code=0 state=0x00000000 name='Left' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65361 code=0 state=0x00000000 name='Left' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65361 code=0 state=0x00000000 name='Left' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65361 code=0 state=0x00000000 name='Left' unicode='' msymbol='' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'bar', input_phrase=b'bar' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'bar', 'input_phrase': 'bar', 'p_phrase': 'foo'} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'bar' phrase=b'bar' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323922.8552592, 'phrase': 'bar', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'bar', 'p_phrase': 'foo'} process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['b'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['b'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'b', 't-latn-post': 'b'} _update_candidates() self._typed_string=['b'] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'bar' pp_phrase=b'foo' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('bar', 1.0), ('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'bar' pp_phrase=b'foo' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('bar', 1.0), ('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['b'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['b', 'a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'ba', 't-latn-post': 'ba'} _update_candidates() self._typed_string=['b', 'a'] tabsqlitedb.select_words() input_phrase=b'ba' p_phrase=b'bar' pp_phrase=b'foo' tabsqlitedb.select_words() hunspell: best_candidates=[('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('babe', 0), ('baby', 0), ('back', 0), ('bade', 0), ('baht', 0), ('bail', 0), ('bait', 0), ('bake', 0), ('bald', 0), ('bale', 0), ('balk', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('bar', 1.0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bat', 0), ('bay', 0), ('babe', 0), ('baby', 0), ('back', 0), ('bade', 0), ('baht', 0), ('bail', 0), ('bait', 0), ('bake', 0), ('bald', 0), ('bale', 0), ('balk', 0)] tabsqlitedb.select_words() input_phrase=b'ba' p_phrase=b'bar' pp_phrase=b'foo' tabsqlitedb.select_words() hunspell: best_candidates=[('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('babe', 0), ('baby', 0), ('back', 0), ('bade', 0), ('baht', 0), ('bail', 0), ('bait', 0), ('bake', 0), ('bald', 0), ('bale', 0), ('balk', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('bar', 1.0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bat', 0), ('bay', 0), ('babe', 0), ('baby', 0), ('back', 0), ('bade', 0), ('baht', 0), ('bail', 0), ('bait', 0), ('bake', 0), ('bald', 0), ('bale', 0), ('balk', 0)] process_key_event() KeyEvent object: val=122 code=0 state=0x00000000 name='z' unicode='z' msymbol='z' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['z'] _insert_string_at_cursor() self._typed_string=['b', 'a'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['b', 'a', 'z'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'baz', 't-latn-post': 'baz'} _update_candidates() self._typed_string=['b', 'a', 'z'] tabsqlitedb.select_words() input_phrase=b'baz' p_phrase=b'bar' pp_phrase=b'foo' Hunspell.suggest() input_phrase=b'baz' tabsqlitedb.select_words() hunspell: best_candidates=[('bazaar', 0), ('bazooka', 0), ('bazillion', 0)] tabsqlitedb.select_words() input_phrase=b'baz' p_phrase=b'bar' pp_phrase=b'foo' tabsqlitedb.select_words() hunspell: best_candidates=[('bazaar', 0), ('bazooka', 0), ('bazillion', 0)] process_key_event() KeyEvent object: val=65361 code=0 state=0x00000004 name='Left' unicode='' msymbol='C-' control=True mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65361 code=0 state=0x00000000 name='Left' unicode='' msymbol='' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'baz', input_phrase=b'baz' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': 'foo', 'phrase': 'baz', 'input_phrase': 'baz', 'p_phrase': 'bar'} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'baz' phrase=b'baz' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323923.1536062, 'phrase': 'baz', 'user_freq': 1, 'pp_phrase': 'foo', 'input_phrase': 'baz', 'p_phrase': 'bar'} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} ok test_complete_word_from_us_english_dictionary (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:04 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) instantiating Transliterator(t-latn-post) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'c', 't-latn-post': 'c'} _update_candidates() self._typed_string=['c'] tabsqlitedb.select_words() input_phrase=b'c' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'c' tabsqlitedb.select_words() hunspell: best_candidates=[('c', 0), ('ca', 0), ('cc', 0), ('cf', 0), ('cg', 0), ('ch', 0), ('ck', 0), ('cl', 0), ('cm', 0), ('co', 0), ('ct', 0), ('cu', 0), ('cw', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0)] tabsqlitedb.select_words() input_phrase=b'c' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('c', 0), ('ca', 0), ('cc', 0), ('cf', 0), ('cg', 0), ('ch', 0), ('ck', 0), ('cl', 0), ('cm', 0), ('co', 0), ('ct', 0), ('cu', 0), ('cw', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['c'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['c', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'ce', 't-latn-post': 'ce'} _update_candidates() self._typed_string=['c', 'e'] tabsqlitedb.select_words() input_phrase=b'ce' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'ce' tabsqlitedb.select_words() hunspell: best_candidates=[('ceca', 0), ('cede', 0), ('cell', 0), ('cent', 0), ('cert', 0), ('cease', 0), ('cecal', 0), ('cecum', 0), ('cedar', 0), ('ceder', 0), ('celeb', 0), ('cello', 0), ('celery', 0), ('cellar', 0), ('cement', 0), ('censer', 0), ('censor', 0), ('census', 0), ('center', 0), ('cereal', 0)] tabsqlitedb.select_words() input_phrase=b'ce' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('ceca', 0), ('cede', 0), ('cell', 0), ('cent', 0), ('cert', 0), ('cease', 0), ('cecal', 0), ('cecum', 0), ('cedar', 0), ('ceder', 0), ('celeb', 0), ('cello', 0), ('celery', 0), ('cellar', 0), ('cement', 0), ('censer', 0), ('censor', 0), ('census', 0), ('center', 0), ('cereal', 0)] process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['c', 'e'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['c', 'e', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'cer', 't-latn-post': 'cer'} _update_candidates() self._typed_string=['c', 'e', 'r'] tabsqlitedb.select_words() input_phrase=b'cer' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'cer' tabsqlitedb.select_words() hunspell: best_candidates=[('cert', 0), ('cereal', 0), ('cerise', 0), ('cerium', 0), ('cermet', 0), ('cervix', 0), ('ceramic', 0), ('cerebra', 0), ('certain', 0), ('certify', 0), ('ceramics', 0), ('ceramist', 0), ('cerebral', 0), ('cerebrum', 0), ('cerement', 0), ('ceremony', 0), ('cerulean', 0), ('cervical', 0), ('cervices', 0), ('cerebrate', 0)] tabsqlitedb.select_words() input_phrase=b'cer' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('cert', 0), ('cereal', 0), ('cerise', 0), ('cerium', 0), ('cermet', 0), ('cervix', 0), ('ceramic', 0), ('cerebra', 0), ('certain', 0), ('certify', 0), ('ceramics', 0), ('ceramist', 0), ('cerebral', 0), ('cerebrum', 0), ('cerement', 0), ('ceremony', 0), ('cerulean', 0), ('cervical', 0), ('cervices', 0), ('cerebrate', 0)] process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['c', 'e', 'r'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['c', 'e', 'r', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'ceru', 't-latn-post': 'ceru'} _update_candidates() self._typed_string=['c', 'e', 'r', 'u'] tabsqlitedb.select_words() input_phrase=b'ceru' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'ceru' tabsqlitedb.select_words() hunspell: best_candidates=[('cerulean', 0), ('Peru', -1), ('cert', -1), ('cure', -1), ('ecru', -1), ('Cerberus', -1)] tabsqlitedb.select_words() input_phrase=b'ceru' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('cerulean', 0), ('Peru', -1), ('cert', -1), ('cure', -1), ('ecru', -1), ('Cerberus', -1)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['c', 'e', 'r', 'u'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['c', 'e', 'r', 'u', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'cerul', 't-latn-post': 'cerul'} _update_candidates() self._typed_string=['c', 'e', 'r', 'u', 'l'] tabsqlitedb.select_words() input_phrase=b'cerul' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'cerul' tabsqlitedb.select_words() hunspell: best_candidates=[('cerulean', 0), ('cruel', -1), ('ruler', -1), ('ulcer', -1), ('cruller', -1)] tabsqlitedb.select_words() input_phrase=b'cerul' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('cerulean', 0), ('cruel', -1), ('ruler', -1), ('ulcer', -1), ('cruller', -1)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['c', 'e', 'r', 'u', 'l'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['c', 'e', 'r', 'u', 'l', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'cerule', 't-latn-post': 'cerule'} _update_candidates() self._typed_string=['c', 'e', 'r', 'u', 'l', 'e'] tabsqlitedb.select_words() input_phrase=b'cerule' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'cerule' tabsqlitedb.select_words() hunspell: best_candidates=[('cerulean', 0), ('ruler', -1), ('ulcer', -1), ('ferule', -1), ('cruller', -1)] tabsqlitedb.select_words() input_phrase=b'cerule' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('cerulean', 0), ('ruler', -1), ('ulcer', -1), ('ferule', -1), ('cruller', -1)] process_key_event() KeyEvent object: val=65470 code=0 state=0x00000000 name='F1' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'cerulean', input_phrase=b'cerule' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'cerulean', 'input_phrase': 'cerule', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'cerule' phrase=b'cerulean' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323927.0142734, 'phrase': 'cerulean', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'cerule', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} ok test_direct_input (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:08 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) instantiating Transliterator(t-latn-post) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a', 't-latn-post': 'a'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] process_key_event() KeyEvent object: val=34 code=0 state=0x00000000 name='quotedbl' unicode='"' msymbol='"' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['"'] _insert_string_at_cursor() self._typed_string=['a'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['a', '"'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a"', 't-latn-post': 'ä'} _update_candidates() self._typed_string=['a', '"'] tabsqlitedb.select_words() input_phrase=b'a"' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a"' tabsqlitedb.select_words() hunspell: best_candidates=[] tabsqlitedb.select_words() input_phrase=b'a\xcc\x88' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a\xcc\x88' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'a', input_phrase=b'a' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'a', 'input_phrase': 'a', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'a' phrase=b'a' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323928.8420587, 'phrase': 'a', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'a', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} ok test_dummy (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:10 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok test_emoji_related_tab_enable_cursor_visible_escape (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:11 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) set_tab_enable(True, update_dconf = True) process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'c'} process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['c'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['c', 'a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'ca'} process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['c', 'a'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['c', 'a', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'cam'} process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['c', 'a', 'm'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['c', 'a', 'm', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'came'} process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['c', 'a', 'm', 'e'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['c', 'a', 'm', 'e', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'camel'} process_key_event() KeyEvent object: val=65289 code=0 state=0x00000000 name='Tab' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _update_candidates() self._typed_string=['c', 'a', 'm', 'e', 'l'] tabsqlitedb.select_words() input_phrase=b'camel' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'camel' tabsqlitedb.select_words() hunspell: best_candidates=[('camel', 0), ('camellia', 0), ('camelhair', 0), ('came', -1), ('Camel', -1), ('cameo', -1), ('came l', -1), ('camels', -1)] do_candidate_clicked() index = 5 button = 3 state = 0 _lookup_related_candidates(): related_candidates of “🐫” = [('🐫', "bactrian camel ['animal', 'bactrian', 'camel', 'hump', 'hump day', 'nature', 'so', 'wildlife']", 8), ('🐪', "dromedary camel ['animal', 'hump', 'nature', 'so', 'wildlife']", 5), ('🐻', "bear face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐦', "bird ['animal', 'nature', 'so', 'wildlife']", 4), ('🐡', "blowfish ['animal', 'nature', 'so', 'wildlife']", 4), ('🐗', "boar ['animal', 'nature', 'so', 'wildlife']", 4), ('🐿', "chipmunk ['animal', 'nature', 'so', 'wildlife']", 4), ('🐊', "crocodile ['animal', 'nature', 'so', 'wildlife']", 4), ('🐬', "dolphin ['animal', 'nature', 'so', 'wildlife']", 4), ('🐘', "elephant ['animal', 'nature', 'so', 'wildlife']", 4), ('🐟', "fish ['animal', 'nature', 'so', 'wildlife']", 4), ('🐸', "frog face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐎', "horse ['animal', 'nature', 'so', 'wildlife']", 4), ('🐴', "horse face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐨', "koala ['animal', 'nature', 'so', 'wildlife']", 4), ('🐆', "leopard ['animal', 'nature', 'so', 'wildlife']", 4), ('🦁', "lion face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐒', "monkey ['animal', 'nature', 'so', 'wildlife']", 4), ('🐙', "octopus ['animal', 'nature', 'so', 'wildlife']", 4), ('🐼', "panda face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐧', "penguin ['animal', 'nature', 'so', 'wildlife']", 4), ('🐇', "rabbit ['animal', 'nature', 'so', 'wildlife']", 4), ('🐰', "rabbit face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐏', "ram ['animal', 'nature', 'so', 'wildlife']", 4), ('🐍', "snake ['animal', 'nature', 'so', 'wildlife']", 4), ('🐳', "spouting whale ['animal', 'nature', 'so', 'wildlife']", 4), ('🐅', "tiger ['animal', 'nature', 'so', 'wildlife']", 4), ('🐯', "tiger face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐠', "tropical fish ['animal', 'nature', 'so', 'wildlife']", 4), ('🦃', "turkey ['animal', 'nature', 'so', 'wildlife']", 4), ('🐢', "turtle ['animal', 'nature', 'so', 'wildlife']", 4), ('🐃', "water buffalo ['animal', 'nature', 'so', 'wildlife']", 4), ('🐋', "whale ['animal', 'nature', 'so', 'wildlife']", 4), ('🐺', "wolf face ['animal', 'nature', 'so', 'wildlife']", 4), ('🐜', "ant ['animal', 'nature', 'so']", 3), ('🐤', "baby chick ['animal', 'nature', 'so']", 3), ('🐛', "bug ['animal', 'nature', 'so']", 3), ('🐈', "cat ['animal', 'nature', 'so']", 3), ('🐱', "cat face ['animal', 'nature', 'so']", 3), ('🐔', "chicken ['animal', 'nature', 'so']", 3), ('🐄', "cow ['animal', 'nature', 'so']", 3), ('🐮', "cow face ['animal', 'nature', 'so']", 3), ('🦀', "crab ['animal', 'nature', 'so']", 3), ('🐕', "dog ['animal', 'nature', 'so']", 3), ('🐶', "dog face ['animal', 'nature', 'so']", 3), ('🕊', "dove of peace ['animal', 'nature', 'so']", 3), ('🐉', "dragon ['animal', 'nature', 'so']", 3), ('🐲', "dragon face ['animal', 'nature', 'so']", 3), ('🐥', "front-facing baby chick ['animal', 'nature', 'so']", 3), ('🐐', "goat ['animal', 'nature', 'so']", 3), ('🐹', "hamster face ['animal', 'nature', 'so']", 3), ('🐣', "hatching chick ['animal', 'nature', 'so']", 3), ('🙉', "hear-no-evil monkey ['animal', 'nature', 'so']", 3), ('🐝', "honeybee ['animal', 'nature', 'so']", 3), ('🐞', "lady beetle ['animal', 'nature', 'so']", 3), ('🐵', "monkey face ['animal', 'nature', 'so']", 3), ('🐁', "mouse ['animal', 'nature', 'so']", 3), ('🐭', "mouse face ['animal', 'nature', 'so']", 3), ('🐂', "ox ['animal', 'nature', 'so']", 3), ('🐾', "paw prints ['animal', 'nature', 'so']", 3), ('🐖', "pig ['animal', 'nature', 'so']", 3), ('🐷', "pig face ['animal', 'nature', 'so']", 3), ('🐽', "pig nose ['animal', 'nature', 'so']", 3), ('🐩', "poodle ['animal', 'nature', 'so']", 3), ('🐀', "rat ['animal', 'nature', 'so']", 3), ('🐓', "rooster ['animal', 'nature', 'so']", 3), ('🦂', "scorpion ['animal', 'nature', 'so']", 3), ('🙈', "see-no-evil monkey ['animal', 'nature', 'so']", 3), ('🐑', "sheep ['animal', 'nature', 'so']", 3), ('🐌', "snail ['animal', 'nature', 'so']", 3), ('🙊', "speak-no-evil monkey ['animal', 'nature', 'so']", 3), ('🕷', "spider ['animal', 'nature', 'so']", 3), ('🌞', "sun with face ['hump day', 'nature', 'so']", 3), ('🦄', "unicorn face ['animal', 'nature', 'so']", 3), ('\U0001f987', "bat ['nature', 'so']", 2), ('☀', "black sun with rays ['nature', 'so']", 2), ('🌼', "blossom ['nature', 'so']", 2), ('💐', "bouquet ['nature', 'so']", 2), ('\U0001f98b', "butterfly ['nature', 'so']", 2), ('🌵', "cactus ['nature', 'so']", 2), ('😹', "cat face with tears of joy ['animal', 'so']", 2), ('😼', "cat face with wry smile ['animal', 'so']", 2), ('🌸', "cherry blossom ['nature', 'so']", 2), ('🌰', "chestnut ['nature', 'so']", 2), ('🎄', "christmas tree ['nature', 'so']", 2), ('☁', "cloud ['nature', 'so']", 2), ('🌩', "cloud with lightning ['nature', 'so']", 2), ('🌧', "cloud with rain ['nature', 'so']", 2), ('🌨', "cloud with snow ['nature', 'so']", 2), ('🌪', "cloud with tornado ['nature', 'so']", 2), ('☄', "comet ['nature', 'so']", 2), ('🌙', "crescent moon ['nature', 'so']", 2), ('😿', "crying cat face ['animal', 'so']", 2), ('💨', "dash symbol ['nature', 'so']", 2), ('🌳', "deciduous tree ['nature', 'so']", 2), ('\U0001f98c', "deer ['nature', 'so']", 2), ('💧', "droplet ['nature', 'so']", 2), ('\U0001f986', "duck ['nature', 'so']", 2), ('\U0001f985', "eagle ['nature', 'so']", 2), ('🌾', "ear of rice ['nature', 'so']", 2), ('🌎', "earth globe americas ['nature', 'so']", 2), ('🌏', "earth globe asia-australia ['nature', 'so']", 2), ('🌍', "earth globe europe-africa ['nature', 'so']", 2), ('🌲', "evergreen tree ['nature', 'so']", 2), ('🍂', "fallen leaf ['nature', 'so']", 2), ('🔥', "fire ['nature', 'so']", 2), ('🌓', "first quarter moon symbol ['nature', 'so']", 2), ('🌛', "first quarter moon with face ['nature', 'so']", 2), ('🌫', "fog ['nature', 'so']", 2), ('🍀', "four leaf clover ['nature', 'so']", 2), ('\U0001f98a', "fox face ['nature', 'so']", 2), ('🌕', "full moon symbol ['nature', 'so']", 2), ('🌝', "full moon with face ['nature', 'so']", 2), ('🌟', "glowing star ['nature', 'so']", 2), ('\U0001f98d', "gorilla ['nature', 'so']", 2), ('😸', "grinning cat face with smiling eyes ['animal', 'so']", 2), ('🌿', "herb ['nature', 'so']", 2), ('🌺', "hibiscus ['nature', 'so']", 2), ('⚡', "high voltage sign ['nature', 'so']", 2), ('🎃', "jack-o-lantern ['nature', 'so']", 2), ('😽', "kissing cat face with closed eyes ['animal', 'so']", 2), ('🌗', "last quarter moon symbol ['nature', 'so']", 2), ('🌜', "last quarter moon with face ['nature', 'so']", 2), ('🍃', "leaf fluttering in wind ['nature', 'so']", 2), ('\U0001f98e', "lizard ['nature', 'so']", 2), ('🍁', "maple leaf ['nature', 'so']", 2), ('🍄', "mushroom ['nature', 'so']", 2), ('🌑', "new moon symbol ['nature', 'so']", 2), ('🌚', "new moon with face ['nature', 'so']", 2), ('\U0001f989', "owl ['nature', 'so']", 2), ('🌴', "palm tree ['nature', 'so']", 2), ('🎍', "pine decoration ['nature', 'so']", 2), ('😾', "pouting cat face ['animal', 'so']", 2), ('\U0001f98f', "rhinoceros ['nature', 'so']", 2), ('🌹', "rose ['nature', 'so']", 2), ('🏵', "rosette ['nature', 'so']", 2), ('🌱', "seedling ['nature', 'so']", 2), ('☘', "shamrock ['nature', 'so']", 2), ('\U0001f988', "shark ['nature', 'so']", 2), ('\U0001f990', "shrimp ['nature', 'so']", 2), ('😻', "smiling cat face with heart-shaped eyes ['animal', 'so']", 2), ('😺', "smiling cat face with open mouth ['animal', 'so']", 2), ('❄', "snowflake ['nature', 'so']", 2), ('☃', "snowman ['nature', 'so']", 2), ('⛄', "snowman without snow ['nature', 'so']", 2), ('✨', "sparkles ['nature', 'so']", 2), ('🕸', "spider web ['nature', 'so']", 2), ('🐚', "spiral shell ['nature', 'so']", 2), ('💦', "splashing sweat symbol ['nature', 'so']", 2), ('\U0001f991', "squid ['nature', 'so']", 2), ('⛅', "sun behind cloud ['nature', 'so']", 2), ('🌻', "sunflower ['nature', 'so']", 2), ('🌅', "sunrise ['hump day', 'so']", 2), ('🎋', "tanabata tree ['nature', 'so']", 2), ('⛈', "thunder cloud and rain ['nature', 'so']", 2), ('🌷', "tulip ['nature', 'so']", 2), ('☂', "umbrella ['nature', 'so']", 2), ('☔', "umbrella with rain drops ['nature', 'so']", 2), ('🌘', "waning crescent moon symbol ['nature', 'so']", 2), ('🌖', "waning gibbous moon symbol ['nature', 'so']", 2), ('🌊', "water wave ['nature', 'so']", 2), ('🌒', "waxing crescent moon symbol ['nature', 'so']", 2), ('🌔', "waxing gibbous moon symbol ['nature', 'so']", 2), ('🙀', "weary cat face ['animal', 'so']", 2), ('⭐', "white medium star ['nature', 'so']", 2), ('🌥', "white sun behind cloud ['nature', 'so']", 2), ('🌦', "white sun behind cloud with rain ['nature', 'so']", 2), ('🌤', "white sun with small cloud ['nature', 'so']", 2), ('\U0001f940', "wilted flower ['nature', 'so']", 2), ('🌬', "wind blowing face ['nature', 'so']", 2), ('⏦', "ac current ['so']", 1), ('℀', "account of ['so']", 1), ('℁', "addressed to the subject ['so']", 1), ('☬', "adi shakti ['so']", 1), ('🎟', "admission tickets ['so']", 1), ('𐄼', "aegean dry measure first subunit ['so']", 1), ('𐄽', "aegean liquid measure first subunit ['so']", 1), ('𐄾', "aegean measure second subunit ['so']", 1), ('𐄿', "aegean measure third subunit ['so']", 1), ('𐄷', "aegean weight base unit ['so']", 1), ('𐄸', "aegean weight first subunit ['so']", 1), ('𐄻', "aegean weight fourth subunit ['so']", 1), ('𐄹', "aegean weight second subunit ['so']", 1), ('𐄺', "aegean weight third subunit ['so']", 1), ('🚡', "aerial tramway ['so']", 1), ('𑜿', "ahom symbol vi ['so']", 1), ('✈', "airplane ['so']", 1), ('🛬', "airplane arriving ['so']", 1), ('🛫', "airplane departure ['so']", 1), ('⅍', "aktieselskab ['so']", 1), ('⏰', "alarm clock ['so']", 1), ('🜁', "alchemical symbol for air ['so']", 1), ('🝪', "alchemical symbol for alembic ['so']", 1), ('🜶', "alchemical symbol for alkali ['so']", 1), ('🜷', "alchemical symbol for alkali-2 ['so']", 1), ('🝅', "alchemical symbol for alum ['so']", 1), ('🝛', "alchemical symbol for amalgam ['so']", 1), ('🜫', "alchemical symbol for antimony ore ['so']", 1), ('🜆', "alchemical symbol for aqua regia ['so']", 1), ('🜇', "alchemical symbol for aqua regia-2 ['so']", 1), ('🜈', "alchemical symbol for aqua vitae ['so']", 1), ('🜉', "alchemical symbol for aqua vitae-2 ['so']", 1), ('🜅', "alchemical symbol for aquafortis ['so']", 1), ('🜺', "alchemical symbol for arsenic ['so']", 1), ('🝗', "alchemical symbol for ashes ['so']", 1), ('🜽', "alchemical symbol for auripigment ['so']", 1), ('🝫', "alchemical symbol for bath of mary ['so']", 1), ('🝬', "alchemical symbol for bath of vapours ['so']", 1), ('🜾', "alchemical symbol for bismuth ore ['so']", 1), ('🜏', "alchemical symbol for black sulfur ['so']", 1), ('🝂', "alchemical symbol for borax ['so']", 1), ('🝃', "alchemical symbol for borax-2 ['so']", 1), ('🝄', "alchemical symbol for borax-3 ['so']", 1), ('🝙', "alchemical symbol for brick ['so']", 1), ('🝐', "alchemical symbol for caduceus ['so']", 1), ('🝌', "alchemical symbol for calx ['so']", 1), ('🝎', "alchemical symbol for caput mortuum ['so']", 1), ('🜓', "alchemical symbol for cinnabar ['so']", 1), ('🜥', "alchemical symbol for copper antimoniate ['so']", 1), ('🜠', "alchemical symbol for copper ore ['so']", 1), ('🜣', "alchemical symbol for crocus of copper ['so']", 1), ('🜤', "alchemical symbol for crocus of copper-2 ['so']", 1), ('🜞', "alchemical symbol for crocus of iron ['so']", 1), ('🝥', "alchemical symbol for crucible ['so']", 1), ('🝦', "alchemical symbol for crucible-2 ['so']", 1), ('🝧', "alchemical symbol for crucible-3 ['so']", 1), ('🝨', "alchemical symbol for crucible-4 ['so']", 1), ('🝩', "alchemical symbol for crucible-5 ['so']", 1), ('🝰', "alchemical symbol for day-night ['so']", 1), ('🝡', "alchemical symbol for dissolve ['so']", 1), ('🝢', "alchemical symbol for dissolve-2 ['so']", 1), ('🝠', "alchemical symbol for distill ['so']", 1), ('🜃', "alchemical symbol for earth ['so']", 1), ('🜂', "alchemical symbol for fire ['so']", 1), ('🜚', "alchemical symbol for gold ['so']", 1), ('🝉', "alchemical symbol for gum ['so']", 1), ('🝲', "alchemical symbol for half dram ['so']", 1), ('🝳', "alchemical symbol for half ounce ['so']", 1), ('🝖', "alchemical symbol for horse dung ['so']", 1), ('🝮', "alchemical symbol for hour ['so']", 1), ('🜜', "alchemical symbol for iron ore ['so']", 1), ('🜝', "alchemical symbol for iron ore-2 ['so']", 1), ('🜡', "alchemical symbol for iron-copper ore ['so']", 1), ('🜪', "alchemical symbol for lead ore ['so']", 1), ('🝓', "alchemical symbol for lodestone ['so']", 1), ('🜸', "alchemical symbol for marcasite ['so']", 1), ('🜐', "alchemical symbol for mercury sublimate ['so']", 1), ('🜑', "alchemical symbol for mercury sublimate-2 ['so']", 1), ('🜒', "alchemical symbol for mercury sublimate-3 ['so']", 1), ('🝱', "alchemical symbol for month ['so']", 1), ('🝯', "alchemical symbol for night ['so']", 1), ('🜕', "alchemical symbol for nitre ['so']", 1), ('🝆', "alchemical symbol for oil ['so']", 1), ('🜎', "alchemical symbol for philosophers sulfur ['so']", 1), ('🝘', "alchemical symbol for pot ashes ['so']", 1), ('🝋', "alchemical symbol for powder ['so']", 1), ('🝚', "alchemical symbol for powdered brick ['so']", 1), ('🝟', "alchemical symbol for precipitate ['so']", 1), ('🝣', "alchemical symbol for purify ['so']", 1), ('🝤', "alchemical symbol for putrefaction ['so']", 1), ('🝁', "alchemical symbol for quick lime ['so']", 1), ('🜀', "alchemical symbol for quintessence ['so']", 1), ('🜻', "alchemical symbol for realgar ['so']", 1), ('🜼', "alchemical symbol for realgar-2 ['so']", 1), ('🜲', "alchemical symbol for regulus ['so']", 1), ('🜰', "alchemical symbol for regulus of antimony ['so']", 1), ('🜱', "alchemical symbol for regulus of antimony-2 ['so']", 1), ('🜟', "alchemical symbol for regulus of iron ['so']", 1), ('🜳', "alchemical symbol for regulus-2 ['so']", 1), ('🜴', "alchemical symbol for regulus-3 ['so']", 1), ('🜵', "alchemical symbol for regulus-4 ['so']", 1), ('🝭', "alchemical symbol for retort ['so']", 1), ('🜘', "alchemical symbol for rock salt ['so']", 1), ('🜙', "alchemical symbol for rock salt-2 ['so']", 1), ('🜹', "alchemical symbol for sal-ammoniac ['so']", 1), ('🜔', "alchemical symbol for salt ['so']", 1), ('🜭', "alchemical symbol for salt of antimony ['so']", 1), ('🜦', "alchemical symbol for salt of copper antimoniate ['so']", 1), ('🝏', "alchemical symbol for scepter of jove ['so']", 1), ('🜛', "alchemical symbol for silver ['so']", 1), ('🝔', "alchemical symbol for soap ['so']", 1), ('🝇', "alchemical symbol for spirit ['so']", 1), ('🝒', "alchemical symbol for starred trident ['so']", 1), ('🝜', "alchemical symbol for stratum super stratum ['so']", 1), ('🝝', "alchemical symbol for stratum super stratum-2 ['so']", 1), ('🜬', "alchemical symbol for sublimate of antimony ['so']", 1), ('🜢', "alchemical symbol for sublimate of copper ['so']", 1), ('🜮', "alchemical symbol for sublimate of salt of antimony ['so']", 1), ('🜧', "alchemical symbol for sublimate of salt of copper ['so']", 1), ('🝞', "alchemical symbol for sublimation ['so']", 1), ('🜍', "alchemical symbol for sulfur ['so']", 1), ('🜿', "alchemical symbol for tartar ['so']", 1), ('🝀', "alchemical symbol for tartar-2 ['so']", 1), ('🜩', "alchemical symbol for tin ore ['so']", 1), ('🝈', "alchemical symbol for tincture ['so']", 1), ('🝑', "alchemical symbol for trident ['so']", 1), ('🝍', "alchemical symbol for tutty ['so']", 1), ('🝕', "alchemical symbol for urine ['so']", 1), ('🜨', "alchemical symbol for verdigris ['so']", 1), ('🜊', "alchemical symbol for vinegar ['so']", 1), ('🜯', "alchemical symbol for vinegar of antimony ['so']", 1), ('🜋', "alchemical symbol for vinegar-2 ['so']", 1), ('🜌', "alchemical symbol for vinegar-3 ['so']", 1), ('🜖', "alchemical symbol for vitriol ['so']", 1), ('🜗', "alchemical symbol for vitriol-2 ['so']", 1), ('🜄', "alchemical symbol for water ['so']", 1), ('🝊', "alchemical symbol for wax ['so']", 1), ('⚗', "alembic ['so']", 1), ('👾', "alien monster ['so']", 1), ('⌮', "all around-profile ['so']", 1), ('⛕', "alternate one-way left way traffic ['so']", 1), ('⎇', "alternative key symbol ['so']", 1), ('🚑', "ambulance ['so']", 1), ('🏈', "american football ['so']", 1), ('🏺', "amphora ['so']", 1), ('⚓', "anchor ['so']", 1), ('💢', "anger symbol ['so']", 1), ('😠', "angry face ['so']", 1), ('😧', "anguished face ['so']", 1), ('☥', "ankh ['so']", 1), ('📶', "antenna with bars ['so']", 1), ('🔄', "anticlockwise downwards and upwards open circle arrows ['so']", 1), ('↺', "anticlockwise open circle arrow ['so']", 1), ('↶', "anticlockwise top semicircle arrow ['so']", 1), ('⮍', "anticlockwise triangle-headed bottom u-shaped arrow ['so']", 1), ('⮎', "anticlockwise triangle-headed left u-shaped arrow ['so']", 1), ('⭯', "anticlockwise triangle-headed open circle arrow ['so']", 1), ('⮌', "anticlockwise triangle-headed right u-shaped arrow ['so']", 1), ('⮏', "anticlockwise triangle-headed top u-shaped arrow ['so']", 1), ('⍺', "apl functional symbol alpha ['so']", 1), ('⍶', "apl functional symbol alpha underbar ['so']", 1), ('⍀', "apl functional symbol backslash bar ['so']", 1), ('⍉', "apl functional symbol circle backslash ['so']", 1), ('⍥', "apl functional symbol circle diaeresis ['so']", 1), ('⌾', "apl functional symbol circle jot ['so']", 1), ('⍟', "apl functional symbol circle star ['so']", 1), ('⌽', "apl functional symbol circle stile ['so']", 1), ('⍜', "apl functional symbol circle underbar ['so']", 1), ('⍪', "apl functional symbol comma bar ['so']", 1), ('⍢', "apl functional symbol del diaeresis ['so']", 1), ('⍒', "apl functional symbol del stile ['so']", 1), ('⍫', "apl functional symbol del tilde ['so']", 1), ('⍋', "apl functional symbol delta stile ['so']", 1), ('⍙', "apl functional symbol delta underbar ['so']", 1), ('⍚', "apl functional symbol diamond underbar ['so']", 1), ('⍱', "apl functional symbol down caret tilde ['so']", 1), ('⍦', "apl functional symbol down shoe stile ['so']", 1), ('⍎', "apl functional symbol down tack jot ['so']", 1), ('⍊', "apl functional symbol down tack underbar ['so']", 1), ('⍖', "apl functional symbol downwards vane ['so']", 1), ('⍷', "apl functional symbol epsilon underbar ['so']", 1), ('⍩', "apl functional symbol greater-than diaeresis ['so']", 1), ('⌶', "apl functional symbol i-beam ['so']", 1), ('⍳', "apl functional symbol iota ['so']", 1), ('⍸', "apl functional symbol iota underbar ['so']", 1), ('⍤', "apl functional symbol jot diaeresis ['so']", 1), ('⍛', "apl functional symbol jot underbar ['so']", 1), ('⍧', "apl functional symbol left shoe stile ['so']", 1), ('⍅', "apl functional symbol leftwards vane ['so']", 1), ('⍵', "apl functional symbol omega ['so']", 1), ('⍹', "apl functional symbol omega underbar ['so']", 1), ('⎕', "apl functional symbol quad ['so']", 1), ('⍂', "apl functional symbol quad backslash ['so']", 1), ('⌼', "apl functional symbol quad circle ['so']", 1), ('⍠', "apl functional symbol quad colon ['so']", 1), ('⍔', "apl functional symbol quad del ['so']", 1), ('⍍', "apl functional symbol quad delta ['so']", 1), ('⌺', "apl functional symbol quad diamond ['so']", 1), ('⌹', "apl functional symbol quad divide ['so']", 1), ('⍌', "apl functional symbol quad down caret ['so']", 1), ('⍗', "apl functional symbol quad downwards arrow ['so']", 1), ('⌸', "apl functional symbol quad equal ['so']", 1), ('⍄', "apl functional symbol quad greater-than ['so']", 1), ('⌻', "apl functional symbol quad jot ['so']", 1), ('⍇', "apl functional symbol quad leftwards arrow ['so']", 1), ('⍃', "apl functional symbol quad less-than ['so']", 1), ('⍯', "apl functional symbol quad not equal ['so']", 1), ('⍰', "apl functional symbol quad question ['so']", 1), ('⍈', "apl functional symbol quad rightwards arrow ['so']", 1), ('⍁', "apl functional symbol quad slash ['so']", 1), ('⍓', "apl functional symbol quad up caret ['so']", 1), ('⍐', "apl functional symbol quad upwards arrow ['so']", 1), ('⍞', "apl functional symbol quote quad ['so']", 1), ('⍘', "apl functional symbol quote underbar ['so']", 1), ('⍴', "apl functional symbol rho ['so']", 1), ('⍆', "apl functional symbol rightwards vane ['so']", 1), ('⍮', "apl functional symbol semicolon underbar ['so']", 1), ('⌿', "apl functional symbol slash bar ['so']", 1), ('⌷', "apl functional symbol squish quad ['so']", 1), ('⍣', "apl functional symbol star diaeresis ['so']", 1), ('⍭', "apl functional symbol stile tilde ['so']", 1), ('⍨', "apl functional symbol tilde diaeresis ['so']", 1), ('⍲', "apl functional symbol up caret tilde ['so']", 1), ('⍝', "apl functional symbol up shoe jot ['so']", 1), ('⍡', "apl functional symbol up tack diaeresis ['so']", 1), ('⍕', "apl functional symbol up tack jot ['so']", 1), ('⍑', "apl functional symbol up tack overbar ['so']", 1), ('⍏', "apl functional symbol upwards vane ['so']", 1), ('⍬', "apl functional symbol zilde ['so']", 1), ('♒', "aquarius ['so']", 1), ('﷽', "arabic ligature bismillah ar-rahman ar-raheem ['so']", 1), ('۩', "arabic place of sajdah ['so']", 1), ('؎', "arabic poetic verse sign ['so']", 1), ('؏', "arabic sign misra ['so']", 1), ('۽', "arabic sign sindhi ampersand ['so']", 1), ('۾', "arabic sign sindhi postposition men ['so']", 1), ('۞', "arabic start of rub el hizb ['so']", 1), ('⌒', "arc ['so']", 1), ('♈', "aries ['so']", 1), ('🚛', "articulated lorry ['so']", 1), ('🎨', "artist palette ['so']", 1), ('☊', "ascending node ['so']", 1), ('😲', "astonished face ['so']", 1), ('⛢', "astronomical symbol for uranus ['so']", 1), ('👟', "athletic shoe ['so']", 1), ('⚛', "atom symbol ['so']", 1), ('🍆', "aubergine ['so']", 1), ('🏧', "automated teller machine ['so']", 1), ('🚗', "automobile ['so']", 1), ('\U0001f951', "avocado ['so']", 1), ('👶', "baby ['so']", 1), ('👼', "baby angel ['so']", 1), ('🍼', "baby bottle ['so']", 1), ('🚼', "baby symbol ['so']", 1), ('🖂', "back of envelope ['so']", 1), ('🔙', "back with leftwards arrow above ['so']", 1), ('➫', "back-tilted shadowed white rightwards arrow ['so']", 1), ('⭛', "backslanted south arrow with hooked tail ['so']", 1), ('⭝', "backslanted south arrow with horizontal tail ['so']", 1), ('\U0001f953', "bacon ['so']", 1), ('🏸', "badminton racquet and shuttlecock ['so']", 1), ('🛄', "baggage claim ['so']", 1), ('\U0001f956', "baguette bread ['so']", 1), ('᭧', "balinese musical symbol daeng ['so']", 1), ('᭩', "balinese musical symbol daing ['so']", 1), ('᭤', "balinese musical symbol dang ['so']", 1), ('᭪', "balinese musical symbol dang gede ['so']", 1), ('᭥', "balinese musical symbol dang surang ['so']", 1), ('᭢', "balinese musical symbol deng ['so']", 1), ('᭨', "balinese musical symbol deung ['so']", 1), ('᭦', "balinese musical symbol ding ['so']", 1), ('᭡', "balinese musical symbol dong ['so']", 1), ('᭣', "balinese musical symbol dung ['so']", 1), ('᭺', "balinese musical symbol left-hand closed plak ['so']", 1), ('᭻', "balinese musical symbol left-hand closed pluk ['so']", 1), ('᭸', "balinese musical symbol left-hand open pang ['so']", 1), ('᭼', "balinese musical symbol left-hand open ping ['so']", 1), ('᭹', "balinese musical symbol left-hand open pung ['so']", 1), ('᭷', "balinese musical symbol right-hand closed tak ['so']", 1), ('᭶', "balinese musical symbol right-hand closed tuk ['so']", 1), ('᭵', "balinese musical symbol right-hand open dag ['so']", 1), ('᭴', "balinese musical symbol right-hand open dug ['so']", 1), ('🎈', "balloon ['so']", 1), ('❉', "balloon-spoked asterisk ['so']", 1), ('🗶', "ballot bold script x ['so']", 1), ('☐', "ballot box ['so']", 1), ('🗳', "ballot box with ballot ['so']", 1), ('🗹', "ballot box with bold check ['so']", 1), ('🗷', "ballot box with bold script x ['so']", 1), ('☑', "ballot box with check ['so']", 1), ('⮽', "ballot box with light x ['so']", 1), ('🗵', "ballot box with script x ['so']", 1), ('☒', "ballot box with x ['so']", 1), ('🗴', "ballot script x ['so']", 1), ('✗', "ballot x ['so']", 1), ('🍌', "banana ['so']", 1), ('🏦', "bank ['so']", 1), ('💵', "banknote with dollar sign ['so']", 1), ('💶', "banknote with euro sign ['so']", 1), ('💷', "banknote with pound sign ['so']", 1), ('💴', "banknote with yen sign ['so']", 1), ('📊', "bar chart ['so']", 1), ('💈', "barber pole ['so']", 1), ('⚾', "baseball ['so']", 1), ('🏀', "basketball and hoop ['so']", 1), ('🛀', "bath ['so']", 1), ('🛁', "bathtub ['so']", 1), ('🔋', "battery ['so']", 1), ('🏖', "beach with umbrella ['so']", 1), ('🎜', "beamed ascending musical notes ['so']", 1), ('🎝', "beamed descending musical notes ['so']", 1), ('♫', "beamed eighth notes ['so']", 1), ('♬', "beamed sixteenth notes ['so']", 1), ('💓', "beating heart ['so']", 1), ('🛏', "bed ['so']", 1), ('🍺', "beer mug ['so']", 1), ('🔔', "bell ['so']", 1), ('⍾', "bell symbol ['so']", 1), ('🔕', "bell with cancellation stroke ['so']", 1), ('🛎', "bellhop bell ['so']", 1), ('৺', "bengali isshar ['so']", 1), ('⭞', "bent arrow pointing downwards then north east ['so']", 1), ('🍱', "bento box ['so']", 1), ('⌬', "benzene ring ['so']", 1), ('⏣', "benzene ring with circle ['so']", 1), ('🚲', "bicycle ['so']", 1), ('🚴', "bicyclist ['so']", 1), ('👙', "bikini ['so']", 1), ('🎱', "billiards ['so']", 1), ('☣', "biohazard sign ['so']", 1), ('🎂', "birthday cake ['so']", 1), ('✬', "black centre white star ['so']", 1), ('♝', "black chess bishop ['so']", 1), ('♚', "black chess king ['so']", 1), ('♞', "black chess knight ['so']", 1), ('♟', "black chess pawn ['so']", 1), ('♛', "black chess queen ['so']", 1), ('♜', "black chess rook ['so']", 1), ('●', "black circle ['so']", 1), ('⏺', "black circle for record ['so']", 1), ('⚉', "black circle with two white dots ['so']", 1), ('⚈', "black circle with white dot right ['so']", 1), ('♣', "black club suit ['so']", 1), ('⛨', "black cross on shield ['so']", 1), ('⮨', "black curved downwards and leftwards arrow ['so']", 1), ('⮩', "black curved downwards and rightwards arrow ['so']", 1), ('⮮', "black curved leftwards and downwards arrow ['so']", 1), ('⮬', "black curved leftwards and upwards arrow ['so']", 1), ('⮯', "black curved rightwards and downwards arrow ['so']", 1), ('⮭', "black curved rightwards and upwards arrow ['so']", 1), ('⮪', "black curved upwards and leftwards arrow ['so']", 1), ('⮫', "black curved upwards and rightwards arrow ['so']", 1), ('◆', "black diamond ['so']", 1), ('⯁', "black diamond centred ['so']", 1), ('❖', "black diamond minus white x ['so']", 1), ('♦', "black diamond suit ['so']", 1), ('🖣', "black down pointing backhand index ['so']", 1), ('⏬', "black down-pointing double triangle ['so']", 1), ('🞃', "black down-pointing isosceles right triangle ['so']", 1), ('▾', "black down-pointing small triangle ['so']", 1), ('▼', "black down-pointing triangle ['so']", 1), ('⮟', "black downwards equilateral arrowhead ['so']", 1), ('⛃', "black draughts king ['so']", 1), ('⛂', "black draughts man ['so']", 1), ('🌢', "black droplet ['so']", 1), ('⚑', "black flag ['so']", 1), ('✿', "black florette ['so']", 1), ('🖿', "black folder ['so']", 1), ('✦', "black four pointed star ['so']", 1), ('🖪', "black hard shell floppy disk ['so']", 1), ('\U0001f5a4', "black heart ['so']", 1), ('♥', "black heart suit ['so']", 1), ('⬢', "black hexagon ['so']", 1), ('⬬', "black horizontal ellipse ['so']", 1), ('⬤', "black large circle ['so']", 1), ('⬛', "black large square ['so']", 1), ('⛘', "black left lane merge ['so']", 1), ('🖜', "black left pointing backhand index ['so']", 1), ('☚', "black left pointing index ['so']", 1), ('⏪', "black left-pointing double triangle ['so']", 1), ('⏮', "black left-pointing double triangle with vertical bar ['so']", 1), ('🞀', "black left-pointing isosceles right triangle ['so']", 1), ('◄', "black left-pointing pointer ['so']", 1), ('◂', "black left-pointing small triangle ['so']", 1), ('◀', "black left-pointing triangle ['so']", 1), ('⮜', "black leftwards equilateral arrowhead ['so']", 1), ('◣', "black lower left triangle ['so']", 1), ('◢', "black lower right triangle ['so']", 1), ('⬥', "black medium diamond ['so']", 1), ('⏷', "black medium down-pointing triangle ['so']", 1), ('⯆', "black medium down-pointing triangle centred ['so']", 1), ('⏴', "black medium left-pointing triangle ['so']", 1), ('⯇', "black medium left-pointing triangle centred ['so']", 1), ('⬧', "black medium lozenge ['so']", 1), ('⏵', "black medium right-pointing triangle ['so']", 1), ('⯈', "black medium right-pointing triangle centred ['so']", 1), ('🞙', "black medium small diamond ['so']", 1), ('🞟', "black medium small lozenge ['so']", 1), ('⏶', "black medium up-pointing triangle ['so']", 1), ('⯅', "black medium up-pointing triangle centred ['so']", 1), ('⚸', "black moon lilith ['so']", 1), ('✒', "black nib ['so']", 1), ('⯄', "black octagon ['so']", 1), ('▰', "black parallelogram ['so']", 1), ('🏲', "black pennant ['so']", 1), ('⬟', "black pentagon ['so']", 1), ('🖈', "black pushpin ['so']", 1), ('❓', "black question mark ornament ['so']", 1), ('▬', "black rectangle ['so']", 1), ('🖝', "black right pointing backhand index ['so']", 1), ('☛', "black right pointing index ['so']", 1), ('⏩', "black right-pointing double triangle ['so']", 1), ('⏭', "black right-pointing double triangle with vertical bar ['so']", 1), ('🞂', "black right-pointing isosceles right triangle ['so']", 1), ('⭓', "black right-pointing pentagon ['so']", 1), ('►', "black right-pointing pointer ['so']", 1), ('▸', "black right-pointing small triangle ['so']", 1), ('▶', "black right-pointing triangle ['so']", 1), ('⏯', "black right-pointing triangle with double vertical bar ['so']", 1), ('➡', "black rightwards arrow ['so']", 1), ('➤', "black rightwards arrowhead ['so']", 1), ('⮞', "black rightwards equilateral arrowhead ['so']", 1), ('🏶', "black rosette ['so']", 1), ('✀', "black safety scissors ['so']", 1), ('✂', "black scissors ['so']", 1), ('☗', "black shogi piece ['so']", 1), ('🕱', "black skull and crossbones ['so']", 1), ('🞄', "black slightly small circle ['so']", 1), ('🞍', "black slightly small square ['so']", 1), ('⬩', "black small diamond ['so']", 1), ('⬪', "black small lozenge ['so']", 1), ('▪', "black small square ['so']", 1), ('⭑', "black small star ['so']", 1), ('☻', "black smiling face ['so']", 1), ('⛇', "black snowman ['so']", 1), ('♠', "black spade suit ['so']", 1), ('■', "black square ['so']", 1), ('🔲', "black square button ['so']", 1), ('⯀', "black square centred ['so']", 1), ('⏹', "black square for stop ['so']", 1), ('★', "black star ['so']", 1), ('☎', "black telephone ['so']", 1), ('🞗', "black tiny diamond ['so']", 1), ('🞝', "black tiny lozenge ['so']", 1), ('🞌', "black tiny square ['so']", 1), ('🕿', "black touchtone telephone ['so']", 1), ('⛟', "black truck ['so']", 1), ('⛖', "black two-way left way traffic ['so']", 1), ('♻', "black universal recycling symbol ['so']", 1), ('🖢', "black up pointing backhand index ['so']", 1), ('⏫', "black up-pointing double triangle ['so']", 1), ('🞁', "black up-pointing isosceles right triangle ['so']", 1), ('▴', "black up-pointing small triangle ['so']", 1), ('▲', "black up-pointing triangle ['so']", 1), ('◤', "black upper left triangle ['so']", 1), ('◥', "black upper right triangle ['so']", 1), ('⮝', "black upwards equilateral arrowhead ['so']", 1), ('⬮', "black vertical ellipse ['so']", 1), ('▮', "black vertical rectangle ['so']", 1), ('🞘', "black very small diamond ['so']", 1), ('🞞', "black very small lozenge ['so']", 1), ('⬝', "black very small square ['so']", 1), ('➶', "black-feathered north east arrow ['so']", 1), ('➵', "black-feathered rightwards arrow ['so']", 1), ('➴', "black-feathered south east arrow ['so']", 1), ('␢', "blank symbol ['so']", 1), ('📘', "blue book ['so']", 1), ('💙', "blue heart ['so']", 1), ('🞽', "bold eight spoked asterisk ['so']", 1), ('🞱', "bold five spoked asterisk ['so']", 1), ('🞤', "bold greek cross ['so']", 1), ('🞫', "bold saltire ['so']", 1), ('🞷', "bold six spoked asterisk ['so']", 1), ('🞆', "bold white circle ['so']", 1), ('🞐', "bold white square ['so']", 1), ('💣', "bomb ['so']", 1), ('🕮', "book ['so']", 1), ('🔖', "bookmark ['so']", 1), ('📑', "bookmark tabs ['so']", 1), ('📚', "books ['so']", 1), ('🍾', "bottle with popping cork ['so']", 1), ('⯋', "bottom half black circle ['so']", 1), ('⌞', "bottom left corner ['so']", 1), ('⌍', "bottom left crop ['so']", 1), ('⌟', "bottom right corner ['so']", 1), ('⌌', "bottom right crop ['so']", 1), ('⎵', "bottom square bracket ['so']", 1), ('⎶', "bottom square bracket over top square bracket ['so']", 1), ('🎕', "bouquet of flowers ['so']", 1), ('🏹', "bow and arrow ['so']", 1), ('🕏', "bowl of hygieia ['so']", 1), ('🎳', "bowling ['so']", 1), ('╦', "box drawings double down and horizontal ['so']", 1), ('╗', "box drawings double down and left ['so']", 1), ('╔', "box drawings double down and right ['so']", 1), ('═', "box drawings double horizontal ['so']", 1), ('╩', "box drawings double up and horizontal ['so']", 1), ('╝', "box drawings double up and left ['so']", 1), ('╚', "box drawings double up and right ['so']", 1), ('║', "box drawings double vertical ['so']", 1), ('╬', "box drawings double vertical and horizontal ['so']", 1), ('╣', "box drawings double vertical and left ['so']", 1), ('╠', "box drawings double vertical and right ['so']", 1), ('╥', "box drawings down double and horizontal single ['so']", 1), ('╖', "box drawings down double and left single ['so']", 1), ('╓', "box drawings down double and right single ['so']", 1), ('┰', "box drawings down heavy and horizontal light ['so']", 1), ('┒', "box drawings down heavy and left light ['so']", 1), ('┧', "box drawings down heavy and left up light ['so']", 1), ('┎', "box drawings down heavy and right light ['so']", 1), ('┟', "box drawings down heavy and right up light ['so']", 1), ('╁', "box drawings down heavy and up horizontal light ['so']", 1), ('┯', "box drawings down light and horizontal heavy ['so']", 1), ('┑', "box drawings down light and left heavy ['so']", 1), ('┩', "box drawings down light and left up heavy ['so']", 1), ('┍', "box drawings down light and right heavy ['so']", 1), ('┡', "box drawings down light and right up heavy ['so']", 1), ('╇', "box drawings down light and up horizontal heavy ['so']", 1), ('╤', "box drawings down single and horizontal double ['so']", 1), ('╕', "box drawings down single and left double ['so']", 1), ('╒', "box drawings down single and right double ['so']", 1), ('╍', "box drawings heavy double dash horizontal ['so']", 1), ('╏', "box drawings heavy double dash vertical ['so']", 1), ('╻', "box drawings heavy down ['so']", 1), ('┳', "box drawings heavy down and horizontal ['so']", 1), ('┓', "box drawings heavy down and left ['so']", 1), ('┏', "box drawings heavy down and right ['so']", 1), ('━', "box drawings heavy horizontal ['so']", 1), ('╸', "box drawings heavy left ['so']", 1), ('╾', "box drawings heavy left and light right ['so']", 1), ('┉', "box drawings heavy quadruple dash horizontal ['so']", 1), ('┋', "box drawings heavy quadruple dash vertical ['so']", 1), ('╺', "box drawings heavy right ['so']", 1), ('┅', "box drawings heavy triple dash horizontal ['so']", 1), ('┇', "box drawings heavy triple dash vertical ['so']", 1), ('╹', "box drawings heavy up ['so']", 1), ('┻', "box drawings heavy up and horizontal ['so']", 1), ('┛', "box drawings heavy up and left ['so']", 1), ('╿', "box drawings heavy up and light down ['so']", 1), ('┗', "box drawings heavy up and right ['so']", 1), ('┃', "box drawings heavy vertical ['so']", 1), ('╋', "box drawings heavy vertical and horizontal ['so']", 1), ('┫', "box drawings heavy vertical and left ['so']", 1), ('┣', "box drawings heavy vertical and right ['so']", 1), ('╅', "box drawings left down heavy and right up light ['so']", 1), ('┭', "box drawings left heavy and right down light ['so']", 1), ('┵', "box drawings left heavy and right up light ['so']", 1), ('┽', "box drawings left heavy and right vertical light ['so']", 1), ('┲', "box drawings left light and right down heavy ['so']", 1), ('┺', "box drawings left light and right up heavy ['so']", 1), ('╊', "box drawings left light and right vertical heavy ['so']", 1), ('╃', "box drawings left up heavy and right down light ['so']", 1), ('╮', "box drawings light arc down and left ['so']", 1), ('╭', "box drawings light arc down and right ['so']", 1), ('╯', "box drawings light arc up and left ['so']", 1), ('╰', "box drawings light arc up and right ['so']", 1), ('╳', "box drawings light diagonal cross ['so']", 1), ('╲', "box drawings light diagonal upper left to lower right ['so']", 1), ('╱', "box drawings light diagonal upper right to lower left ['so']", 1), ('╌', "box drawings light double dash horizontal ['so']", 1), ('╎', "box drawings light double dash vertical ['so']", 1), ('╷', "box drawings light down ['so']", 1), ('┬', "box drawings light down and horizontal ['so']", 1), ('┐', "box drawings light down and left ['so']", 1), ('┌', "box drawings light down and right ['so']", 1), ('─', "box drawings light horizontal ['so']", 1), ('╴', "box drawings light left ['so']", 1), ('╼', "box drawings light left and heavy right ['so']", 1), ('┈', "box drawings light quadruple dash horizontal ['so']", 1), ('┊', "box drawings light quadruple dash vertical ['so']", 1), ('╶', "box drawings light right ['so']", 1), ('┄', "box drawings light triple dash horizontal ['so']", 1), ('┆', "box drawings light triple dash vertical ['so']", 1), ('╵', "box drawings light up ['so']", 1), ('╽', "box drawings light up and heavy down ['so']", 1), ('┴', "box drawings light up and horizontal ['so']", 1), ('┘', "box drawings light up and left ['so']", 1), ('└', "box drawings light up and right ['so']", 1), ('│', "box drawings light vertical ['so']", 1), ('┼', "box drawings light vertical and horizontal ['so']", 1), ('┤', "box drawings light vertical and left ['so']", 1), ('├', "box drawings light vertical and right ['so']", 1), ('╆', "box drawings right down heavy and left up light ['so']", 1), ('┮', "box drawings right heavy and left down light ['so']", 1), ('┶', "box drawings right heavy and left up light ['so']", 1), ('┾', "box drawings right heavy and left vertical light ['so']", 1), ('┱', "box drawings right light and left down heavy ['so']", 1), ('┹', "box drawings right light and left up heavy ['so']", 1), ('╉', "box drawings right light and left vertical heavy ['so']", 1), ('╄', "box drawings right up heavy and left down light ['so']", 1), ('╨', "box drawings up double and horizontal single ['so']", 1), ('╜', "box drawings up double and left single ['so']", 1), ('╙', "box drawings up double and right single ['so']", 1), ('╀', "box drawings up heavy and down horizontal light ['so']", 1), ('┸', "box drawings up heavy and horizontal light ['so']", 1), ('┦', "box drawings up heavy and left down light ['so']", 1), ('┚', "box drawings up heavy and left light ['so']", 1), ('┞', "box drawings up heavy and right down light ['so']", 1), ('┖', "box drawings up heavy and right light ['so']", 1), ('╈', "box drawings up light and down horizontal heavy ['so']", 1), ('┷', "box drawings up light and horizontal heavy ['so']", 1), ('┪', "box drawings up light and left down heavy ['so']", 1), ('┙', "box drawings up light and left heavy ['so']", 1), ('┢', "box drawings up light and right down heavy ['so']", 1), ('┕', "box drawings up light and right heavy ['so']", 1), ('╧', "box drawings up single and horizontal double ['so']", 1), ('╛', "box drawings up single and left double ['so']", 1), ('╘', "box drawings up single and right double ['so']", 1), ('╫', "box drawings vertical double and horizontal single ['so']", 1), ('╢', "box drawings vertical double and left single ['so']", 1), ('╟', "box drawings vertical double and right single ['so']", 1), ('╂', "box drawings vertical heavy and horizontal light ['so']", 1), ('┨', "box drawings vertical heavy and left light ['so']", 1), ('┠', "box drawings vertical heavy and right light ['so']", 1), ('┿', "box drawings vertical light and horizontal heavy ['so']", 1), ('┥', "box drawings vertical light and left heavy ['so']", 1), ('┝', "box drawings vertical light and right heavy ['so']", 1), ('╪', "box drawings vertical single and horizontal double ['so']", 1), ('╡', "box drawings vertical single and left double ['so']", 1), ('╞', "box drawings vertical single and right double ['so']", 1), ('\U0001f94a', "boxing glove ['so']", 1), ('👦', "boy ['so']", 1), ('🛉', "boys symbol ['so']", 1), ('⠀', "braille pattern blank ['so']", 1), ('⠁', "braille pattern dots-1 ['so']", 1), ('⠃', "braille pattern dots-12 ['so']", 1), ('⠇', "braille pattern dots-123 ['so']", 1), ('⠏', "braille pattern dots-1234 ['so']", 1), ('⠟', "braille pattern dots-12345 ['so']", 1), ('⠿', "braille pattern dots-123456 ['so']", 1), ('⡿', "braille pattern dots-1234567 ['so']", 1), ('⣿', "braille pattern dots-12345678 ['so']", 1), ('⢿', "braille pattern dots-1234568 ['so']", 1), ('⡟', "braille pattern dots-123457 ['so']", 1), ('⣟', "braille pattern dots-1234578 ['so']", 1), ('⢟', "braille pattern dots-123458 ['so']", 1), ('⠯', "braille pattern dots-12346 ['so']", 1), ('⡯', "braille pattern dots-123467 ['so']", 1), ('⣯', "braille pattern dots-1234678 ['so']", 1), ('⢯', "braille pattern dots-123468 ['so']", 1), ('⡏', "braille pattern dots-12347 ['so']", 1), ('⣏', "braille pattern dots-123478 ['so']", 1), ('⢏', "braille pattern dots-12348 ['so']", 1), ('⠗', "braille pattern dots-1235 ['so']", 1), ('⠷', "braille pattern dots-12356 ['so']", 1), ('⡷', "braille pattern dots-123567 ['so']", 1), ('⣷', "braille pattern dots-1235678 ['so']", 1), ('⢷', "braille pattern dots-123568 ['so']", 1), ('⡗', "braille pattern dots-12357 ['so']", 1), ('⣗', "braille pattern dots-123578 ['so']", 1), ('⢗', "braille pattern dots-12358 ['so']", 1), ('⠧', "braille pattern dots-1236 ['so']", 1), ('⡧', "braille pattern dots-12367 ['so']", 1), ('⣧', "braille pattern dots-123678 ['so']", 1), ('⢧', "braille pattern dots-12368 ['so']", 1), ('⡇', "braille pattern dots-1237 ['so']", 1), ('⣇', "braille pattern dots-12378 ['so']", 1), ('⢇', "braille pattern dots-1238 ['so']", 1), ('⠋', "braille pattern dots-124 ['so']", 1), ('⠛', "braille pattern dots-1245 ['so']", 1), ('⠻', "braille pattern dots-12456 ['so']", 1), ('⡻', "braille pattern dots-124567 ['so']", 1), ('⣻', "braille pattern dots-1245678 ['so']", 1), ('⢻', "braille pattern dots-124568 ['so']", 1), ('⡛', "braille pattern dots-12457 ['so']", 1), ('⣛', "braille pattern dots-124578 ['so']", 1), ('⢛', "braille pattern dots-12458 ['so']", 1), ('⠫', "braille pattern dots-1246 ['so']", 1), ('⡫', "braille pattern dots-12467 ['so']", 1), ('⣫', "braille pattern dots-124678 ['so']", 1), ('⢫', "braille pattern dots-12468 ['so']", 1), ('⡋', "braille pattern dots-1247 ['so']", 1), ('⣋', "braille pattern dots-12478 ['so']", 1), ('⢋', "braille pattern dots-1248 ['so']", 1), ('⠓', "braille pattern dots-125 ['so']", 1), ('⠳', "braille pattern dots-1256 ['so']", 1), ('⡳', "braille pattern dots-12567 ['so']", 1), ('⣳', "braille pattern dots-125678 ['so']", 1), ('⢳', "braille pattern dots-12568 ['so']", 1), ('⡓', "braille pattern dots-1257 ['so']", 1), ('⣓', "braille pattern dots-12578 ['so']", 1), ('⢓', "braille pattern dots-1258 ['so']", 1), ('⠣', "braille pattern dots-126 ['so']", 1), ('⡣', "braille pattern dots-1267 ['so']", 1), ('⣣', "braille pattern dots-12678 ['so']", 1), ('⢣', "braille pattern dots-1268 ['so']", 1), ('⡃', "braille pattern dots-127 ['so']", 1), ('⣃', "braille pattern dots-1278 ['so']", 1), ('⢃', "braille pattern dots-128 ['so']", 1), ('⠅', "braille pattern dots-13 ['so']", 1), ('⠍', "braille pattern dots-134 ['so']", 1), ('⠝', "braille pattern dots-1345 ['so']", 1), ('⠽', "braille pattern dots-13456 ['so']", 1), ('⡽', "braille pattern dots-134567 ['so']", 1), ('⣽', "braille pattern dots-1345678 ['so']", 1), ('⢽', "braille pattern dots-134568 ['so']", 1), ('⡝', "braille pattern dots-13457 ['so']", 1), ('⣝', "braille pattern dots-134578 ['so']", 1), ('⢝', "braille pattern dots-13458 ['so']", 1), ('⠭', "braille pattern dots-1346 ['so']", 1), ('⡭', "braille pattern dots-13467 ['so']", 1), ('⣭', "braille pattern dots-134678 ['so']", 1), ('⢭', "braille pattern dots-13468 ['so']", 1), ('⡍', "braille pattern dots-1347 ['so']", 1), ('⣍', "braille pattern dots-13478 ['so']", 1), ('⢍', "braille pattern dots-1348 ['so']", 1), ('⠕', "braille pattern dots-135 ['so']", 1), ('⠵', "braille pattern dots-1356 ['so']", 1), ('⡵', "braille pattern dots-13567 ['so']", 1), ('⣵', "braille pattern dots-135678 ['so']", 1), ('⢵', "braille pattern dots-13568 ['so']", 1), ('⡕', "braille pattern dots-1357 ['so']", 1), ('⣕', "braille pattern dots-13578 ['so']", 1), ('⢕', "braille pattern dots-1358 ['so']", 1), ('⠥', "braille pattern dots-136 ['so']", 1), ('⡥', "braille pattern dots-1367 ['so']", 1), ('⣥', "braille pattern dots-13678 ['so']", 1), ('⢥', "braille pattern dots-1368 ['so']", 1), ('⡅', "braille pattern dots-137 ['so']", 1), ('⣅', "braille pattern dots-1378 ['so']", 1), ('⢅', "braille pattern dots-138 ['so']", 1), ('⠉', "braille pattern dots-14 ['so']", 1), ('⠙', "braille pattern dots-145 ['so']", 1), ('⠹', "braille pattern dots-1456 ['so']", 1), ('⡹', "braille pattern dots-14567 ['so']", 1), ('⣹', "braille pattern dots-145678 ['so']", 1), ('⢹', "braille pattern dots-14568 ['so']", 1), ('⡙', "braille pattern dots-1457 ['so']", 1), ('⣙', "braille pattern dots-14578 ['so']", 1), ('⢙', "braille pattern dots-1458 ['so']", 1), ('⠩', "braille pattern dots-146 ['so']", 1), ('⡩', "braille pattern dots-1467 ['so']", 1), ('⣩', "braille pattern dots-14678 ['so']", 1), ('⢩', "braille pattern dots-1468 ['so']", 1), ('⡉', "braille pattern dots-147 ['so']", 1), ('⣉', "braille pattern dots-1478 ['so']", 1), ('⢉', "braille pattern dots-148 ['so']", 1), ('⠑', "braille pattern dots-15 ['so']", 1), ('⠱', "braille pattern dots-156 ['so']", 1), ('⡱', "braille pattern dots-1567 ['so']", 1), ('⣱', "braille pattern dots-15678 ['so']", 1), ('⢱', "braille pattern dots-1568 ['so']", 1), ('⡑', "braille pattern dots-157 ['so']", 1), ('⣑', "braille pattern dots-1578 ['so']", 1), ('⢑', "braille pattern dots-158 ['so']", 1), ('⠡', "braille pattern dots-16 ['so']", 1), ('⡡', "braille pattern dots-167 ['so']", 1), ('⣡', "braille pattern dots-1678 ['so']", 1), ('⢡', "braille pattern dots-168 ['so']", 1), ('⡁', "braille pattern dots-17 ['so']", 1), ('⣁', "braille pattern dots-178 ['so']", 1), ('⢁', "braille pattern dots-18 ['so']", 1), ('⠂', "braille pattern dots-2 ['so']", 1), ('⠆', "braille pattern dots-23 ['so']", 1), ('⠎', "braille pattern dots-234 ['so']", 1), ('⠞', "braille pattern dots-2345 ['so']", 1), ('⠾', "braille pattern dots-23456 ['so']", 1), ('⡾', "braille pattern dots-234567 ['so']", 1), ('⣾', "braille pattern dots-2345678 ['so']", 1), ('⢾', "braille pattern dots-234568 ['so']", 1), ('⡞', "braille pattern dots-23457 ['so']", 1), ('⣞', "braille pattern dots-234578 ['so']", 1), ('⢞', "braille pattern dots-23458 ['so']", 1), ('⠮', "braille pattern dots-2346 ['so']", 1), ('⡮', "braille pattern dots-23467 ['so']", 1), ('⣮', "braille pattern dots-234678 ['so']", 1), ('⢮', "braille pattern dots-23468 ['so']", 1), ('⡎', "braille pattern dots-2347 ['so']", 1), ('⣎', "braille pattern dots-23478 ['so']", 1), ('⢎', "braille pattern dots-2348 ['so']", 1), ('⠖', "braille pattern dots-235 ['so']", 1), ('⠶', "braille pattern dots-2356 ['so']", 1), ('⡶', "braille pattern dots-23567 ['so']", 1), ('⣶', "braille pattern dots-235678 ['so']", 1), ('⢶', "braille pattern dots-23568 ['so']", 1), ('⡖', "braille pattern dots-2357 ['so']", 1), ('⣖', "braille pattern dots-23578 ['so']", 1), ('⢖', "braille pattern dots-2358 ['so']", 1), ('⠦', "braille pattern dots-236 ['so']", 1), ('⡦', "braille pattern dots-2367 ['so']", 1), ('⣦', "braille pattern dots-23678 ['so']", 1), ('⢦', "braille pattern dots-2368 ['so']", 1), ('⡆', "braille pattern dots-237 ['so']", 1), ('⣆', "braille pattern dots-2378 ['so']", 1), ('⢆', "braille pattern dots-238 ['so']", 1), ('⠊', "braille pattern dots-24 ['so']", 1), ('⠚', "braille pattern dots-245 ['so']", 1), ('⠺', "braille pattern dots-2456 ['so']", 1), ('⡺', "braille pattern dots-24567 ['so']", 1), ('⣺', "braille pattern dots-245678 ['so']", 1), ('⢺', "braille pattern dots-24568 ['so']", 1), ('⡚', "braille pattern dots-2457 ['so']", 1), ('⣚', "braille pattern dots-24578 ['so']", 1), ('⢚', "braille pattern dots-2458 ['so']", 1), ('⠪', "braille pattern dots-246 ['so']", 1), ('⡪', "braille pattern dots-2467 ['so']", 1), ('⣪', "braille pattern dots-24678 ['so']", 1), ('⢪', "braille pattern dots-2468 ['so']", 1), ('⡊', "braille pattern dots-247 ['so']", 1), ('⣊', "braille pattern dots-2478 ['so']", 1), ('⢊', "braille pattern dots-248 ['so']", 1), ('⠒', "braille pattern dots-25 ['so']", 1), ('⠲', "braille pattern dots-256 ['so']", 1), ('⡲', "braille pattern dots-2567 ['so']", 1), ('⣲', "braille pattern dots-25678 ['so']", 1), ('⢲', "braille pattern dots-2568 ['so']", 1), ('⡒', "braille pattern dots-257 ['so']", 1), ('⣒', "braille pattern dots-2578 ['so']", 1), ('⢒', "braille pattern dots-258 ['so']", 1), ('⠢', "braille pattern dots-26 ['so']", 1), ('⡢', "braille pattern dots-267 ['so']", 1), ('⣢', "braille pattern dots-2678 ['so']", 1), ('⢢', "braille pattern dots-268 ['so']", 1), ('⡂', "braille pattern dots-27 ['so']", 1), ('⣂', "braille pattern dots-278 ['so']", 1), ('⢂', "braille pattern dots-28 ['so']", 1), ('⠄', "braille pattern dots-3 ['so']", 1), ('⠌', "braille pattern dots-34 ['so']", 1), ('⠜', "braille pattern dots-345 ['so']", 1), ('⠼', "braille pattern dots-3456 ['so']", 1), ('⡼', "braille pattern dots-34567 ['so']", 1), ('⣼', "braille pattern dots-345678 ['so']", 1), ('⢼', "braille pattern dots-34568 ['so']", 1), ('⡜', "braille pattern dots-3457 ['so']", 1), ('⣜', "braille pattern dots-34578 ['so']", 1), ('⢜', "braille pattern dots-3458 ['so']", 1), ('⠬', "braille pattern dots-346 ['so']", 1), ('⡬', "braille pattern dots-3467 ['so']", 1), ('⣬', "braille pattern dots-34678 ['so']", 1), ('⢬', "braille pattern dots-3468 ['so']", 1)] process_key_event() KeyEvent object: val=65364 code=0 state=0x00000000 name='Down' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65364 code=0 state=0x00000000 name='Down' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65307 code=0 state=0x00000000 name='Escape' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65307 code=0 state=0x00000000 name='Escape' unicode='' msymbol='' control=False mod1=False mod5=False release=False _update_candidates() self._typed_string=['c', 'a', 'm', 'e', 'l'] tabsqlitedb.select_words() input_phrase=b'camel' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('camel', 0), ('camellia', 0), ('camelhair', 0), ('came', -1), ('Camel', -1), ('cameo', -1), ('came l', -1), ('camels', -1)] process_key_event() KeyEvent object: val=65364 code=0 state=0x00000000 name='Down' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65307 code=0 state=0x00000000 name='Escape' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=65307 code=0 state=0x00000000 name='Escape' unicode='' msymbol='' control=False mod1=False mod5=False release=False process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'camel', input_phrase=b'camel' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'camel', 'input_phrase': 'camel', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'camel' phrase=b'camel' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323931.7786126, 'phrase': 'camel', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'camel', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok test_emoji_triggered_by_underscore_when_emoji_mode_is_off (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:13 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) set_emoji_prediction_mode(False, update_dconf = True) process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'c'} _update_candidates() self._typed_string=['c'] tabsqlitedb.select_words() input_phrase=b'c' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'c' tabsqlitedb.select_words() hunspell: best_candidates=[('c', 0), ('ca', 0), ('cc', 0), ('cf', 0), ('cg', 0), ('ch', 0), ('ck', 0), ('cl', 0), ('cm', 0), ('co', 0), ('ct', 0), ('cu', 0), ('cw', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0)] process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['c'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['c', 'a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'ca'} _update_candidates() self._typed_string=['c', 'a'] tabsqlitedb.select_words() input_phrase=b'ca' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'ca' tabsqlitedb.select_words() hunspell: best_candidates=[('ca', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0), ('cat', 0), ('caw', 0), ('cay', 0), ('cafe', 0), ('caff', 0), ('cage', 0), ('cake', 0), ('calf', 0), ('calk', 0), ('call', 0), ('calm', 0), ('came', 0)] process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['c', 'a'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['c', 'a', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'cam'} _update_candidates() self._typed_string=['c', 'a', 'm'] tabsqlitedb.select_words() input_phrase=b'cam' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'cam' tabsqlitedb.select_words() hunspell: best_candidates=[('cam', 0), ('came', 0), ('camp', 0), ('camel', 0), ('cameo', 0), ('campy', 0), ('camber', 0), ('camera', 0), ("camp's", 0), ('camper', 0), ('campus', 0), ('cambial', 0), ('cambium', 0), ('cambric', 0), ('camphor', 0), ('camping', 0), ('camellia', 0), ('camisole', 0), ('campaign', 0), ('campfire', 0)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['c', 'a', 'm'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['c', 'a', 'm', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'came'} _update_candidates() self._typed_string=['c', 'a', 'm', 'e'] tabsqlitedb.select_words() input_phrase=b'came' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'came' tabsqlitedb.select_words() hunspell: best_candidates=[('came', 0), ('camel', 0), ('cameo', 0), ('camera', 0), ('camellia', 0), ('camelhair', 0), ('cameraman', 0), ('cameramen', 0), ('camerawork', 0), ('camerawoman', 0), ('camerawomen', 0), ('cam', -1), ('acme', -1), ('cams', -1), ('cane', -1), ('care', -1), ('case', -1), ('come', -1), ('dame', -1), ('lame', -1)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['c', 'a', 'm', 'e'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['c', 'a', 'm', 'e', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'camel'} _update_candidates() self._typed_string=['c', 'a', 'm', 'e', 'l'] tabsqlitedb.select_words() input_phrase=b'camel' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'camel' tabsqlitedb.select_words() hunspell: best_candidates=[('camel', 0), ('camellia', 0), ('camelhair', 0), ('came', -1), ('Camel', -1), ('cameo', -1), ('came l', -1), ('camels', -1)] process_key_event() KeyEvent object: val=65470 code=0 state=0x00000000 name='F1' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'camel', input_phrase=b'camel' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'camel', 'input_phrase': 'camel', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'camel' phrase=b'camel' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323933.3671608, 'phrase': 'camel', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'camel', 'p_phrase': ''} process_key_event() KeyEvent object: val=95 code=0 state=0x00000000 name='underscore' unicode='_' msymbol='_' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=95 code=0 state=0x00000000 name='underscore' unicode='_' msymbol='_' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['_'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['_'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '_'} _update_candidates() self._typed_string=['_'] process_key_event() KeyEvent object: val=99 code=0 state=0x00000000 name='c' unicode='c' msymbol='c' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['c'] _insert_string_at_cursor() self._typed_string=['_'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['_', 'c'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '_c'} _update_candidates() self._typed_string=['_', 'c'] tabsqlitedb.select_words() input_phrase=b'c' p_phrase=b'camel' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('c', 0), ('ca', 0), ('cc', 0), ('cf', 0), ('cg', 0), ('ch', 0), ('ck', 0), ('cl', 0), ('cm', 0), ('co', 0), ('ct', 0), ('cu', 0), ('cw', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('camel', 1.0), ('c', 0), ('ca', 0), ('cc', 0), ('cf', 0), ('cg', 0), ('ch', 0), ('ck', 0), ('cl', 0), ('cm', 0), ('co', 0), ('ct', 0), ('cu', 0), ('cw', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0)] process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['_', 'c'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['_', 'c', 'a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '_ca'} _update_candidates() self._typed_string=['_', 'c', 'a'] tabsqlitedb.select_words() input_phrase=b'ca' p_phrase=b'camel' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('ca', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0), ('cat', 0), ('caw', 0), ('cay', 0), ('cafe', 0), ('caff', 0), ('cage', 0), ('cake', 0), ('calf', 0), ('calk', 0), ('call', 0), ('calm', 0), ('came', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('camel', 1.0), ('ca', 0), ('cab', 0), ('cad', 0), ('cal', 0), ('cam', 0), ('can', 0), ('cap', 0), ('car', 0), ('cat', 0), ('caw', 0), ('cay', 0), ('cafe', 0), ('caff', 0), ('cage', 0), ('cake', 0), ('calf', 0), ('calk', 0), ('call', 0), ('calm', 0)] process_key_event() KeyEvent object: val=109 code=0 state=0x00000000 name='m' unicode='m' msymbol='m' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['m'] _insert_string_at_cursor() self._typed_string=['_', 'c', 'a'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['_', 'c', 'a', 'm'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '_cam'} _update_candidates() self._typed_string=['_', 'c', 'a', 'm'] tabsqlitedb.select_words() input_phrase=b'cam' p_phrase=b'camel' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('cam', 0), ('came', 0), ('camp', 0), ('camel', 0), ('cameo', 0), ('campy', 0), ('camber', 0), ('camera', 0), ("camp's", 0), ('camper', 0), ('campus', 0), ('cambial', 0), ('cambium', 0), ('cambric', 0), ('camphor', 0), ('camping', 0), ('camellia', 0), ('camisole', 0), ('campaign', 0), ('campfire', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('camel', 1.0), ('cam', 0), ('came', 0), ('camp', 0), ('cameo', 0), ('campy', 0), ('camber', 0), ('camera', 0), ("camp's", 0), ('camper', 0), ('campus', 0), ('cambial', 0), ('cambium', 0), ('cambric', 0), ('camphor', 0), ('camping', 0), ('camellia', 0), ('camisole', 0), ('campaign', 0), ('campfire', 0)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['_', 'c', 'a', 'm'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['_', 'c', 'a', 'm', 'e'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '_came'} _update_candidates() self._typed_string=['_', 'c', 'a', 'm', 'e'] tabsqlitedb.select_words() input_phrase=b'came' p_phrase=b'camel' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('came', 0), ('camel', 0), ('cameo', 0), ('camera', 0), ('camellia', 0), ('camelhair', 0), ('cameraman', 0), ('cameramen', 0), ('camerawork', 0), ('camerawoman', 0), ('camerawomen', 0), ('cam', -1), ('acme', -1), ('cams', -1), ('cane', -1), ('care', -1), ('case', -1), ('come', -1), ('dame', -1), ('lame', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('camel', 1.0), ('came', 0), ('cameo', 0), ('camera', 0), ('camellia', 0), ('camelhair', 0), ('cameraman', 0), ('cameramen', 0), ('camerawork', 0), ('camerawoman', 0), ('camerawomen', 0), ('cam', -1), ('acme', -1), ('cams', -1), ('cane', -1), ('care', -1), ('case', -1), ('come', -1), ('dame', -1), ('lame', -1)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['_', 'c', 'a', 'm', 'e'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['_', 'c', 'a', 'm', 'e', 'l'] _update_transliterated_strings() self._transliterated_strings={'NoIme': '_camel'} _update_candidates() self._typed_string=['_', 'c', 'a', 'm', 'e', 'l'] tabsqlitedb.select_words() input_phrase=b'camel' p_phrase=b'camel' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('camel', 0), ('camellia', 0), ('camelhair', 0), ('came', -1), ('Camel', -1), ('cameo', -1), ('came l', -1), ('camels', -1)] tabsqlitedb.select_words() Unigram best_candidates=[('camel', 1.0), ('camellia', 0), ('camelhair', 0), ('came', -1), ('Camel', -1), ('cameo', -1), ('came l', -1), ('camels', -1)] process_key_event() KeyEvent object: val=65475 code=0 state=0x00000000 name='F6' unicode='' msymbol='' control=False mod1=False mod5=False release=False tabsqlitedb.check_phrase_and_update_frequency() phrase=b'\xf0\x9f\x90\xab', input_phrase=b'camel' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': '🐫', 'input_phrase': 'camel', 'p_phrase': 'camel'} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'camel' phrase=b'\xf0\x9f\x90\xab' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323934.2433555, 'phrase': '🐫', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'camel', 'p_phrase': 'camel'} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok test_korean (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:15 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) get_hunspell_dictionary_wordlist(): /usr/share/myspell/ko_KR.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=UTF-8 found in /usr/share/myspell/ko_KR.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/ko_KR.dic using UTF-8 encoding. instantiating Transliterator(ko-romaja) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': ''} Hunspell.init_dictionaries() dictionary_names=['ko_KR'] Dictionary.__init__(name=ko_KR) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/ko_KR.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=UTF-8 found in /usr/share/myspell/ko_KR.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/ko_KR.dic using UTF-8 encoding. process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '아'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1' tabsqlitedb.select_words() hunspell: best_candidates=[('아', 0), ('악', 0), ('안', 0), ('알', 0), ('암', 0), ('앗', 0), ('앙', 0), ('앞', 0), ('아가', 0), ('아교', 0), ('아귀', 0), ('아기', 0), ('아까', 0), ('아내', 0), ('아냐', 0), ('아뇨', 0), ('아니', 0), ('아래', 0), ('아류', 0), ('아마', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['a'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['a', 'n'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안'} _update_candidates() self._typed_string=['a', 'n'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab' tabsqlitedb.select_words() hunspell: best_candidates=[('안', 0), ('안개', 0), ('안과', 0), ('안구', 0), ('안내', 0), ('안다', 0), ('안대', 0), ('안도', 0), ('안료', 0), ('안마', 0), ('안무', 0), ('안보', 0), ('안부', 0), ('안시', 0), ('안위', 0), ('안주', 0), ('안채', 0), ('안타', 0), ('안감', 0), ('안건', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['a', 'n'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['a', 'n', 'n'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안ᄂ'} _update_candidates() self._typed_string=['a', 'n', 'n'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82' tabsqlitedb.select_words() hunspell: best_candidates=[('안내', 0), ('안녕', 0), ('안내서', 0), ('안내소', 0), ('안내양', 0), ('안내원', 0), ('안녕히', 0), ('안내하다', 0), ('안내서들', 0), ('안녕하다', 0), ('안내양들', 0), ('안내원들', 0), ('안내해가다', 0), ('안내해내다', 0), ('안내해두다', 0), ('안내해보다', 0), ('안내해오다', 0), ('안내해주다', 0), ('안내해지다', 0), ('안내해있다', 0)] process_key_event() KeyEvent object: val=121 code=0 state=0x00000000 name='y' unicode='y' msymbol='y' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['y'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안니'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xb5' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xb5' tabsqlitedb.select_words() hunspell: best_candidates=[('안니', 0), ('아니', -1), ('난이', -1), ('아닌', -1), ('안기', -1), ('안나', -1), ('안내', -1), ('안네', -1), ('안시', -1), ('안이', -1), ('안지', -1), ('앉니', -1), ('않니', -1), ('앗니', -1), ('언니', -1)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녜'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa8' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa8' tabsqlitedb.select_words() hunspell: best_candidates=[('안나', -1), ('안내', -1), ('안네', -1), ('안니', -1), ('앉네', -1), ('않네', -1)] process_key_event() KeyEvent object: val=111 code=0 state=0x00000000 name='o' unicode='o' msymbol='o' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['o'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녀'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕', 0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안년'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xab' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xab' tabsqlitedb.select_words() hunspell: best_candidates=[('만년', -1), ('반년', -1), ('악년', -1), ('안낸', -1), ('안녕', -1), ('안는', -1), ('안면', -1), ('원년', -1), ('안 년', -1)] process_key_event() KeyEvent object: val=103 code=0 state=0x00000000 name='g' unicode='g' msymbol='g' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['g'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕', 0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕ᄒ'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0), ('안녕해버리다', 0)] process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕하'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕하다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕하여있다', 0), ('안녕한체하다', 0), ('안녕하여나가다', 0), ('안녕하여드리다', 0), ('안녕하여버리다', 0), ('안녕한듯하다', 0), ('안녕한양하다', 0), ('안녕할듯하다', 0), ('안녕할만하다', 0), ('안녕할법하다', 0), ('안녕할뻔하다', 0), ('안녕한듯싶다', 0)] process_key_event() KeyEvent object: val=108 code=0 state=0x00000000 name='l' unicode='l' msymbol='l' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['l'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a'] _insert_string_at_cursor() self._typed_string_cursor=10 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a', 'l'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕할'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a', 'l'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕할', 0), ('안녕할듯하다', 0), ('안녕할만하다', 0), ('안녕할법하다', 0), ('안녕할뻔하다', 0), ('안녕할듯싶다', 0), ('안녕할성싶다', 0), ('안녕한', -1), ('안녕함', -1), ('안녕 할', -1)] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf', input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': '안녕할', 'input_phrase': '안녕할', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323949.5936055, 'phrase': '안녕할', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': '안녕할', 'p_phrase': ''} process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '아'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('아', 0), ('악', 0), ('안', 0), ('알', 0), ('암', 0), ('앗', 0), ('앙', 0), ('앞', 0), ('아가', 0), ('아교', 0), ('아귀', 0), ('아기', 0), ('아까', 0), ('아내', 0), ('아냐', 0), ('아뇨', 0), ('아니', 0), ('아래', 0), ('아류', 0), ('아마', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('아', 0), ('악', 0), ('안', 0), ('알', 0), ('암', 0), ('앗', 0), ('앙', 0), ('앞', 0), ('아가', 0), ('아교', 0), ('아귀', 0), ('아기', 0), ('아까', 0), ('아내', 0), ('아냐', 0), ('아뇨', 0), ('아니', 0), ('아래', 0), ('아류', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['a'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['a', 'n'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안'} _update_candidates() self._typed_string=['a', 'n'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안', 0), ('안개', 0), ('안과', 0), ('안구', 0), ('안내', 0), ('안다', 0), ('안대', 0), ('안도', 0), ('안료', 0), ('안마', 0), ('안무', 0), ('안보', 0), ('안부', 0), ('안시', 0), ('안위', 0), ('안주', 0), ('안채', 0), ('안타', 0), ('안감', 0), ('안건', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('안', 0), ('안개', 0), ('안과', 0), ('안구', 0), ('안내', 0), ('안다', 0), ('안대', 0), ('안도', 0), ('안료', 0), ('안마', 0), ('안무', 0), ('안보', 0), ('안부', 0), ('안시', 0), ('안위', 0), ('안주', 0), ('안채', 0), ('안타', 0), ('안감', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['a', 'n'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['a', 'n', 'n'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안ᄂ'} _update_candidates() self._typed_string=['a', 'n', 'n'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안내', 0), ('안녕', 0), ('안내서', 0), ('안내소', 0), ('안내양', 0), ('안내원', 0), ('안녕히', 0), ('안내하다', 0), ('안내서들', 0), ('안녕하다', 0), ('안내양들', 0), ('안내원들', 0), ('안내해가다', 0), ('안내해내다', 0), ('안내해두다', 0), ('안내해보다', 0), ('안내해오다', 0), ('안내해주다', 0), ('안내해지다', 0), ('안내해있다', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('안내', 0), ('안녕', 0), ('안내서', 0), ('안내소', 0), ('안내양', 0), ('안내원', 0), ('안녕히', 0), ('안내하다', 0), ('안내서들', 0), ('안녕하다', 0), ('안내양들', 0), ('안내원들', 0), ('안내해가다', 0), ('안내해내다', 0), ('안내해두다', 0), ('안내해보다', 0), ('안내해오다', 0), ('안내해주다', 0), ('안내해지다', 0)] process_key_event() KeyEvent object: val=121 code=0 state=0x00000000 name='y' unicode='y' msymbol='y' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['y'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안니'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xb5' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안니', 0), ('아니', -1), ('난이', -1), ('아닌', -1), ('안기', -1), ('안나', -1), ('안내', -1), ('안네', -1), ('안시', -1), ('안이', -1), ('안지', -1), ('앉니', -1), ('않니', -1), ('앗니', -1), ('언니', -1)] process_key_event() KeyEvent object: val=101 code=0 state=0x00000000 name='e' unicode='e' msymbol='e' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['e'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y'] _insert_string_at_cursor() self._typed_string_cursor=4 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녜'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa8' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안나', -1), ('안내', -1), ('안네', -1), ('안니', -1), ('앉네', -1), ('않네', -1)] process_key_event() KeyEvent object: val=111 code=0 state=0x00000000 name='o' unicode='o' msymbol='o' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['o'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e'] _insert_string_at_cursor() self._typed_string_cursor=5 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녀'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕', 0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('안녕', 0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0)] process_key_event() KeyEvent object: val=110 code=0 state=0x00000000 name='n' unicode='n' msymbol='n' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['n'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o'] _insert_string_at_cursor() self._typed_string_cursor=6 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안년'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xab' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('만년', -1), ('반년', -1), ('악년', -1), ('안낸', -1), ('안녕', -1), ('안는', -1), ('안면', -1), ('원년', -1), ('안 년', -1)] process_key_event() KeyEvent object: val=103 code=0 state=0x00000000 name='g' unicode='g' msymbol='g' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['g'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n'] _insert_string_at_cursor() self._typed_string_cursor=7 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕', 0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('안녕', 0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0)] process_key_event() KeyEvent object: val=104 code=0 state=0x00000000 name='h' unicode='h' msymbol='h' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['h'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g'] _insert_string_at_cursor() self._typed_string_cursor=8 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕ᄒ'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0), ('안녕해버리다', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('안녕히', 0), ('안녕하다', 0), ('안녕해가다', 0), ('안녕해내다', 0), ('안녕해두다', 0), ('안녕해보다', 0), ('안녕해오다', 0), ('안녕해주다', 0), ('안녕해지다', 0), ('안녕해있다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕해나가다', 0), ('안녕해드리다', 0)] process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h'] _insert_string_at_cursor() self._typed_string_cursor=9 _update_transliterated_strings() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a'] _update_transliterated_strings() self._transliterated_strings={'ko-romaja': '안녕하'} _update_candidates() self._typed_string=['a', 'n', 'n', 'y', 'e', 'o', 'n', 'g', 'h', 'a'] tabsqlitedb.select_words() input_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1' p_phrase=b'\xe1\x84\x8b\xe1\x85\xa1\xe1\x86\xab\xe1\x84\x82\xe1\x85\xa7\xe1\x86\xbc\xe1\x84\x92\xe1\x85\xa1\xe1\x86\xaf' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('안녕하다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕하여있다', 0), ('안녕한체하다', 0), ('안녕하여나가다', 0), ('안녕하여드리다', 0), ('안녕하여버리다', 0), ('안녕한듯하다', 0), ('안녕한양하다', 0), ('안녕할듯하다', 0), ('안녕할만하다', 0), ('안녕할법하다', 0), ('안녕할뻔하다', 0), ('안녕한듯싶다', 0)] tabsqlitedb.select_words() Unigram best_candidates=[('안녕할', 1.0), ('안녕하다', 0), ('안녕하여가다', 0), ('안녕하여내다', 0), ('안녕하여두다', 0), ('안녕하여보다', 0), ('안녕하여오다', 0), ('안녕하여주다', 0), ('안녕하여지다', 0), ('안녕하여있다', 0), ('안녕한체하다', 0), ('안녕하여나가다', 0), ('안녕하여드리다', 0), ('안녕하여버리다', 0), ('안녕한듯하다', 0), ('안녕한양하다', 0), ('안녕할듯하다', 0), ('안녕할만하다', 0), ('안녕할법하다', 0), ('안녕할뻔하다', 0)] set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. ok test_latn_post (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:31 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(t-latn-post) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 't-latn-post': ''} process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a', 't-latn-post': 'a'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] process_key_event() KeyEvent object: val=34 code=0 state=0x00000000 name='quotedbl' unicode='"' msymbol='"' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['"'] _insert_string_at_cursor() self._typed_string=['a'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['a', '"'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a"', 't-latn-post': 'ä'} _update_candidates() self._typed_string=['a', '"'] tabsqlitedb.select_words() input_phrase=b'a\xcc\x88' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a\xcc\x88' tabsqlitedb.select_words() hunspell: best_candidates=[] tabsqlitedb.select_words() input_phrase=b'a"' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a"' tabsqlitedb.select_words() hunspell: best_candidates=[] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'a\xcc\x88', input_phrase=b'a' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'ä', 'input_phrase': 'a', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'a' phrase=b'a\xcc\x88' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323952.2052977, 'phrase': 'ä', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'a', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} ok test_marathi_add_direct_input (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:33 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(mr-itrans) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'mr-itrans': ''} Hunspell.init_dictionaries() dictionary_names=['mr_IN'] Dictionary.__init__(name=mr_IN) load_dictionary() ... get_hunspell_dictionary_wordlist(): No file mr_IN.dic found in ['/usr/share/hunspell', '/usr/share/myspell', '/usr/share/myspell/dicts'] Hunspell.init_dictionaries() dictionary_names=['mr_IN', 'en_GB'] Dictionary.__init__(name=mr_IN) load_dictionary() ... get_hunspell_dictionary_wordlist(): No file mr_IN.dic found in ['/usr/share/hunspell', '/usr/share/myspell', '/usr/share/myspell/dicts'] Dictionary.__init__(name=en_GB) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_GB.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_GB.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_GB.dic using ISO8859-1 encoding. instantiating Transliterator(mr-itrans) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': '', 'mr-itrans': ''} process_key_event() KeyEvent object: val=103 code=0 state=0x00000000 name='g' unicode='g' msymbol='g' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=103 code=0 state=0x00000000 name='g' unicode='g' msymbol='g' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['g'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['g'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'g', 'mr-itrans': 'ग्'} _update_candidates() self._typed_string=['g'] tabsqlitedb.select_words() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x8d' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x8d' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'g' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'g' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['g'] _insert_string_at_cursor() self._typed_string_cursor=1 _update_transliterated_strings() self._typed_string=['g', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'gu', 'mr-itrans': 'गु'} _update_candidates() self._typed_string=['g', 'u'] tabsqlitedb.select_words() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'gu' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'gu' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=114 code=0 state=0x00000000 name='r' unicode='r' msymbol='r' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['r'] _insert_string_at_cursor() self._typed_string=['g', 'u'] _insert_string_at_cursor() self._typed_string_cursor=2 _update_transliterated_strings() self._typed_string=['g', 'u', 'r'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'gur', 'mr-itrans': 'गुर्'} _update_candidates() self._typed_string=['g', 'u', 'r'] tabsqlitedb.select_words() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x8d' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x8d' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'gur' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'gur' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=117 code=0 state=0x00000000 name='u' unicode='u' msymbol='u' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['u'] _insert_string_at_cursor() self._typed_string=['g', 'u', 'r'] _insert_string_at_cursor() self._typed_string_cursor=3 _update_transliterated_strings() self._typed_string=['g', 'u', 'r', 'u'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'guru', 'mr-itrans': 'गुरु'} _update_candidates() self._typed_string=['g', 'u', 'r', 'u'] tabsqlitedb.select_words() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'guru' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'guru' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=65364 code=0 state=0x00000004 name='Down' unicode='' msymbol='C-' control=True mod1=False mod5=False release=False _update_candidates() self._typed_string=['g', 'u', 'r', 'u'] tabsqlitedb.select_words() input_phrase=b'guru' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'guru' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=65364 code=0 state=0x00000004 name='Down' unicode='' msymbol='C-' control=True mod1=False mod5=False release=False _update_candidates() self._typed_string=['g', 'u', 'r', 'u'] tabsqlitedb.select_words() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' tabsqlitedb.select_words() input_phrase=b'guru' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'guru' Traceback (most recent call last): File "../engine/hunspell_table.py", line 678, in _update_candidates pp_phrase=self._pp_phrase) File "../engine/tabsqlitedb.py", line 480, in select_words x for x in self.hunspell_obj.suggest(input_phrase)]) File "../engine/hunspell_suggest.py", line 305, in suggest dic_path = os.path.join(dictionary.loc, dictionary.name+'.dic') AttributeError: 'Dictionary' object has no attribute 'loc' process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81', input_phrase=b'\xe0\xa4\x97\xe0\xa4\xb0' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'गुरु', 'input_phrase': 'गर', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'\xe0\xa4\x97\xe0\xa4\xb0' phrase=b'\xe0\xa4\x97\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323956.0416756, 'phrase': 'गुरु', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'गर', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. ok test_set_page_size (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:37 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) set_page_size(3, update_dconf = True) set_page_size(5, update_dconf = True) set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok test_single_char_commit_with_arrow_right (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:39 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) process_key_event() KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=98 code=0 state=0x00000000 name='b' unicode='b' msymbol='b' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['b'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['b'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'b'} _update_candidates() self._typed_string=['b'] tabsqlitedb.select_words() input_phrase=b'b' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'b' tabsqlitedb.select_words() hunspell: best_candidates=[('b', 0), ('be', 0), ('bf', 0), ('bi', 0), ('bk', 0), ('bl', 0), ('bu', 0), ('bx', 0), ('by', 0), ('baa', 0), ('bad', 0), ('bag', 0), ('bah', 0), ('ban', 0), ('bap', 0), ('bar', 0), ('bat', 0), ('bay', 0), ('bbl', 0), ('bed', 0)] process_key_event() KeyEvent object: val=65363 code=0 state=0x00000000 name='Right' unicode='' msymbol='' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'b', input_phrase=b'b' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'b', 'input_phrase': 'b', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'b' phrase=b'b' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323959.2470424, 'phrase': 'b', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'b', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok test_single_char_commit_with_space (test_itb.ItbTestCase) ... (process:13695): IBUS-WARNING **: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/typing-booster/typing-booster-de-de:lookuptableorientation] does not exist. tabsqlitedb.__init__(config_filename = ../hunspell-tables/de_DE.conf, user_db_file = :memory:) Hunspell.__init__(dictionary_names=['de_DE']) Hunspell.init_dictionaries() dictionary_names=['de_DE'] Dictionary.__init__(name=de_DE) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/de_DE.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/de_DE.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/de_DE.dic using ISO8859-1 encoding. Connect to the database :memory:. TypingBoosterEngine.__init__(bus=, obj_path=/com/redhat/IBus/engines/table/typing_booster_de_DE/engine/0, db=) TypingBoosterEngine.__init__() self._config_section = engine/typing-booster/typing-booster-de-de Hunspell.init_dictionaries() dictionary_names=['en_US'] Dictionary.__init__(name=en_US) load_dictionary() ... get_hunspell_dictionary_wordlist(): /usr/share/myspell/en_US.dic file found. get_hunspell_dictionary_wordlist(): dictionary encoding=ISO8859-1 found in /usr/share/myspell/en_US.aff get_hunspell_dictionary_wordlist(): Successfully loaded /usr/share/myspell/en_US.dic using ISO8859-1 encoding. Instantiate EmojiMatcher(languages = ['en_US'] EmojiMatcher() instantiated. instantiating Transliterator(NoIme) _update_transliterated_strings() self._typed_string=[] _update_transliterated_strings() self._transliterated_strings={'NoIme': ''} --- Initialized and ready for input: 2017-01-13: 16:12:40 --- set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(False, update_dconf = True) set_page_size(6, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(False, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) process_key_event() KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _process_key_event() self.is_empty(): KeyEvent object: val=97 code=0 state=0x00000000 name='a' unicode='a' msymbol='a' control=False mod1=False mod5=False release=False _insert_string_at_cursor() string_to_insert=['a'] _insert_string_at_cursor() self._typed_string=[] _insert_string_at_cursor() self._typed_string_cursor=0 _update_transliterated_strings() self._typed_string=['a'] _update_transliterated_strings() self._transliterated_strings={'NoIme': 'a'} _update_candidates() self._typed_string=['a'] tabsqlitedb.select_words() input_phrase=b'a' p_phrase=b'' pp_phrase=b'' Hunspell.suggest() input_phrase=b'a' tabsqlitedb.select_words() hunspell: best_candidates=[('a', 0), ('ab', 0), ('ac', 0), ('ad', 0), ('ah', 0), ('am', 0), ('an', 0), ('at', 0), ('av', 0), ('aw', 0), ('ax', 0), ('aah', 0), ('abs', 0), ('ace', 0), ('act', 0), ('add', 0), ('adj', 0), ('ado', 0), ('adv', 0), ('aft', 0)] process_key_event() KeyEvent object: val=32 code=0 state=0x00000000 name='space' unicode=' ' msymbol=' ' control=False mod1=False mod5=False release=False _process_key_event() commit triggered. tabsqlitedb.check_phrase_and_update_frequency() phrase=b'a', input_phrase=b'a' tabsqlitedb.check_phrase_and_update_frequency() sqlstr= SELECT max(user_freq) FROM user_db.phrases WHERE input_phrase = :input_phrase AND phrase = :phrase AND p_phrase = :p_phrase AND pp_phrase = :pp_phrase GROUP BY phrase ; tabsqlitedb.check_phrase_and_update_frequency() sqlargs={'pp_phrase': '', 'phrase': 'a', 'input_phrase': 'a', 'p_phrase': ''} check_phrase_and_update_frequency() result=[] tabsqlitedb.add_phrase() input_phrase=b'a' phrase=b'a' user_freq=1 tabsqlitedb.add_phrase() insert_sqlstr= INSERT INTO user_db.phrases (input_phrase, phrase, p_phrase, pp_phrase, user_freq, timestamp) VALUES (:input_phrase, :phrase, :p_phrase, :pp_phrase, :user_freq, :timestamp) ; tabsqlitedb.add_phrase() insert_sqlargs={'timestamp': 1484323960.6769943, 'phrase': 'a', 'user_freq': 1, 'pp_phrase': '', 'input_phrase': 'a', 'p_phrase': ''} set_emoji_prediction_mode(True, update_dconf = True) set_off_the_record_mode(False, update_dconf = True) set_auto_commit_characters(, update_dconf = True) set_tab_enable(False, update_dconf = True) set_remember_last_used_preedit_ime(True, update_dconf = True) set_page_size(6, update_dconf = True) set_lookup_table_orientation(, update_dconf = True) set_min_char_complete(1, update_dconf = True) set_show_number_of_candidates(True, update_dconf = True) set_show_status_info_in_auxiliary_text(True, update_dconf = True) set_use_digits_as_select_keys(True, update_dconf = True) ok ====================================================================== ERROR: test_accent_insensitive_matching_french_dictionary (test_itb.ItbTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/ibus-typing-booster-1.5.17/tests/test_itb.py", line 528, in test_accent_insensitive_matching_french_dictionary self.engine._candidates[0][0]), IndexError: list index out of range ---------------------------------------------------------------------- Ran 17 tests in 72.146s FAILED (errors=1) FAIL run_tests (exit status: 1) Processing files: ibus-typing-booster-1.5.17-1.fc25.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.6WFwMc + exit 0 + umask 022 + cd /builddir/build/BUILD + cd ibus-typing-booster-1.5.17 + DOCDIR=/builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/doc/ibus-typing-booster + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/doc/ibus-typing-booster + cp -pr AUTHORS /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/doc/ibus-typing-booster + cp -pr COPYING /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/doc/ibus-typing-booster + cp -pr README /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch/usr/share/doc/ibus-typing-booster + exit 0 Provides: appdata() appdata(typing-booster.appdata.xml) application() application(ibus-setup-typing-booster.desktop) ibus-typing-booster = 1.5.17-1.fc25 pkgconfig(ibus-typing-booster) = 1.5.17 Requires(interp): /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(postun): /bin/sh Requires: /bin/sh /usr/bin/pkg-config Recommends: gdouros-symbola-fonts Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch Wrote: /builddir/build/RPMS/ibus-typing-booster-1.5.17-1.fc25.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.Bqylyb + umask 022 + cd /builddir/build/BUILD + cd ibus-typing-booster-1.5.17 + /usr/bin/rm -rf /builddir/build/BUILDROOT/ibus-typing-booster-1.5.17-1.fc25.noarch + exit 0 Child return code was: 0