+
   dܟNc                   s    ^ 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# )i    )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      # N)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 # r    r   r   r   N_r   0   s	    
 Kr   c                   sh   a a ] tR t^7t o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	# )EngineFactoryc                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_pathr0   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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keyr5   r%   r,   s   &   r   r7   ZEngineFactory.do_destroyu   s      ??002KCKK13? 3 	./!//557MCKK7! 8 	r   )r   r%   r&   r*   r'   )
r4   Z
__module__Z__qualname__Z__firstlineno__r)   r6   r7   Z__static_attributes__Z__classdictcell__Z__classcell__)r,   r   s   @@r   r   r   7   s)      $(' ('T  r   r   )Ztypingr    r   r1   r    Zloggingr   Zgir   Zgi.repositoryr   r.   r3   r2   Z	getLoggerr#   r   r!   r   r   r   ZFactoryr   r   r   r   <module>r8      sm   .   	 	         			0	1!f"
.PDLL Pr   