+
    ~}j                     8   ^ RI t ^ RIt^ RIt^ RIHt ]P
                  P                  ]P
                  P                  ]4      R4      t	]P
                  P                  ]P
                  P                  ]4      R4      t
 ! R R4      tRsR tR tR	 t]R
 4       tR# )    N)contextmanagerz../../database/app.dbz../../database/schema.sqlc                      a a ] tR t^	t oRt]P                  ! 4       tV 3R ltR t	R t
R tR t]R 4       tRtVtV ;t# )	ConnectionPoolNc                ,  < V P                   f]   V P                  ;_uu_ 4        V P                   f&   \        SV `  V 4      V n         RV P                   n        R R R 4       V P                   # V P                   #   + '       g   i     T P                   # ; i)NF)	_instance_locksuper__new___initialized)cls	__class__s   &backend/utils/database.pyr
   ConnectionPool.__new__   sj    == ==($)GOC$8CM16CMM.  }}s}}	  }}s   4A88B	c                \    V P                   '       g   V P                  4        R V n         R# R# )TN)r   
_init_poolselfs   &r   _ensure_initialized"ConnectionPool._ensure_initialized   s%       OO $D !    c                <    \         V n        V P                  4        R # N)DATABASE_PATH_db_path_init_databaser   s   &r   r   ConnectionPool._init_pool   s    %r   c                   \         P                  P                  V P                  4      p\         P                  P	                  V4      '       g%   \         P
                  ! V4       \        R V 24       \         P                  P	                  V P                  4      '       g   \        R4       V P                  4       p\        \        RRR7      ;_uu_ 4       pVP                  4       pRRR4       VP                  X4       VP                  4        VP                  4        \        R4       M\        R4       V P                  4       pVP                  R4       VP                  R	4       VP                  R
4       VP                  R4       VP                  4        VP                  4        \        R4       R#   + '       g   i     L; i)zCreated directory: u'   数据库不存在，创建新数据库rzutf-8)encodingNu   数据库初始化成功u$   数据库已存在，跳过初始化zPRAGMA journal_mode=WALzPRAGMA synchronous=NORMALzPRAGMA busy_timeout=30000zPRAGMA cache_size=-64000u*   数据库优化完成（启用WAL模式）)ospathdirnamer   existsmakedirsprint_create_connectionopenSCHEMA_PATHreadexecutescriptcommitcloseexecute)r   db_dirconnfschemas   &    r   r   ConnectionPool._init_database   s.   /ww~~f%%KK'x01ww~~dmm,,;<**,Dk399Q :v&KKMJJL,-89&&(./0101/0

:;! :9s   F99G		c                x    \         P                  ! V P                  R RRR7      p\         P                  Vn        V# )g      >@FN)timeoutcheck_same_threadisolation_level)sqlite3connectr   Rowrow_factoryr   r/   s   & r   r&   !ConnectionPool._create_connection9   s3    MM# 	
 #;;r   c              #     "   V P                  4       p Vx  VP                  4        R #   TP                  4        i ; i5ir   )r&   r,   r;   s   & r   get_connectionConnectionPool.get_connectionC   s/     &&(	JJJLDJJLs   ?* ?<?)r   r   )__name__
__module____qualname____firstlineno__r   	threadingLockr   r
   r   r   r   r&   r   r>   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r   	   sH     INNE%
<6   r   r   c                  Z    \         f   \        4       s \         P                  4        \         # r   )_pool_instancer   r    r   r   	_get_poolrM   M   s"    ')**,r   c                  :    \        4       p V P                  4       pV# r   )rM   r&   )poolr/   s     r   get_dbrP   T   s    ;D""$DKr   c                      \        4        \        4       p  V P                  R 4       V P                  4        V P	                  4        R#   T P	                  4        i ; i)z
            CREATE TABLE IF NOT EXISTS sensitive_words (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                word TEXT UNIQUE NOT NULL,
                created_at DATETIME DEFAULT CURRENT_TIMESTAMP
            )
        N)rM   rP   r-   r+   r,   )r/   s    r   init_dbrR   Y   sB    K8D
  	 	



s   !A	 	Ac               #     "   \        4       p V P                  4       p Vx  VP                  4         TP                  4        R #   \         d   pTP	                  4        ThR p?ii ; i  TP                  4        i ; i5ir   )rM   r&   r+   	Exceptionrollbackr,   )rO   r/   es      r   db_transactionrW   i   sc     ;D""$D

 	

	   	

s3   A?A A?A'A""A''A* *A<<A?)r7   r    rD   
contextlibr   r!   joinr"   __file__r   r(   r   rK   rM   rP   rR   rW   rL   r   r   <module>r[      s     	  %RWW__X68OPggll277??846QR@ @D 
  
 
r   