+
   dܟNc                   s    R t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ]	! RR4       ^ RI
Ht ^ RIt^ RIt^ RIt]P                  ! R4      t]! ^ 4      sRtR	 R
 ltR R lt ! R R]P,                  4      tR# )z
TypingBoosterEngine Factory
)Dict)OptionalN)require_versionIBusz1.0)r   zibus-typing-boosterc                0    V ^8  d   QhR\         R\         /#    textreturnstrformat   "0/usr/share/ibus-typing-booster/engine/factory.py__annotate__r   ,   s     . .C .C .    c                s8    \         P                  ! \        V 4      # )zGettext translation function.)gettextZdgettext
DOMAINNAMEr      &r   _r   ,   s    J--r   c                r   r   r	   r   r   r   r   r   0   s      S S r   c                s    V # )z{Mark string for translation without actually translating.

Used by gettext tools to extract strings that need translation.
 r   r   r   N_r   0   s	    
 Kr   c                   sl   a a ] tR t^7t oRtV3R lV 3R lltV3R lR ltV3R lV 3R lltRtVt	V ;t
# )	EngineFactoryzTable IM Engine Factoryc                s8   < V ^8  d   QhRS[ P                  RR/# )r   busr   N)r   ZBusr   __classdict__   "r   r   EngineFactory.__annotate__9   s      DHH  r   c                s~  <  \        \        \        P                  ! R 4      4      4      s\        ^8  d   \        P                  RV4       RV n	        / V n
        / V n        Wn        \        SV `9  VP                  4       \         P"                  R7       ^ V n        R#   \
        \        3 d    \        ^ 4      s Li ; i)ZIBUS_TYPING_BOOSTER_DEBUG_LEVELzEngineFactory.__init__(bus=%s)
N)Z
connectionZobject_path)intr
   osZgetenvDEBUG_LEVELZ	TypeError
ValueErrorLOGGERdebugdatabasedatabase_dict
enginedictr   super__init__Zget_connectionr   ZPATH_FACTORY	engine_id)selfr   	__class__s   &&r   r(   ZEngineFactory.__init__9   s    	!BII?@ACK ?LL;SA;?ACIK))+9J9J 	 	L :& 	!a&K	!s   (B B<;B<c                s:   < V ^8  d   QhRS[ RS[P                  /# )r   engine_namer   )r
   hunspell_tableTypingBoosterEnginer   r   r   r   r   K   s#     (' ('"(''5'I'I('r   c                s   \         ^8  d   \        P                  RV4       R\        P                  ! RRV4       R2p WP
                  9   d   V P
                  V,          V n        MRpVR8w  d^   \        P                  P                  V4      pV'       g   \        R4      hVP                  R	4      pVP                  R
4      pRV RV R2p\        P                  ! VR7      V n        V P                  V P
                  V&   WP                  9   d   V P                  V,          pV# \        P                   ! V P"                  V\%        V P&                  4      ,           V P                  VR7      pWpP                  V&   V ;P&                  ^,          un        V#   \(         d8   p\        P+                  RYP,                  P.                  T4       \(        ThRp?ii ; i)i   z/EngineFactory.do_create_engine(engine_name=%s)
z(/com/redhat/IBus/engines/typing_booster/z[^a-zA-Z0-9_/]r   z/engine/zuser.dbztyping-boosterzInvalid engine name.ZlangZnamezuser-Z-z.db)user_db_file)r,   z"Failed to create engine %s: %s: %sN)r    r"   r#   reZsubr%   r$   itb_utilZM17N_ENGINE_NAME_PATTERNZsearchr!   ZgrouptabsqlitedbZTabSqliteDbr&   r-   r.   r   r
   r)   Z	ExceptionZ	exceptionr+   __name__)	r*   r,   Zengine_pathr/   ZmatchZm17n_ime_langZm17n_ime_nameengineZerrors	   &&       r   do_create_engineZEngineFactory.do_create_engineK   s   ?LLB B&&!2CEF!"	'000 $ 2 2; ?("22$==DD')E ()?@@$)KK$7M$)KK$7M%*=/=/#ML + 7 7!-!/26--"";/oo-5 M (;;HH#dnn"55MM +	-
 06,!#M 	'4__55u> &		's&   AF BF (A0F G$2GGc                s   < V ^8  d   QhRR/# )r   r   Nr   r   r   r   r   r   u   s      D r   c                sr  < V P                   P                  4        F+  w  r\        P                  RW4       VP	                  4        K-  	  \        P                  R4       V P
                  P                  4        F+  w  r\        P                  RW4       VP                  4        K-  	  \        SV `!  4        R# )z*Destructor, which finish some task for IMEzDestroying engine %s %szSyncing user database(s)zSyncing %s %sN)	r&   Zitemsr"   Zinfo
do_destroyr%   Z
sync_usrdbr'   Zdestroy)r*   Zkeyr4   r$   r+   s   &   r   r6   ZEngineFactory.do_destroyu   s      ??002KCKK13? 3 	./!//557MCKK7! 8 	r   )r   r$   r%   r)   r&   )r3   Z
__module__Z__qualname__Z__firstlineno____doc__r(   r5   r6   Z__static_attributes__Z__classdictcell__Z__classcell__)r+   r   s   @@r   r   r   7   s,     ! $(' ('T  r   r   )r7   Ztypingr    r   r0   r   Zloggingr   Zgir   Zgi.repositoryr   r-   r2   r1   Z	getLoggerr"   r   r    r   r   r   ZFactoryr   r   r   r   <module>r8      sr   (   	 	         			0	1!f"
.PDLL Pr   