
    qj                    D    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dS )    )annotationsN)Pathdb_path
str | Pathreturnsqlite3.Connectionc                L   t          |           dk    rt          j        dd          }nSt          |                                           }|j                            dd           t          j        |d          }t          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)r   connpaths      _/home/agent/.hermes/worktrees/FinanceManager-main-deploy/src/jarvis_finance/storage/database.pyr   r      s    
7||z!!zUCCCG}}''))$666tu==={DLL+,,,K    T)	immutabler   boolc               (   t          |                                                                           }|rdnd}t          j        d| d| dd          }t          j        |_        |                    d           |                    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$      s     ==##%%--//D%.=!!IE?1411%11tuUUUD{DLL+,,,LL)***Kr   c                 ~    t          j        dd          } t           j        | _        |                     d           | S )Nr
   Fr   r   )r   r   r   r   r   )r   s    r   connect_memoryr&      s8    ?:???D{DLL+,,,Kr   )r   r   r   r   )r   r   r   r   r   r   )r   r   )
__future__r   r   pathlibr   r   r$   r&    r   r   <module>r*      s    " " " " " "       	 	 	 	 AE 	 	 	 	 	 	     r   