+
    i  c                   s    ^ RI t ^ RIt^ RIHt ^ RIHtHt ^ RIHt Rt	Rt
RtRtR	tR
t ! R R]4      tRtRtR t ! R R]4      tRR ltR# )    N)Path)suppressclosing)MutableMappingz_
  CREATE TABLE IF NOT EXISTS Dict (
    key BLOB UNIQUE NOT NULL,
    value BLOB NOT NULL
  )
zSELECT COUNT (key) FROM Dictz2SELECT value FROM Dict WHERE key = CAST(? AS BLOB)zHREPLACE INTO Dict (key, value) VALUES (CAST(? AS BLOB), CAST(? AS BLOB))z,DELETE FROM Dict WHERE key = CAST(? AS BLOB)zSELECT key FROM Dictc                   s    ] tR t^tRtR# )error N)__name__
__module____qualname____firstlineno____static_attributes__r       $/usr/lib64/python3.14/dbm/sqlite3.pyr   r      s    r   r   z"DBM object has already been closedz,DBM object does not support reinitializationc                 s    \        V 4      p V P                  4       P                  4       pR V9   d   VP                  R R4      pK  V# )z//Z/)r   ZabsoluteZas_uriZreplace)pathuris   & r   _normalize_urir      s;    :D
--/
 
 
"C
#+kk$$Jr   c                   sn   a a ] tR t^$t oR tR tR tR tR tR t	R t
R tV 3R	 ltR
 tR tRtVtV ;t# )	_Databasec              sp   \        V R 4      '       d   \        \        4      h\        P                  ! V4      pT;R8X  d    RpM;R8X  d    RpMv;R8X  d!    Rp\        V4      P                  VRR7       MOR	8X  d:   Rp\        V4      P                  RR
7       \        V4      P                  VR7       M \        RV: 24      h\        V4      pV RV 2pVR8X  d
   VR,          p \        P                  ! VRRR7      V n        TR8w  df   \        \        P                   4      ;_uu_ 4        T P                  P#                  R4       RRR4       TR8X  d   T P%                  \&        4       R# R# R#   \        P                   d   p\        \        T4      4      hRp?ii ; i  + '       g   i     Lc; i)_cxrZroZwZrwZcZrwcT)modeZexist_okZn)Z
missing_ok)r   z/Flag must be one of 'r', 'w', 'c', or 'n', not z?mode=z&immutable=1)Z
autocommitr   NzPRAGMA journal_mode = wal)Zhasattrr   _ERR_REINITosZfsdecoder   ZtouchZunlinkZ
ValueErrorr   sqlite3Zconnectr   Errorstrr   ZOperationalErrorexecute_executeBUILD_TABLE)selfr   flagr   r   excs   ""$$  r   __init__Z_Database.__init__&   so   4$${{4 T
  dT :T
!!T!2T
  d +  "((,x"1 2 2 T"VD6"4<>!C	"stFDH 4<'2233  !<= 4 u}k*   }} 	"C/!	"
 43s$   (E4 .F%4F"	FF"%F5	c                s    V P                   '       g   \        \        4      h \        V P                   P                  ! V/ VB 4      #   \
        P                   d   p\        \        T4      4      hR p?ii ; iN)r   r   _ERR_CLOSEDr   r   r   r   r   )r   argsZkwargsr   s   &*, r   r   Z_Database._executeO   s\    xxx$$	"488++T<V<==}} 	"C/!	"s   $A A6A11A6c                s    V P                  \        4      ;_uu_ 4       pVP                  4       pR R R 4       V^ ,          #   + '       g   i     X^ ,          # ; ir!   )r   GET_SIZEfetchone)r   curows   &  r   __len__Z_Database.__len__W   s>    ]]8$$++-C %1v %$1vs   A  A	c                s    V P                  \        V34      ;_uu_ 4       pVP                  4       pR R R 4       X'       g   \        V4      hV^ ,          #   + '       g   i     L,; ir!   )r   
LOOKUP_KEYr%   KeyError)r   keyr&   r'   s   &&  r   __getitem__Z_Database.__getitem__\   sF    ]]:v.."++-C /3-1v	 /.s   AA%	c                s4    V P                  \        W34       R # r!   )r   STORE_KV)r   r+   Zvalues   &&&r   __setitem__Z_Database.__setitem__c   s    h-r   c                s    V P                  \        V34      ;_uu_ 4       pVP                  '       g   \        V4      h R R R 4       R #   + '       g   i     R # ; ir!   )r   
DELETE_KEYZrowcountr*   )r   r+   r&   s   && r   __delitem__Z_Database.__delitem__f   s>    ]]:v..";;;sm#  /...s   A		A	c              #  s  "    V P                  \        4      ;_uu_ 4       pV F  pV^ ,          x  K  	  RRR4       R#   + '       g   i     R# ; i  \        P                   d   p\	        \        T4      4      hRp?ii ; i5i)r    N)r   	ITER_KEYSr   r   r   r   )r   r&   r'   r   s   &   r   __iter__Z_Database.__iter__k   s_     	"y))RCa&L  *))) }} 	"C/!	"sI   BA A A B A	A BA B)A==BBc                sp    V P                   '       d$   V P                   P                  4        R V n         R # R # r!   )r   closer      &r   r3   Z_Database.closes   s%    888HHNNDH r   c                s2   < \        \        SV `	  4       4      # r!   )ZlistZsuperkeys)r   	__class__s   &r   r6   Z_Database.keysx   s    EGLN##r   c                s    V # r!   r   r4   r5   r   	__enter__Z_Database.__enter__{   s    r   c                s&    V P                  4        R # r!   )r3   )r   r#   s   &*r   __exit__Z_Database.__exit__~   s    

r   )r   )r   r   r	   r
   r    r   r(   r,   r.   r0   r2   r3   r6   r8   r9   r   Z__classdictcell__Z__classcell__)r7   Z__classdict__s   @@r   r   r   $   sB     '+R"
.$
"
$ r   r   c               s    \        WVR7      # )a:  Open a dbm.sqlite3 database and return the dbm object.

The 'filename' parameter is the name of the database file.

The optional 'flag' parameter can be one of ...:
    'r' (default): open an existing database for read only access
    'w': open an existing database for read/write access
    'c': create a database if it does not exist; open for read/write access
    'n': always create a new, empty database; open for read/write access

The optional 'mode' parameter is the Unix file access mode of the database;
only used when creating a new database. Default: 0o666.
)r   r   )r   )Zfilenamer   r   s   "&&r   openr:      s     Xt44r   )r   i  )r   r   Zpathlibr   Z
contextlibr   r   Zcollections.abcr   r   r$   r)   r-   r/   r1   ZOSErrorr   r"   r   r   r   r:   r   r   r   <module>r;      sg    	   ( * *A
U;
"		G 	 3<[ [|5r   