
    -hh-                     |    S SK rS SKrS SKrS SKrSS/rSr	\
r " S S\R                  R                  5      rSS jrg)	    Nerroropeni   c                       \ rS rSr\r\rSS jrS rS rS r	\	r
S rS rS rS	 rS
 rS rS rS rS rS rS r\rS rS r\rS rS rS rSrg)	_Database#   c                     U R                   R                  U5      nX l        US:H  U l        US-   U l        US-   U l        US-   U l        S U l        U R                  U5        U R                  U5        g )Nrs   .dirs   .dats   .bak)
_osfsencode_mode	_readonly_dirfile_datfile_bakfile_index_create_update)selffilebasenamemodeflags       1/opt/python-3.13.8/usr/lib/python3.13/dbm/dumb.py__init___Database.__init__0   sq    xx((6
#+ %w. %w.$w.  	TT    c                    US:X  aA  U R                   U R                  U R                  4 H  n [        R                  " U5        M      [        R                  " U R                   SSS9nUR                  5         g ! [
         a     M]  f = f! [
         a`    US;  a  e [        R                  " U R                   SSS9 nU R                  U R                   5        S S S 5         g ! , (       d  f        g = ff = f)Nnr	   Latin-1encodingcr   w)
r   r   r   r
   removeOSError_ior   close_chmod)r   r   filenamefs       r   r   _Database._createJ   s    3;!]]DMM4==IJJx( J	i@A GGI  
  	+:%$--yAQDMM* BAAA	+s;   A:	 B :
BB1C5<C"C5"
C1	,C51C5c                    SU l         0 U l         [        R                  " U R                  SSS9nU   U HJ  nUR                  5       n[        R                  " U5      u  pEUR                  S5      nXPR                  U'   ML     S S S 5        g ! , (       d  f       g = f! [         ae    US;  a  e U R                  R                  U R                  SSS9 nU R                  U R                  5        S S S 5         g ! , (       d  f        g = ff = f)NFr	   r   r   r!   r#   )	_modifiedr   r&   r   r   rstrip_astliteral_evalencoder%   r(   )r   r   r*   linekeypos_and_siz_pairs         r   r   _Database._update]   s    	8i@A D;;=D,0,=,=d,C)C**Y/C'7KK$	    	+:%t}}cIF!DMM* GFFF	+s5    B AB
B6DC9/D9
D	DDc                    U R                   b  U R                  (       d  g  U R                  R                  U R                  5         U R                  R                  U R                  U R                  5        U R                  R                  U R                  SSS9 nU R                  U R                  5        U R                   R                  5        H/  u  p#UR                  S5      < SU< S3nUR                  U5        M1     S S S 5        SU l        g ! [
         a     Nf = f! [
         a     Nf = f! , (       d  f       N6= f)Nr#   r   r   , 
F)r   r-   r
   unlinkr   r%   renamer   r&   r   r(   itemsdecodewrite)r   r*   r3   r4   entrys        r   _commit_Database._commitr   s     ;;dnn	HHOODMM*	HHOODMM4==9 XX]]4==#	]BaKK&)-):):)<% '*jj&;=MN	 *= C   		
  		 CBs0   %D 0D% A)D5
D"!D"%
D21D25
Ec                 4    U R                   c  [        S5      eg N"DBM object has already been closed)r   r   r   s    r   _verify_open_Database._verify_open   s    ;;<== r   c                 P   [        U[        5      (       a  UR                  S5      nU R                  5         U R                  U   u  p#[
        R                  " U R                  S5       nUR                  U5        UR                  U5      nS S S 5        U$ ! , (       d  f       W$ = f)Nutf-8rb)

isinstancestrr1   rE   r   r&   r   r   seekread)r   r3   possizr*   dats         r   __getitem___Database.__getitem__   s    c3**W%C;;s#XXdmmT*aFF3K&&+C + 
 +* 
s   )#B
B%c                 n   [         R                  " U R                  S5       nUR                  SS5        [	        UR                  5       5      nU[        -   S-
  [        -  [        -  nUR                  SXC-
  -  5        UnUR                  U5        S S S 5        W[        U5      4$ ! , (       d  f       N= f)Nrb+r             )	r&   r   r   rL   inttell
_BLOCKSIZEr=   len)r   valr*   rN   nposs        r   _addval_Database._addval   s    XXdmmU+qFF1aLaffh-C:%)j8JFDGGE48$%CGGCL , SX ,+s   A/B&&
B4c                     [         R                  " U R                  S5       nUR                  U5        UR	                  U5        S S S 5        U[        U5      4$ ! , (       d  f       N= f)NrT   )r&   r   r   rL   r=   r[   )r   rN   r\   r*   s       r   _setval_Database._setval   sJ    XXdmmU+qFF3KGGCL , SX ,+s   #A
A(c                    X R                   U'   [        R                  " U R                  SSS9 nU R	                  U R                  5        UR                  UR                  S5      < SU< S35        S S S 5        g ! , (       d  f       g = f)Nar   r   r7   r8   )r   r&   r   r   r(   r=   r<   )r   r3   r4   r*   s       r   _addkey_Database._addkey   s[    +CXXdmmS9=KK&GG#**Y"79IJK >==s   AA<<
B
c                    U R                   (       a  [        S5      e[        U[        5      (       a  UR	                  S5      nO&[        U[
        [        45      (       d  [        S5      e[        U[        5      (       a  UR	                  S5      nO&[        U[
        [        45      (       d  [        S5      eU R                  5         SU l	        XR                  ;  a!  U R                  XR                  U5      5        g U R                  U   u  p4U[        -   S-
  [        -  n[        U5      [        -   S-
  [        -  nXe::  a  U R                  X25      U R                  U'   g U R                  U5      U R                  U'   g )N'The database is opened for reading onlyrH   zkeys must be bytes or stringszvalues must be bytes or stringsTrV   )r   r   rJ   rK   r1   bytes	bytearray	TypeErrorrE   r-   r   re   r^   rZ   r[   ra   )r   r3   r\   rN   rO   	oldblocks	newblockss          r   __setitem___Database.__setitem__   s-   >>ABBc3**W%CC%!344;<<c3**W%CC%!344=>>kk!LLll3/0 {{3'HCz)A-*<ISJ.2zAI%#'<<#9C 
 $(<<#4C r   c                     U R                   (       a  [        S5      e[        U[        5      (       a  UR	                  S5      nU R                  5         SU l        U R                  U	 U R                  5         g )Nrh   rH   T)	r   r   rJ   rK   r1   rE   r-   r   r?   r   r3   s     r   __delitem___Database.__delitem__   sZ    >>ABBc3**W%CKK
 	r   c                 b     [        U R                  5      $ ! [         a    [        S5      S ef = frB   )listr   rk   r   rD   s    r   keys_Database.keys   6    	H$$ 	H<=4G	H    .c                     U R                  5         U R                  R                  5        Vs/ s H  oX   4PM
     sn$ s  snf N)rE   r   rv   rq   s     r   r;   _Database.items   s:    ,0KK,<,<,>?,>Sdi ,>???s   ?c                     [        U[        5      (       a  UR                  S5      n XR                  ;   $ ! [         a    U R                  c  [        S5      S ee f = f)NrH   rC   )rJ   rK   r1   r   rk   r   rq   s     r   __contains___Database.__contains__   sY    c3**W%C	++%% 	{{"@AtK		s	   6 %Ac                 b     [        U R                  5      $ ! [         a    [        S5      S ef = frB   )iterr   rk   r   rD   s    r   iterkeys_Database.iterkeys  rx   ry   c                 b     [        U R                  5      $ ! [         a    [        S5      S ef = frB   )r[   r   rk   r   rD   s    r   __len___Database.__len__  s6    	Ht{{## 	H<=4G	Hry   c                      U R                  5         S =U l        =U l        =U l        U l        g ! S =U l        =U l        =U l        U l        f = fr{   )r?   r   r   r   r   rD   s    r   r'   _Database.close  sJ    	OLLNJNNDKN$-N$-$-$NDKN$-N$-$-s	   / Ac                 N    U R                   R                  XR                  5        g r{   )r
   chmodr   )r   files     r   r(   _Database._chmod  s    tZZ(r   c                     U $ r{    rD   s    r   	__enter___Database.__enter__  s    r   c                 $    U R                  5         g r{   )r'   )r   argss     r   __exit___Database.__exit__!  s    

r   )r   r   r   r   r   r-   r   N)r"   )__name__
__module____qualname____firstlineno__r
   r&   r   r   r   r?   syncrE   rQ   r^   ra   re   rn   rr   rv   r;   r~   r   __iter__r   r'   __del__r(   r   r   __static_attributes__r   r   r   r   r   #   s     C
C4&8*4 D>L5JH@	H
 HHO G)r   r   c                      [         R                  " S5      n[         R                  " U5        X#) -  nUS;  a  [        S5      e[	        XUS9$ ! [         a     N'f = f)Nr   )r	   r#   r"   r   z)Flag must be one of 'r', 'w', 'c', or 'n')r   )r
   umaskAttributeError
ValueErrorr   )r   r   r   ums       r   r   r   %  s`     YYq\		"
 s|''DEETd++  s   ,A 
AA)r"   i  )astr/   ior&   osr
   collections.abccollections__all__rZ   r%   r   abcMutableMappingr   r   r   r   r   <module>r      sE   0    F

.. D,r   