
    qj                    B    d dl mZ d dlZd dlmZ d	dZddd
dZddZy)    )annotationsN)Pathc                8   t        |       dk(  rt        j                  dd      }nMt        |       j	                         }|j
                  j                  dd       t        j                  |d      }t        j                  |_        |j                  d       |S )N:memory:Fcheck_same_threadT)parentsexist_okPRAGMA foreign_keys = ON)
strsqlite3connectr   
expanduserparentmkdirRowrow_factoryexecute)db_pathconnpaths      _/home/agent/.hermes/worktrees/FinanceManager-main-deploy/src/jarvis_finance/storage/database.pyr   r      su    
7|z!zUCG}'')$6tu={{DLL+,K    T)	immutablec               
   t        |       j                         j                         }|rdnd}t        j                  d| d| dd      }t        j
                  |_        |j                  d       |j                  d	       |S )
zNOpen an existing SQLite database without any possible persistence side effect.zmode=ro&immutable=1zmode=rozfile:?TF)urir   r   zPRAGMA query_only = ON)r   r   resolver   r   r   r   r   )r   r   r   queryr   s        r   connect_read_onlyr       ss     =##%--/D%.!IE??U4&%1tuUD{{DLL+,LL)*Kr   c                     t        j                  dd      } t         j                  | _        | j	                  d       | S )Nr   Fr   r   )r   r   r   r   r   )r   s    r   connect_memoryr"      s0    ??:?D{{DLL+,Kr   )r   
str | Pathreturnsqlite3.Connection)r   r#   r   boolr$   r%   )r$   r%   )
__future__r   r   pathlibr   r   r    r"    r   r   <module>r*      s$    "  	 AE 	r   